20.11.2012 Views

Olaf Beier Studiengang: Dipl. Ing. Informationstechnik - IfI

Olaf Beier Studiengang: Dipl. Ing. Informationstechnik - IfI

Olaf Beier Studiengang: Dipl. Ing. Informationstechnik - IfI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Olaf</strong> <strong>Beier</strong><br />

<strong>Studiengang</strong>: <strong>Dipl</strong>. <strong>Ing</strong>. <strong>Informationstechnik</strong><br />

Kursbezeichnung BA-Mannheim: TIT 99 BGR<br />

Abstract des Praxisbericht<br />

zur 4. Praxisphase (02.07.2001 - 28.09.2001)<br />

Firma dieser Praxisphase: University of Oslo, Department of Informatics<br />

Ausbildungsbetrieb: Fraunhofer IPSI Darmstadt<br />

Thema: “Operating system and protocol enhancements for increased<br />

performance in distributed interactive multimedia<br />

presentations”<br />

Fachliche Ausbildungsbetreuung Oslo: Dr. <strong>Ing</strong>. Carsten Griwodz<br />

Administrative Betreuung Oslo: Prof. Dr. Thomas Plagemann<br />

Administrative Betreuung FhG-IPSI Darmstadt: Dr. Heinz-Dieter Böcker


Abstract:<br />

This “Praxisbericht“ has its main focus on the description of the Transport Protocol<br />

and the Transport Control Protocol for Real-Time Applications as described in RFC<br />

1889. This knowledge has been necessary in order to extend in the source code of the<br />

open source project Komssys (KOM(S) RTSP/RTP streaming system). The protocol<br />

specification was invented 1996 by the Audio-Video Transport Working Group<br />

within the Network Working Group of the Internet Engineering Task Force (IETF).<br />

The Inventors are H. Schulzrinne (GMD Fokus), S. Casner (Precept Software, Inc), R.<br />

Frederick (Xerox Palo Alto Research Center) and V. Jacobson (Lawrence Berkeley<br />

National Laboratory).<br />

My special work in the Komssys project was “to examine the Komssys RTP stack, to<br />

isolate media handling code that can be moved into loadable modules and to compare<br />

KOMS’ Multimedia File System Minorca to SGI XFS”.<br />

This means I had to analyse the existing Komssys RTP Stack and its support for the<br />

following media formats: PCMU, AVI, H.261, MPEG, MPA and MP3. The main<br />

focus of my work was to improve the API. Also those codecs can now be easily<br />

implemented, which must be used with a wrapper because the sources are not<br />

available. It was my task to find a way to divide the existing and well working sourcetree<br />

into an encoder and a decoder part for each currently supported codec separately.<br />

In addition, a new layer that instantiates codecs has been integrated. It is implemented<br />

as factory pattern. The now existing stack is encapsulated in separate modules for<br />

encoding and decoding for each codec separately.<br />

In contrast to the transmission of conventional data such as mails or websites,<br />

particular demands must be met to transmit multimedia data. This “Praxisbericht“ also<br />

describes transport problems of audio- and videostreams and give a brief overview of<br />

existing solutions.<br />

In some cases it can make sense to combine data streams coming from several<br />

participants and forward them as one single data stream. This is the task of a so-called<br />

mixer. If the bandwidth of a participant or a participant group in an audio conference<br />

is low, a mixer can be put at the starting point of this network segment.<br />

Participant 3<br />

Audio 3<br />

Participant 1<br />

Audio 1<br />

PCM<br />

Audio 2<br />

Participant 2<br />

RTP-Data Packet<br />

SSRC: Audio 1<br />

Datatyp: PCM<br />

Sequenceno.: 3231<br />

Timestamp: 84922<br />

PCM-Header<br />

PCM-Payload<br />

RTP-Data Packet<br />

SSRC: Audio 2<br />

Datatyp: PCM<br />

Sequenceno.: 3482<br />

Timestamp: 54765<br />

PCM-Header<br />

PCM-Payload<br />

Figure of a Mixer as explained in chapter 5.3<br />

Mixer<br />

SSRC: Audio M<br />

SSRC: Audio 1<br />

SSRC: Audio 2<br />

SSRC: Audio 3<br />

Datatyp: PCM<br />

Sequenceno.: 9384<br />

Timestamp: 87892<br />

PCM-Header<br />

PCM-Payload<br />

Audio M RTP-Data Packet<br />

Audio 4<br />

Participant 4


<strong>Olaf</strong> <strong>Beier</strong><br />

<strong>Studiengang</strong>: <strong>Dipl</strong>. <strong>Ing</strong>. <strong>Informationstechnik</strong><br />

Kursbezeichnung BA-Mannheim: TIT 99 BGR<br />

Praxisbericht zur 4. Praxisphase (02.07.2001 - 28.09.2001)<br />

Firma dieser Praxisphase: University of Oslo, Department of Informatics<br />

Ausbildungsbetrieb: Fraunhofer IPSI Darmstadt<br />

Thema: “Operating system and protocol enhancements for increased<br />

performance in distributed interactive multimedia<br />

presentations”<br />

Fachliche Ausbildungsbetreuung Oslo:<br />

Dr. <strong>Ing</strong>. Carsten Griwodz<br />

Administrative Betreuung Oslo: Prof. Dr. Thomas Plagemann<br />

Administrative Betreuung FhG-IPSI Darmstadt: Dr. Heinz-Dieter Böcker


Ehrenwörtliche Erklärung Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

Ehrenwörtliche Erklärung<br />

Hiermit erkläre ich, <strong>Olaf</strong> <strong>Beier</strong>, gemäß den Vorgaben der Berufsakademie Mannheim,<br />

diesen Praxisbericht eigenhändig angefertigt zu haben.<br />

Mannheim, 10.09.2001<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

Seite 2 von 25


Table of Contents Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

Table of Contents<br />

Ehrenwörtliche Erklärung..............................................................................................2<br />

Table of Contents...........................................................................................................3<br />

List of Figures ................................................................................................................4<br />

1 Introduction............................................................................................................5<br />

1.1 General Information on UIO-IFI-KOMS.......................................................5<br />

1.2 My function within the UIO-IFI Research Group KOMS.............................5<br />

2 Transport problems for multimedia data................................................................7<br />

2.1 Introduction....................................................................................................7<br />

2.2 Methods of resolution: ...................................................................................7<br />

3 The Real-time Transport Protocol (RTP) ..............................................................8<br />

3.1 Tasks of RTP..................................................................................................8<br />

3.2 RTP as service for real time data ...................................................................8<br />

3.3 RTP Protocol Architecture.............................................................................8<br />

3.4 RTP fixed header fields .................................................................................9<br />

3.5 RTP Header Extension.................................................................................10<br />

4 The RTP Control Protocol (RTCP)......................................................................11<br />

4.1 Tasks of RTCP.............................................................................................11<br />

4.2 RTCP CNAME Identifier ............................................................................11<br />

4.3 RTCP Source Description............................................................................12<br />

4.4 RTCP Sender-/Receiver Report...................................................................13<br />

4.5 RTCP Goodbye packet ................................................................................15<br />

4.6 Application-defined RTCP packet...............................................................16<br />

5 Application scenarios...........................................................................................17<br />

5.1 Encapsulation of H.263................................................................................17<br />

5.2 Simple Audio conference.............................................................................17<br />

5.3 Multiplexing of several media streams ........................................................18<br />

5.4 Mixer............................................................................................................19<br />

5.5 Translator .....................................................................................................20<br />

6 What is Komssys?................................................................................................21<br />

6.1 Open Source.................................................................................................21<br />

6.2 General Overview ........................................................................................21<br />

6.3 Other RTSP/RTP based systems..................................................................22<br />

References....................................................................................................................23<br />

HTTP References.........................................................................................................25<br />

Seite 3 von 25


List of Figures Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

List of Figures<br />

Figure 1 RTP Protocol Architecture [Boo00] ..........................................................9<br />

Figure 2 RTP Packet Header [RFC1889].................................................................9<br />

Figure 3 RTP Header Extension [RFC1889] .........................................................10<br />

Figure 4 CNAME: Canonical end-point Identifier [RFC1889] .............................11<br />

Figure 5 RTCP Source Description packet [RFC1889] .........................................12<br />

Figure 6 RTCP Sender-/Receiver Report packet [RFC1889] ................................15<br />

Figure 7 RTCP Goodbye packet [RFC1889] .........................................................16<br />

Figure 8 Application-defined RTCP packet [RFC1889]........................................16<br />

Figure 9 RTP data over UDP in an IP packet [Chu97] ..........................................17<br />

Figure 10 Simple Audio conference [Boo00] ..........................................................18<br />

Figure 11 Multiplexing of several media streams [Boo00]......................................19<br />

Figure 12 Transatlantic session as example for low bandwidth connections...........19<br />

Figure 13 Mixer [Boo00] .........................................................................................20<br />

Figure 14 Translator [Boo00]...................................................................................20<br />

Figure 15 Client-server configuration overview [GZ01] .........................................21<br />

Figure 16 Screenshot of the QT GUI (currently version 0.2 is the latest) ...............22<br />

Seite 4 von 25


Introduction Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

1 Introduction<br />

1.1 General Information on UIO-IFI-KOMS<br />

The University of Oslo is Norway’s largest and oldest institution of higher education.<br />

It was founded in 1811 when Norway was still under Danish rule. Today, the<br />

University of Oslo has approximately 33,000 students, 4,500 employees and four<br />

Nobel Prize winners, who indicate the quality of the research at the University.<br />

The communication systems group (KOMS) is one out of ten research and interests<br />

groups at the Department of computer science and consists of twenty persons; KOMS<br />

is also operating an IPv6 Laboratory. KOMS is discussing the following topics:<br />

o Next generation Internet protocols<br />

o Distributed multimedia systems and applications<br />

o Quality-of-Service<br />

o Middleware<br />

o Routing in multiprocessor systems an on the Internet<br />

o High-speed Local and Metropolitan Area Networks<br />

o Close cooperation with MMDBMS systems<br />

Currently, the scientific staff members of KOMS are working in the following<br />

projects:<br />

o NetSim: a project based on the UCB/LBNL/VINT Network Simulator.<br />

o OPNET: Improving server-network performance and reliableness focussing on<br />

TCP/IP Protocol based on the OPNET Network Simulator.<br />

o Distributed Media Journaling: a research project focussing on capturing and<br />

indexing distributed multimedia applications in real time.<br />

o ENNCE: WP1: Enhanced Next-Generation Networked Computing<br />

Environment<br />

o ENNCE: WP2 MULTE: Multimedia Middleware for Low-Latency High-<br />

Throughput Environments.<br />

o INSTANCE: Intermediate Storage Node Concept to support asynchronous<br />

communication in server-based systems.<br />

o OMODIS: Object Oriented Modelling and Database Support in Distributed<br />

Systems.<br />

1.2 My function within the UIO-IFI Research Group KOMS<br />

My scope of duties comprised several different tasks and activities. My vocational<br />

adjustment to the following topics was my major task: multimedia networks,<br />

multimedia streaming, VoD [ZGS01] (using relevant project reports and technical<br />

literature such as RFCs [h:RFC], manuals and articles), along with the main features<br />

of professional software engineering under Linux. For this reason, my main point of<br />

interest was to gain insight into the Open Source project Komssys which I will<br />

introduce shortly in chapter 6.<br />

My special work in this project was “to examine the Komssys RTP stack [RFC1889],<br />

to isolate media handling code that can be moved into loadable modules and to<br />

compare KOMS’ Multimedia File System Minorca [WGP99] to SGI XFS [h:sgixfs]”.<br />

This means I had to analyse the existing Komssys RTP Stack and its support for the<br />

following media formats: PCMU, AVI, H.261, MPEG, MPA and MP3. The main<br />

focus of my work was to get a “nicer” Application Programming Interface (API). This<br />

Seite 5 von 25


Introduction Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

means a more flexible and well-designed interface to easily implement new codecs -<br />

also those, which must be used with a wrapper because the sources are not available.<br />

It was my task to find a way to divide the existing and well working source-tree into<br />

an encoder and a decoder part for each currently supported codec separately. In<br />

addition, a new layer that instantiates codecs has been integrated. It is implemented as<br />

factory pattern [h:facpat]. The now existing - also stable working - stack is<br />

encapsulated in separate modules for encoding and decoding for each codec<br />

separately.<br />

Besides this, I supported the department with my expertise on the acquisition of<br />

hardware and software and organized a freelancer writing a press article about several<br />

of their current projects.<br />

Seite 6 von 25


Transport problems for multimedia data Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

2 Transport problems for multimedia data<br />

2.1 Introduction<br />

In contrast to the transmission of conventional data such as mails or websites,<br />

particular demands must be met to transmit multimedia data.<br />

The data should, for example, be transmitted in real time, so that the sender receives<br />

the multimedia stream without interruption in order to avoid any dropout in the<br />

process of decoding the audio or video signal. The most frequent reasons for<br />

interruptions are:<br />

o varying delay (called jitter)<br />

o excessive packet loss<br />

o in synchronous communication such as IP-telephony also delay<br />

In most cases, this is caused by insufficient bandwidth and/or hardware or software<br />

problems or failure.<br />

Another transport feature for multimedia data is the possibility to make connections<br />

not only point-to-point but multicast like in the case of a conference. Additionally,<br />

transmission ought to be adapted to the different performance of client hardware and<br />

networks.<br />

2.2 Methods of resolution:<br />

Currently there are several different opinions about the way to solve these problems.<br />

For example ST2 [DB95], XTP [SDW92] or ATM [T1.627] are such solutions<br />

propagated by a minority of researchers. Another possibility is DiffServ [RFC2474],<br />

[RFC2475] which is favoured by IP-router manufacturer. Also the Resource<br />

ReSerVation Protocol (RSVP) [RFC2205] is a possibility, which provides the clients<br />

to coordinate the reservation of bandwidth.<br />

The original transport of the real time data between the participants will be warranted<br />

by the Real-time Transport Protocol (RTP) [RFC1889].<br />

In the following I will present a closer look on the functionalities and mechanisms of<br />

RTP, as I have concentrated on this part of the Open Source Project Komsys -<br />

KOM(S) RTSP/RTP Streaming System. A more detailed description of Komsys can<br />

be found in chapter 6.<br />

Seite 7 von 25


The Real-time Transport Protocol (RTP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

3 The Real-time Transport Protocol (RTP)<br />

3.1 Tasks of RTP<br />

RTP is a Transport Protocol for Real-Time Applications invented 1996 by the Audio-<br />

Video Transport Working Group within the Network Working Group of the IETF<br />

[h:IETF]. The Inventors are H. Schulzrinne (GMD Fokus), S. Casner (Precept<br />

Software, Inc), R. Frederick (Xerox Palo Alto Research Center) and V. Jacobson<br />

(Lawrence Berkeley National Laboratory).<br />

In order to hold a videoconference, it appears to suffice to build up a network<br />

connection, reserve the resources needed and send the data. This is not the case for the<br />

connectionless IP based networks, as only the following chain of mechanisms can<br />

accomplish the task:<br />

o In the first step the data stream is divided into packets that can be transmitted<br />

separately. The transmission can be unicast (one receiver) or multicast (several<br />

receivers).<br />

o At the side of the receiver, the received packets have to be resequenced. It may<br />

also be necessary to resynchronize them with other incoming data streams.<br />

o In addition, the receiver should be able to adapt to varying network conditions<br />

during the transmission.<br />

o Furthermore, the receiver needs meta data, which provide information on<br />

participating stations.<br />

These are not the tasks of the payload protocol suite but the data serve as input for the<br />

Real-time Transport Protocol, which wraps up the payload.<br />

3.2 RTP as service for real time data<br />

As indicated above, the actual purpose of RTP is to offer a service for the<br />

transmission of multimedia data between the end points of a unicast or multicast<br />

session. Major parts of this service are the marking of the payload and their source,<br />

the allocation of sequence numbers and time stamps for data packets, the monitoring<br />

of network conditions and the transmission of information on all session members.<br />

However, monitoring and meta data are not provided by RTP itself, but by the RTP<br />

Control Protocol (RTCP). RTP cannot enforce a certain QoS or give explicit<br />

guarantees for it. Neither can RTP warrant for the packets‘ arrival at the receiver, their<br />

synchronization and correct order. Sequence numbers and time stamps provided by<br />

RTP have to be used in order to enable the resequencing of the session by the<br />

receiver.<br />

3.3 RTP Protocol Architecture<br />

The specification of the most recent protocols allows the definition of optional fields<br />

or similar mechanisms for future extensions. However, this flexibility also has<br />

disadvantages, as the overhead caused by the more sumptuous parsing of the protocol<br />

headers is undesirable for real time data. For this reason RTP’s architecture differs<br />

fundamentally from other protocols in this point. RFC 1889 explicitly allows<br />

extensions of the RTP header in order to adapt it to certain application scenarios.<br />

These particular interpretations of the RTP header are defined in different Profile<br />

Specifications and apply for specific classes of applications (e.g. audio and video<br />

conferences [RFC1890]).<br />

Seite 8 von 25


The Real-time Transport Protocol (RTP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

Protocol Specification<br />

Profile Specifications<br />

. . .<br />

. . . GSM MPA PCMA<br />

Payload Format Specifications<br />

RTP / RTCP<br />

AV Profile<br />

Figure 1 RTP Protocol Architecture [Boo00]<br />

. . .<br />

JPEG MPV H.263 . . .<br />

As displayed above, a Profile Specification is a link between the RTP kernel and the<br />

Payload Format Specification. It defines how the payload (e.g. H.263 [RFC2190]) is<br />

wrapped up in order to be transported via RTP.<br />

3.4 RTP fixed header fields<br />

A normal RTP Header has the following format; where the picture below shows the<br />

network byte order (i.e. BIG ENDIAN format):<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|V=2|P|X| CC |M| PT | sequence number |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| timestamp |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| synchronization source (SSRC) identifier |<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| contributing source (CSRC) identifiers |<br />

| .... |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

Figure 2 RTP Packet Header [RFC1889]<br />

The first twelve octets are present in every RTP packet, while the list of CSRC<br />

(contributing source) identifiers is present only when inserted by a mixer. The<br />

individual fields have the following meaning:<br />

o Version (V): 2 bits. Version of RTP. (currently, version 2 is the latest)<br />

The version number defined by [RFC1889] is two (2). (The value 1 is<br />

used by the first draft version of RTP and the value 0 is used by the<br />

protocol initially implemented in the "vat" audio tool.)<br />

o Padding (P): 1 bit. If set, the packet contains one or more additional<br />

padding octets at the end which are not part of the payload. The last<br />

Seite 9 von 25


The Real-time Transport Protocol (RTP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

octet of the padding contains a count of how many padding octets<br />

should be ignored.<br />

o Extension (X): 1 bit. If set, the fixed header is followed by exactly one<br />

header extension.<br />

o CSRC count (CC): 4 bits. The number of CSRC identifiers that follow<br />

the fixed header. This number exceeds one if the payload of the RTP<br />

packet contains data from several sources.<br />

o Marker (M): 1 bit. Defined by a profile, the marker is intended to allow<br />

significant events such as frame boundaries to be marked in the packet<br />

stream.<br />

o Payload type (PT): 7 bits. Identifies the format of the RTP payload.<br />

Some numbers are defined by the RFC but most can be assigned<br />

dynamically by the profile or by externally provided meta information.<br />

o Sequence number: 16 bits. Increments by one for each RTP data packet<br />

sent, may be used by the receiver to detect packet loss and to restore<br />

packet sequence. The initial value should be set randomly and wraps to<br />

0 after 2 16 -1.<br />

o Timestamp: 32 bits. The sampling instant of the first octet in the RTP<br />

data packet. May be used for synchronisation and jitter calculations.<br />

The initial value should be set randomly and wraps to 0 after 2 16 -1.<br />

o SSRC: 32 bits. Randomly chosen number to distinguish<br />

synchronisation sources (different host, users or applications) within<br />

the same RTP session. It indicates where the data has been combined,<br />

or the source of the data if there is only one source.<br />

o CSRC list: 0 to 15 items, 32 bits each. Contributing sources for the<br />

payload contained in this packet. The number of identifiers is given by<br />

the CC field.<br />

3.5 RTP Header Extension<br />

RFC 1889 describes an extension mechanism that is provided to allow individual<br />

implementations to experiment with new payload-format-independent functions that<br />

require additional information to be carried in the RTP data packet header.<br />

Interoperate implementations should be designed in a well-behaving manner, to<br />

ignore these header extensions, which have not been extended to them.<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| defined by profile | length |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| header extension |<br />

| .... |<br />

Figure 3 RTP Header Extension [RFC1889]<br />

Seite 10 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

4 The RTP Control Protocol (RTCP)<br />

4.1 Tasks of RTCP<br />

RTCP is the control protocol that belongs to RTP. RTCP has four tasks:<br />

o RTCP’s main task is to inform the participants regularly on the quality of the<br />

data distribution on the network. This feedback enables the participants to<br />

adapt the data stream they generate to the network conditions. In case of bad<br />

network conditions, this can be done by reducing the data rate in order to<br />

reduce network congestion. For these purposes RTCP periodically transmits<br />

so-called Sender Reports (SR) and Receiver Reports (RR).<br />

o The next important task is the repeated transmission of unambiguous markers<br />

for each participant (Canonical Name, CNAME). These markers enable the<br />

receiver to reassemble several data streams (e.g. audio and video) that have<br />

been transmitted in separated sessions.<br />

o The periodic transmission of the control data is important, but this must not<br />

restrict the payload’s transport if there is a large number of participants.<br />

However, as each participant receives all RTCP packets, because he is<br />

listening at a multicast address, which means simultaneous communication<br />

between groups of computers and is known generically as multipoint<br />

communications, so every client can locally calculate the rate of control<br />

packets that have to be sent from the sum of the participants. For further<br />

details on calculating control packet rates have a look at [RFC1889].<br />

o Last but not least RTCP offers each participant the option to send a Source<br />

Description (SDES) of his own system.<br />

4.2 RTCP CNAME Identifier<br />

The CNAME identifier (Canonical end-point identifier SDES item) has the following<br />

properties:<br />

o The SSRC identifier is randomly allocated, so it may change if a conflict is<br />

discovered or if a program is restarted. For this case the CNAME item is<br />

required to provide the binding from the SSRC identifier to an identifier for<br />

the source that remains constant<br />

o CNAME and SSRC should be unique among all participants within one RTP<br />

session<br />

o The CNAME should be fixed for each participant. In this way a binding across<br />

multiple media tools used by one participant in a set of related RTP sessions is<br />

possible.<br />

o To facilitate third-party monitoring, the CNAME should be suitable for either<br />

a program or a person to locate the source.<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| CNAME=1 | length | user and domain name ...<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

Figure 4 CNAME: Canonical end-point Identifier [RFC1889]<br />

Seite 11 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

In accordance to these prerequisites the CNAME item should have the format<br />

"user@host", or "host", if a user name is not available. The formatting should be done<br />

in accordance to the rules specified in RFC 1034 [RFC1034], RFC 1035 [RFC1035]<br />

and Section 2.1 of RFC 1123 [RFC1123] or the standard ASCII representation of the<br />

host's numeric address.<br />

4.3 RTCP Source Description<br />

RTCP requires every participant to send Source Description (SDES)-packets<br />

periodically, which can contain additional information about his system. In order to<br />

reduce overhead, several data sources (Synchronization Sources, SSRCs) can be<br />

described within one single packet.<br />

The unambiguous marker of each participant (Canonical Name, CNAME see chapter<br />

4.2) has to be given for each source, as it is important for linking different data<br />

streams of one participant. The other elements are optional, though, and should only<br />

be transmitted within larger intervals in order to save bandwidth. Their meaning is<br />

mostly self-descriptive. Short messages can be sent to all participants via the Short<br />

Message Element. In addition, an element for application specific extensions is<br />

provided.<br />

The available items are:<br />

o Version (V): 2 bits, which means Version of SDES. (Currently, version 2 is<br />

the latest)<br />

o Padding (P), length 1 bit: as described for the SR packet see chapter 4.4.<br />

o Packet type (PT): 8 bits, which contains the constant 202 to identify this as an<br />

RTCP SDES packet.<br />

o Source count (SC): 5 bits the number of SSRC/CSRC chunks contained in this<br />

SDES packet. A value of zero is valid but useless.<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|V=2|P| SC | PT=SDES=202 | length | header<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| SSRC/CSRC_1 | chunk<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1<br />

| SDES items |<br />

| ... |<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| SSRC/CSRC_2 | chunk<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2<br />

| SDES items |<br />

|<br />

Figure 5 RTCP Source Description packet [RFC1889]<br />

The auxiliary seven SDES items as described in RFC 1889 are:<br />

o NAME: User name of the current session participant<br />

o EMAIL: Electronic mail address of the session participant<br />

o PHONE: Phone number of session participant<br />

o LOC: Geographic user location<br />

o TOOL: Application or tool name<br />

Seite 12 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

o NOTE: Notice/status<br />

o PRIV: Private extensions<br />

4.4 RTCP Sender-/Receiver Report<br />

Each participant periodically sends Sender and Receiver Reports (SR, RR) to inform<br />

the other participants about the quality of the data transmission.<br />

Besides technical information such as flags and counters, the header contains the<br />

unambiguous marker or the data source (Synchronization Source, SSRC), which has<br />

generated this report. If packets have been sent from this source since the last Sender<br />

or Receiver Report has been sent, the header is followed by a Sender Info Block (in<br />

this case the packet is called „Sender Report“; without the info-block, the packet is<br />

called „Receiver Report“). The Info-Block contains a time stamp containing the local<br />

time when the report has been sent and an equivalent time stamp in the unit the RTP<br />

protocol uses for this stream. Additionally, the number of packets that have been sent<br />

since the start of the transmission is given.<br />

This is followed by a Report Block for each external data source from which this<br />

participant has received payload since the last Sender or Receiver Protocol has been<br />

sent. It contains the percentage rate and number of packets received from each<br />

individual data source (which is identified unambiguously by its SSRC). Furthermore,<br />

it contains the biggest sequence number received, the variance of the time slice<br />

between the arrival of two data packets, the time stamp of the last Sender Report<br />

received as well as the time since then. Additional application specific fields can be<br />

defined in profile specifications.<br />

The available items are:<br />

o Version (V): 2 bits version of RTP (currently, version 2 is the latest)<br />

o Padding (P): 1 bit padding may be needed by some encryption algorithms with<br />

fixed block sizes.<br />

o Reception report count (RC): 5 bits, the number of reception report blocks<br />

contained in this packet.<br />

o Packet type (PT): 8 bits, contains the constant 200 to identify this as an RTCP<br />

SR packet.<br />

o Length: 16 bits, the length of this RTCP packet in 32-bit words minus one,<br />

including the header and any padding.<br />

o SSRC: 32 bits, the synchronization source identifier for the originator of this<br />

SR packet.<br />

o The second section, the sender information, is 20 octets long and is present in<br />

every sender report packet. It summarizes the data transmissions from this<br />

sender.<br />

The fields have the following meaning:<br />

o NTP timestamp: 64 bits, indicates the wallclock time (localized<br />

specified time-zone, non – coordinated time of sender) when this report<br />

was sent<br />

o RTP timestamp: 32 bits, corresponds to the same time as the NTP<br />

timestamp (above)<br />

o Sender’s packet count: 32 bits, the total number of RTP data packets<br />

transmitted by the sender since starting transmission up until the time<br />

this SR packet was generated. The count is reset if the sender changes<br />

its SSRC identifier.<br />

Seite 13 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

o Sender’s octet count: 32 bits The total number of payload octets (i.e.,<br />

not including header or padding) transmitted in RTP data packets by<br />

the sender since starting transmission up until the time this SR packet<br />

was generated. The count is reset if the sender changes its SSRC<br />

identifier. This field can be used to estimate the average payload data<br />

rate.<br />

o The third section contains zero or more reception report blocks depending on<br />

the number of other sources heard by this sender since the last report.<br />

These statistics are:<br />

o SSRC_n (source identifier): 32 bits The SSRC identifier of the source<br />

to which the information in this reception report block pertains.<br />

o Fraction lost: 8 bits The fraction of RTP data packets from source<br />

SSRC_n lost since the previous SR or RR packet was sent, expressed<br />

as a fixed point number with the binary point at the left edge of the<br />

field.<br />

o Cumulative number of packets lost: 24 bits The total number of RTP<br />

data packets from source SSRC_n that have been lost since the<br />

beginning of reception.<br />

o Extended highest sequence number received: 32 bits The low 16 bits<br />

contain the highest sequence number received in an RTP data packet<br />

from source SSRC_n, and the most significant 16 bits extend that<br />

sequence number with the corresponding count of sequence number<br />

cycles.<br />

o Interarrival jitter: 32 bits An estimate of the statistical variance of the<br />

RTP data packet interarrival time, measured in timestamp units and<br />

expressed as an unsigned integer. The interarrival jitter is defined to be<br />

the mean deviation (smoothed absolute value) of the difference in<br />

packet spacing at the receiver compared to the sender for a pair of<br />

packets.<br />

o Last SR timestamp (LSR): 32 bits The middle 32 bits out of 64 in the<br />

NTP timestamp received as part of the most recent RTCP sender report<br />

(SR) packet from source SSRC_n. If no SR has been received yet, the<br />

field is set to zero.<br />

o Delay since last SR (DLSR): 32 bits The delay, expressed in units of<br />

1/65536 seconds, between receiving the last SR packet from source<br />

SSRC_n and sending this reception report block. If no SR packet has<br />

been received yet from SSRC_n, the DLSR field is set to zero.<br />

Seite 14 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|V=2|P| RC | PT=SR=200 | length | header<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| SSRC of sender |<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| NTP timestamp, most significant word | sender<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ info<br />

| NTP timestamp, least significant word |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| RTP timestamp |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| sender's packet count |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| sender's octet count |<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| SSRC_1 (SSRC of first source) | report<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block<br />

| fraction lost | cumulative number of packets lost | 1<br />

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| extended highest sequence number received |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| interarrival jitter |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| last SR (LSR) |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| delay since last SR (DLSR) |<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| SSRC_2 (SSRC of second source) | report<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block<br />

: ... : 2<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| profile-specific extensions |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

Figure 6 RTCP Sender-/Receiver Report packet [RFC1889]<br />

4.5 RTCP Goodbye packet<br />

The BYE packet indicates that one or more sources are no longer active. If a mixer<br />

(have a look at chapter 5.4) receives a BYE packet, the mixer forwards the BYE<br />

packet with the SSRC/CSRC identifier(s) unchanged. If a mixer shuts down, it should<br />

send a BYE packet listing all contributing sources it handles, as well as its own SSRC<br />

identifier.<br />

The available items are:<br />

o Version (V) 2 bits, currently version 2 is the latest<br />

o Padding (P) 1 bit, length: as described for the SR packet (have a look at<br />

chapter 4.4)<br />

Seite 15 von 25


The RTP Control Protocol (RTCP) Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

o Packet type (PT): 8 bits contains the constant 203 to identify this as an RTCP<br />

BYE packet.<br />

o Source count (SC): 5 bits the number of SSRC/CSRC identifiers included in<br />

this BYE packet. A count value of zero is valid, but useless<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|V=2|P| SC | PT=BYE=203 | length |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| SSRC/CSRC |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

: ... :<br />

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br />

| length | reason for leaving ... (opt)<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

Figure 7 RTCP Goodbye packet [RFC1889]<br />

4.6 Application-defined RTCP packet<br />

The APP packet is intended for experimental use as new applications and new<br />

features are developed, without requiring packet type value registration. APP packets<br />

with unrecognised names should be ignored.<br />

The available items are:<br />

o Version (V) 2 bits, currently version 2 is the latest<br />

o Padding (P) 1 bit, length: as described for the SR packet in chapter 4.4<br />

o Subtype: 5 bits allow a set of APP packets to be defined under one unique<br />

name, or for any application-dependent data.<br />

o Packet type (PT): 8 bits Contains the constant 204 to identify this as an RTCP<br />

APP packet.<br />

o Name: 4 octets A name chosen by the person defining the set of APP packets<br />

to be unique with respect to other APP packets this application might receive.<br />

The name is interpreted as a sequence of four ASCII characters, with<br />

uppercase and lowercase characters treated as distinct.<br />

0 1 2 3<br />

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

|V=2|P| subtype | PT=APP=204 | length |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| SSRC/CSRC |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| name (ASCII) |<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

| application-dependent data ...<br />

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br />

Figure 8 Application-defined RTCP packet [RFC1889]<br />

Seite 16 von 25


Application scenarios Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

5 Application scenarios<br />

5.1 Encapsulation of H.263<br />

As an introductory example, we will look at the encapsulation of H.263 video data<br />

into RTP packets.<br />

The RTP header consists of the fields that have already been explained in 3.4 and thus<br />

describes the payload transmitted (i.e. the H.263 video stream). The fields are defined<br />

according to the Payload Format Specification [RFC2190].<br />

The H.263 payload header is followed by the video stream itself. The format of the<br />

video stream is also described in the Payload Format Specification. The ideal solution<br />

would be to divide the output of the encoder into packets immediately. For this<br />

purpose, the H.263 bit stream itself is stored including a picture header in the RTP<br />

payload area. It is possible to transport RTP data over UDP, TCP or ATM.<br />

IP header UDP header RTP header RTP payload<br />

Figure 9 RTP data over UDP in an IP packet [Chu97]<br />

5.2 Simple Audio conference<br />

In order to build up an audio conference, all participants must agree on a multicast<br />

address and two port numbers for the RTP and RTCP packets. As RTP cannot<br />

negotiate this, other means like SIP, Mail, RTSP, H.323 are needed.<br />

During the conference, each participant wraps the audio data stream he generates in<br />

RTP packets of a fixed size. The RTP packets are then sent to the multicast address<br />

and forwarded to all participants by the network. Using the additional information<br />

each RTP packet contains besides the payload, the receiver puts the packets back into<br />

the correct order, synchronizes them, identifies the encapsulated data format and thus<br />

synthesizes the payload stream for the play back. For this purpose, each data source<br />

can be identified via its unambiguous marker (Synchronization Source, SSRC).<br />

As the bandwidth available for each participant can vary during the conference, each<br />

station sends RTCP packets periodically, conveying statistics on the QoS.<br />

Besides, every participant sends Metadata in certain time slices (unambiguous<br />

participant marker, real name, e-mail address, actual position, software etc.). As a<br />

result, data sources can be linked to participants and everyone recognizes other<br />

participants entering and leaving the conference. For security reasons, it is important<br />

to know, that listening in is possible if this transmission of reports is suppressed.<br />

Seite 17 von 25


Application scenarios Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

Participant 3<br />

Audio 3<br />

RTCP-SR-Packet<br />

SSRC: Audio 3<br />

Send Statistic<br />

Receive Statistic 1<br />

Receive Statistic 2<br />

Receive Statistic 4<br />

Participant 1<br />

Audio 1<br />

PCM<br />

Audio 2<br />

Participant 2<br />

Figure 10 Simple Audio conference [Boo00]<br />

RTP-Data Packet<br />

SSRC: Audio 4<br />

Datatyp: PCM<br />

Sequenceno.: 1350<br />

Timestamp: 8473841<br />

PCM-Header<br />

PCM-Payload<br />

5.3 Multiplexing of several media streams<br />

If each participant generates a data stream of individual media types (e.g. audio and<br />

video in a video conference), these are transmitted in separate RTP sessions. The<br />

streams are not multiplexed via a field in the RTP header as the “payload type“ or<br />

synchronization source“, but via their destination address (IP-address and port). This<br />

has technical reasons, as the implementation of the protocols would become more<br />

sumptuous, if it was required to provide a multiplexing mechanism by itself. As a<br />

result, if a participant sends another stream, this requires another pair of ports (one for<br />

RTP and one for RTCP). During the whole communication, different network paths<br />

and resources can be used. In addition, the data processing can be implemented in<br />

different processes. Besides, participants who cannot dispose of sufficient bandwidth<br />

can decide to forego one medium completely and e.g. receive only audio.<br />

Although the video and audio signals in our example are transmitted in separate<br />

sessions, they must be linked for the play back. They are linked to a certain participant<br />

via the unambiguous marker that is conveyed regularly via RTCP; the streams are<br />

synchronized using the time stamp in each RTP packet.<br />

Audio 4<br />

Participant 4<br />

Seite 18 von 25


Application scenarios Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

RTCP-SDES-Packet<br />

SSRC: Audio 3<br />

CNAME: Participant 3<br />

PRIV: Carsten Griwodz<br />

Participant 3<br />

Video 3 Audio 3<br />

RTCP-SDES-Packet<br />

SSRC: Video 3<br />

CNAME: Participant 3<br />

PRIV: Carsten Griwodz<br />

Audio 2<br />

Participant 1<br />

Video 1<br />

H.263<br />

Participant 2<br />

Audio 1<br />

Video 2<br />

RTP-Data Packet<br />

SSRC: Video 4<br />

Datatyp: H.263<br />

Sequenceno.: 4853<br />

Timestamp: 2947822<br />

H.263-Header<br />

H.263-Payload<br />

Figure 11 Multiplexing of several media streams [Boo00]<br />

5.4 Mixer<br />

In some cases it can make sense to combine data streams coming from several<br />

participants and forward them as one single data stream. This is the task of a so-called<br />

mixer.<br />

If the bandwidth of a participant or a participant group in an audio conference is low,<br />

a mixer can be put at the starting point of this network segment.<br />

Atlantic Ocean<br />

USA Europe<br />

Mixer<br />

Mixer<br />

Participant 4<br />

Video 4 Audio 4<br />

Figure 12 Transatlantic session as example for low bandwidth connections<br />

It combines the streams it receives by decoding the audio signals, mixes them and<br />

encodes the resulting data in a more compressed form before it forwards them in a<br />

new stream and also synchronizes them. The receiver of the newly generated stream<br />

can be a single participant or another multicast group.<br />

Thus the mixer itself becomes a data source and registers as Synchronization Source<br />

in the RTP header of each packet. Since the original packets are lost, the mixer adds a<br />

list of Contributing Sources (CSRC) to each packet, so that the receiver knows, where<br />

the mixed data originally came from.<br />

Seite 19 von 25


Application scenarios Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

Participant 3<br />

Audio 3<br />

Participant 1<br />

Audio 1<br />

PCM<br />

Audio 2<br />

Participant 2<br />

Figure 13 Mixer [Boo00]<br />

RTP-Data Packet<br />

SSRC: Audio 1<br />

Datatyp: PCM<br />

Sequenceno.: 3231<br />

Timestamp: 84922<br />

PCM-Header<br />

PCM-Payload<br />

RTP-Data Packet<br />

SSRC: Audio 2<br />

Datatyp: PCM<br />

Sequenceno.: 3482<br />

Timestamp: 54765<br />

PCM-Header<br />

PCM-Payload<br />

Mixer<br />

SSRC: Audio M<br />

SSRC: Audio 1<br />

SSRC: Audio 2<br />

SSRC: Audio 3<br />

Datatyp: PCM<br />

Sequenceno.: 9384<br />

Timestamp: 87892<br />

PCM-Header<br />

PCM-Payload<br />

Audio M RTP-Data Packet<br />

5.5 Translator<br />

Another element that can be used in RTP networks is a translator. It can change RTP<br />

packets in several ways, but in contrast to a mixer, it maintains their identity.<br />

Translators can for example change the payload format of streams packet wise<br />

without mixing them in order to serve connections with poor bandwidth or<br />

participants using different technologies. Another application area is the bypassing of<br />

firewalls: e.g. if a firewall does not allow multicast packets, an outside translator<br />

transmits incoming packets via unicast to an inside translator which forwards them via<br />

multicast to the internal participants.<br />

Participant 3<br />

Audio 3<br />

Participant 1<br />

Audio 1<br />

PCM<br />

Audio 2<br />

Participant 2<br />

Figure 14 Translator [Boo00]<br />

RTP-Data Packet<br />

SSRC: Audio 1<br />

Datatyp: PCM<br />

Sequenceno.: 3231<br />

Timestamp: 84922<br />

PCM-Header<br />

PCM-Payload<br />

Translator<br />

RTP-Data Packet<br />

SSRC: Audio 1<br />

Datatyp: MP3<br />

Sequenceno.: 1593<br />

Timestamp: 48458<br />

MP3-Header<br />

MP3-Payload<br />

Participant 4<br />

Audio 4<br />

MP3<br />

Audio 5<br />

Participant 5<br />

Audio 4<br />

Participant 4<br />

Participant 6<br />

Audio 6<br />

Seite 20 von 25


What is Komssys? Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

6 What is Komssys?<br />

6.1 Open Source<br />

Komssys [h:komssys] is the nickname for “KOM(S) RTSP/RTP streaming system”,<br />

while KOM is the nickname for KOM - Industrial Process and System<br />

Communication at Darmstadt University of Technology, Germany. This is combined<br />

with KOMS, the nickname for the Communication Systems research group at the<br />

University of Oslo, Department of Informatics, Norway.<br />

Because of its claim to be interoperable, based on open standards and build as state of<br />

the art technology, Komssys is released as GPL2 based Open Source Software. So<br />

anyone is able to use, redistribute and/or modify the source code to its own purposes.<br />

6.2 General Overview<br />

The KOM(S) Streaming System provides a server, a client, and a proxy cache for<br />

audio/video streaming.<br />

o The first and foremost encoding format that is used is MPEG-1 System.<br />

o The primary platform is Linux, but it also runs on AIX, Solaris, NetBSD,<br />

OpenBSD and Windows (Cygwin environment).<br />

o The whole project configuration is kde [h:kde] make and autoconf based.<br />

o It does not handle data in pull mode (i.e. HTTP and FTP) but uses RTSP/RTP<br />

(and Files). It uses RTSP as control protocol to communicate with possible<br />

streaming servers. The video data is transported via RTP.<br />

Figure 15 Client-server configuration overview [GZ01]<br />

o The proxy cache provides caching, patching [Bec01] and gleaning [Gri00]<br />

functionality.<br />

o It uses LC-RTP, which is an extension of RTP/RTCP, instead of simple RTP.<br />

LC-RTP enables the recipient to detect packet loss and complete contents by<br />

reordering the lost packets via Loss Collection (LC) for further details see<br />

[Jon99] and [The01].<br />

o On all working platforms, a rudimentary, but functional streaming server is<br />

available. On AIX 4.3, the server is able to act as a replacement RTSP server<br />

for IBM's VideoCharger [h:IBMchar].<br />

Seite 21 von 25


What is Komssys? Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

o As Figure 15 shows, the architecture is based on a finite state machine and a<br />

graph manager for dynamically handling the stream handlers as described in<br />

[GZ01].<br />

o The server can handle unicast as well as multicast sessions.<br />

o The client Graphical User Interface (GUI) is QT [h:trollqt] based.<br />

Figure 16 Screenshot of the QT GUI (currently version 0.2 is the latest)<br />

o The most recent version also supports RealPlayer 8 [h:real] in addition to<br />

PCMU- and MPEG-Systemstreams.<br />

o The greatest part of the project is documented with Doc++ [h:Doc++].<br />

o For reasons of versioning and quality assurance the project uses IBM<br />

Teamconnection [h:IBMTea].<br />

6.3 Other RTSP/RTP based systems<br />

Currently there are only a few well-implemented RTSP/RTP based streaming<br />

systems. Some of the RTSP based systems are listed at [h:rtsp]. Some RTP based<br />

streaming systems can be found at: [h:gstrm], [h:HGS] and [h:pmayo].<br />

Seite 22 von 25


References Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

References<br />

[Bec01] Ralf Becker, Konzeption und Implementation eines<br />

patchingfähigen Proxies für die KOM-Videostreaming-Umgebung,<br />

Studienarbeit, Technische Universität Darmstadt, März 2001.<br />

[Boo00] Matthias Book, Resource Reservation Protocol / Realtime<br />

Transport Protocol, Seminar Multimedia-Netzwerke, Universität<br />

Dortmund, Juli 2000.<br />

[Chu97] Chunlei Liu, Multimedia over IP: RSVP, RTP, RTCP, and RTSP,<br />

August 1997.<br />

http://www.cis.ohio-state.edu/~cliu/ipmultimedia/<br />

[DB95] L. Delgrossi and L. Berger, "Internet stream protocol version 2<br />

(ST-2) protocol specification - version ST2+," Request for<br />

Comments RFC 1819, August 1995. ST2 Working Group.<br />

[GZ01] Carsten Griwodz, Michael Zink, Dynamic Data Path<br />

Reconfiguration, In: International Workshop on Multimedia<br />

Middleware 2001, October 2001.<br />

[Gri00] Carsten Griwodz, Wide-area True Video-on-Demand by a Decentralized<br />

Cache-based Distribution Infrastructure, Dissertation,<br />

Fachbereich Informatik, Technische Universität Darmstadt, Juni<br />

2000.<br />

[GZ01b] Carsten Griwodz, Michael Zink, Cache Placement Optimization for<br />

Video Delivery Systems. Technical Report TR-KOM-2001-04,<br />

Darmstadt University of Technology, April 2001.<br />

[Gud00] Gunnar Gudmundsson, Design of a Multiformat Capable Cache for<br />

Videostreaming, <strong>Dipl</strong>omarbeit KOM-D-0121, Technische<br />

Universität Darmstadt, September 2000.<br />

[Kar00] Martin Karsten, Design and Implementation of RSVP based on<br />

Object-Relationships, Technische Universität Darmstadt, May<br />

2000.<br />

[Jon99] Alex Jonas, Integration von Loss-Collection-RTP (LCRTP) in eine<br />

VoD-Architektur, <strong>Dipl</strong>omarbeit KOM-D-0093, Technische<br />

Universität Darmstadt, November 1999.<br />

[Mit96] Joan L. Mitchell, MPEG video compression standards, Chapman<br />

and Hall, 1996.<br />

[RFC1034] P. Mockapetris, Domain names - Concepts and Facilities, RFC<br />

1034, IETF, November 1987.<br />

[RFC1035] P. Mockapetris, Domain names – Implementation and<br />

Specification, RFC 1035, IETF, November 1987.<br />

[RFC1123] R. Braden, Requirements for Internet Hosts -- Application and<br />

Support, RFC 1123, IETF, Oktober 1989.<br />

[RFC1597] Y. Rekhter, B. Moskowitz, D. Karrenberg, G. de Groot, Address<br />

Allocation for Private Internets, RFC 1597, IETF, March 1994.<br />

[RFC1738] T. Berners-Lee, L. Masinter, M. McCahill, Uniform Resource<br />

Locators (URL), RFC 1738, IETF, December 1994.<br />

Seite 23 von 25


References Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

[RFC1889] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, RTP: A<br />

Transport Protocol for Real-Time Applications, RFC 1889, IETF,<br />

Januar 1996.<br />

[RFC1890] H. Schulzrinne, RTP Profile for Audio and Video Conferences with<br />

Minimal Control, RFC 1890, IETF Januar 1996.<br />

[RFC2190] C. Zhu, RTP Payload Format for H.263 Video Streams, RFC 2190,<br />

IETF, September 1997.<br />

[RFC2205] R. Braden, Ed., L. Zhang, S. Berson, S. Herzog, S. Jamin,<br />

Resource ReSerVation Protocol (RSVP) -- Version 1 Functional<br />

Specification, RFC 2205, IETF, September 1997.<br />

[RFC2474] K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the<br />

Differentiated Services Field (DS Field) in the IPv4 and IPv6<br />

Headers", RFC 2474, IETF, December 1998.<br />

[RFC2475] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss,<br />

"An Architecture for Differentiated Services", RFC 2475, IETF,<br />

December 1998.<br />

[SDW92] W.T. Strayer, B.J. Dempsey, A.C. Weaver, "XTP: The Xpress<br />

Transfer Protocol", Addison-Wesley, Reading, Mass 1992, ISBN<br />

0-201-56351-7, more recent documents still available at<br />

http://www.ca.sandia.gov/xtp/biblio.html<br />

[Ste00] Ralf Steinmetz, Multimedia-Technologie: Grundlagen,<br />

Komponenten und Systeme,3. überarb. Aufl., Springer-Verlag,<br />

2000.<br />

[T1.627] ATM: ANSI Standard T1.627, Broadband ISDN - ATM Layer<br />

Functionality and Specification.<br />

[Tan98] Andrew S. Tanenbaum, Computernetzwerke,Prentice-Hall, 1998.<br />

[The01] Steffen Theiß, Konzeption und Implementierung eines Multiformatfähigen<br />

Proxycaches für die KOM-VoD-Umgebung, Studienarbeit,<br />

Technische Universität Darmstadt, Juni 2001.<br />

[WGP99] Wang, C., Goebel, V., Plagemann, T.: Techniques to Increase Disk<br />

Access Locality in the Minorca Multimedia File System (short<br />

paper), to be published in Proceedings of the seventh ACM<br />

Multimedia Conference (ACM Multimedia'99), Orlando, Florida,<br />

USA, October 1999.<br />

[ZGS01] Michael Zink, Carsten Griwodz, Ralf Steinmetz. KOM Player - A<br />

Platform for Experimental VoD Research. In: Proceedings of the<br />

6th IEEE Symposium on Computers and Communications, July<br />

2001.<br />

[ZJGS00] Michael Zink, Alex Jonas, Carsten Griwodz, and Ralf Steinmetz.<br />

LC-RTP (Loss Collection RTP): Reliability for Video Caching in<br />

the Internet. In: Proc. of 7th Int'l Conf on Parallel and Distributed<br />

Systems (ICPADS): Workshops, pages 281-286. IEEE, Piscatay<br />

Way, NJ, USA, July 2000. ISBN 0-7695-0571-6.<br />

Seite 24 von 25


HTTP References Praxisbericht 4<br />

<strong>Olaf</strong> <strong>Beier</strong><br />

TIT 99 BGR<br />

HTTP References<br />

[h:Doc++] http://www.linuxsupportline.com/~doc++/<br />

[h:facpat] http://sern.ucalgary.ca/~kebrown/seng60904/wk4/factory.htm<br />

[h:gstrm] http://www.gstreamer.net<br />

[h:HGS] http://www.cs.columbia.edu/~hgs/rtp/<br />

[h:IBMchar] http://www-4.ibm.com/software/data/videocharger<br />

[h:IBMTea] http://www-4.ibm.com/software/ad/teamcon/<br />

[h:IETF] http://www.ietf.org/<br />

[h:kde] http://www.kde.org/<br />

[h:komssys] http://www.kom.e-technik.tu-darmstadt.de/kom-player/<br />

[h:komrsvp] http://www.kom.e-technik.tu-darmstadt.de/rsvp/<br />

[h:pmayo] http://www.projectmayo.com<br />

[h:trollqt] http://www.trolltech.com/<br />

[h:real] http://www.real.com/<br />

[h:RFC] http://www.ietf.org/rfc.html<br />

[h:rtsp] http://www.rtsp.org<br />

[h:sgixfs] http://oss.sgi.com/projects/xfs/1.0_source.html<br />

[h:strserv] http://www.streamingserver.com/<br />

Seite 25 von 25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!