43
Moby Dick WP1 1 / 43 IST-2000-25394 Project Moby Dick D0102 Moby Dick Application Framework Specification Contractual Date of Delivery to the CEC: 31 August 2002 Actual Date of Delivery to the CEC: 31 August 2002 Author(s): partners in WP1 (cf. page 3) Participant(s): partners in WP1 Workpackage: WP1 Security: Public Nature: Report Version: 1.0 Total number of pages: 43 Abstract: This document provides a description of the applications and coordination software to be used during tests and trial phase of Moby Dick architecture. Keyword list: Field trial, Test-bed, Moby Dick platform, Application, Traffic Pattern.

Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

Moby Dick WP1 1 / 43

IST-2000-25394 Project Moby Dick

D0102

Moby Dick Application FrameworkSpecification

Contractual Date of Delivery to the CEC: 31 August 2002Actual Date of Delivery to the CEC: 31 August 2002Author(s): partners in WP1 (cf. page 3)Participant(s): partners in WP1Workpackage: WP1

Security: PublicNature: ReportVersion: 1.0Total number of pages: 43

Abstract:This document provides a description of the applications and coordination software to be used duringtests and trial phase of Moby Dick architecture.

Keyword list:Field trial, Test-bed, Moby Dick platform, Application, Traffic Pattern.

Page 2: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 2 / 43

Executive SummaryThis deliverable describes the applications to be used during trial phase of Moby Dick project, with thetests properly defined in D0501 Annex. The software was chosen according to the following mainreasons:

- Only IPv6 software is taken into account.- Applications should be representative in their field (conversational, streaming or network

gaming software)- A proper trade off between simplicity and functionality should be made- Not only free software should be used, but also –when possible- open source applications

are preferable- Public available applications has been selected and minimal effort mainly to port

application to IPv6 will be provided by Moby Dick Project.- Results from previous projects have been consider. We reuse results from 6WinIt (IST-

2000-25153) and LONG (IST-1999-20393) Projects. In particular we will use MGEN6application developed inside LONG project (Laboratories over Next Generation Networks)for network performance measurements as well as audio and video tools (vic, vat, rat)ported to IPv6 from 6WinIt (IPv6 Wireless Internet Initiative).

Applications selected have been divided in areas:

� VoIP applications. We mainly describe SIP environment available in IPv6 protocol stack. Thissoftware will be used to perform telephone conversation tests.

� Streaming. Due to the restrictions on bandwidth in the access network, audio streaming basedon MP3 has been considered to perform tests and deploy trials. These applications could beconsider of interest mainly among young people who, through the Socrates-Erasmus programwill be our testers. Video streaming applications may also be considered, especially in theEthernet access.

� Games. We consider different applications, based on collaborative and individual games.Applications like Quake, Chess and Tetris are considered of high demand in the future Systembeyond 3G and therefore we will try to use in our testbed.

� Interactive or Web Browsing. The increasing growth of the Internet and Web based servicesjustifies these applications that will continue playing an important role in the future. Webbrowsing, email, chat and messenger applications are among these.

� System Coordination and Expert Evaluation. These applications are useful for managementof the test and trial performs. Also, through these applications Moby Dick operators will be incontact to solve configuration parameters and exchange experience and feedback.

Most of the applications have been tested and installed at Moby Dick Trial Sites in Madrid and Stuttgartand servers are installed and ready for the tests and trials. For these applications we have include ananalysis of the traffic pattern injected to the network.

Page 3: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 3 / 43

Authors

Partner Name Phone / Fax / E-mail

UC3M Jose Ignacio Moreno Phone: +34-916249183Fax: +34-916248749E-mail: [email protected]

Ignacio Soto Phone: +34-916245974Fax: +34-916248749E-mail: [email protected]

Carlos J. Bernardos Phone: +34-916249959Fax: +34-916248749E-mail: [email protected]

Raquel Panadero Phone: +34-916248756Fax: +34-916248749E-mail: [email protected]

Pablo Serrano Phone: +34-916248756Fax: +34-916248749E-mail: [email protected]

USTUTT Jürgen Jähnert Phone: +49-711-685-4273Fax: +49-711-678-8363E-mail: [email protected]

Paul Christ Phone: +49-711-685-2515Fax: +49-711-678-8363E-mail: [email protected]

PTIn Victor Marques Phone: +351-243-403-654Fax: +351-243-420-722E-mail: [email protected]

ICR Tan Seng Kee Phone: + 65-68709335Fax: + 65-67795441E-mail: [email protected]

T-Nova Hans J. Einsiedler Phone: + 49-30-34 97 35 18Fax: + 49-30-34 97 35 19E-mail: [email protected]

Page 4: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 4 / 43

Table of Contents

ABBREVIATIONS.............................................................................................. 7

1. INTRODUCTION.......................................................................................... 8

2. MULTIMEDIA APPLICATIONS ................................................................... 9

2.1 Audio streaming: Mpg123 .........................................................................................................92.1.1 Description ...........................................................................................................................92.1.2 Installation and configuration ...............................................................................................92.1.3 Network protocol information ..............................................................................................9

2.2 Audio streaming: Mpg321 .........................................................................................................92.2.1 Description ...........................................................................................................................92.2.2 Installation ............................................................................................................................92.2.3 Network protocol information ............................................................................................10

2.3 Audio streaming GUI: Gqmpeg ..............................................................................................102.3.1 Description .........................................................................................................................102.3.2 Installation ..........................................................................................................................102.3.3 Network protocol information ............................................................................................10

2.4 MP3 Streaming Server: Icecast-1.3.11....................................................................................102.4.1 Description .........................................................................................................................102.4.2 Description .........................................................................................................................102.4.3 Installation and configuration .............................................................................................10

2.5 Interactive browsing: Gabber-0.8.7 (Jabber Client) .............................................................112.5.1 Description .........................................................................................................................112.5.2 Installation and configuration .............................................................................................11

2.6 Interactive Browsing: Jabber-1.4.2 server .............................................................................112.6.1 Description .........................................................................................................................112.6.2 Installation and configuration .............................................................................................11

2.7 VoIP: Introduction to SIP........................................................................................................11

2.8 VoIP: Non-Java SIP environment...........................................................................................132.8.1 Description .........................................................................................................................132.8.2 Installation and configuration .............................................................................................15

2.8.2.1 Sipc Installation ..............................................................................................................152.8.2.2 RAT (Robust Audio Tool) Installation ...........................................................................162.8.2.3 Sipd Installation..............................................................................................................172.8.2.4 MySQL Installation and Usage.......................................................................................17

2.8.3 Network protocol information ............................................................................................17

2.9 VoIP: Java SIP environment ...................................................................................................192.9.1 Java SIP User Agent (JUA) ................................................................................................192.9.2 Java SIP Proxy Server (JPS)...............................................................................................212.9.3 Installation and configuration .............................................................................................22

2.9.3.1 Java JDK Installation......................................................................................................222.9.3.2 Java Media Framework Installation................................................................................222.9.3.3 ALSA Driver Installation and Usage..............................................................................242.9.3.4 MySQL Installation and Usage.......................................................................................252.9.3.5 Java User Agent Installation and Usage .........................................................................25

Page 5: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 5 / 43

2.9.3.6 Java Proxy Server Installation and Usage.......................................................................262.9.4 Network protocol information ............................................................................................26

2.10 Network gaming: Quake 2 .......................................................................................................262.10.1 Description .........................................................................................................................262.10.2 Installation and configuration .............................................................................................272.10.3 Network protocol information ............................................................................................29

2.11 Network gaming: Gtetrinet......................................................................................................292.11.1 Description .........................................................................................................................292.11.2 Installation and configuration .............................................................................................302.11.3 Network protocol information ............................................................................................30

2.12 Network Gaming: Tetrinetx ....................................................................................................30

2.13 Network gaming: Xboard ........................................................................................................312.13.1 Description .........................................................................................................................312.13.2 Installation and configuration .............................................................................................312.13.3 Network protocol information ............................................................................................31

2.14 Network Gaming: Chessd ........................................................................................................31

2.15 Video Conference Tool (VIC) ..................................................................................................322.15.1 Introduction ........................................................................................................................322.15.2 Architecture ........................................................................................................................322.15.3 Implementation...................................................................................................................322.15.4 Evaluation...........................................................................................................................32

2.16 VideoLAN..................................................................................................................................322.16.1 Introduction ........................................................................................................................322.16.2 Implementation...................................................................................................................332.16.3 The Video-on-Demand demo .............................................................................................342.16.4 Evaluation...........................................................................................................................35

3. TRAFFIC MEASURE OF MULTIMEDIA APPLICATIONS ........................ 35

3.1 Mpg321 ......................................................................................................................................353.1.1 Comments on results ..........................................................................................................36

3.2 SIP..............................................................................................................................................363.2.1 Comments on results ..........................................................................................................37

3.3 Quake 2......................................................................................................................................383.3.1 Comments on results ..........................................................................................................38

3.4 Gtetrinet ....................................................................................................................................393.4.1 Comments on results ..........................................................................................................39

3.5 Chessd........................................................................................................................................393.5.1 Comments on results ..........................................................................................................39

4. CLASSICAL APPLICATIONS ................................................................... 39

5. COORDINATION AND EXPERT EVALUATION SOFTWARE.................. 40

5.1 IRC server .................................................................................................................................40

Page 6: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 6 / 43

5.2 Xchat 1.8.x.................................................................................................................................405.2.1 Description .........................................................................................................................405.2.2 Installation and configuration .............................................................................................405.2.3 Network protocol information ............................................................................................40

5.3 RTP Quality Matrix (RQM)....................................................................................................415.3.1 Introduction ........................................................................................................................415.3.2 Architecture ........................................................................................................................415.3.3 Implementation...................................................................................................................415.3.4 Evaluation...........................................................................................................................41

5.4 MGEN6......................................................................................................................................415.4.1 Introduction ........................................................................................................................415.4.2 Application set description .................................................................................................41

5.5 Ethereal .....................................................................................................................................415.5.1 Description .........................................................................................................................41

5.6 Netperf .......................................................................................................................................425.6.1 Description .........................................................................................................................42

6. RUNNING SERVERS AT MADRID TRIAL SITE ....................................... 42

7. REFERENCES........................................................................................... 43

Page 7: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 7 / 43

Abbreviations

Abbreviation Full NameAAAC Authentication, Authorisation, Accounting and ChargingBB Bandwidth BrokerCN Corresponding NodeDiffServ Differentiated ServicesDNS Domain Name SystemDSCP Differentiated Services Code PointGPL General Public LicenseGUI Graphical User InterfaceHTTP HyperText Trasfer ProtocolIETF Internet Engineering Task ForceIPSec IP Security ProtocolIPv6 Internet Protocol version 6IRC Internet Relay ChatQoS Quality of ServiceRTP Real-Time Transport ProtocolSIP Session Initiation ProtocolSSH Secure ShellTCP Transport Control ProtocolTOS Type of ServiceUA User AgentUAC User Agent ClientUAS User Agent ServerUDP User Datagram ProtocolVoIP Voice over IPWCDMA Wideband Code Division Multiple AccessWLAN Wireless LAN

Page 8: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 8 / 43

1. IntroductionThis deliverable describes applications to be used during tests and trial phase of Moby Dick project, withthe tests properly defined in D0501 Annex. The software was chosen according to the following mainreasons:

- Only IPv6 software is considered.- Applications should be representative in their field (conversational, streaming or network

gaming software)- A proper trade off between simplicity and functionality should be made- Not only free software should be used, but also –when possible- open source applications

are preferable- Public available applications has been selected and minimal effort mainly to port

application to IPv6 will be provide by Moby Dick Project.- Results from previous project has been used in particular we will use MGEN6 application

developed inside LONG project (Laboratories over Next Generation Networks) for networkperformance measurements.

In addition to these applications, coordination software –e.g. an IRC server and clients- is also included,to be able to perform tests properly between partners physically separated.

Traditional applications, like remote login (SSH), web browsing or secure transfer of files (SCP) wereintroduced in D0502 document, and therefore they are not described in detail in this document. Serverand client software tested is detailed in D0502, so people interested in these applications are referred tothat document.

No application described in this document is and needs to be explicitly AAAC- and QoS-aware: In MobyDick AAAC and QoS are related to user sessions and not to single applications. The correspondingparameters are handled in "global" user profiles.

On the other hand, the set of applications presented - audio and video streaming, VoIP, interactive or webbrowsing and interactive network gaming - will allow not only the proper validation of network services,but also to pose actual working scenes.

In this document we do not try to detail an user and administrator manual of each application, but tobriefly describe applications, including: first, an overview on its behaviour and functionality provide;then, installation and configuration instructions –where applicable- are described, giving also a littleintroduction about its characteristics from the point of view of the network. Also, when it has beenconsidered interesting proper measures of traffic pattern have been done, in order to give quantitativeresults so as to help trials unfolding.

Description of applications has been divided into three categories: � multimedia applications (which include VoIP, Streaming, Network Games and Interactive),� classical applications like telnet, ssh or ftp � coordination applications like IRC or MGEN6.

Page 9: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 9 / 43

2. Multimedia Applications

2.1 Audio streaming: Mpg123

2.1.1 Descriptionmpg123 is a real time MPEG command-line audio player for Layer 1, 2 and Layer3. It was the first optionconsidered as streaming audio application, but in the next section another choice can be found.

2.1.2 Installation and configurationIPv6 is not supported in the default distribution of the mpg123 tool. However, there are some patchesavailable in the Internet that provide IPv6 support.

We have tested a patch provided by [KAME]. A copy of this patch (mpg123-059r-v6-20000713b.diff) isavailable at [UC3M-MOBYDICK]).

In order to build an IPv6 enabled version of mpg123, you need to download the mpg123 sources at[MPG123]. Version mpg123-0.59r has been used. After decompressing the sources, you first have toapply the patch:

> ~/src$cd mpg123-0.59r> ~/src/mpg123-0.59r$patch -p1 < ../mpg123-059r-v6-20000713b.diff

You have to edit the Makefile, and uncomment this line:

CFLAGS+= -DINET6

After that, you can build a IPv6 version of mpg123. There are many possibilities, depending on theoperating system used. An appropriate flavour you may want to choose is 'make linux'. After the buildingprocedure is complete, you will have an mpg123 executable file supporting IPv6 http streaming.

2.1.3 Network protocol informationIn order to play remote files, mpg123 uses HTTP as transport protocol; therefore, information is sent withTCP, using port 80.

2.2 Audio streaming: Mpg321

2.2.1 Descriptionmpg321 is a free command-line mp3 player, which uses the “mad audio decoding” library and can bedownloaded from [MPG321]. mpg321 is written as a drop-in replacement for the non-free mpg123player. Some functions remain unimplemented, but mpg321 should function as a basic drop-inreplacement for mpg123 front-ends such as gqmpeg, and those programs which use mpg123 to decodemp3 files.

mpg321 differs from mpg123 in several ways. First and foremost, it is fully Free, under the GNU GeneralPublic License. Secondly, it allows run-time switching of output devices (via the -o switch). (mpg321also allows configuring a default output device at compile-time, but run-time switching is alwaysallowed).

For Moby Dick test purposes, mpg321 is a good replacement of mpg123, because is fully Free andsupports HTTP MP3/Shoutcast stream. mpg321-0.2.10 does not support IPv6, but a patch can bedownloaded from [MPG321PATCH].

2.2.2 InstallationInstallation of mpg321 is easy, but it needs some software that is not provided with RedHat-7.1distribution. Software requirements are described in the ‘install’ file.

In order to support IPv6, download the patch and apply it. Then you only have to follow the installationinstructions, with a difference: you have to set the configure option '--enable-ipv6'

Page 10: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 10 / 43

2.2.3 Network protocol informationThe same description for mpg123 (section 2.1.3) applies here.

2.3 Audio streaming GUI: Gqmpeg

2.3.1 DescriptionGqmpeg is a front end to various audio players, including mpg123, ogg123, and xmp. It works also withmpg321. It includes playlist support and is very configurable, including a lot of skins to be used. Sourceand RPM versions are available. You can download them from [GQMPEG].

Figure 1: Gqmpeg snapshot

2.3.2 InstallationFrom the same web page listed before Gqmpeg can be downloaded. The most important issue is thatGTK+ 1.2.0, gdk-pixbuf 0.7.0, and mpg123 0.59o player (or similar) must be installed in the computer.The RPMs were compiled with gcc 2.96 on Linux 2.4.17 and glibc 2.2.4 running XFree86 4.1 (modifiedRed Hat 7.2 system), but in some cases it may be easier to compile from the sources yourself. Startingwith version 0.12.1, the RPMS require RedHat 7.x.

2.3.3 Network protocol informationSince it is a GUI (Graphical User Interface), Gqmpeg does not use any network resource by itself.

2.4 MP3 Streaming Server: Icecast-1.3.11

2.4.1 DescriptionIcecast is an Internet based broadcasting system based on the Mpeg Layer III streaming technology. It is,however, not limited to streaming mp3 files. Nullsoft’s Shoutcast and also mp3serv by Scott Manleyoriginally inspired it. Icecast is almost completely Shoutcast compatible as far as we've been able todetermine.

2.4.2 DescriptionIces is a streaming tool for command line systems. “Ices” is short for “icesource”, a source for the icecastserver. Ices, armed with a list of mp3 files, send a continuous stream of mp3 data to an icecast server. Theserver is then responsible for accepting client connections and feeding the mp3 stream to them. But thestream originates in the streamer, “Ices”.

2.4.3 Installation and configurationFirst, we have to download the source files of the Icecast application and IPv6 patch from ([ICES]). Then,unzip and untar them and apply the patch. For the compilation and configuration process just follow thetips available on the referred website.

Important: To be able to connect to the Icecast Server it is necessary to have an IPv6 enabled Mp3 Client.We tested with success XMMS-1.2.5 with IPv6 patch, available in ([XMMS]).

Page 11: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 11 / 43

2.5 Interactive browsing: Gabber-0.8.7 (Jabber Client)

2.5.1 DescriptionGabber is a Jabber client for GNOME and it is a C++ project. Gabber's user interface is done in glade,and dynamically loaded with libglade.

Figure 2: Gabber snapshot

Gabber has some dependencies that have to be satisfied:

GNOME >= 1.2libsigc++ >= 1.0.0 ([LIBSIGC])gtkmm >= 1.2.0 (previously known as gtk--, [GTKMM])gnomemm >= 1.1.10 (previously known as gnome--, [GTKMM])libglade >= 0.11 (any GNOME mirror, or [XIMIAN])libgal >= 0.5 ([XIMIAN])openssl >= 0.9.5a (If you want SSL support; it's not required)

2.5.2 Installation and configurationFirst, we have to download the source files of the application. Then, unzip and untar them, and just type:

./configure –enable-ipv6makesumake install

That is all to do.

2.6 Interactive Browsing: Jabber-1.4.2 server

2.6.1 DescriptionJabber is a new, open-source Instant Messaging (IM) platform designed to be open, fast, and easy to use.It works directly over the Internet, has distributed servers, utilizes an XML-based protocol, and hastransparent compatibility with other IM systems (ICQ, AIM, Yahoo, MSN, IRC, SMTP, etc).

2.6.2 Installation and configurationFirst, we have to download the source files of the application and IPv6 patch. Then, unzip and untar them,and apply the patch. For compiling just type:./configure./makeand configure your server by editing the “jabber.xml” file.

2.7 VoIP: Introduction to SIPSIP was originally developed by the Multiparty Multimedia Session Control (MMUSIPC), working groupof the Internet Engineering Task Force (IETF). This protocol handles the setup, modification, and

Page 12: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 12 / 43

teardown of multimedia sessions as defined in [SIP]. Nowadays it is considered a powerful alternative toH.323.

SIP is a client-server protocol, therefore it defines two basic classes of network entities: clients andservers. VoIP calls using SIP originate at a client and terminated at a server. Strictly speaking, a client(also known as a user agent client, UAC) is an application program that sends SIP requests, whereas aserver is an entity that responds to those requests.

Four different types of servers exist:

� Proxy server: that receives calls directed to other users and resends them to the rightlocation according with the registrar.

� Redirect server: similarly to the proxy, a server accepts SIP requests, map the destinationaddress to zero or more new addresses, and return the translated addresses to the originatorof the request.

� User agent server (UAS): accepts SIP requests and contacts the user. � Registrar: accepts registrations from users in order to make easier their localisation, i.e., in

order to be reachable for other users no matter their present location.

SIP call establishment can be very simple, as shown in Figure 3.

Figure 3: Simplest SIP dialog

This is the simplest scenario. However, due to the added functionalities, we will always use a proxy:clients send requests to the proxy, and the proxy either handles those requests itself or forwards them toother servers. Given that a proxy receives and sends requests, it incorporates both server and clientfunctionality. Figure 4 shows an example of a proxy server operation.

INVITE

Ringing

OK

ACK

Conversation

OK

BYE

Page 13: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 13 / 43

Figure 4: SIP architecture in Moby Dick

In Moby Dick, two different implementations of a SIP environment have been considered: a Java version,fully developed inside the project; and a non-Java version, derived from work previously done by otherresearch institutes.

2.8 VoIP: Non-Java SIP environmentIn this section is described one SIP (Session Initiation Protocol) environment that is being used in thearchitecture development of the Moby Dick Project.

2.8.1 DescriptionThe software used has been taken from the Department of Computer Science of the Columbia Universitydirected by Henning Schulzrinne. That department has developed an implementation of the SIP protocol,to concrete, a free version for educational institutions.

This software has two entities: sipd and sipc. The proxy as well as the registrar (or SIPD) reside in thesame machine, while, the UAS and the UAC (or SIPC) are installed in several hosts. SIPD is a SIPredirect, forking proxy and registration server that provides name mapping, user location and scriptingservices. It also allows users to register their current location to the server. SIPC is a SIP user agent thatcan be used for Internet telephony calls, multimedia conferences, instant messaging, web browsingsharing and device control. It supports a range of media types, such as audio, video, text and white board,and can be extended easily to additional media types. SIPC can communicate with SIP redirect, proxy andregistration servers such as SIPD and other SIP user agents. It includes a user agent client which can sendrequests to SIP servers and a user agent server which handles incoming calls.

All this software was originally programmed for an IPv4 environment; therefore it had to be translated toIPv6. This work was performed at University Carlos III de Madrid.

The audio application chosen is RAT (Robust Audio Tool) [RAT], and the database is MySQL [MYSQL].The registrar uses MySQL for storing relevant information, especially in two fields: the put field, whereare listed the SIP addresses that are going to be managed by the registrar; and the contact field where isstored the current location or locations where the user, owner of a valid SIP address, may be reached. Asa valid SIP address it must be understood an address which is listed in the put field of the database.

To sum up, the software used in the University Carlos III de Madrid SIP scenario is the following:

Entity Name Version Developed by...Proxy +registrar

sipd 1.18 Columbia University

UAC + UAS sipc 1.72 Columbia University

LOCATION SERVER

CALLERPROXYSERVER

CALLEE

1. Invite

6. OK

7. ACK

4. Invite

5. OK

8. ACK

2. Contact 3. Precise location

Page 14: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 14 / 43

audioapplication

rat 4.2.19 University College London

database MySQL 386 MySQL AB Company

Sipc uses a graphical interface that makes easier its usage to any user. For example, in Figure 5 it isshown how to initiate a call by choosing the menu option “Call menu/New”.

Figure 5: Call initiation

To make a call a valid URL must be entered in the “To” field and at least one media type should bechecked. Clicking on the call button in the “New call” frame a call setup message is sent out to theaddress specified in the “To” field. Sipc will pop up a progress dialog box to indicate the call processingstatus. When an incoming call arrives at sipc, the “Call arrive” dialog box will popped up. A user canchoose to accept the call, to ask the caller to make a call at a later time or to explicitly reject the call. Inthe “Call arrive” dialog box, a user can also see all the related information about the caller, including thecaller’s contact information, photo and call history. From the “Tools menu/Registrars”, a user can add anew registrar or manipulate the existing registrar (Figure 6).

Figure 6: Adding a registrar

Page 15: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 15 / 43

If the user chooses to add a registrar, the basic registration interface will pop up. From the basicregistration interface, the user can specify what contact information he/she wants to register: web, email,telephone or fax contact information. If the user wants to do additional configuration on the contactinformation, the user can click on the “Advanced” button to invoke an advance configuration interface.

Figure 7: SIP advanced information message

For advanced users sipc provides a monitoring interface to watch the SIP messages. A user can choose“Tools menu/Monitor” to start the monitor. In addition to the SIP messages, the monitor also displays thetime and remote address of sending or receiving the SIP message (Figure 7).

2.8.2 Installation and configurationThe software was freely available some moths ago, but nowadays it belongs to Sipcomm enterprise, andtherefore it is not free anymore. Anyway this software was developed for an IPv4 environment, so it hadto be translated to IPv6 as mentioned earlier. The final IPv6 software can be found in the web of theDepartment of Telematic Engineering of the University Carlos III de Madrid privately for Moby DickProject developers [UC3M-MOBYDICK]

Here it is assumed that software runs on Linux machines, and it is being tested on Suse 7.1 and Red Hatglibc library. Sipc is written in Tcl and uses C for some Tcl extension libraries. It is based in the version1.72 of Columbia SIPC.

2.8.2.1 Sipc InstallationFirst of all extract the files with this UNIX command line:

gunzip < sipc_file.tar.gz | tar xvf -

Sipc uses MBUS command to control audio application. Columbia did some modifications on the MBUSlibrary. The source files of the modified MBUS library will be available also from the University CarlosIII de Madrid.

Currently, sipc support Tcl8.4a1. So you will need to download tcl84a1.zip and tk84a1.zip for compiling.This libraries has to be uncompressed, configured (./configure) and compiled (make). A similar operationshould be performed with the mbus (common) library. But if we want it to run properly on IPv6 theconfiguration must be as follows:

> ./configure –enable-kame-ipv6

Page 16: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 16 / 43

> make

When compiling the common library an error is obtained. To mend it you have to edit the config_unix.hfile and write sys/ioctl.h instead of sys/filio.h.

The next step is compiling the client. It is very important to change every makefile.linux within anydirectory. To be concrete, every path with information about the location of the libraries it waspreviously compiled the following changes have to be provided:

� In ./tclgdbm/src/makefile.linux: TCL_INC_DIR, TCL_LIB_DIR, GDBM_DIR, GDBM_LIB.

� In ./tcludp/makefile.linux: TCL_INC_DIR, and TCL_LIB_DIR.

� In ./util/src/makefile.linux: TCL_INC_DIR, and TCL_LIB_DIR.

� In ./tktable/src/makefile.linux: TCL_SRC_DIR, TK_SRC_DIR, TCL_LIBS, TK_LIBS,TCL_STATIC and TK_STATIC.

� In ./tclmbus/src/makefile.linux: TCL_INC_DIR, TCL_LIB_DIR and COMMON_DIR.

� In ./freewrap/unix/makefile.linux: TCL_DIR, TKDIR, LIBS and INCLUDES.

If your system does not have GDBM library installed, it can be found at [GDBM]. Sipc uses GDBM foraddress book.

Finally, compile Sipc:

> make -f makefile.linux> make -f makefile.linux exe

Before running sipc:

� The user needs to put the license file (sipc.license) into the $HOME/.sipc directory.

� In file sipc.tcl, when invoking the audio application RAT, it is important to write “rat-4.2.19”instead of the “rat” string (being 4.2.19 the RAT version).

� Read the RAT instructions given below.

For running sipc write in sipc.src/ : ./sipc

If the user is running for the first time, the “Preference” dialog box will pop up to ask the user to input theconfiguration information. A user can always change the configuration information by using “Callmenu/Preference” menu item. All the configuration information is saved in the saved in the $HOME/.sipcdirectory. For a detailed description of the files in the $HOME/.sipc directory see the User manual forsipc.

2.8.2.2 RAT (Robust Audio Tool) InstallationThough Sipc distribution does include RAT for communications, it may be desirable to download a newerversion such as 4.2.19 from [RAT].

The steps for getting a RAT application running rightly may depend on the version of RAT (take a lookon INSTALL.TXT, some RAT versions include aditional libraries). Anyway, to compile RAT for IPv6 ithas to be configured in the following way:

> ./configure –enable-kame-ipv6 –with-common=directory_of_the_common_library> make

Once the RAT is configured and compiled, it has to be installed as a root:

> install –m 755 rat-4.2.19 /usr/local/bin> install –m 755 rat-4.2.19-ui /usr/local/bin> install –m 755 rat-4.2.19-media /usr/local/bin

To compile RAT for IPv6 it has to be configured in the following way:

> ./configure –enable-kame-ipv6 –with-common=directory_of_the_common_library> make

Page 17: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 17 / 43

2.8.2.3 Sipd InstallationSipd is written in C. It is based in the version 1.18 of Columbia SIPD.The sipd code is much more easier to build than the sipc. Though you will have to install the database (forexample, MySQL) previously (you will find some hints in the next section).

> ./configure –with-mysql= directory_where_mysql_is_installed> make

The configuration of Sipd is in the sipd.conf file which can contain several directives (as AuthMethod orServerRoot). All those directives are more precisely described in the Sipd manual (/sipd-1.18/doc/sipd.html).

User information is maintained in an SQL database. Each user that sends a SIP REGISTER request mustfirst be registered in that database. Users can be added to the database via a script, addsipuser (/sipd-1.18/tools/addsipuser/):

> addsipuser [-a] [-u user] [-d sql://user:password@host:port/database] [-p password] [-r realm]

The server uses a license file named sipd.license, that is by default located at the same directory assipd.conf.

At last, in order to run sipd it is necessary to do the following:> /sipd-1.18/sipd/> ./start-sipd –v -s

2.8.2.4 MySQL Installation and UsageIn order to download MySQL (and also for a more elaborate explanation on MySQL installation andmanagement) go to [MYSQL]. In the following, it can be found a few guidelines on how to install andrun it.

As root:� copy MySQL software in /usr/local/� gunzip < mysql.atr.gz | tar xvf –� cd mysql� scripts/mysql_install_db� ./bin/safe_mysqld &� export the path, in this case: export PATH=/usr/local/mysql/bin:$PATH� cd bin� ./mysql –h localhost –u root mysql� GRANT ALL PROVILEGES ON *.* TO root@localhost WITH GRANT OPTION;� FLUSH PRIVILEGES;� mysql –u root < ~/sipd-1.18/scripts/create.sql� add users as explained in the previous section.

This is only for the first time. The following times it will be enough with:� scripts/mysql_install_db� ./bin/safe_mysqld &� export the path, in this case: export PATH=/usr/local/mysql/bin:$PATH

The registrar uses MySQL as database for storing relevant information, specially in two fields: the putfield, where are listed the SIP addresses that are going to be managed by the registrar; and the contactfield where is stored the current location or locations where the user, owner of a valid SIP address, maybe reached. As a valid SIP address it must be understood an address which is listed in the put field of thedatabase.

2.8.3 Network protocol informationThe first step is to open a signalling connection between the calling and the called endpoint. Sip endpointscan use UDP or TCP signalling. The message syntax is independent of the transport protocol being used.

Page 18: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 18 / 43

When using TCP, the same connection can be used for all SIP request and responses (not for the media ordata), or a new TCP transaction can be used for each transaction.

In general, UDP will be used. If UDP is used, the address and port to use for the answers to SIP requestsare contained in the ‘via’ header parameter of the SIP request. Replies must not be sent to the IP addressof the client. If no port is specified in the SIP address, the connection is made to port 5060 for both TCPand UDP.

A SIP client calls another SIP endpoint by sending an INVITE message. These messages normallycontains enough information to allow the called terminal to immediately establish the requested mediaconnection to the calling endpoint. The information includes also the media capabilities the callingendpoint can receive (and send), and the transport address where the calling endpoint expects the calledendpoint to send this media data. The particular encoding chosen by the sender appears as a part of theRTP header.

The called endpoint needs to indicate that it is accepting the request. This is the purpose of the OKresponse message. Since the request was an invitation, the OK response also contains the mediacapabilities of the called endpoint, and where it is expecting to receive the media data. The caller needs toacknowledge that it has properly received the response of the called endpoint (remember we are usingUDP) with the ACK message.

There is no codec recommended for SIP, but most terminals seem to be able to receive PCM A-Law andµ-Law, and also GSM. The codec that the terminal wants to use is specified in the SDP part of theINVITE and OK messages, more specifically, in the “m=” field. An example taken from a callestablishment using the software available (Sipc and Sipd) is shown below:

INVITE sip:sip@2001:720:410:1001:2c0:26ff:fea3:7d9f SIP/2.0Via: SIP/2.0/UDP [3ffe:3328:6:ffff:2c0:26ff:fea3:7d6e]:5060;branch=3262198957-0Via: SIP/2.0/UDP [2002:a375:8bb5:ffff:2c0:26ff:fea3:d118]:5060CSeq: 1 INVITEContact: sip:sip@[2002:a375:8bb5:ffff:2c0:26ff:fea3:d118]:5060Expires: 3600From: [email protected]: Wed, 20 Mar 2002 18:19:13 GMTCall-ID: 610186238@2002:a375:8bb5:ffff:2c0:26ff:fea3:d118Content-Type: application/sdpPriority: normalTo: sip:[email protected]: 175

v=0o=sip 871976573892 1016648353 IN IP62002:a375:8bb5:ffff:2c0:26ff:fea3:d118s=Untitledc=IN IP6 2002:a375:8bb5:ffff:2c0:26ff:fea3:d118t=0 0m=audio 10000 RTP/AVP 0

SIP/2.0 200 OKContact: sip:sip@[2001:720:410:1001:2c0:26ff:fea3:7d9f]:5060CSeq: 1 INVITEVia: SIP/2.0/UDP [3ffe:3328:6:ffff:2c0:26ff:fea3:7d6e]:5060;branch=3262198957-0Via: SIP/2.0/UDP [2002:a375:8bb5:ffff:2c0:26ff:fea3:d118]:5060From: [email protected]: application/sdpCall-ID: 610186238@2002:a375:8bb5:ffff:2c0:26ff:fea3:d118To: sip:[email protected];tag=623838684346.2001:720:410:1001:2c0:26ff:fea3:7d9fContent-Length: 163

Page 19: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 19 / 43

v=0o=sip 762101518811 1016648368 IN IP62001:720:410:1001:2c0:26ff:fea3:7d9fs=c=IN IP6 2001:720:410:1001:2c0:26ff:fea3:7d9ft=0 0m=audio 10000 RTP/AVP 0

According to the traces, both endpoints are offering to send audio data using µ-Law PCM data(RTP/AVP 0) on port 10000 (which is the most usual).

2.9 VoIP: Java SIP environmentThe software has two entities: SIP UA (JUA) and SIP Proxy Server (JPS). The JUA, composed of theUAS and the UAC, is a Java Applet suitable for both web-application and host application that will bedeployed in several host. The JPS with SIP registrar functionality is a stateful/stateless proxy server thatresides in its own machine.

2.9.1 Java SIP User Agent (JUA)JUA is a SIP user agent that can be used for Internet telephony calls. It uses graphical interface forconfiguration and making an VoIP call. Figure 8 shows the main UI for the application.

Figure 8: Java SIP dialog

Page 20: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 20 / 43

The menu bar has two items: Program and Options. The Program item only has “quit” function for theuser to exit from the application. The Options contains “Sip Configuration” function, which will pop upFigure 9 below.

Figure 9: Java SIP Configuration dialog

To configure the application, only the User Registration Name field and the Home Server name field ismandatory if the user wishes to perform registration. Below provides description about the field in the UIin detail.� In the “User Registration Name” item, user should key in the user name such as “Jerry”, “Tom”.� In the “Home Server” item, user should key in the address of the SIP server in the home domain.� In the “Visiting Server” item, user should key in the address of the SIP server in the foreign domain,

if the user mobiles to other domain.� In the “Registration Time” item, user should key in the valid registration period, that is, the user will

stay here from now until that time value expires. The default value is 3600 sec.� The Port Preference is a range of the ports and the application will choose one available port to use to

transmit and listen to the real-time stream.� If the entire configuration is done, the user can click the “OK” button to quit from configuration and

the main UI will show up again.

In making a call, a user may, after completed the configuration UI, click the “REGISTER” button toregister itself to the registrar as per stated in the configuration UI. After registration, the user is ready tomake a VoIP call by entering the destination URL, i.e., IP address, email-like identifier or other identifierthat can be understood by the SIP system, under the “Destination” label. By clicking the “CONNECT”button, the user is initiating a call request to the destination. The call progress will be displayed in the testbox under “Status” label. During the session setup phase, the “CONNECT” button is switched to“CANCEL” button for user to cancel the session before the call connection has been established. Uponsuccessful call setup, the “CANCEL” button will change to “TERMINATE” button for the user toterminate the session if desired.

For receiving, upon receives a call request from peer, the Status box will display the incoming callinformation and the “CONNECT” button will change to “CANCEL” button with the “PICKUP” buttonenabled for the user to reject or pick up the call. When the user chooses to pick up the call, the“CANCEL” button changes to “TERMINATE” button. The user can terminate the session after thesession has been established.

Page 21: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 21 / 43

2.9.2 Java SIP Proxy Server (JPS)JPS is a configurable SIP Proxy Server. Besides performing alias name and IP address mapping services,JPS also perform request forwarding.

Upon execution, JPS will prompt the user to enter the location database information, enter a validdatabase name (created via SQL admin tool), and click OK and proceed to configure the proxy server.

Figure 10: Java SIP Proxy Server Database Configuration

Upon database configuration, Figure 11 displays the detailed configuration of proxy server windows. Inthe “General Setting” tab, user is able to select the type of proxy server, either stateful or stateless byclicking the radio button, the default registration period and the listening port. With the information, theuser can start the proxy server by pressing the Start button in the bottom of the window. Figure 12 showsthe server status monitoring.

Figure 11: SIP Proxy Server Configuration Window

Page 22: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 22 / 43

Figure 12: SIP Proxy Server Monitoring Windows

2.9.3 Installation and configurationThe software requires to be run on Linux machine with Java Development Kit of 1.4.x and higher forIPv6 communications. Below the environment required for the application is listed.

SIP User Agent (JUA)1. JDK 1.4.x2. JMF 2.1.1 (blackdown)3. ALSA Drivers (if default sound card driver is not JMF compatible)

SIP Proxy Server (JPS)1. JDK 1.4.x2. MySQL

All public software may be downloaded from [ICR-JAVASIP]

2.9.3.1 Java JDK InstallationTo support IPv6, Java 1.4.0 and above must be used. Java 1.4.x are currently available either from SUN([JAVA]) or Blackdown Linux ([BLACKDOWN]). Alternatively, one may download Java 1.4.0 fromthe site below

File To download: j2sdk-1_4_0-linux-i586-rpm.binDownload: [ICR-JAVASIP]

The Java(TM) 2 SDK, Standard Edition, v1.4.0 for Linux is available in a self-extracting binaryinstallation and rpm packages installation. Below described the rpm packages version installation.

After downloading the j2sdk-1_4_0-linux-i586-rpm.bin file containing RPM packages,

> chmod a+x j2sdk-1_4_0-linux-i586-rpm.bin> ./j2sdk-1_4_0-linux-i586-rpm.bin> rpm -iv j2sdk-1_4_0-fcs-linux-i386.rpm> > export PATH=/usr/java/j2sdk1.4.0/bin:/usr/java/j2sdk1.4.0/jre/bin:$PATH

Note: The default jdk directory for rpm packages is at /usr/java/j2sdk1.4.x

2.9.3.2 Java Media Framework InstallationJMF requires either blackdown or Sun Java2 SDK or Runtime Environment v1.4.0 or higher forLinux/i386. To get a copy of the JMF, follow the following link.

Files to download: jmf-for-java2-2.1.1-fcs-linux-i386.tar.bz2

Page 23: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 23 / 43

.java_wrapperDownload: [ICR-JAVASIP]

Download the jmf-2.1.1 package as well as the .java_wrapper file from above site.

Installation with a J2SDK 1.4.x: > cd <j2sdk1.4.x installation>/jre> bzip2 -dc <downloadpath>/jmf-for-java2-2.1.1-fcs-linux-i386.tar.bz2 | tar xv -

Patching for jmf installation> cd <j2sdk1.4.x installation>/jre/lib> cp i386/jvm.cfg .> chmod a+x jvm.cfg> vi jvm.cfg ;; and delete the “ KNOWN” from the first and second line as follow:

-client<return>-server<return>-hotspot ALLASED_TO –client-classic WARN-native ERROR-green ERROR

> cd <j2sdk1.4.x installation>/jre/bin> cp < downloadpath>/.java_wrapper .Note: If the jdk downloaded is not 1.4.0, please change the JAVA_HOME variable (line 11) in

.java_wrapper to appropriate installation directory.

> ./jmfinit> ./jmfregistry ;; enable the “Allow File Writing for Applets” and “Allow Capture for Applets”

button ;; press “Commit” button and exit the window.> ./jmstudio and the following UI will appear.

Figure 13: JMStudio Main UI

To test if the sound card is compatible with Java, Select Capture from the File menu. The Select CaptureDevice dialog is displayed (Figure 14). Just Click OK to begin capturing the media after selected thedesire media type. If the soundcard is supported by Java, Figure 15 will be displayed, else, an errormassage is displayed.

Page 24: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 24 / 43

Figure 14: Sound Card Capture Window

Figure 15: Recording Window

2.9.3.3 ALSA Driver Installation and UsageYou may try to install ALSA driver if the above test shows that the driver is not compatible with JMF.

Files To download: alsa-driver-0.9rc2.tar.bz2 alsa-lib-0.9rc2.tar.bz2 alsa-oss-0.9rc1.tar.bz2 alsa-utils-0.9rc2.tar.bz2Download: [ICR-JAVASIP]

Download all the alsa files from above site.

Perform the following operations:> cd <alsa download directory>

> bzip2 -dc alsa-driver-0.9.0rc2.tar.bz2 | tar -xv> cd alsa-driver-0.9.0rc2> ./configure --with-kernel=<kernel-directory eg /usr/src/linux-2.4.16>> make install

> cd ..> bzip2 -dc alsa-lib-0.9.0rc2.tar.bz2 | tar -xv> cd alsa-lib-0.9.0rc2> ./configure --with-kernel=<kernel-directory>> make install > cd ..> bzip2 -dc alsa-oss-0.9.0rc1.tar.bz2 | tar -xv

Page 25: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 25 / 43

> cd alsa-oss-0.9.0rc1> ./configure --with-kernel=<kernel-directory>> make install

> cd ..> bzip2 -dc alsa-utils-0.9.0rc2.tar.bz2 | tar -xv> cd alsa-utils-0.9.0rc2> ./configure --with-kernel=<kernel-directory>> make install

> cd ..> cd alsa-driver-0.9.0rc2> ./snddevices

Note: The alsa driver installation is completed at this point. We will proceed to configure it.

To configure, add the following line to /etc/modules.conf(You may wish to refer to alsa-driver-0.9.0rc2/INSTALL for more sound card/alsa mapping info)

#------------ ALSA /etc/modules.conf -----------------# ALSA portionalias char-major-116 snd# OSS/Free portionalias char-major-14 soundcore

# ALSA portion # For C6xx series, the sound card should be using Maestro-2E, corresponding to snd-es1968.o in# ALSA. If that so, replace <soundcard name specific> with es1968.alias snd-card-0 snd-<soundcard name specific># OSS/Free portionalias sound-slot-0 snd-card-0

# OSS/Free portion - cardalias sound-service-0-0 snd-mixer-ossalias sound-service-0-1 snd-seq-ossalias sound-service-0-3 snd-pcm-ossalias sound-service-0-8 snd-seq-ossalias sound-service-0-12 snd-pcm-oss#------------ ALSA /etc/modules.conf -----------------

Also, edit /etc/rc.local to include the follwing:(remove the modprobe for default sound card, if any):

#------- start of line added to rc.local --------------modprobe snd-<driver installed>amixer set 'Master' Front onamixer set 'PCM' Front onamixer set 'Master' 31amixer set 'PCM' 31amixer set 'Mic' 31amixer set 'Wave Surround' 100amixer set 'Capture' 15#------- end of line added to rc.local --------------

2.9.3.4 MySQL Installation and UsageRefer to 2.7.2.4

2.9.3.5 Java User Agent Installation and UsageWith the above entities installed, perform the following to install the Java jar file:

> tar –xvf javaSIPUA.tar

Page 26: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 26 / 43

will install 4 files to /usr/local/JUA directory. Namely, cwcsipimpl.jar, SIPimplementation.html, execsipand appletviewer.policy.

To run the application, > cd /usr/local/JUA> ./execsip

2.9.3.6 Java Proxy Server Installation and UsageWith the above entities installed, perform the following to install the Java jar file:

> tar –xvf javaSIPProxy.tar

To run the application, > cd /usr/local/JSP> java -jar ICRSIPproxyserver.jar

2.9.4 Network protocol informationSIP signalling uses UDP or TCP. However, normally it is used UDP:5060 for signalling. To make a call,a caller must first establish a signalling connection with the callee. The caller do so by sending anINVITE message containing the source and destination information, together with the media informationthat the caller wishes to establish, via the SDP protocol information within its message body. The proxywill route the message to the respective endpoint. Upon received the INVITE message, the caller shalldecide whether to accept or to reject the request. If accepted, the call will send an OK response messageto the caller, otherwise a response with rejection reason is send. The signalling for setting up aconversion is at most 4 messages as shown below; namely, INVITE, Ringing, OK and ACK messages.

Based on the SDP information with the SIP message, both party then setup an RTP/RTCP session usingUDP to transfer the real-time media data usually using port 10000.

There is no codec recommended for SIP, but for Java implementation, due to the soundcard compatibleissue, only U-Law is supported.

2.10 Network gaming: Quake 2

2.10.1 DescriptionQuake is probably one of the world most famous interactive network game. It is a “shoot ‘em up” classic,first person perspective, violent, with several weapons and high mobility game, basically played in twokinds of match:

- Deathmach: an “all versus all” game, no rules.- Capture the Flag: a cooperative game, where players are grouped in teams, and strategy

plays an important role.

In order to play with different users, two kind of software is needed:- client software, needed not only to play the game, but also to generate client to server traffic

(with user’s temporal situation) and translate server to client packets into game environment.- server software, accepting clients packets, dealing with them and sending back individual

responses.

Quake network protocol uses UDP as transport layer, employing its own mechanisms to solveunreliability issues (with counters, repeating information and using marking bits for reliable transport).Clients and server use delta compression, sending only changes in system state from the last mark-timeacknowledged. And also, the server only sends information needed by each client –therefore, a client isnot sent information from all others clients, but only from the one present in its close range-.Thus, QoS requirement for Quake 2 are clearly defined:

- low transmission rates- medium delay constrains (mean value and jitter)

However, for quantitative analysis of traffic generated by Quake 2, please refer to section 3

It should be noted that Quake software consists of two different components:

Page 27: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 27 / 43

- the game engine, for both client and server- the maps and textures

And only Quake 2 source code (for the game engine) is freely available (therefore, a registered version orthe demo version is needed in order to play it).

Figure 16 Quake 2 snapshot

2.10.2 Installation and configurationInstallation of Quake 2 is easy, but because of the number of configuration options, we are going toenumerate the essential steps of the process of installation and configuration of Quake 2. First, we need tofetch the latest Quake2 from CVS:

cvs -d :pserver:[email protected]:/cvs/cvsroot login (anonymous)cvs -d :pserver:[email protected]:/cvs/cvsroot co quake2

Then go into quake2 directory:> ~/src$cd quake2/

In order to do the preconfiguration process you have to edit the Makefile (no configure procedure issupplied). There are many options, explained in the README file:

BUILD_SDLQUAKE2 Build sdlquake2, a quake2 binary that uses SDL for CD audio and soundaccess (default = YES).

BUILD_SVGA Build ref_soft.so, a quake2 video driver that uses SVGAlib (default = NO).BUILD_X11 Build ref_softx.so, a quake2 video driver that uses X11 (default = YES).BUILD_GLX Build ref_glx.so, a quake2 video driver that uses X11's GLX (default = YES).BUILD_FXGL Build ref_gl.so [might be renamed to fxgl later], a quake2 video driver that

uses fxMesa (default = NO).BUILD_SDL Build ref_softsdl.so, a quake2 video driver that uses SDL (default = YES).BUILD_SDLGL Build ref_sdlgl.so, a quake2 video driver that uses OpenGL with SDL (default

= YES).BUILD_CTFDLL Build the Threewave CTF gamei386.so (default = NO).BUILD_XATRIX Build the Xatrix gamei386.so for the "The Reckoning" Mission Pack (default

= NO).BUILD_ROGUE Build the Rogue gamei386.so for the "Ground Zero" Mission Pack (default =

NO).HAVE_IPV6 Build quake2 with IPv6 support (default = NO).

Page 28: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 28 / 43

BUILD_JOYSTICK Build quake2 with support for SDL and Linux joysticks, (default = YES).BUILD_ARTS Build support for the aRts sound system (src/linux/snd_arts.c) [default = NO]BUILD_DEDICATED Build the quake 2 dedicated server q2ded.BUILD_QMAX Build the eye-candy oriented Quame2 Max (see below)

We are interested in HAVE_IPV6 option, but we have to pay attention with the rest of the options also.Unless you have a 3D graphics card and you want to enable acceleration support via OpenGL driver, asample Makefile options section would be like this:

BUILD_SDLQUAKE2=NO # sdlquake2 executable (uses SDL for cdrom and sound)BUILD_SVGA=NO # SVGAlib driver. Seems to work fine.BUILD_X11=YES # X11 software driver. Works somewhat ok.BUILD_GLX=NO # X11 GLX driver. Works somewhat ok.BUILD_FXGL=NO # FXMesa driver. Not tested. (used only for V1 and V2).BUILD_SDL=NO # SDL software driver. Works fine for some people.BUILD_SDLGL=NO # SDL OpenGL driver. Works fine for some people.BUILD_CTFDLL=YES # game$(ARCH).so for ctfBUILD_XATRIX=NO # game$(ARCH).so for xatrix (see README.r for details)BUILD_ROGUE=NO # game$(ARCH).so for rogue (see README.r for details)BUILD_JOYSTICK=NOBUILD_ARTS=YES # build in support for libaRts sound.BUILD_DEDICATED=YES # build a dedicated quake2 serverBUILD_AA=NO # build the ascii soft renderer.BUILD_QMAX=NO # build the fancier GL graphics

# Other compile-time options:# Compile with IPv6 (protocol inde pendent API). Tested on FreeBSDHAVE_IPV6=YES

Figure 17: Makefile options section

With this configuration (see Figure 17), a Quake2 executable is built, with IPv6 support, X11 softwaredriver and CTF (Capture The Flag) support. You can play enabling some of the other options, fitting thesettings with your hardware profile, but we only this configuration has been tested yet. It should be notedthat in order to play Quake2 properly in a machine without 3D acceleration support, you need a powerfulmachine (Tests were performed on Pentium IV 1.5 GHz with 256Mb RAM and Pentium III 800 MHzwith 128Mb RAM, obtaining outstanding performance).

After configuration of the build options, type make and wait some time... (it depends of the machine)

The resulting binaries are then put in releasei386 directory. After that we have to install these binaries andthe game data files in order to complete the installation of Quake2. Quake 2 data files remain copyrightedand licensed under the original terms, so you cannot redistribute data from the original game. At thispoint, there are some possibilities:

� To install the Quake2 demo data:(installdir is wherever you want to install quake2)

1. download [QUAKE2-ID]2. unzip -L q2-314-demo-x86.exe into a temp directory3. cp baseq2/pak0.pak to <installdir>/baseq2/pak0.pak4. Continue with the "To Install This Program" directions bellow

� To install the Quake2 gamedata from game CD:(installdir is wherever you want to install quake2, and cdromdir is whereverthe Quake 2 CD-ROM is mounted)

1. copy <cdromdir>/Install/Data/baseq2/pak0.pak to <installdir>/baseq2/2. copy <cdromdir>/Install/Data/baseq2/video/ to <installdir>/baseq2/ (optional)

Page 29: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 29 / 43

3. download q2-3.20-x86-full.exe from [QUAKE2-ID] or a mirror site, and extract thecontents to a temporary directory (use unzip -L, as this is a standard zip file).

4. copy <q2-3.20-x86-full.exe_temp_directory>/baseq2/pak1.pak to<installdir>/baseq2/

5. copy <q2-3.20-x86-full.exe_temp_directory>/baseq2/pak2.pak to<installdir>/baseq2/

6. copy <q2-3.20-x86-full.exe_temp_directory>/baseq2/players/ to<installdir>/baseq2/

� To install this program:(builddir is either debugi386 or releasei386)

0. edit Makefile if needed, then 'make'1. copy <builddir>/gamei386.so to <installdir>/baseq2/2. copy <builddir>/ref_*.so to <installdir>3. copy <builddir>/quake2 to <installdir>4. copy <builddir>/sdlquake2 to <installdir> (optional)5. copy <builddir>/ctf/gamei386.so to <installdir>/ctf/ (optional)

� To install CTF Server:To run Capture The Flag, you need to do the following:

1. download q2-3.20-x86-full-ctf.exe from [QUAKE2-ID]2. unzip that file (using unzip -L) in a temp directory3. copy ctf to <installdir>/ctf4. build the ctf shared library (BUILD_CTF=YES in the Makefile)5. cp releas<arch>/ctf/game<arch>.so to <installdir>/ctf/game<arch>.so6. quake2 +set game ctf +set dedicated 1 on the console enter "map Q2CTF1" that

will load up the first ctf map, then connect using a client with multi-player. For theother maps use Q2CTF2, etc.

*Note: if you are using the demo version and not the full version, some textures aremissing from the CTF levels*

� To run Quake2 (as client):

cd <installdir> && ./quake2or:

quake2 +set basedir <installdir>

Configuration files and related stuff are saved in ~/.quake2/, so <installdir> can be maderead-only or whatever.

� To run quake2 (as server):

quake2 +set dedicated 1 +set ip <IPv6 address> +set multicast <interface>

Win32 support is also available, but it has not been tested yet. More information is available in theREADME file of the Quake2 distribution. More information related to Quake2 and IPv6 can be found atthe developers of this port: [QUAKE2]

2.10.3 Network protocol informationAs it has been mentioned before, Quake2 uses UDP as transport protocol, and establishes port 27910 asdefault in server and clients.

2.11 Network gaming: Gtetrinet

2.11.1 DescriptionGTetrinet is a client program for the popular Tetrinet game, a multiplayer Tetris game that is played overthe internet.

Page 30: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 30 / 43

Figure 18: Gtetrinet snapshot

Basically, the game is played in teams, and victory is achieved when only members of one team keep onplaying (however, players need not to join any team, there can be “freelances”). By completing lines it ispossible to difficult other’s team labour. However, more complexity is introduced in Tetrinet versionfrom the classical Tetris, because some elements are added in order to increase entertainment (like specialpower-ups, and related stuff). For more information on the gameplay, refer to the tetrinet.txt file thatcame with the original Tetrinet distribution ([GTNET])

2.11.2 Installation and configurationVersion tested is gtetrinet-0.4.1, and you also need the patch that adds IPv6 support available at[GTNETPATCH]

In order to compile and install gtetrinet, first download the original source code (no IPv6 support) at[GTNETSOURCE]. Gunzip and untar the code and apply the patch. Then you can follow the installinstructions, adding the '--enable-ipv6' configure option.

2.11.3 Network protocol informationBecause reliability is more important than interactivity, the transport protocol used is TCP, with defaultport 31457 on server.

2.12 Network Gaming: TetrinetxTetrinetx is a server program for the popular Tetrinet game.

Version tested is tetrinetx-1.13.16+qirc-1.40c, which also has Async DNS supportfor high productivityserver, and IPv6 patch ([TNETXPATCH]) is also needed.

So as to compile and install this Tetrinet server, the first step is getting the original sources of theapplication (no IPv6 support) at [TNETX]. Then gunzip and untar them and apply the IPv6 patch. Thencompile first adns, and after that compile the server, through the execution of the 'c' shell script providedwith the tetrinetx package.

Page 31: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 31 / 43

2.13 Network gaming: Xboard

2.13.1 DescriptionChess is a classical game that can be played over the Internet. A client/server architecture is needed.There are some different clients and servers available; a client previously ported to IPv6 has been chosen,but the server had to be migrated to IPv6.

XBoard is a graphical user interfaces for Chess. It displays a chessboard on the screen, accept movesmade with the mouse, and load and save games in Portable Game Notation (PGN). It serves as front-endfor many different chess services, including:

� Chess engines that will run on your machine, and play a game against you or help you analyze,such as GNU Chess, Crafty, or many others.

Chess servers on the Internet, where you can connect to play chess with people from all over the world,watch other users play, or just hang out and chat. This is the service that Moby Dick is mostly interestedin.

Correspondence chess played by electronic mail. The CMail program (which works with XBoardonly) automates the tasks of parsing email from your opponent, playing his moves out on yourboard, and mailing your reply move after you have made it.

Playing chess over Internet is easy. The basic procedure is to have running a server in one host (TCP,default port 5000). Clients, through xboard (e.g.: xboard -ics -icshost chess.mobydick.ipv6.it.uc3m.es -size 40x40), can connect to the server. They have to introduce a login and a password that identify them(registration of users is also possible) and then they can check the users that are connect to the server atthe same time, and then request to play a match with other user as opponent. Basic command to play is asfollows:

match <nick> <total-time> <increment>

You can also talk with other users:tell <nick> blah blah blah..

For discover who are online:who

2.13.2 Installation and configurationOriginal Xboard does not support IPv6, but it has been ported to IPv6 at the Long Project [LONG]. IPv6enabled sources are available in [CHESSLONG]

Compilation and installation of xboard is also very easy. You only have to download the IPv6 enabledsource code, gunzip and untar it, and follow the installation procedure (./configure, make and makeinstall).

2.13.3 Network protocol informationAs it has been mentioned before, TCP transport protocol is used (because mainly reliability issues areimportant and no real-time requeriments are needed) with port 5000 as default.

2.14 Network Gaming: ChessdChessd [CHESSD] is a free chess server developed by The Chessd Project. It does not seem to be activesince a year, but this is not very relevant to our purposes –only a free chess server code is wanted, beingable to be migrated to IPv6 without many problems-.

chessd-0.2 is the more recent version available. This version only supports IPv4 connections, but a patchhas been developed in order to support IPv6. It is available in [CHESSDPATCH]. This prior version ofthe patch provides basic IPv4/IPv6 support, but some additional work has to be done in the future in orderto check if more changes are needed from the original code.

Page 32: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 32 / 43

Chessd installation is easy. The first step is getting the original sources from[CHESSD] and the IPv6patch. After gunziping and untaring the original sources, you have to apply the patch and follow theinstallation instructions (./configure, make and make install). Maybe some code need manual changes,in order to fit your preferences about the path where chessd will be installed, server name, etc. Thesechanges have to be done in the config.h file.

2.15 Video Conference Tool (VIC)

2.15.1 IntroductionVIC is an open-source video conferencing and streaming application that allows users to participate invideo conferences over the Internet. These can be between two participants directly, or between a groupof participants on a common multicast group. VIC supports IPv6 operation for multicast and unicast use.VIC was developed by the Network Research Group at the Lawrence Berkeley National Laboratory incollaboration with the University of California, Berkeley. VIC has been developed further by UCL.

2.15.2 ArchitectureVIC requires no special features for receiving video from a session. To send video to a session, a videocapture device is required, which supports the platform specific capture libraries which include:Video4linux, Video for Windows, and Sunvideo. VIC is based on IETF standards, using RTP aboveUDP/IP as its transport protocol, and conforming to the RTP profile for audio and videoconference withminimal control.VIC features a range of different codecs (H.261, H.263, JPEG, H.263, H.263+, PVH, RAW(YUV), NV,cellb), which allow for the choice of quality and bandwidth employed. VIC provides support for layeredvideo streams using the PVH codec. It now uses the UCL common library for mbus operations, andcryptographic algorithms. Support for IPv6 from UCLA has been added. It also features application-levelsymmetric encryption for private conferencing.

2.15.3 ImplementationVIC is implemented as a single threaded asynchronous application in C/C++ and Tcl/TK

- VIC requires no additional hardware for receiving video from a session, though a capture card orUSB camera is required for sending video.

- Binaries are available for the following platforms: Linux, Windows 95/98/NT/2000, Solaris, andFreeBSD. Source code is available for compilation for other platforms: [VIC]

- Installation is via a platform specific setup program.

2.15.4 Evaluation- VIC is currently fairly stable, and provides good performance.- Further work is required on use of direct video display and integration of more codecs.

There are no explicit plans for development within 6WINIT, though some may occur in other projects.

2.16 VideoLAN

2.16.1 IntroductionVideoLAN ([VIDEOLAN]) is a project of second-year students at the École Centrale Paris. Its purposesare to set up and exploit a very high throughput network, in order to broadcast digital video and Video onDemand on the campus.The VideoLAN Server broadcasts MPEG-2 videos on the network. Today, possible inputs include DVDs,DVB-S satellite streams, MPEG-1 or MPEG-2 files, and MPEG-2 real-time encoding cards. Differentstreams are broadcast on separate VLANs, which are represented in the figure below by different colours.

Page 33: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 33 / 43

Figure 19: VideoLAN scenario

BTexact Technologies have implemented IPv6 patches to the source code that has been merged into thecvs tree. In addition, they have implemented a web server where you can choose a film to watch and agraphical interface is launched automatically on the client to enable control of the video streaming fromthe server.

2.16.2 ImplementationOn vlc (VideoLan Client) project these files have been changed:./configure.in to configure the project to use IPv6./include/netutils.h: header of the IPv6 structure../src/input/input.c: Open the UDP socket in IPv6./src/misc/netutils.c: Build the source and destination addressOn vls (VideoLan Server) project these files have been changed:./configure.in to configure the project to use IPv6./src/core/socket.cpp: Open the UDP socket in IPv6./src/core/socket.h: header of the IPv6 structure./src/server/telnet.cpp Open an IPv6 TCP connection for telnet

IPv6 enabled VideoLAN can be retrieved from the cvs:

cvs –d :pserver:[email protected]:/var/cvs/videolan logincvs –d :pserver:[email protected]:/var/cvs/videolan -z3checkout vlc vls

Next, the client (vlc) needs to be built:

cd vlc./configuremakemake install

And finally, the server (vls):

cd vls./configuremakemake install

Page 34: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 34 / 43

2.16.3 The Video-on-Demand demoWhen you install the video server (vls), you have to use a telnet connection to port 9999 to control theserver. You can start, stop, suspend, resume one or more movies at the same time. You can also shutdownthe server or have a list of the movies available. That is not an ideal solution, so we decided to havesomething simpler for the user. We have a web server where the user can choose the movie that they wantto see. When the user clicks on the link, a graphical interface is downloaded and run on their computer.To have the interface executed automatically you need to configure your web browser for that. OnMozilla you navigate to “Edit/Preferences/Navigator/Helper Applications/New Type”

Description of type: tkExtension: “tk”MIME type: “tcl/tk”Handled by: “/usr/bin/wish”.

After you select the row “tk” and do the edit, take off the cross “Ask me before openingdownloaded files of this type”.

Figure 20: User interface

This Interface is just a link between some buttons and a shell command. The shell command will requesta specific web page on the web server:

wget –nh –inet6 –o /dev/null –O /dev/null \http://$server/$film/start.php

The php script will run a command: content of start.php:

<?exec("/path/movie/start");?>

In /path/movie/start, we use expect to have a non-interactive telnet session. In this example the videoserver and the web server are on the same machine.

#! /usr/bin/expect -fspawn telnet –6 "::1" 9999expect "Login:"send "xag\r"expect "Password:"send "password\r"expect "vls>"send "start dvd sipv6 local1\r"expect "vls>"send "logout\r"interact

Page 35: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 35 / 43

2.16.4 Evaluation

Figure 21: VideoLAN snapshots

The DVD streaming (MPEG-2) speed is between 700KB/s (5.6Mbps) and 1300KB/s (10.4Mbps) . Tostream a DVD it is therefore necessary to use a 100Mbps hub, as a 10Mbps hub is not sufficient.WaveLAN (IEEE 802.11b) does not afford sufficient bandwidth to stream MPEG-2 video. MPEG-1streams generate about 250KB/s (2Mbps). MPEG-1 streaming works well over WaveLAN.

3. Traffic measure of multimedia applicationsIn order to foretell resource usage by applications –during trial phase-, several measures have been madeof the three most important kinds of software: streaming, voice and interactive gaming. With thefollowing measures, is possible to make quantitative forecast of flows, allowing therefore bandwidthreservation with little over-engineering. It should be noted that measures where performed at link-levellayer (so proper translation must be made if needed at other level, mostly because some applicationsgenerate little packets).

3.1 Mpg321So as to typify traffic generated by mpg321, three different measures were made –at 96, 128 and 160kbps, with fixed compression rate-, capturing not only HTTP traffic (where the song is actually bore), butalso additional TCP messages –basically, not piggybacked acknowledges-. Measures are illustrated inFigure 22 and Figure 23, where encapsulation loss of efficiency can be appreciated (despite it is very low,because layer two, three and four insert 74 bytes of headers, while packets are 1310 bytes long) and“backward TCP traffic” is significant enough, so it cannot be considered negligible (moreover, taking intoaccount that each flow may be metered). At last, it should be noted that traffic rate is increased byinjecting more packets to the network (i.e.: payload remains constant)

Page 36: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 36 / 43

Figure 22: Traffic measures for mpg321

Figure 23: Backward traffic measures for mpg321

3.1.1 Comments on resultsIn this case results could have been foretold due to the fact that, despite we are dealing with an audio-streaming application, in fact it is just a file transmission from a server to a client. Considering nocongestioned network, and knowing a priori read rate from buffer (depending on compression rate) it iseasy to calculate consumed bandwidth (taking into account headers introduced from application to linklayer level, of course).

3.2 SIPTo analyse traffic generated by SIP application (i.e.: Robust Audio Tool), three different codecs wheretaking into account, capturing only traffic in one direction. Therefore, a text was read three times, tryingto keep the same rhythm on each capture. The codecs chosen were the following:

- Linear_16, which generates a maximum peak rate of 128 kbps- Mu-law, which uses half the previous rate- GSM, needing only 12,4 kbps, but at the expense of a higher delay (due to its higher cost of

processing)

HTTP traffic rate vs Codification rate

80.00090.000

100.000110.000120.000130.000140.000150.000160.000170.000180.000

96 kbps 128 kbps 160 kbps

mp3 compression rate

Traf

fic ra

te (b

ps)

TCP backward traffic vs Codificación rate

2.000

2.500

3.000

3.500

4.000

4.500

96 kbps 128 kbps 160 kbps

mp3 compression rate

Traf

fic ra

te (b

ps)

Page 37: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 37 / 43

These codecs were chosen because they are considered the most representative of all available (the firstone, very simple and fast, but with a high rate of transmission; the last one just its complementary, whilethe second is located between them)

Figure 24: Traffic measures of VoIP application

Packets are generated at a more or less constant rate of one each 25 milliseconds, modifying their payloaddepending on the codec (see Figure 25).

Figure 25: Bytes per packet with different codecs

In Figure 24 traffic rate for measures at both physical layer and transport (UDP) layer is shown. However,depending on concrete circumstances, it may be necessary to perform another translation (i.e.: at IPlayer). It does not have much sense, then, map all results to any possible layer (because some mechanismsmay need of quantities at layer two, while in order to saturate core links layer one measures may bebetter).

3.2.1 Comments on resultsHere, like with the following application, measures depend greatly on concrete user behaviour. It hasbeen shown, however, that results are reasonable, because dealing with an high-activity speechapplication transmission rate is very close to maximum peak rate of the different codecs considered(attention must be paid, of course, to headers –because payload is not very long-)

Traffic rate vs Codification

0

20.000

40.000

60.000

80.000

100.000

120.000

140.000

GSM Ley mu L16

Codification

Bits

per

sec

ond

bps (udp)bps (phy)

Bytes per packet

50100150200250300350400450

GSM Ley mu L16

Codec

Byt

es

Page 38: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 38 / 43

3.3 Quake 2There was not found any quantitative result about traffic generated by this application. Therefore,measures were made, but taking into account that traffic rate depends on players activity (i.e.: if allplayers remain in the same room and fight between themselves more traffic is generated than if players donot meet each other –as shown in Figure 26, with light colour for activity-less traffic, and dark colour forgreat activity game-), so results may vary from game to game.

Figure 26: Bytes per packet for different directions of flow

In Figure 27 bytes per second and player for the two directions of traffic are shown. Despite thenoticeable variability, traffic from client to server (C2S) never exceeds 20.000 bps, and traffic from serverto clients (S2C) is limited at 16.000 bps. Taking into account that Quake 2 implements its ownredundancy mechanisms (in order to decrease losses effect), sending three consecutive instants on eachpacket, it is possible to play with lees bandwidth. Having tested game performance with resourcediminution, we set minimum bandwidth consumption for both directions at 10.000 bps (however, thisvalue should not be taken as a fixed-reference).

Figure 27: Traffic generated by Quake 2

3.3.1 Comments on resultsHere we deal again with an high-variability generated traffic pattern, so categorical affirmations should beavoided. Notwithstanding the foregoing, it is clear that Quake 2 application has little requirements onresources, whom can be satisfied with a –e.g.- 14.400 bps modem.

Bytes per second and player

5001.0001.5002.0002.5003.0003.5004.0004.500

0 2 4 6 8 10

Number of players

Byt

es p

er s

econ

d

TotalC 2 SS 2 C

Bytes per packet

020406080

100120140160180200

Total C 2 S S 2 C

Byt

es

Page 39: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 39 / 43

3.4 GtetrinetAs is has been mentioned, Gtetrinet employs TCP as transport protocol; however, in this case we will notdistinguish between “pure” game transmission (i.e.: with information concerning user movements) andTCP acknowledge packets –as it has been done with mpg321-. Measures were made for two six-playergame, and –like before- at the physical layer (so it might be necessary the translation of results to adifferent layer of the TCP/IP stack).

Graphical representation of results does not make much sense here, so relevant gathered information isshown on table below. Due to its low requirements on hardware capacity and network resources, thisapplication may be very interesting –as it could be an actual service offered by operators-.

Game Direction Packets/sec Bytes/packet Bytes/sec Bits/sec/playerC2S 8,12 86,21 700,19 934Game 1S2C 7,07 139,33 985,55 1314C2S 8,15 83,122 680,93 908Game 2S2C 7,02 127,12 892,58 1190

3.4.1 Comments on resultsBecause of its great playability and low requirements on resources, Gtetrinet might be considered as a‘killer application’ for mobile networks. On the contrary to Quake 2, which sends traffic at a low but“considerable” rate, Gtetrinet requires 1.000 bits per second and player. This is, of course, because onlycommands from each player are sent, and no high interactivity is required –at least, not as high as inQuake 2, where life and death can be some milliseconds apart-.

3.5 ChessdIn order to measure traffic generated by chess game, a five minutes match was played between twohuman users (it is important to emphasize nature of players, because robots are also allowed to play onthe server). Results are summarized in table below; in this case we show measures not only at the physicallayer, but also at TCP layer -because differences are very noticeable (due to the 74 bytes of headers)-.

Direction Packets/sec/player Bytes/packet Bits/sec/playerPhysical layer measuresC2S 0.076 78.82 47.915S2C 0.077 235.46 145.24TCP measuresC2S 0.076 4.82 2.93S2C 0.077 161.46 99.46

3.5.1 Comments on resultsThe results are very reasonable, because resource needs of this kind of application are very low –even lessthan the Gtetrinet, because neither coordination nor real-playing is needed here-. Despite all these facts, itcan be considered a feasible and interesting service to be offered by operators, so its inclusion in trialsmay be very valuable. Moreover, its requirements can be considered negligible, allowing a per-servicecharging schemes (i.e..: flat rate) in stead of a per-consumption model.

4. Classical applicationsMoby Dick will not deal only with the previous multimedia applications, but also “classical” IP-applications should be taken into account. Therefore, representative software related to:

- Web browser- E-mail clients- FTP transfer- Telnet- SSH

will be also considered. However, it is clear that requirements of multimedia applications are usuallyhigher than those of “classical” applications, so proper behaviour of the former could be taken as aguarantee of the latters correct functioning.

Page 40: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 40 / 43

5. Coordination and expert evaluation software

5.1 IRC serverIn order to provide an easy and cheap mechanism for coordination purposes between trial sites, an IRCserver is installed and running (see section 6).

irc2.10.3p3 is the server software installed. ircservices-4.3.3 is also installed, providing some servicefeatures.

5.2 Xchat 1.8.x

5.2.1 DescriptionXchat is a graphical IRC (Internet Relay Chat) client. It is needed in order to perform tests involvingMadrid and Stuttgart sites, aiding communication between partners at a low/inexistent cost. As previouslynoted, in Madrid site an irc server has been installed, where Xchat clients can connect in order tocoordinate trials.

Figure 28: Xchat snapshot

5.2.2 Installation and configurationCompiling and installing xchat with IPv6 support is very easy. You only have to download the programsources ([XCHAT]), gunzip and untar them, and compile with the --enable-ipv6 option:

> ~/src$cd xchat-1.8.6> ~/src/xchat-1.8.6$/configure --enable-ipv6> ~/src/xchat-1.8.6$make> ~/src/xchat-1.8.6$make install (as root if the default /usr/local/ path is used)

After that you can use xchat to connect to the IRC server.

5.2.3 Network protocol informationTCP port 6667 is used as default for IRC communication.

Page 41: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 41 / 43

5.3 RTP Quality Matrix (RQM)

5.3.1 IntroductionThe Real-time Transport Protocol, RTP, provides quality of service feedback with reception reports sentalongside the media stream. If the media is sent via IP multicast it is possible for a third party to snoop onthese reception reports, displaying reception quality for all members of a group. The RQM applicationperforms such snooping. RQM supports use over IPv6. RQM was developed at UCL.

5.3.2 ArchitectureWhen running, RQM displays a matrix, in a window, with participant details on the left, and a number ofcells to the right of these. Each row of cells denotes the packet loss rate observed for data sent from theparticipant indicated at the left of that row (point to a cell and a popup will appear giving the names of thesource and destination of the traffic represented by that cell). The colours of the cell start as green (noloss) and fade to red (20% loss). A white cell indicates that no information is available. A light blue cellindicates that the receiver is not receiving media data from a particular sender (at present light blue isonly used when an empty reception report is received, indicating that a receiver can hear no-one).Clicking on a cell will initiate an mtrace between the indicated participants, if you have mtrace installedand available in your path. IPv6 is supported through the UCL common multimedia library.

5.3.3 ImplementationRQM is implemented as a single threaded asynchronous application in C and TCL/TK

- RQM requires no additional hardware- Binaries and source code are available for the following platforms: Linux, Windows

95/98/NT/2000, Solaris, and FreeBSD: [RQM]- Installation is via a platform specific setup program.

5.3.4 Evaluation- RQM is currently fairly stable, and provides good performance.

There are no explicit plans for development within 6WINIT, though some may occur in other projects.

5.4 MGEN6

5.4.1 IntroductionMGEN is a set of programs which provide the ability to perform IP network performance measurementsusing UDP/IP unicast and multicast traffic. The toolset generates real-time traffic patterns so that thenetwork can be loaded in a variety of ways.

Mgen was only available for IP version 4 at [MGEN], but it has been ported to IPv6 inside the IST-LONG project (Laboratories Over Next Generation networks) being therefore available at [LONG].

5.4.2 Application set descriptionAs it is explained at [MGENDESC], the toolset currently consists of two primary applications, "mgen"and "drec", and some utility programs

Mgen: "multi-generator" - Generates real-time traffic patterns to unicast and multicast IP destinationsover time according to a script file. Packet sizes and transmission rates for individual information flowscan be controlled and varied using mgen's script file.

Drec: "dynamic-receiver" - Receives and logs traffic generated by the Mgen program. Dynamicallyjoins and leaves multicast groups over time according to a script file.

Utility programs: there is a variety of applications (Mcalc, Sgen, Rcalc…) useful so as to make MGENmanagement easier (generating plots, scripts, statistics,…)

5.5 Ethereal

5.5.1 DescriptionEthereal is a free network protocol analyser for Unix and Windows. It allows you to examine data from alive network or from a capture file on disk. You can interactively browse the capture data, viewing

Page 42: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 42 / 43

summary and detail information for each packet. Ethereal has several powerful features, including a richdisplay filter language and the ability to view the reconstructed stream of a TCP session.

5.6 Netperf

5.6.1 DescriptionNetperf is a benchmark that can be used to measure various aspects of networking performance. Its.primary focus is on bulk data transfer and request/response performance using either TCP or UDP andthe Berkeley Sockets interface.

Netperf is designed around the basic client-server model (netperf and netserver). Netperf tool is availableat [NETPERF].

6. Running servers at Madrid trial siteIn order to help the development of the trials, the following servers has been installed and are constantlyrunning:

Service URLHTTP http://www.mobydick.ipv6.it.uc3m.esIRC irc.mobydick.ipv6.it.uc3m.es (port 6667. both IPv4 and IPv6)

Quake 2 quake2.mobydick.ipv6.it.uc3m.esTetris tetris.mobydick.ipv6.it.uc3m.esChess chess.mobydick.ipv6.it.uc3m.es (port 5000)

MP3 repository http://www.mobydick.ipv6.it.uc3m.es/mp3/

Page 43: Moby Dick Application Framework Specification › ~pacyna › deliverables › MobyDick › D0102.pdfField trial, Test-bed, Moby Dick platform, Application, Traffic Pattern. WP1-D0102_final.doc

WP1-D0102_final.doc Version 1.0 30.8.2002

Moby Dick WP1 43 / 43

7. References

All the software described in this document has been taken from links listed below. However, testedversions of these applications are available at:

[UC3M-MOBYDICK] http://www.mobydick.ipv6.it.uc3m.es/ (IPv6 only)

We strongly recommend downloading software from that URL, instead of the following ones (becausethey may become unavailable, or new versions –not tested- may appear).

[BLACKDOWN] http://www.blackdown.org [CHESSD] http://chessd.sourceforge.net/[CHESSLONG] http://enjambre.it.uc3m.es/~long/software/chess/[CHESSDPATCH] http://enjambre.it.uc3m.es/~mobydick/files/chessd-0.2_IPv6_cjbc.diff.gz[CVS] http://cvs.icculus.org [ETHEREAL] http://www.ethereal.com/[GDBM] http://www.gnu.org/software/gdbm/gdbm.html[GQMPEG] http://gqmpeg.sourceforge.net/[GTKMM] http://gtkmm.sourceforge.net/ [GTNET] http://www.tetrinet.org [GTNETPATCH] http://www.version6.net/IPv6-patches/gtetrinet-0.4.1.ipv6-20020105.patch.[GTNETSOURCE] http://download.sourceforge.net/gtetrinet/gtetrinet-0.4.1.tar.gz[ICECAST] http://www.bugfactory.org/~gav/ipv6/[ICES] http://www.bugfactory.org/~gav/ipv6/[ICR-JAVASIP] http://www.icr.a-star.edu.sg/~mobydick-sip [IST-LONG] http://long.ccaba.upc.es/[IST-6WinIT] http://www.cs.ucl.ac.uk/research/6winit/index.html[JAVA] http://java.sun.com [KAME] http://www.kame.net[LIBSIGC] http://libsigc.sourceforge.net/ [LONG] http://enjambre.it.uc3m.es/~long/[MGEN] http://manimac.itd.nrl.navy.mil/MGEN/dist/[MGENDESC] http://manimac.itd.nrl.navy.mil/MGEN/MgenUserGuide.html[MPG123] http://www.mpg123.org[MPG321] http://mpg321.sourceforge.net[MPG321PATCH] http://enjambre.it.uc3m.es/~mobydick/files/mpg321-0.2.10_IPv6_cjbc.diff.gz[MYSQL] Version: mysql-3.23.38-pc-linux-gnu-i686

http://www.mysql.com/company/[NETPERF] http://www.cup.hp.com/netperf/NetperfPage.html[QUAKE2] http://www.viagenie.qc.ca/en/ipv6/quake2/ipv6-quake2.shtml[QUAKE2-ID] ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe[RAT] RAT (Robust Audio Tool), version: 4.2.19

http://www-mice.cs.ucl.ac.uk/multimedia/software/rat[RQM] http://www-mice.cs.ucl.ac.uk/multimedia/software/rqm [SIPC] SIPC, version: 1.72

http://www.cs.columbia.edu/IRT/cinema/[SIPD] SIPD, version: 1.18

http://www.cs.columbia.edu/IRT/cinema/[TNETX] http://www.mylinuxisp.com/~ekn/tfast/tetrinetx-1.13.16+qirc-1.40c.tar.gz.[TNETXPATCH] http://www.version6.net/IPv6-patches/tetrinetx-1.13.16+qirc-1.40c-IPv6-

20020407.patch [VIC] http://www-mice.cs.ucl.ac.uk/multimedia/software/vic [VIDEOLAN] http://www.videolan.org [XCHAT] http://www.xchat.org [XIMIAN] http://ftp.ximian.com