Docstoc

Moby Dick Application Framework Specification

Document Sample
Moby Dick Application Framework Specification Powered By Docstoc
					                          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:

    ·   VoIP applications. We mainly describe SIP environment available in IPv6 protocol stack. This
        software will be used to perform telephone conversation tests.
    ·   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.
    ·   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 System
        beyond 3G and therefore we will try to use in our testbed.
    ·   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.
    ·   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:       jmoreno@it.uc3m.es
                      Ignacio Soto        Phone:        +34-916245974
                                          Fax:          +34-916248749
                                          E-mail:       isoto@it.uc3m.es
                      Carlos J. Bernardos Phone:        +34-916249959
                                          Fax:          +34-916248749
                                          E-mail:       cjbc@it.uc3m.es
                      Raquel Panadero     Phone:        +34-916248756
                                          Fax:          +34-916248749
                                          E-mail:       rpa@it.uc3m.es
                      Pablo Serrano       Phone:        +34-916248756
                                          Fax:          +34-916248749
                                          E-mail:       pablo@it.uc3m.es



USTUTT                Jürgen Jähnert          Phone:    +49-711-685-4273
                                              Fax:      +49-711-678-8363
                                              E-mail:   jaehnert@rus.uni-stuttgart.de
                      Paul Christ             Phone:    +49-711-685-2515
                                              Fax:      +49-711-678-8363
                                              E-mail:   christ@rus.uni-stuttgart.de



PTIn                  Victor Marques          Phone: +351-243-403-654
                                              Fax:    +351-243-420-722
                                              E-mail: victor-m-marques@ptinovacao.pt



ICR                   Tan Seng Kee            Phone: + 65-68709335
                                              Fax:    + 65-67795441
                                              E-mail: tansk@icr.a-star.edu.sg



T-Nova                Hans J. Einsiedler      Phone: + 49-30-34 97 35 18
                                              Fax:    + 49-30-34 97 35 19
                                              E-mail: hans.einsiedler@t-systems.com




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:
    · multimedia applications (which include VoIP, Streaming, Network Games and Interactive),
    · classical applications like telnet, ssh or ftp
    · 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:

        ·    Proxy server: that receives calls directed to other users and resends them to the right
             location according with the registrar.
        ·    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.
        ·    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.




                                    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:
    ·    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 for
address 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 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:
    ·      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 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: 566@it.uc3m.es
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:533@it.uc3m.es
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: 566@it.uc3m.es
Content-Type: application/sdp
Call-ID: 610186238@2002:a375:8bb5:ffff:2c0:26ff:fea3:d118
To: sip:533@it.uc3m.es;
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.
· 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 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 <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 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 <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


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


          > 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 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 <soundcard name specific> with es1968.
          alias snd-card-0 snd-<soundcard name specific>
          # 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-<driver installed>
         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:anonymous@cvs.icculus.org:/cvs/cvsroot login (anonymous)
        cvs -d :pserver:anonymous@cvs.icculus.org:/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:

         ·   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 <installdir>/baseq2/pak0.pak
                  4.   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 wherever
             the 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)




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            <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 directory
                   3.   copy ctf to <installdir>/ctf
                   4.   build the ctf shared library (BUILD_CTF=YES in the Makefile)
                   5.   cp releas<arch>/ctf/game<arch>.so to <installdir>/ctf/game<arch>.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*

        ·    To run Quake2 (as client):

                   cd <installdir> && ./quake2
             or:
                   quake2 +set basedir <installdir>

                   Configuration files and related stuff are saved in ~/.quake2/, so <installdir> can be made
                   read-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 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:

    ·    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 <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 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:anonymous@anoncvs.videolan.org:/var/cvs/videolan login
         cvs –d :pserver:anonymous@anoncvs.videolan.org:/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:

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

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
               Traffic rate (bps)

                                    150.000
                                    140.000
                                    130.000
                                    120.000
                                    110.000
                                    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
                                    Traffic rate (bps)




                                                         3.500

                                                         3.000

                                                         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
              Bits per second



                                100.000
                                 80.000                                                             bps (udp)
                                 60.000                                                             bps (phy)
                                 40.000
                                 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
             Bytes




                                250
                                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
                                Bytes




                                        100
                                         80
                                         60
                                         40
                                         20
                                          0
                                                   Total              C2S                 S2C


                                        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
            Bytes per second




                               3.500
                               3.000                                                                   Total
                               2.500                                                                   C2S
                               2.000                                                                   S2C
                               1.500
                               1.000
                                500
                                         0         2          4            6       8         10
                                                           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

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:9/8/2011
language:English
pages:43