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 WP1 1 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Executive Summary This deliverable describes the applications to be used during trial phase of Moby Dick project, with the tests properly defined in D0501 Annex. The software was chosen according to the following main reasons: - 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 MGEN6 application 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:

S VoIP applications. We mainly describe SIP environment available in IPv6 protocol stack. This software will be used to perform telephone conversation tests. S Streaming. Due to the restrictions on bandwidth in the access network, audio streaming based on MP3 has been considered to perform tests and deploy trials. These applications could be consider of interest mainly among young people who, through the Socrates-Erasmus program will be our testers. Video streaming applications may also be considered, especially in the Ethernet access. S Games. We consider different applications, based on collaborative and individual games. Applications like Quake, Chess and are considered of high demand in the future System beyond 3G and therefore we will try to use in our testbed. S Interactive or Web Browsing. The increasing growth of the Internet and Web based services justifies these applications that will continue playing an important role in the future. Web browsing, email, chat and messenger applications are among these. S System Coordination and Expert Evaluation. These applications are useful for management of the test and trial performs. Also, through these applications Moby Dick operators will be in contact 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 Stuttgart and servers are installed and ready for the tests and trials. For these applications we have include an analysis of the traffic pattern injected to the network.

Moby Dick WP1 2 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Authors

Partner Name Phone / Fax / E-mail

UC3M Jose Ignacio Moreno Phone: +34-916249183 Fax: +34-916248749 E-mail: [email protected] Ignacio Soto Phone: +34-916245974 Fax: +34-916248749 E-mail: [email protected] Carlos J. Bernardos Phone: +34-916249959 Fax: +34-916248749 E-mail: [email protected] Raquel Panadero Phone: +34-916248756 Fax: +34-916248749 E-mail: [email protected] Pablo Serrano Phone: +34-916248756 Fax: +34-916248749 E-mail: [email protected]

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

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

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

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

Moby Dick WP1 3 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Table of Contents

ABBREVIATIONS...... 7

1. INTRODUCTION...... 8

2. MULTIMEDIA APPLICATIONS ...... 9

2.1 Audio streaming: Mpg123 ...... 9 2.1.1 Description ...... 9 2.1.2 Installation and configuration...... 9 2.1.3 Network protocol information ...... 9

2.2 Audio streaming: Mpg321 ...... 9 2.2.1 Description ...... 9 2.2.2 Installation ...... 9 2.2.3 Network protocol information ...... 10

2.3 Audio streaming GUI: Gqmpeg ...... 10 2.3.1 Description ...... 10 2.3.2 Installation ...... 10 2.3.3 Network protocol information ...... 10

2.4 MP3 Streaming Server: Icecast-1.3.11...... 10 2.4.1 Description ...... 10 2.4.2 Description ...... 10 2.4.3 Installation and configuration...... 10

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

2.6 Interactive Browsing: Jabber-1.4.2 server ...... 11 2.6.1 Description ...... 11 2.6.2 Installation and configuration...... 11

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

2.8 VoIP: Non-Java SIP environment...... 13 2.8.1 Description ...... 13 2.8.2 Installation and configuration...... 15 2.8.2.1 Sipc Installation ...... 15 2.8.2.2 RAT (Robust Audio Tool) Installation...... 16 2.8.2.3 Sipd Installation...... 17 2.8.2.4 MySQL Installation and Usage...... 17 2.8.3 Network protocol information ...... 17

2.9 VoIP: Java SIP environment ...... 19 2.9.1 Java SIP User Agent (JUA) ...... 19 2.9.2 Java SIP Proxy Server (JPS)...... 21 2.9.3 Installation and configuration...... 22 2.9.3.1 Java JDK Installation...... 22 2.9.3.2 Java Media Framework Installation...... 22 2.9.3.3 ALSA Driver Installation and Usage...... 24 2.9.3.4 MySQL Installation and Usage...... 25 2.9.3.5 Java User Agent Installation and Usage ...... 25

Moby Dick WP1 4 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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

2.10 Network gaming: Quake 2 ...... 26 2.10.1 Description ...... 26 2.10.2 Installation and configuration...... 27 2.10.3 Network protocol information ...... 29

2.11 Network gaming: Gtetrinet...... 29 2.11.1 Description ...... 29 2.11.2 Installation and configuration...... 30 2.11.3 Network protocol information ...... 30

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

2.13 Network gaming: Xboard ...... 31 2.13.1 Description ...... 31 2.13.2 Installation and configuration...... 31 2.13.3 Network protocol information ...... 31

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

2.15 Video Conference Tool (VIC)...... 32 2.15.1 Introduction ...... 32 2.15.2 Architecture ...... 32 2.15.3 Implementation...... 32 2.15.4 Evaluation...... 32

2.16 VideoLAN...... 32 2.16.1 Introduction ...... 32 2.16.2 Implementation...... 33 2.16.3 The Video-on-Demand demo ...... 34 2.16.4 Evaluation...... 35

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

3.1 Mpg321...... 35 3.1.1 Comments on results ...... 36

3.2 SIP...... 36 3.2.1 Comments on results ...... 37

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

3.4 Gtetrinet ...... 39 3.4.1 Comments on results ...... 39

3.5 Chessd...... 39 3.5.1 Comments on results ...... 39

4. CLASSICAL APPLICATIONS ...... 39

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

5.1 IRC server ...... 40

Moby Dick WP1 5 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

5.2 Xchat 1.8.x...... 40 5.2.1 Description ...... 40 5.2.2 Installation and configuration...... 40 5.2.3 Network protocol information ...... 40

5.3 RTP Quality Matrix (RQM)...... 41 5.3.1 Introduction ...... 41 5.3.2 Architecture ...... 41 5.3.3 Implementation...... 41 5.3.4 Evaluation...... 41

5.4 MGEN6...... 41 5.4.1 Introduction ...... 41 5.4.2 Application set description ...... 41

5.5 Ethereal ...... 41 5.5.1 Description ...... 41

5.6 Netperf...... 42 5.6.1 Description ...... 42

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

7. REFERENCES...... 43

Moby Dick WP1 6 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Abbreviations

Abbreviation Full Name AAAC Authentication, Authorisation, Accounting and Charging BB Bandwidth Broker CN Corresponding Node DiffServ Differentiated Services DNS Domain Name System DSCP Differentiated Services Code Point GPL General Public License GUI Graphical User Interface HTTP HyperText Trasfer Protocol IETF Internet Engineering Task Force IPSec IP Security Protocol IPv6 Internet Protocol version 6 IRC Internet Relay Chat QoS Quality of Service RTP Real-Time Transport Protocol SIP Session Initiation Protocol SSH Secure Shell TCP Transport Control Protocol TOS Type of Service UA User Agent UAC User Agent Client UAS User Agent Server UDP User Datagram Protocol VoIP Voice over IP WCDMA Wideband Code Division Multiple Access WLAN Wireless LAN

Moby Dick WP1 7 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

1. Introduction This deliverable describes applications to be used during tests and trial phase of Moby Dick project, with the tests properly defined in D0501 Annex. The software was chosen according to the following main reasons:

- 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 network performance 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) were introduced in D0502 document, and therefore they are not described in detail in this document. Server and client software tested is detailed in D0502, so people interested in these applications are referred to that document.

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

On the other hand, the set of applications presented - audio and video streaming, VoIP, interactive or web browsing 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 to briefly describe applications, including: first, an overview on its behaviour and functionality provide; then, installation and configuration instructions –where applicable- are described, giving also a little introduction about its characteristics from the point of view of the network. Also, when it has been considered interesting proper measures of traffic pattern have been done, in order to give quantitative results so as to help trials unfolding.

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

Moby Dick WP1 8 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2. Multimedia Applications

2.1 Audio streaming: Mpg123

2.1.1 Description mpg123 is a real time MPEG command-line audio player for Layer 1, 2 and Layer3. It was the first option considered as streaming audio application, but in the next section another choice can be found. 2.1.2 Installation and configuration IPv6 is not supported in the default distribution of the mpg123 tool. However, there are some patches available 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) is available 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 to apply 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 the operating system used. An appropriate flavour you may want to choose is 'make linux'. After the building procedure is complete, you will have an mpg123 executable file supporting IPv6 http streaming. 2.1.3 Network protocol information In order to play remote files, mpg123 uses HTTP as transport protocol; therefore, information is sent with TCP, using port 80. 2.2 Audio streaming: Mpg321

2.2.1 Description mpg321 is a free command-line mp3 player, which uses the “mad audio decoding” library and can be downloaded from [MPG321]. mpg321 is written as a drop-in replacement for the non-free mpg123 player. Some functions remain unimplemented, but mpg321 should function as a basic drop-in replacement for mpg123 front-ends such as gqmpeg, and those programs which use mpg123 to decode mp3 files. mpg321 differs from mpg123 in several ways. First and foremost, it is fully Free, under the GNU General Public License. Secondly, it allows run-time switching of output devices (via the -o switch). (mpg321 also allows configuring a default output device at compile-time, but run-time switching is always allowed).

For Moby Dick test purposes, mpg321 is a good replacement of mpg123, because is fully Free and supports HTTP MP3/Shoutcast stream. mpg321-0.2.10 does not support IPv6, but a patch can be downloaded from [MPG321PATCH]. 2.2.2 Installation Installation of mpg321 is easy, but it needs some software that is not provided with RedHat-7.1 distribution. 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 installation instructions, with a difference: you have to set the configure option '--enable-ipv6'

Moby Dick WP1 9 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2.2.3 Network protocol information The same description for mpg123 (section 2.1.3) applies here. 2.3 Audio streaming GUI: Gqmpeg

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

Figure 1: Gqmpeg snapshot

2.3.2 Installation From the same web page listed before Gqmpeg can be downloaded. The most important issue is that GTK+ 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 (modified Red Hat 7.2 system), but in some cases it may be easier to compile from the sources yourself. Starting with version 0.12.1, the RPMS require RedHat 7.x. 2.3.3 Network protocol information Since 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 Description Icecast 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 Manley originally inspired it. Icecast is almost completely Shoutcast compatible as far as we've been able to determine. 2.4.2 Description Ices is a streaming tool for command line systems. “Ices” is short for “icesource”, a source for the icecast server. Ices, armed with a list of mp3 files, send a continuous stream of mp3 data to an icecast server. The server is then responsible for accepting client connections and feeding the mp3 stream to them. But the stream originates in the streamer, “Ices”. 2.4.3 Installation and configuration First, 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 the tips 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]).

Moby Dick WP1 10 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2.5 Interactive browsing: Gabber-0.8.7 (Jabber Client)

2.5.1 Description Gabber 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.2 libsigc++ >= 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 configuration First, we have to download the source files of the application. Then, unzip and untar them, and just type:

./configure –enable-ipv6 make su make install

That is all to do. 2.6 Interactive Browsing: Jabber-1.4.2 server

2.6.1 Description Jabber 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 has transparent compatibility with other IM systems (ICQ, AIM, Yahoo, MSN, IRC, SMTP, etc). 2.6.2 Installation and configuration First, 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 ./make and configure your server by editing the “jabber.xml” file. 2.7 VoIP: Introduction to SIP SIP was originally developed by the Multiparty Multimedia Session Control (MMUSIPC), working group of the Internet Engineering Task Force (IETF). This protocol handles the setup, modification, and

Moby Dick WP1 11 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002 teardown of multimedia sessions as defined in [SIP]. Nowadays it is considered a powerful alternative to H.323.

SIP is a client-server protocol, therefore it defines two basic classes of network entities: clients and servers. 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 a server is an entity that responds to those requests.

Four different types of servers exist:

S Proxy server: that receives calls directed to other users and resends them to the right location according with the registrar. S Redirect server: similarly to the proxy, a server accepts SIP requests, map the destination address to zero or more new addresses, and return the translated addresses to the originator of the request. S User agent server (UAS): accepts SIP requests and contacts the user. S 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.

INVITE Ringing OK ACK

Conversation

BYE OK

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 to other servers. Given that a proxy receives and sends requests, it incorporates both server and client functionality. Figure 4 shows an example of a proxy server operation.

Moby Dick WP1 12 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

LOCATION SERVER

2. Contact 3. Precise location

1. Invite 4. Invite 6. OK 5. OK 7. ACK 8. ACK

CALLER CALLEE PROXY SERVER

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 other research institutes.

2.8 VoIP: Non-Java SIP environment In this section is described one SIP (Session Initiation Protocol) environment that is being used in the architecture development of the Moby Dick Project. 2.8.1 Description The software used has been taken from the Department of Computer Science of the Columbia University directed 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 the same machine, while, the UAS and the UAC (or SIPC) are installed in several hosts. SIPD is a SIP redirect, forking proxy and registration server that provides name mapping, user location and scripting services. It also allows users to register their current location to the server. SIPC is a SIP user agent that can be used for Internet telephony calls, multimedia conferences, instant messaging, web browsing sharing 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 and registration servers such as SIPD and other SIP user agents. It includes a user agent client which can send requests 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 to IPv6. 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, where are listed the SIP addresses that are going to be managed by the registrar; and the contact field where is stored the current location or locations where the user, owner of a valid SIP address, may be reached. As a 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 + sipd 1.18 Columbia University registrar UAC + UAS sipc 1.72 Columbia University

Moby Dick WP1 13 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

audio rat 4.2.19 University College London application 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 is shown 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 be checked. Clicking on the call button in the “New call” frame a call setup message is sent out to the address specified in the “To” field. Sipc will pop up a progress dialog box to indicate the call processing status. When an incoming call arrives at sipc, the “Call arrive” dialog box will popped up. A user can choose to accept the call, to ask the caller to make a call at a later time or to explicitly reject the call. In the “Call arrive” dialog box, a user can also see all the related information about the caller, including the caller’s contact information, photo and call history. From the “Tools menu/Registrars”, a user can add a new registrar or manipulate the existing registrar (Figure 6).

Figure 6: Adding a registrar

Moby Dick WP1 14 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

If the user chooses to add a registrar, the basic registration interface will pop up. From the basic registration 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 contact information, 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 the time and remote address of sending or receiving the SIP message (Figure 7). 2.8.2 Installation and configuration The software was freely available some moths ago, but nowadays it belongs to Sipcomm enterprise, and therefore it is not free anymore. Anyway this software was developed for an IPv4 environment, so it had to be translated to IPv6 as mentioned earlier. The final IPv6 software can be found in the web of the Department of Telematic Engineering of the University Carlos III de Madrid privately for Moby Dick Project developers [UC3M-MOBYDICK] Here it is assumed that software runs on Linux machines, and it is being tested on Suse 7.1 and Red Hat glibc library. Sipc is written in Tcl and uses C for some Tcl extension libraries. It is based in the version 1.72 of Columbia SIPC. 2.8.2.1 Sipc Installation First 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 MBUS library. The source files of the modified MBUS library will be available also from the University Carlos III 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 operation should be performed with the mbus (common) library. But if we want it to run properly on IPv6 the configuration must be as follows:

> ./configure –enable-kame-ipv6

Moby Dick WP1 15 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

> make

When compiling the common library an error is obtained. To mend it you have to edit the config_unix.h file 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 any directory. To be concrete, every path with information about the location of the libraries it was previously compiled the following changes have to be provided: S In ./tclgdbm/src/makefile.linux: TCL_INC_DIR, TCL_LIB_DIR, GDBM_DIR, GDBM_LIB. S In ./tcludp/makefile.linux: TCL_INC_DIR, and TCL_LIB_DIR. S In ./util/src/makefile.linux: TCL_INC_DIR, and TCL_LIB_DIR. S In ./tktable/src/makefile.linux: TCL_SRC_DIR, TK_SRC_DIR, TCL_LIBS, TK_LIBS, TCL_STATIC and TK_STATIC. S In ./tclmbus/src/makefile.linux: TCL_INC_DIR, TCL_LIB_DIR and COMMON_DIR. S 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 for address book. Finally, compile Sipc:

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

Before running sipc: S The user needs to put the license file (sipc.license) into the $HOME/.sipc directory. S 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). S 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 the configuration information. A user can always change the configuration information by using “Call menu/Preference” menu item. All the configuration information is saved in the saved in the $HOME/.sipc directory. For a detailed description of the files in the $HOME/.sipc directory see the User manual for sipc.

2.8.2.2 RAT (Robust Audio Tool) Installation Though Sipc distribution does include RAT for communications, it may be desirable to download a newer version 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 look on INSTALL.TXT, some RAT versions include aditional libraries). Anyway, 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

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

Moby Dick WP1 16 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2.8.2.3 Sipd Installation Sipd 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 (for example, 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 or ServerRoot). 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 must first 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 as sipd.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 Usage In order to download MySQL (and also for a more elaborate explanation on MySQL installation and management) go to [MYSQL]. In the following, it can be found a few guidelines on how to install and run it.

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

This is only for the first time. The following times it will be enough with: S scripts/mysql_install_db S ./bin/safe_mysqld & S 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 put field, where are listed the SIP addresses that are going to be managed by the registrar; and the contact field where is stored the current location or locations where the user, owner of a valid SIP address, may be reached. As a valid SIP address it must be understood an address which is listed in the put field of the database. 2.8.3 Network protocol information The first step is to open a signalling connection between the calling and the called endpoint. Sip endpoints can use UDP or TCP signalling. The message syntax is independent of the transport protocol being used.

Moby Dick WP1 17 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

When using TCP, the same connection can be used for all SIP request and responses (not for the media or data), 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 requests are contained in the ‘via’ header parameter of the SIP request. Replies must not be sent to the IP address of the client. If no port is specified in the SIP address, the connection is made to port 5060 for both TCP and UDP.

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

The called endpoint needs to indicate that it is accepting the request. This is the purpose of the OK response message. Since the request was an invitation, the OK response also contains the media capabilities of the called endpoint, and where it is expecting to receive the media data. The caller needs to acknowledge that it has properly received the response of the called endpoint (remember we are using UDP) 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 the INVITE and OK messages, more specifically, in the “m=” field. An example taken from a call establishment using the software available (Sipc and Sipd) is shown below:

INVITE sip:sip@2001:720:410:1001:2c0:26ff:fea3:7d9f SIP/2.0 Via: SIP/2.0/UDP [3ffe:3328:6:ffff:2c0:26ff:fea3:7d6e]:5060; branch=3262198957-0 Via: SIP/2.0/UDP [2002:a375:8bb5:ffff:2c0:26ff:fea3:d118]:5060 CSeq: 1 INVITE Contact: sip:sip@[2002:a375:8bb5:ffff:2c0:26ff:fea3:d118]:5060 Expires: 3600 From: [email protected] Date: Wed, 20 Mar 2002 18:19:13 GMT Call-ID: 610186238@2002:a375:8bb5:ffff:2c0:26ff:fea3:d118 Content-Type: application/sdp Priority: normal To: sip:[email protected] Content-Length: 175 v=0 o=sip 871976573892 1016648353 IN IP6 2002:a375:8bb5:ffff:2c0:26ff:fea3:d118 s=Untitled c=IN IP6 2002:a375:8bb5:ffff:2c0:26ff:fea3:d118 t=0 0 m=audio 10000 RTP/AVP 0

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

Moby Dick WP1 18 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

v=0 o=sip 762101518811 1016648368 IN IP6 2001:720:410:1001:2c0:26ff:fea3:7d9f s= c=IN IP6 2001:720:410:1001:2c0:26ff:fea3:7d9f t=0 0 m=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 environment The software has two entities: SIP UA (JUA) and SIP Proxy Server (JPS). The JUA, composed of the UAS and the UAC, is a Java Applet suitable for both web-application and host application that will be deployed in several host. The JPS with SIP registrar functionality is a stateful/stateless proxy server that resides 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 for configuration and making an VoIP call. Figure 8 shows the main UI for the application.

Figure 8: Java SIP dialog

Moby Dick WP1 19 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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

Figure 9: Java SIP Configuration dialog

To configure the application, only the User Registration Name field and the Home Server name field is mandatory if the user wishes to perform registration. Below provides description about the field in the UI in detail. S In the “User Registration Name” item, user should key in the user name such as “Jerry”, “Tom”. S In the “Home Server” item, user should key in the address of the SIP server in the home domain. S 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. S 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. S 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. S 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 to register itself to the registrar as per stated in the configuration UI. After registration, the user is ready to make a VoIP call by entering the destination URL, i.e., IP address, email-like identifier or other identifier that 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 test box 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. Upon successful call setup, the “CANCEL” button will change to “TERMINATE” button for the user to terminate the session if desired.

For receiving, upon receives a call request from peer, the Status box will display the incoming call information and the “CONNECT” button will change to “CANCEL” button with the “PICKUP” button enabled 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 the session has been established.

Moby Dick WP1 20 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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 valid database 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. In the “General Setting” tab, user is able to select the type of proxy server, either stateful or stateless by clicking the radio button, the default registration period and the listening port. With the information, the user can start the proxy server by pressing the Start button in the bottom of the window. Figure 12 shows the server status monitoring.

Figure 11: SIP Proxy Server Configuration Window

Moby Dick WP1 21 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Figure 12: SIP Proxy Server Monitoring Windows

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

SIP User Agent (JUA) 1. JDK 1.4.x 2. 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.x 2. MySQL

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

2.9.3.1 Java JDK Installation To 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 from the site below

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

The Java(TM) 2 SDK, Standard Edition, v1.4.0 for Linux is available in a self-extracting binary installation 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 Installation JMF requires either blackdown or Sun Java2 SDK or Runtime Environment v1.4.0 or higher for Linux/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

Moby Dick WP1 22 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

.java_wrapper Download: [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 /jre > bzip2 -dc /jmf-for-java2-2.1.1-fcs-linux-i386.tar.bz2 | tar xv -

Patching for jmf installation > cd /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 -server -hotspot ALLASED_TO –client -classic WARN -native ERROR -green ERROR

> cd /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 Capture Device dialog is displayed (Figure 14). Just Click OK to begin capturing the media after selected the desire media type. If the soundcard is supported by Java, Figure 15 will be displayed, else, an error massage is displayed.

Moby Dick WP1 23 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Figure 14: Sound Card Capture Window

Figure 15: Recording Window

2.9.3.3 ALSA Driver Installation and Usage You 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.bz2 Download: [ICR-JAVASIP]

Download all the alsa files from above site. Perform the following operations: > cd

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

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

> cd .. > bzip2 -dc alsa-oss-0.9.0rc1.tar.bz2 | tar -xv

Moby Dick WP1 24 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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

> cd .. > bzip2 -dc alsa-utils-0.9.0rc2.tar.bz2 | tar -xv > cd alsa-utils-0.9.0rc2 > ./configure --with-kernel= > 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 portion alias char-major-116 snd # OSS/Free portion alias 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 with es1968. alias snd-card-0 snd- # OSS/Free portion alias sound-slot-0 snd-card-0

# OSS/Free portion - card alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias 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- amixer set 'Master' Front on amixer set 'PCM' Front on amixer set 'Master' 31 amixer set 'PCM' 31 amixer set 'Mic' 31 amixer set 'Wave Surround' 100 amixer set 'Capture' 15 #------end of line added to rc.local ------

2.9.3.4 MySQL Installation and Usage Refer to 2.7.2.4 2.9.3.5 Java User Agent Installation and Usage With the above entities installed, perform the following to install the Java jar file: > tar –xvf javaSIPUA.tar

Moby Dick WP1 25 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002 will install 4 files to /usr/local/JUA directory. Namely, cwcsipimpl.jar, SIPimplementation.html, execsip and appletviewer.policy.

To run the application, > cd /usr/local/JUA > ./execsip 2.9.3.6 Java Proxy Server Installation and Usage With 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 information SIP 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 an INVITE message containing the source and destination information, together with the media information that the caller wishes to establish, via the SDP protocol information within its message body. The proxy will route the message to the respective endpoint. Upon received the INVITE message, the caller shall decide whether to accept or to reject the request. If accepted, the call will send an OK response message to the caller, otherwise a response with rejection reason is send. The signalling for setting up a conversion 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 using UDP 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 compatible issue, only U-Law is supported. 2.10 Network gaming: Quake 2

2.10.1 Description Quake 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 two kinds 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 solve unreliability 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-time acknowledged. And also, the server only sends information needed by each client –therefore, a client is not 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:

Moby Dick WP1 26 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

- 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 or the demo version is needed in order to play it).

Figure 16 Quake 2 snapshot

2.10.2 Installation and configuration Installation of Quake 2 is easy, but because of the number of configuration options, we are going to enumerate the essential steps of the process of installation and configuration of Quake 2. First, we need to fetch 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 is supplied). There are many options, explained in the README file:

BUILD_SDLQUAKE2 Build sdlquake2, a quake2 binary that uses SDL for CD audio and sound access (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).

Moby Dick WP1 27 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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, a sample 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 ctf BUILD_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=NO BUILD_ARTS=YES # build in support for libaRts sound. BUILD_DEDICATED=YES # build a dedicated quake2 server BUILD_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 FreeBSD HAVE_IPV6=YES Figure 17: Makefile options section

With this configuration (see Figure 17), a Quake2 executable is built, with IPv6 support, X11 software driver and CTF (Capture The Flag) support. You can play enabling some of the other options, fitting the settings with your hardware profile, but we only this configuration has been tested yet. It should be noted that in order to play Quake2 properly in a machine without 3D acceleration support, you need a powerful machine (Tests were performed on Pentium IV 1.5 GHz with 256Mb RAM and Pentium III 800 MHz with 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 and the game data files in order to complete the installation of Quake2. Quake 2 data files remain copyrighted and licensed under the original terms, so you cannot redistribute data from the original game. At this point, there are some possibilities:

S 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 directory 3. cp baseq2/pak0.pak to /baseq2/pak0.pak 4. Continue with the "To Install This Program" directions bellow

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

1. copy /Install/Data/baseq2/pak0.pak to /baseq2/ 2. copy /Install/Data/baseq2/video/ to /baseq2/ (optional)

Moby Dick WP1 28 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

3. download q2-3.20-x86-full.exe from [QUAKE2-ID] or a mirror site, and extract the contents to a temporary directory (use unzip -L, as this is a standard zip file). 4. copy /baseq2/pak1.pak to /baseq2/ 5. copy /baseq2/pak2.pak to /baseq2/ 6. copy /baseq2/players/ to /baseq2/

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

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

S 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 directory 3. copy ctf to /ctf 4. build the ctf shared library (BUILD_CTF=YES in the Makefile) 5. cp releas/ctf/game.so to /ctf/game.so 6. 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 the other maps use Q2CTF2, etc.

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

S To run Quake2 (as client):

cd && ./quake2 or: quake2 +set basedir

Configuration files and related stuff are saved in ~/.quake2/, so can be made read-only or whatever.

S To run quake2 (as server):

quake2 +set dedicated 1 +set ip +set multicast

Win32 support is also available, but it has not been tested yet. More information is available in the README file of the Quake2 distribution. More information related to Quake2 and IPv6 can be found at the developers of this port: [QUAKE2] 2.10.3 Network protocol information As it has been mentioned before, Quake2 uses UDP as transport protocol, and establishes port 27910 as default in server and clients. 2.11 Network gaming: Gtetrinet

2.11.1 Description GTetrinet is a client program for the popular Tetrinet game, a multiplayer Tetris game that is played over the internet.

Moby Dick WP1 29 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Figure 18: Gtetrinet snapshot

Basically, the game is played in teams, and victory is achieved when only members of one team keep on playing (however, players need not to join any team, there can be “freelances”). By completing lines it is possible to difficult other’s team labour. However, more complexity is introduced in Tetrinet version from the classical Tetris, because some elements are added in order to increase entertainment (like special power-ups, and related stuff). For more information on the gameplay, refer to the tetrinet.txt file that came with the original Tetrinet distribution ([GTNET]) 2.11.2 Installation and configuration Version 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 install instructions, adding the '--enable-ipv6' configure option. 2.11.3 Network protocol information Because reliability is more important than interactivity, the transport protocol used is TCP, with default port 31457 on server. 2.12 Network Gaming: Tetrinetx Tetrinetx 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 productivity server, 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 the application (no IPv6 support) at [TNETX]. Then gunzip and untar them and apply the IPv6 patch. Then compile first adns, and after that compile the server, through the execution of the 'c' shell script provided with the tetrinetx package.

Moby Dick WP1 30 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2.13 Network gaming: Xboard

2.13.1 Description Chess 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 moves made with the mouse, and load and save games in Portable Game Notation (PGN). It serves as front-end for many different chess services, including:

S 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 interested in.

Correspondence chess played by electronic mail. The CMail program (which works with XBoard only) automates the tasks of parsing email from your opponent, playing his moves out on your board, 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 at the same time, and then request to play a match with other user as opponent. Basic command to play is as follows: match

You can also talk with other users: tell blah blah blah..

For discover who are online: who 2.13.2 Installation and configuration Original Xboard does not support IPv6, but it has been ported to IPv6 at the Long Project [LONG]. IPv6 enabled sources are available in [CHESSLONG]

Compilation and installation of xboard is also very easy. You only have to download the IPv6 enabled source code, gunzip and untar it, and follow the installation procedure (./configure, make and make install). 2.13.3 Network protocol information As it has been mentioned before, TCP transport protocol is used (because mainly reliability issues are important and no real-time requeriments are needed) with port 5000 as default. 2.14 Network Gaming: Chessd Chessd [CHESSD] is a free chess server developed by The Chessd Project. It does not seem to be active since a year, but this is not very relevant to our purposes –only a free chess server code is wanted, being able 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 patch has been developed in order to support IPv6. It is available in [CHESSDPATCH]. This prior version of the patch provides basic IPv4/IPv6 support, but some additional work has to be done in the future in order to check if more changes are needed from the original code.

Moby Dick WP1 31 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Chessd installation is easy. The first step is getting the original sources from[CHESSD] and the IPv6 patch. After gunziping and untaring the original sources, you have to apply the patch and follow the installation 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. These changes have to be done in the config.h file. 2.15 Video Conference Tool (VIC)

2.15.1 Introduction VIC is an open-source video conferencing and streaming application that allows users to participate in video conferences over the Internet. These can be between two participants directly, or between a group of 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 in collaboration with the University of California, Berkeley. VIC has been developed further by UCL. 2.15.2 Architecture VIC requires no special features for receiving video from a session. To send video to a session, a video capture 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 above UDP/IP as its transport protocol, and conforming to the RTP profile for audio and videoconference with minimal 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 layered video streams using the PVH codec. It now uses the UCL common library for mbus operations, and cryptographic algorithms. Support for IPv6 from UCLA has been added. It also features application-level symmetric encryption for private conferencing. 2.15.3 Implementation VIC 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 or USB camera is required for sending video. - Binaries are available for the following platforms: Linux, Windows 95/98/NT/2000, Solaris, and FreeBSD. 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 Introduction VideoLAN ([VIDEOLAN]) is a project of second-year students at the École Centrale Paris. Its purposes are to set up and exploit a very high throughput network, in order to broadcast digital video and Video on Demand 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. Different streams are broadcast on separate VLANs, which are represented in the figure below by different colours.

Moby Dick WP1 32 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

Figure 19: VideoLAN scenario

BTexact Technologies have implemented IPv6 patches to the source code that has been merged into the cvs tree. In addition, they have implemented a web server where you can choose a film to watch and a graphical interface is launched automatically on the client to enable control of the video streaming from the server. 2.16.2 Implementation On 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 address On 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 login cvs –d :pserver:[email protected]:/var/cvs/videolan -z3 checkout vlc vls

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

cd vlc ./configure make make install

And finally, the server (vls):

cd vls ./configure make make install

Moby Dick WP1 33 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

2.16.3 The Video-on-Demand demo When you install the video server (vls), you have to use a telnet connection to port 9999 to control the server. You can start, stop, suspend, resume one or more movies at the same time. You can also shutdown the server or have a list of the movies available. That is not an ideal solution, so we decided to have something simpler for the user. We have a web server where the user can choose the movie that they want to 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. On Mozilla you navigate to “Edit/Preferences/Navigator/Helper Applications/New Type”

Description of type: tk Extension: “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 opening downloaded 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 request a 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:

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

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

Moby Dick WP1 34 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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) . To stream 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-1 streams generate about 250KB/s (2Mbps). MPEG-1 streaming works well over WaveLAN.

3. Traffic measure of multimedia applications In order to foretell resource usage by applications –during trial phase-, several measures have been made of the three most important kinds of software: streaming, voice and interactive gaming. With the following measures, is possible to make quantitative forecast of flows, allowing therefore bandwidth reservation with little over-engineering. It should be noted that measures where performed at link-level layer (so proper translation must be made if needed at other level, mostly because some applications generate little packets). 3.1 Mpg321 So as to typify traffic generated by mpg321, three different measures were made –at 96, 128 and 160 kbps, with fixed compression rate-, capturing not only HTTP traffic (where the song is actually bore), but also additional TCP messages –basically, not piggybacked acknowledges-. Measures are illustrated in Figure 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 into account that each flow may be metered). At last, it should be noted that traffic rate is increased by injecting more packets to the network (i.e.: payload remains constant)

Moby Dick WP1 35 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

HTTP traffic rate vs Codification rate

180.000 170.000 160.000 150.000 140.000 130.000 120.000 110.000

Traffic rate (bps) 100.000 90.000 80.000 96 kbps 128 kbps 160 kbps mp3 compression rate

Figure 22: Traffic measures for mpg321

TCP backward traffic vs Codificación rate

4.500

4.000

3.500

3.000

Traffic rate (bps) Traffic 2.500

2.000 96 kbps 128 kbps 160 kbps mp3 compression rate

Figure 23: Backward traffic measures for mpg321

3.1.1 Comments on results In 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 no congestioned network, and knowing a priori read rate from buffer (depending on compression rate) it is easy to calculate consumed bandwidth (taking into account headers introduced from application to link layer level, of course). 3.2 SIP To analyse traffic generated by SIP application (i.e.: Robust Audio Tool), three different codecs where taking into account, capturing only traffic in one direction. Therefore, a text was read three times, trying to 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)

Moby Dick WP1 36 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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

Traffic rate vs Codification

140.000 120.000 100.000 80.000 bps (udp) 60.000 bps (phy) 40.000 Bits per second per Bits 20.000 0 GSM Ley mu L16 Codification

Figure 24: Traffic measures of VoIP application

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

Bytes per packet

450 400 350 300 250

Bytes 200 150 100 50 GSM Ley mu L16 Codec

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 IP layer). It does not have much sense, then, map all results to any possible layer (because some mechanisms may need of quantities at layer two, while in order to saturate core links layer one measures may be better). 3.2.1 Comments on results Here, like with the following application, measures depend greatly on concrete user behaviour. It has been shown, however, that results are reasonable, because dealing with an high-activity speech application 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-)

Moby Dick WP1 37 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

3.3 Quake 2 There 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 all players remain in the same room and fight between themselves more traffic is generated than if players do not meet each other –as shown in Figure 26, with light colour for activity-less traffic, and dark colour for great activity game-), so results may vary from game to game.

Bytes per packet

200 180 160 140 120 100

Bytes 80 60 40 20 0 Total C 2 S S 2 C

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 the noticeable variability, traffic from client to server (C2S) never exceeds 20.000 bps, and traffic from server to clients (S2C) is limited at 16.000 bps. Taking into account that Quake 2 implements its own redundancy mechanisms (in order to decrease losses effect), sending three consecutive instants on each packet, it is possible to play with lees bandwidth. Having tested game performance with resource diminution, we set minimum bandwidth consumption for both directions at 10.000 bps (however, this value should not be taken as a fixed-reference).

Bytes per second and player

4.500 4.000 3.500 3.000 Total 2.500 C 2 S 2.000 S 2 C 1.500 Bytes per second per Bytes 1.000 500 0246810 Number of players

Figure 27: Traffic generated by Quake 2

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

Moby Dick WP1 38 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

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

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

Game Direction Packets/sec Bytes/packet Bytes/sec Bits/sec/player Game 1 C2S 8,12 86,21 700,19 934 S2C 7,07 139,33 985,55 1314 Game 2 C2S 8,15 83,122 680,93 908 S2C 7,02 127,12 892,58 1190 3.4.1 Comments on results Because 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 only commands from each player are sent, and no high interactivity is required –at least, not as high as in Quake 2, where life and death can be some milliseconds apart-. 3.5 Chessd In order to measure traffic generated by chess game, a five minutes match was played between two human users (it is important to emphasize nature of players, because robots are also allowed to play on the server). Results are summarized in table below; in this case we show measures not only at the physical layer, 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/player Physical layer measures C2S 0.076 78.82 47.915 S2C 0.077 235.46 145.24 TCP measures C2S 0.076 4.82 2.93 S2C 0.077 161.46 99.46 3.5.1 Comments on results The results are very reasonable, because resource needs of this kind of application are very low –even less than the Gtetrinet, because neither coordination nor real-playing is needed here-. Despite all these facts, it can be considered a feasible and interesting service to be offered by operators, so its inclusion in trials may be very valuable. Moreover, its requirements can be considered negligible, allowing a per-service charging schemes (i.e..: flat rate) in stead of a per-consumption model.

4. Classical applications Moby 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 usually higher than those of “classical” applications, so proper behaviour of the former could be taken as a guarantee of the latters correct functioning.

Moby Dick WP1 39 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

5. Coordination and expert evaluation software

5.1 IRC server In order to provide an easy and cheap mechanism for coordination purposes between trial sites, an IRC server is installed and running (see section 6). irc2.10.3p3 is the server software installed. ircservices-4.3.3 is also installed, providing some service features. 5.2 Xchat 1.8.x

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

Figure 28: Xchat snapshot

5.2.2 Installation and configuration Compiling and installing xchat with IPv6 support is very easy. You only have to download the program sources ([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 information TCP port 6667 is used as default for IRC communication.

Moby Dick WP1 40 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

5.3 RTP Quality Matrix (RQM)

5.3.1 Introduction The Real-time Transport Protocol, RTP, provides quality of service feedback with reception reports sent alongside the media stream. If the media is sent via IP multicast it is possible for a third party to snoop on these reception reports, displaying reception quality for all members of a group. The RQM application performs such snooping. RQM supports use over IPv6. RQM was developed at UCL. 5.3.2 Architecture When running, RQM displays a matrix, in a window, with participant details on the left, and a number of cells to the right of these. Each row of cells denotes the packet loss rate observed for data sent from the participant indicated at the left of that row (point to a cell and a popup will appear giving the names of the source and destination of the traffic represented by that cell). The colours of the cell start as green (no loss) and fade to red (20% loss). A white cell indicates that no information is available. A light blue cell indicates that the receiver is not receiving media data from a particular sender (at present light blue is only 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 installed and available in your path. IPv6 is supported through the UCL common multimedia library. 5.3.3 Implementation RQM 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 Introduction MGEN is a set of programs which provide the ability to perform IP network performance measurements using UDP/IP unicast and multicast traffic. The toolset generates real-time traffic patterns so that the network 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 description As 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 destinations over time according to a script file. Packet sizes and transmission rates for individual information flows can be controlled and varied using mgen's script file.

Drec: "dynamic-receiver" - Receives and logs traffic generated by the Mgen program. Dynamically joins 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 MGEN management easier (generating plots, scripts, statistics,…) 5.5 Ethereal

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

Moby Dick WP1 41 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002 summary and detail information for each packet. Ethereal has several powerful features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session. 5.6 Netperf

5.6.1 Description Netperf 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 and the Berkeley Sockets interface.

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

6. Running servers at Madrid trial site In order to help the development of the trials, the following servers has been installed and are constantly running:

Service URL HTTP http://www.mobydick.ipv6.it.uc3m.es IRC irc.mobydick.ipv6.it.uc3m.es (port 6667. both IPv4 and IPv6) Quake 2 quake2.mobydick.ipv6.it.uc3m.es Tetris tetris.mobydick.ipv6.it.uc3m.es Chess chess.mobydick.ipv6.it.uc3m.es (port 5000) MP3 repository http://www.mobydick.ipv6.it.uc3m.es/mp3/

Moby Dick WP1 42 / 43 WP1-D0102_final.doc Version 1.0 30.8.2002

7. References

All the software described in this document has been taken from links listed below. However, tested versions 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 (because they 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

Moby Dick WP1 43 / 43