TSIN02 - Internetworking

Similar documents
TSIN02 - Internetworking

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006

Transporting Voice by Using IP

Multimedia Protocols. Foreleser: Carsten Griwodz Mai INF-3190: Multimedia Protocols

Real Time Protocols. Overview. Introduction. Tarik Cicic University of Oslo December IETF-suite of real-time protocols data transport:

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007

CS519: Computer Networks. Lecture 9: May 03, 2004 Media over Internet

Internet Streaming Media

CSCD 433/533 Advanced Networks Fall Lecture 14 RTSP and Transport Protocols/ RTP

RTP. Prof. C. Noronha RTP. Real-Time Transport Protocol RFC 1889

Outline. Multimedia is different Real Time Protocol (RTP) Session Description Protocol (SDP) Session Initiation Protocol (SIP)

Multimedia in the Internet

Kommunikationssysteme [KS]

Multimedia Communication

Internet Streaming Media

Real-time Services BUPT/QMUL

Popular protocols for serving media

Lecture 6: Internet Streaming Media

Lecture 7: Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007

Lecture 7: Internet Streaming Media

On the Scalability of RTCP Based Network Tomography for IPTV Services. Ali C. Begen Colin Perkins Joerg Ott

Digital Asset Management 5. Streaming multimedia

Real-time Services BUPT/QMUL

in the Internet Andrea Bianco Telecommunication Network Group Application taxonomy

Mohammad Hossein Manshaei 1393

Multimedia networks. Additional references. Jargon. Analog to Digital (S5 4.3) KR: Kurose and Ross chapter 7 (KR3: 3 rd ed)

RTP/RTCP protocols. Introduction: What are RTP and RTCP?

RTP: A Transport Protocol for Real-Time Applications

13. Internet Applications 최양희서울대학교컴퓨터공학부

Multimedia Applications. Classification of Applications. Transport and Network Layer

EDA095 Audio and Video Streaming

4 rd class Department of Network College of IT- University of Babylon

Lecture 14: Multimedia Communications

Real-Time Transport Protocol (RTP)

Introduction to Networked Multimedia An Introduction to RTP p. 3 A Brief History of Audio/Video Networking p. 4 Early Packet Voice and Video

RTP Profile for TCP Friendly Rate Control draft-ietf-avt-tfrc-profile-03.txt

CS 218 F Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness. References:

Computer Networks. Wenzhong Li. Nanjing University

Multimedia Networking

Transporting Voice by Using IP

CSC 4900 Computer Networks: Multimedia Applications

Outline. QoS routing in ad-hoc networks. Real-time traffic support. Classification of QoS approaches. QoS design choices

Transport protocols Introduction

Overview. Slide. Special Module on Media Processing and Communication

AIMD (additive-increase, multiplicative-decrease),

Multimedia networking: outline

Z24: Signalling Protocols

RTP: A Transport Protocol for Real-Time Applications

Streaming (Multi)media

EDA095 Audio and Video Streaming

Department of Computer Science. Burapha University 6 SIP (I)

RTP model.txt 5/8/2011

Provide a generic transport capabilities for real-time multimedia applications Supports both conversational and streaming applications

File transfer. Internet Applications (FTP,WWW, ) Connections. Data connections

Multimedia Networking

EDA095 Audio and Video Streaming

Transport Protocols. ISO Defined Types of Network Service: rate and acceptable rate of signaled failures.

CS640: Introduction to Computer Networks. Application Classes. Application Classes (more) 11/20/2007

Video Streaming and Media Session Protocols

Using RTSP with Firewalls, Proxies, and Other Intermediary Network Devices

TSIN02 - Internetworking

Protocols for Multimedia on the Internet

Multimedia Networking

ETSF10 Internet Protocols Transport Layer Protocols

Mul$media Networking. #5 Real- Time Transport Protocol Semester Ganjil 2012 PTIIK Universitas Brawijaya

Networking Applications

CS High Speed Networks. Dr.G.A.Sathish Kumar Professor EC

Congestion Feedback in RTCP

Telecommunication Services Engineering Lab. Roch H. Glitho

Request for Comments: dynamicsoft H. Schulzrinne Columbia University August 2001

Real-Time Control Protocol (RTCP)

Quality of Service. Qos Mechanisms. EECS 122: Lecture 15

Today. March 7, 2006 EECS122 Lecture 15 (AKP) 4. D(t) Scheduling Discipline. March 7, 2006 EECS122 Lecture 15 (AKP) 5

Multimedia! 23/03/18. Part 3: Lecture 3! Content and multimedia! Internet traffic!

Part 3: Lecture 3! Content and multimedia!

Chapter 28. Multimedia

MISB EG Motion Imagery Standards Board Engineering Guideline. 24 April Delivery of Low Bandwidth Motion Imagery. 1 Scope.

Multimedia Networking Communication Protocols

Transporting audio-video. over the Internet

Request for Comments: 5109 December 2007 Obsoletes: 2733, 3009 Category: Standards Track. RTP Payload Format for Generic Forward Error Correction

Real-Time Protocol (RTP)

Voice over IP (VoIP)

Advanced Computer Networks

Multimedia Communications

Service/company landscape include 1-1

Lecture 9: Media over IP

MISB RP 1302 RECOMMENDED PRACTICE. 27 February Inserting KLV in Session Description Protocol (SDP) 1 Scope. 2 References

IP Telephony. Course scope - lecture scope

Advanced Communication Networks

Internet Technologies for Multimedia Applications

陳懷恩博士助理教授兼所長國立宜蘭大學資訊工程研究所 TEL: # 255

Session Initiation Protocol (SIP) Overview

Lec 17 Multimedia Transport: RTP, TCP/HTTP and QUIC

RTP Protocol Transport of H.264 Video and MPEG I/II Layer 3 Audio

INSE 7110 Winter 2009 Value Added Services Engineering in Next Generation Networks Week #2. Roch H. Glitho- Ericsson/Concordia University

Multimedia Streaming Protocols RTSP/RTP RTCP. Prof. Lin Weiguo Copyleft 2009~2017, School of Computing, CUC

Socket Programming Assignment 6: Video Streaming with RTSP and RTP

Series Aggregation Services Routers.

Chapter 9. Multimedia Networking. Computer Networking: A Top Down Approach

Multimedia Applications. Internet Technologies and Applications

Transcription:

Lecture 7: Real-time Streaming Literature: Fouruzan ch. 28 RFC3550 (Real-time Protocol) RFC2327 (Session Description Protocol) RFC2326 (Real-time Streaming Protocol) 2004 Image Coding Group, Linköpings Universitet Ver 1.00 Jonas Svanberg

Lecture 7: Real-time Streaming Goals: Understand real-time Be aware of the problems of Synchronization Jitter and their solutions Understand the RTP architecture of senders, receivers, mixers and translators Understand some uses for the sister protocol RTCP. Understand how synchronization is achieved in RTP Know about SDP and RTSP 2

Lecture 7: Real-time Streaming Outline: Real-time communication in general Synchronization RTP Terminology Header structure Transport Interleaving RTCP (Real-time Control Protocol) RTP Synchronization Model SDP Session Description Protocol RTSP Real-time Streaming Protocol 3

Real-time definition What means real-time? Real-time communication: No noticeable delay Real-time application: An application able to have a sustained processing of a temporal data stream Without having queues building up With reasonable sustained quality level But - there is of course always delay to some extent! Different communication scenarios may have different sensitiveness to delay. 4

Real-time Communication Real-time communication involving humans typically fall into at least one of the following two categories: Dialog situation - when a user has some kind of a interaction with other user(s) or machines Telephony TV query shows where you may phone. Some dialogs like controlling a VCR is not so delay sensitive... Moment sharing the feeling of me sharing a unique event with possibly other humans. Notion of being among the select few who first know what's going on. TV sports broadcast Order of tenths of a second Order of seconds usually ok 5

Real-time Scenario Transmitter Reference Clock 02:05:00124 Receiver Reference Clock 02:06:16126 Jitter makes the packets arrive irregularly Coder Buffer Decoder Frames created regularly at frequency f Network induces delay and jitter Buffer smooths out the effect of jitter 6

Typical Design Decisions When having real-time communication we usually Skip retransmission The time it takes to send ACK:s/NACK:s upstream and wait for the lost packet may cost to much in delay. Skip flow control Receiver should be a real-time application being able to cope with the (bounded) rate the sender transmits at. Also if we have a broadcast scenario no or little upstream communication can be had. 7

Technical Issues There are two fundamental issues when designing a real-time communications system: 1) Synchronization. Sender and receiver needs to be synchronized to each other to avoid re-occurring buffer over-flows and under-runs Essentially having the sender and receiver following a clock at exactly the same frequency. 2) Jitter. Jitter is the varying of the packet-delay around the mean delay. Jitter is usually caused by the network, but could also result from processing stages in the sender that varies in time. The larger the jitter the larger the buffer at the receiver-side has to be. 8

Achieving Synchronization 1) Implicit synchronization The receiver buffer level is used to control the speed of play-out. The most simplistic approach is to throw away suitable input at buffer over-flow and interpolate at buffer under-run 2) Global synchronization Transmitter and receiver can be part of a global synchronization system like NTP (Network Time Protocol) 3) Point-to-point synchronization Receiver need to now from the syntax of the received data stream when certain bits should have been sent in relation to other synchronization points. Using the arrival-times of these bits the receiver employs a smoothing algorithm like PLL (Phase Locked Loop) to slave a local clock to the transmitter's system clock. 9

Implicit Synchronization - Example Assume the receiving buffer is of size N bytes Assume data is sent isochronously in packets of size M < N bytes. Buffer utilization Buffer overflow: Receiver throws away this packet! Packets do not arrive at regular time instants = jitter Packets are moved forward in buffer Receiver starts play-out M Receiver empties buffer too slowly due to a lower frequency of the system clock N time Here the discarded packet was supposed to be played-out 10

Point-to-point Synchronization Example MPEG Systems 27MHz 299 000 Program Clock Reference (PCR) Coder 33bit 90kHz 9bits A PCR time stamp is inserted in header at least every 100ms. (Once every 1700 packet is enough when we have a 40 Mbit/s TS) Coder Coder MUX MPEG Transport Stream (MPEG-TS) at 40 Mbit/s 188 bytes Coder 11

IETF Audio/Video Transport The avt working group has defined the Real-Time Protocol (RTP) for multimedia transport (RFC3550) Collect common fields for synchronization, packet ordering and data format in one header. Different applications may reuse same RTP-stack with respect to the above mentioned parameters Thanks to the type identifier a library or a host may safely determine the format of incoming streams and provide the same service for various formats. See translation and mixing 12

RTP does not......guarantee Bandwidth Low jitter RTP is strictly an end-to-end protocol. Network guarantees on bandwidth, jitter etc is up to separate quality-of-service mechanisms. 13

RTP Terminology RTP Session The set of communicating entities which may via RTP and RTCP know of each other's identities. Synchronization Source The origin of a stream where RTP-packets are generated. Identified by a 32-bit number: SSRC. Translation The act of converting a stream to another format and/or rate. Mixing The act of adding two or more streams together and encode the result into a new stream (with new SSRC). 14

RTP Oneway Unicast Example SSRC:1 sending a single media stream to SSRC:2 SSRC:1 RTP RTCP RTCP SSRC:2 There will be three streams. The RTP stream carries the media. Two RTCP (Real-Time Control Protocol) in each direction carries extra control information. It is recommended that the RTCP traffic only adds an extra 5% to the RTP bandwidth. 15

RTP Translation Example This server is a SIP-proxy and also redirects RTP session ports to go through the server instead (thereby passing the firewall). The server can then add Privacy by encryption Translation services. I.e., - transcoding of formats not understood by client - bit-rate conversion Terminals only supporting H.263 video firewall weak terminals only supporting low quality rates. 16

RTP Mixing Example SSRC: 2 This machine is mixing together the separate video streams into one video stream which is multicast back to members SSRC: 4 SSRC: 10 CSRC: (2,4,5,12) SSRC: 5 SSRC: 12 17

RTP Header ver P X CC M payload type sequence number timestamp synchronization source identifier (SSRC) Fixed part contributing source identifiers (CSRC) (optional) payload padding 18

Synchronization Source Identifier Every RTP packet is market with 32-bit number identifying a single timing and sequence number space SSRC provides a transport layer independent tag. RTP may run over various protocols (Ipv4, Ipv6, ATM) SSRC must be unique among all hosts taking part in the RTP session SSRC is picked randomly, but sender must in case of a detected collision issue a BYE message over the control channel and change SSRC. ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) paylo ad padding 19

Contributing Source Identifiers When a mixer creates a new stream out of others it may include the SSRC:s of up to 15 of the contributing sources. CC-field denotes the number of source identifiers in CSRC field. Using CSRC is a safety measure against loops in a RTP streaming session ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) paylo ad padding 20

Payload The payload type (7 bits) indicate the format of the media put into the payload area. Compared to the number of codecs out there one realizes that assigning the payload type from the dynamic range might be common. It is then up to the session handling mechanism to inform parties about the type used. A flow can only carry one payload type. But the type can change. Each payload type has a reference clock frequency associated with it. ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) paylo ad padding 21

RTP Payload Types (RFC3551) PT A/V Clock Freq Channels MIME-type Description 3 audio 8000Hz 1 audio/gsm 13.2bps speech coder 10 audio 44100Hz 2 audio/l16 two-channel CD-style 11 audio 44100Hz 1 audio/l16 one-channel CD-style 14 audio 90kHz special audio/mpa MPEG audio layer 1,2,3 26 video 90kHz - video/jpeg Motion-JPEG 32 video 90kHz - video/mpv MPEG-1,2 elementary stream 33 a/v 90kHz special video/mp2t MPEG-2 transport stream 34 video 90kHz - video/h263 H.263 video telephony 35-71 unassigned 72-76 reserved 77-95 unassigned 96-127 dynamic Upcoming: AMR / AMR-WB speech codec used in 3G mobile system Motion-JPEG2000 H.264 video codec (The new MPEG-4 AVC profile) DV audio/video MPEG-4 Elementary streams etc. etc. 22

Timestamp 32-bit resolution Indicates the sampling instant of first octet of payload data. The mapping from transmitter's reference clock to timestamp is defined by payload type. Initial value is random Clock resolution should be enough to support synchronization and jitter measurements based on timestamp alone. ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) paylo ad padding Note that sender also transmits timestamps of wall clock time in RTCP sender reports. These are needed to synchronize two or more streams with each other 23

Sequence Number Each packet has a 16-bit sequence number Increases with one for each new sent packet. Starts with a random value ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) Used to detect packet loss. Need not be related to play-out order Basic RTP does not provide error correction FEC extensions exist limited ARQ profile exist paylo ad padding 24

Marker bit Marks this packet as special in a sense defined by payload type. May be set in speech formats for indicating talk starts again after a period of silence (or comfort noise) Most video formats specify the marker bit to be set to 1 in the last packet for a frame. This gives a simple indication that it is time to display. ver P X CC M paylo ad type s equence number times tamp s ynchro nizatio n s o urce identifier (SSRC) contributing source identifiers (CSRC) (optional) paylo ad padding 25

RTP Embedding RTP is designed to run over any packet switched network. On Internet we use UDP/IP. IP-header 20 8 12 UDP header RTP header payload The overhead per RTP packet will be 40 bytes. This is sometimes seen as too excessive and several header compression techniques have been suggested: RObust Header Compression (ROHC) RFC3095 Enhanced Compressed RTP (CRTP)- RFC3545 IP Header Compression RFC2507 (LuTH) 26

RTP Interleaving How to mix audio and video? Same session, different SSRC Does not support different QoS profiles Impossible in a multicast scenario to join just the audio stream (for instance) Different sessions, same SSRC works ok. SSRC:s totally unrelated Different sessions, different SSRC works ok. SSRC:s totally unrelated 27

Real-time Control Protocol (RTCP) Some of the functions of the sister-protocol RTCP are: Provide feed-back of the reception quality Carry a persistent identifier for a RTP source. Carry NTP timestamps enabling inter-media synchronization. Keep track of number of participants so that RTCP can scale (i.e., lower the rate at which control messages is sent) Optional minimal session control. Note: If RTP data is sent to the UDP-port P (should be even) RTCP messages should be sent on port P+1. 28

RTCP Compound Packets Several RTCP packets are concatenated to form one compound packet. These will at least contain two individual packets (SR/RR and a SDES). Sender OR Receiver Report (SR/RR) (Additional Receiver Reports).... Source Description (SDES) BYE or APP packet (optional) There is a also an encryption option which is skipped here 29

RTCP Sender Report (SR) No of receiver reports ver P RC M PT = SR = 200 length SSRC of sender NTP timestamp (most significant word) sender info NTP timestamp (least significant word) RTP timestamp sender's packet cound sender's octet count SSRC_1 (SSRC of first source) fraction lost cumulative number of packets lost Receiver report block 1 extended highest sequence number received inter-arrival jitter last sender report NTP timestamp (middle 32 bits) delay since last sender report (65536Hz accuracy) 30

RTCP Receiver Report (RR) ver P RC M PT = RR = 201 length SSRC of sender SSRC_1 (SSRC of first source) fraction lost cumulative number of packets lost Receiver report block 1 extended highest sequence number received inter-arrival jitter last sender report NTP timestamp (middle 32 bits) delay since last sender report (65536Hz accuracy) When participant in an RTP-session only receives flow we skip the sender information block. Note that a receiver need to have an SSRC anyway! A problem here is to which address and port do we send our RTCP messages! If it's a multicast session on UDP(IP#, port) we send them to UDP(IP#,port+1), but if it's a unicast session the RTCP upstream IP# and port has to be configured by a higher level session protocol. 31

RTCP Source Description (SDES) No of SSRC/CSRC chunks ver P SC M PT=SDES=202 length Chunk 1 Chunk 2 SSRC / CSRC_1 SDES items... SSRC / CSRC_2 SDES items... SDES information blocks must be sent by every sender. It gives some textual information regarding the flow. The flow might possibly be the result of mixing in which case information for each mixed flow is present. An SDES item looks like item code length UTF-8 string 32

SDES Items CNAME (1) NAME (2) EMAIL (3) PHONE (4) LOC (5) TOOL (6) NOTE (7) PRIV (8) Mandatory Item. Should uniquely identify the source. Name should be algorithmically derived from e.g., host IP. Flows from different RTP sessions but with the same CNAME indicates inter-media synchronization. User Name. Ex: John Doe, Bit Recycler Electronic mail address according to RFC2822. Phone number with a + replacing int. access code. Geographic user location. Ex: Room 473 1tr A-hus. Name and optionally version of application generating the flow Transient message describing state of source. Experimental or application specific. Has another syntax for the UTF-8 string field. 33

RTP Synchronization 1 Global Synchronization reference clock RC1 reference clock RC2 NTP global cloud wall clock time Different RTP sessions on same host SSRC: 1 RTCP SSRC: 1 (NTP1, RTP1) SSRC: 3 SSRC: 2 RTCP SSRC: 3 (NTP3, RTP3) RTCP SSRC: 2 (NTP1, RTP2) reference clock RC3 RTCP SR packets determines the RTP timestamps' relation to the global wall clock time. Synchronization between (1,2) and (3) may be inexact due to bad NTP inaccuracy. receiver 34

RTP Synchronization 2 Inter-media synchronization in absence of global synchronization. reference clock RC1 reference clock RC2 SSRC: 2 SSRC: 1 RTCP SSRC: 1 (NTP1, RTP1) CNAME: a.b.c.d SSRC: 3 Receiver sees that CNAME:s are the same for SSRC:1 and 2. RTCP SSRC: 2 (NTP1, RTP2) CNAME: a.b.c.d Receiver then knows these flows use the same reference clock and can achieve point-to-point synchronization with RC1 using timestamps from both flows. SSRC: 1 and 2 may be played out in absolute synch! RTCP SSRC: 3 (NTP3, RTP3 ) CNAME: e.f.g.h receiver 35

Session Description Protocol (SDP) RFC2327 MIME-type: application/sdp SDP conveys information needed to join one or more multimedia sessions Session name and purpose Time(s) when session is active What media is involved Information on how to receive those media (addresses, ports, formats etc.) Optionally bandwidth requirements Optionally how to contact person responsible 36

SDP Syntax (selected parts) Information is in human readable form coded using UTF-8 encoded Unicode character set. Session description v= (protocol version) o= (owner/creator and session identifier). <username> <session id> <version> <network type> <address type> <address> s= (session name) i=* (session information) <more optional fields> <One or more time descriptions> a=* (zero or more session attribute lines) Time description t= (time the session is active) r=* (zero or more repeat times) Media description m= (media name and transport address) i=* (media title) c=* (connection info - optional if included at session-level) b=* (bandwidth information) k=* (encryption key) a=* (zero or more media attribute lines) 37

SDP Example v=0 o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 s=sdp Seminar i=a Seminar on the session description protocol u=http://www.cs.ucl.ac.uk/staff/m.handley/sdp.03.ps e=mjh@isi.edu (Mark Handley) c=in IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 49170 RTP/AVP 11 m=video 51372 RTP/AVP 32 m=application 32416 udp wb a=orient:portrait Note that an SDP-session is not the same as an RTP session. The three medias above will flow into three parallel RTP sessions on different UDP ports but to the same (multicast) address. 38

Real-time Streaming Protocol (RTSP) RFC2326 Network remote control for multimedia servers Mimics HTTP. Example of the rtsp: URI: Well-know port 554. rtsp://videoserv.liu.se/filmtest/audio RTSP is state-ful while HTTP is state-less. An RTSP session typically contains state such as: One of {Init, Ready, Playing, Recording} PLAY-commands are queued at server A PAUSE may be set to appear at a specific time for many URI:s at the same time! 39

RTSP Client to Server Methods SETUP DESCRIBE PAUSE PLAY RECORD SET_PARAMETER GET_PARAMETER ANNOUNCE OPTIONS TEARDOWN Agree on how a single media should be streamed. Addresses, protocols etc. (in an on-demand scenario also ports for upstream RTCP messages) Request session description data Pause the indicated URI Start play-back of indicated URI Tell server to start record from previously given invitation. Generic method for setting stream params Generic method for reading stream params Send session information for later recording Query URI for supported methods Stop streaming and free resources 40

RTSP Session Setup A client may connect to a RTSP server and query different URI:s via DESCRIBE-calls. When client first issues a SETUP-call for a certain media URI an RTSP-session is initiated, Client->S: SETUP rtsp://foo/twister/video RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=8002-8003 Server->C: RTSP/1.0 200 OK CSeq: 3 Transport: RTP/AVP;unicast;client_port=8002-8003; server_port=9004-9005 Session: 12345678 This is indicated by the Session: field in the server response. The client should in future requests include this in header. The session identifier should be a randomly created string with at least 8 characters. 41

SDP Pointing out RTSP An SDP session description might point out media as a set of RTSP controlled resources. v=0 o=- 2890844256 2890842807 IN IP4 204.34.34.32 s=i came from a web page t=0 0 c=in IP4 0.0.0.0 m=video 8002 RTP/AVP 31 a=control:rtsp://rtspserv.com/movie.aud m=audio 8004 RTP/AVP 3 a=control:rtsp://rtspserv.com/movie.vid Note that the m= sections does not convey any address/port information for how media is streamed. This is left to the SETUP-call. This kind of SDP-data could be given from a HTTP-request but can also be the result of a DESCRIBE-call for a specific RTSP URI. 42

RTSP Presentation Each rtsp: URI correspond to a presentation. A presentation is one of two things A single media A container file consisting of one or more submedias To find out which a client can Issue a SETUP call and prepare to get back an error 403 Aggregate Operation Not Allowed. Issue a DESCRIBE call and study the SDP m= fields. Although note that DESCRIBE-support in an RTSP-server is not a MUST! For playing an aggregated media a separate SETUP call per submedia is needed. The RTSP-server could support aggregate control (PLAY, PAUSE etc.) of all submedias. One then issues the method on the container URI. 43

Streaming Through a Firewall In general UDP-based traffic is tougher to handle for firewalls since there is no transport-level connection mechanism like TCP's which the firewall could intercept. Several solutions exists however: A firewall might work on application-level and intercept SETUP-calls and open up for incoming flows. RTSP includes an option for embedding RTP/RTCP packets over TCP One could deploy an RTSP proxy beside the firewall and instruct the client to always go via the proxy. Such a proxy instructs the real RTSP-server to stream to the proxy server instead. 44

IETF Working Groups avt Audio/Video Transport RTP / RTCP Payload formats for various audio and video formats ( -law/linear PCM, H.263, MPEG, GSM..) mmusic Multiparty Multimedia Session Control SDP RTSP SIP (earlier versions before SIP got a working group of its own) 45

Summary Real-time requires synchronization. Jitter affects buffer size. RTP and RTCP offers a common framework for handling Synchronization Packets arriving out of order Source Identification Loop detection SDP is a textual syntax for describing session setup parameters. RTSP is the remote VCR control protocol. 46