Helsinki University of Technology Department for Electrical and Communications Engineering Networking Laboratory

S-38.3150 Networked Multimedia Protocols and Services

Overview

The course Networked Multimedia Protocols and Services addresses transport and control protocls for IP-based environments. We will start with the Internet Multimedia Communication Architecture and then address the individual components in quite some depth. This will include RTP and RTCP, SAP and SDP as well as the more recent Internet Media Guides, and media streaming protocols. A strong focus will be on the Session Initiation Protocol (SIP) including its architecture, signaling details, security, NAT & firewall traversal, service creation, presence, and telephony/conferencing.

The cource will combine lectures with practical coding assignments. The latter are meant to improve familiarity with protocol operation and implementation in a few selected areas. Coding assignments are to be done in small groups of two or three students. Practical assignments can be done as a follow-up on this course.

Lectures and exercises

Lectures will be held: Tuesday 10-12 (S1) and Thursday 10-12 (S1).
Exercises will be held: Wednesday 14-16 (S1).

Three of the exercise dates will be used for lectures to make up for some an interruption due to the 64th IETF in Vancouver.

Exam results for Tuesday, 13 December 2005, 13-16.
Exam results for Thursday, 12 January 2006, 9-12.

The next exam will be on 07.03.2006, 16-19, S4. Don't forget to REGISTER until 05.03.2006, 23:59.

The lectures, exercises, and the exam will in English language.

Requirements and Grading

To pass the course, the first two coding assignments must be completed, the third one is optional. There will be no grades on the assignments but working code is required to pass (and doing the exercises is likely to help understanding for the written exam as well).

The final review date for the assignments will be 27 February 2006. Please complete your assignments and email them to me beforehand.

The final grade will be determined by the written exam.

Time Table

Week Tuesday (L) Wednesday (E) Thursday (L)
44 (31.10.-04.11.) Introduction, Administrivia
Multimedia Applications
Packet Real-time Basics
Coding for Communication Applications
Assignment 1 (warmup)

(textual description)
Real-time Transport Protocol (RTP)
Selected RTP Payload Formats
45 (07.11.-11.11.) IETF break IETF break IETF break
46 (14.11.-18.11.) Session Announcement Protocol (SAP)
Session Description Protocol (SDP)
Media capabilities and negotiation>
Assignment 2
Sample RTSP message exchange
Internet Media Guides (IMGs)
Internet Streaming
Real-time Streaming Protocol (RTSP)
47 (21.11.-25.11.) Session Initiation Protocol (SIP):
History, Architecture, Terminology

Basic signaling: session setup & teardown
Advanced Signaling
Media sessions in SIP

Registration, user & server location
Security for IP-based Multimedia
Media security
SIP security
48 (28.11.-02.12.) Issues with NATs and Firewalls
SIP-specific support for NAT traversal
General mechanisms: STUN, TURN, ICE
Assignment 3
SIP service creation architecture
Interfaces, application servers
Notes and exam hints (1)
SIP for Presence and Instant Messaging
Presence formats and presence aggregation
49 (05.12.-09.12.) Independence day SIP for telephony
Centralized multimedia conferencing
Video and data applications
SIP and the real world:
Legal and deployment aspects
Exam hints
50 (12.12.-16.11.) Exam 13-16 (S5)

Note that the slides of weeks 47, 48, and 49 are only accessible from workstations within the university network.

Assignments

Note that the assignments 1 and 2 have only indicative deadlines; these are the handout dates of the next respective assignment.
Please return the assignments by sending me an email with a tar or zip file containing the source code.
The review session for the assignments will be on Friday, 27.01.2006, 9-11 and 16-18. Please send an email to agree on a 20min slot on that day.

Note also that the code and the media files below are only accessible from workstations within the university network. Please use SSH tunnels and proxies when accessing from the outside.

  1. udpspy: Textual description     Slides

    A test sender is transmitting packets of some 116-120 bytes (depending on the sequence number) from IP address 130.233.154.27 to the multicast address 226.226.226.226 at port 62226 in one second intervals. The packets start with a binary encoding sequence number (32 bits) followed by a binary encoded timestamp (64 bits) and then contains the same information plus some further text as plain text representation. The packets always end with 0x0a 0x00.
    A second test sender is running on solomon.hut.fi multicasting to the same address as above. The multicasts should be received by hosts in the network 130.223.151/24.
    For other subnetworks with Sun workstations, a binary copy of the test sender udpsnd4 is available at ~jott/nmps/bin/udpsnd4. Or choose one of the following:

    Use udpsnd4 -a IP-addr -p port to send a packet stream of one packet per second vis unicast or multicast (depending on the address specified).

  2. udp2rtsp: Textual description     Slides     Some notes

    For testing in this assignment, we do not provide permanent media streams for tapping into since the a/v data rates are usually more disturbing (so, please remember to kill your own test senders whenever you stop testing). Instead, the following tool mpegStreamer multicasts an MPEG-1 video stream in CIF format at 30 frames per second to the IP multicast address 239.255.42.42 on port numbers 8888 (RTP) and 8889 (RTCP). An audio stream will be multicast to the same address at ports 6666 (RTP) and 6667 (RTCP).

    New: You may provide a target IP address to send the media stream(s) to in dotted decimal notation on the command line. If none is given, the above multicast address will be used. Port numbers will be 6666/7 and 8888/9 in either case.

    The MPEG-1 (or MPEG-2) media file to be streamed must be named test.mpg and be located in the directory where you are invoking testStreamer. You can use arbitrary MPEG-1 or MPEG-2 media files. The following two MPEG-1 samples contain only video data:

    They work fine with, e.g., RealPlayer but should also work with other media players as MPEG-1 and MPEG-2 are commonly supported.

  3. udp2sip: Textual description     Slides

Material

The lecture material (slides) will be available in digital format (PDF) from this web page.

While there are many books on SIP and related standards, only few of them turn out to be really useful (rather than, e.g. outdated).
For IP-based multimedia communications in general, there are not even many books (worth mentioning). A notable exception is: Colin Perkins, "RTP: Audio and Video for the Internet", Addison-Wesley, June 2003, ISBN 0-672-32249-8 (which, however, only covers a fraction of the course).

Therefore, rather than relying on books, we recommend to stick with primary material — in this case: RFCs and Internet Drafts — to which we will point for the individual lectures as far as possible. For parts of the coding assignments, it is essential read through pieces of the original documentation to properly interpret packet formats or protocol processing rules.

The following RFCs are likely to be useful (not just) for assignments 2 and 3. The Internet Drafts on RTSP and SDP just provide a view on the latest developments but today's client and server implementations will most likely stick to the respective RFCs.

Finally, some useful links to the various (IETF) working groups

© 2005 Joerg Ott - Last modified: $Id: index.html,v 1.44 2006/02/14 21:38:19 jo Exp $