Chapter 7


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Chapter 7

  1. 1. INFO 331 Computer Networking Technology II Chapter 7 Multimedia Networking Glenn Booker
  2. 2. Multimedia Networking <ul><li>Recent years have seen massive growth in Internet audio and video apps </li></ul><ul><ul><li>Streaming video, IP telephony, Internet radio, teleconferencing, interactive games, distance learning, etc. </li></ul></ul><ul><li>Older Internet apps (email, WWW, FTP) were very elastic in bandwidth needs, but multimedia is much fussier – delay sensitive </li></ul><ul><ul><li>But they’re also more loss-tolerant </li></ul></ul>
  3. 3. Multimedia Networking <ul><li>Multimedia apps are in three categories </li></ul><ul><ul><li>Streaming stored audio & video (AV) </li></ul></ul><ul><ul><li>Streaming live AV </li></ul></ul><ul><ul><li>Real-time interactive AV </li></ul></ul><ul><li>This excludes download-stuff-and-play, such as MP3s, iTunes , etc. </li></ul><ul><ul><li>Download entire file before play starts </li></ul></ul><ul><ul><li>FTP or HTTP are fine for them </li></ul></ul>
  4. 4. Streaming stored AV <ul><li>Here, clients request on-demand compressed AV files that are stored on servers </li></ul><ul><ul><li>Content could include lectures, music, TV, etc. </li></ul></ul><ul><ul><li>CNN video, YouTube, etc. </li></ul></ul><ul><li>Main features of this app type are: </li></ul><ul><ul><li>Stored, prerecorded media; can pause, ffwd, rew </li></ul></ul><ul><ul><li>Streaming , hence can play part of the media while downloading more of it </li></ul></ul><ul><ul><li>Continuous play out – should keep original timing </li></ul></ul>
  5. 5. Streaming live AV <ul><li>This is live broadcast of radio or TV over the Internet </li></ul><ul><ul><li>Can’t fast forward, since it hasn’t happened yet, but local storage of what’s been received can allow pausing and rewinding in some cases </li></ul></ul><ul><ul><li>Often accomplished using IP multicasting or IPTV, but more often done via separate unicast streams </li></ul></ul><ul><ul><li>Also has continuous play out, can tolerate some startup delay </li></ul></ul>
  6. 6. IPTV <ul><li>IPTV (TV over IP) is a challenge in terms of bandwidth </li></ul><ul><ul><li>Traditional client/server can’t work </li></ul></ul><ul><ul><li>Often use P2P techniques (see CoolStreaming , PPLive ), or content distribution networks (CDNs, which will be discussed later) </li></ul></ul>
  7. 7. Real-time interactive AV <ul><li>This class of apps allows interaction between people at both ends (or many ends) of a connection, such as Internet telephony or teleconferencing </li></ul><ul><ul><li>Other apps can be integrated, e.g. Web-phone </li></ul></ul><ul><ul><li>Microsoft Live Messenger , Live Meeting (was NetMeeting), WebEx , GoToMeeting , Skype </li></ul></ul><ul><ul><li>Transmission delays under 150 ms are good, under 400 ms is okay, and over 400 ms is bad </li></ul></ul>
  8. 8. Multimedia Challenges <ul><li>The Internet provides best-effort service </li></ul><ul><ul><li>No guarantees from IP on when stuff will get there, consistency in delay times, if it will get there, or getting there in order </li></ul></ul><ul><ul><li>All packets are equal in the Internet! </li></ul></ul><ul><li>Streaming stored or live AV has been pretty successful, real-time interactive AV less so </li></ul><ul><li>To help, use tricks to make transmission smoother </li></ul>
  9. 9. Multimedia Tricks <ul><li>At the app level, we’ll look at common tricks to make multimedia smoother, such as </li></ul><ul><ul><li>Use UDP to avoid TCP congestion control </li></ul></ul><ul><ul><li>Delay playback by 100 ms to help allow for jitter </li></ul></ul><ul><ul><li>Timestamp packets to know when they should be played </li></ul></ul><ul><ul><li>Stored data can be fetched in advance, to help cover slow periods </li></ul></ul><ul><ul><li>Send redundant data to help cover data losses </li></ul></ul>
  10. 10. Fix the Internet! <ul><li>Some argue the Internet should allow for end-to-end bandwidth guarantees, like virtual circuit networks can provide </li></ul><ul><ul><li>Would require massive changes to routers to establish fixed paths for some service types </li></ul></ul><ul><li>Others insist the Internet doesn’t need massive changes </li></ul><ul><ul><li>Let ISPs upgrade bandwidth as customers demand it </li></ul></ul>
  11. 11. Fix the Internet! <ul><ul><li>Increase ISP caching for common requested stored AV </li></ul></ul><ul><ul><li>Add content distribution networks (CDNs) for paid stored media, conveniently near network edges </li></ul></ul><ul><ul><li>Create multicast overlay networks – servers which help distribute streams to large audiences </li></ul></ul><ul><li>Third approach is to add pricing at the network & transport layers, to pay for better service (Diffserv approach) </li></ul>
  12. 12. AV Compression <ul><li>Compression helps speed information transmission rate by reducing its volume </li></ul><ul><li>Long done for static images (JPG, GIF) </li></ul><ul><ul><li>Each pixel is 24 bits of color data (RGB), </li></ul></ul><ul><ul><ul><li>A 1024x768 pixel image is 1024x768x24/8 = 2.36 MB </li></ul></ul></ul><ul><ul><li>Compression can reduce image size a factor of 10 without severe quality loss </li></ul></ul><ul><ul><ul><li>Key tradeoff: more compression = more losses </li></ul></ul></ul><ul><li>Huge field (e.g. ISBN 1565921615) </li></ul>
  13. 13. Audio Compression <ul><li>Raw audio signals are recorded at some sample rate per second, per channel </li></ul><ul><ul><li>8k, 16k, or 32k samples/sec (Hz) are common low grade rates </li></ul></ul><ul><ul><li>44.1k (CD quality), 48k, 96k, and even 192kHz sample rates are used for professional audio </li></ul></ul><ul><li>The number of channels used is typically one (mono), two (stereo), or 5 to 7 (surround) </li></ul>
  14. 14. Audio Compression <ul><li>Each sample is quantized into some number of bits to describe its relative strength </li></ul><ul><ul><li>8 bits gives 256 values from silent to REALLY LOUD, which is typical for cheap built-in audio </li></ul></ul><ul><ul><li>CD quality uses 16 bits per sample </li></ul></ul><ul><ul><li>Pro audio typically uses 24 or 32 bits per sample </li></ul></ul><ul><li>So one minute of absurd quality 7 channel surround would use 192k sample/sec x 7 channels x 32 bits/sample / 8 bit/byte * 60 sec/min = 322.56 MB/min! </li></ul>
  15. 15. Audio Compression <ul><li>This approach for audio is formally called Pulse Code Modulation (PCM) </li></ul><ul><ul><li>Mono speech recording at 8kHz sample rate and 8 bits/sample equals 64 kbps of data </li></ul></ul><ul><ul><li>CD quality (44.1 kHz, 16 bit, stereo) = 1.411 Mbps </li></ul></ul><ul><li>Modems can’t handle 64 kbps, and most broadband users can’t consistently get 1.4 Mbps, so compression is needed even for just audio </li></ul>
  16. 16. Audio Compression <ul><li>Common audio compression standards include </li></ul><ul><ul><li>GSM, G.729, and G.723.3 from ITU </li></ul></ul><ul><ul><li>“ MPEG 1 layer 3”, a.k.a. MP3, which compresses to 96, 128, or 160 kbps </li></ul></ul><ul><li>From Drexel library, can get electronic copy of Compression technologies for video and audio , Jerry C. Whitaker, ISBN 0071391460 </li></ul>
  17. 17. Video Compression <ul><li>Video is a series of images presented at 24 or 30 images per second </li></ul><ul><ul><li>Hence the size of the images (X by 0.75*X pixels), and the color resolution (number of bits per pixel) also affect the amount of raw data </li></ul></ul><ul><ul><li>Widescreen image sizes have a 16x9 ratio instead of 4x3 ratio </li></ul></ul>
  18. 18. Video Compression <ul><li>Video compression standards are mostly the MPEG family </li></ul><ul><ul><li>MPEG 1 for CD quality video at 1.5 Mbps </li></ul></ul><ul><ul><li>MPEG 2 for DVD quality video, 3-6 Mbps </li></ul></ul><ul><ul><li>MPEG 4 for object oriented video </li></ul></ul><ul><ul><li>H.261 from ITU </li></ul></ul><ul><ul><li>Proprietary formats, such as QuickTime (includes MPEG-4 and H.264 ), Real networks , etc. </li></ul></ul>
  19. 19. Streaming Stored AV <ul><li>Streaming audio/video has become terribly popular ( YouTube , AOL Video ) because </li></ul><ul><ul><li>Disk space is dirt cheap (< 15 ¢ /GB) </li></ul></ul><ul><ul><li>Internet infrastructure is improving </li></ul></ul><ul><ul><li>There’s enormous demand to entertain me NOW </li></ul></ul><ul><li>In this multimedia mode, clients request compressed AV files that live on servers </li></ul><ul><ul><li>Files are segmented, with special headers used for encapsulating them </li></ul></ul>
  20. 20. Streaming Stored AV <ul><li>Various protocols are used </li></ul><ul><ul><li>RTP – Real Time Protocol is used to encapsulate the segments </li></ul></ul><ul><ul><li>RTSP – Real Time Streaming Protocol is used for client/server interaction </li></ul></ul><ul><li>Users typically request files via a web browser which has a media player plug-in, such as Flash , Quicktime , Shockwave , RealPlayer or Windows Media Player </li></ul>
  21. 21. Streaming Stored AV <ul><li>The media player has several functions </li></ul><ul><ul><li>Decompress the audio or video files </li></ul></ul><ul><ul><li>Buffer the incoming data to smooth out jitter </li></ul></ul><ul><ul><li>Repair damage from lost packets as an attempt at error correction </li></ul></ul><ul><li>The media player has a GUI interface, which may be integrated into the rest of a web page, or appear as a new dedicated window </li></ul>
  22. 22. Accessing AV via Web Server <ul><li>Streaming stored AV can either be on a web server, or on dedicated streaming servers </li></ul><ul><li>In the former case: </li></ul><ul><ul><li>A TCP connection is established </li></ul></ul><ul><ul><li>An HTTP message requests the desired file </li></ul></ul><ul><ul><li>The audio file is encapsulated in the HTTP response message </li></ul></ul><ul><li>A video file may be separate from audio, so the media player may have to assemble them </li></ul>
  23. 23. Accessing AV via Web Server <ul><ul><li>HTTP can have parallel downloads, so both audio and video can be downloaded at the same time </li></ul></ul><ul><li>Or audio and video might be in one file, making the process simpler </li></ul><ul><li>The file(s) are passed to the media player, which decompresses them and plays them </li></ul><ul><li>But this assumes the entire file is downloaded before playing begins *grumble* </li></ul>
  24. 24. Accessing AV via Web Server <ul><li>To avoid this, most media players have the server send the AV file directly to the media player process </li></ul><ul><ul><li>Done via a meta file , which tells what kind of file will be streamed </li></ul></ul><ul><li>The process becomes: </li></ul><ul><ul><li>User click on link for the desired file </li></ul></ul><ul><ul><li>Hyperlink is to the meta file </li></ul></ul><ul><ul><li>HTTP response contains the meta file </li></ul></ul>
  25. 25. Accessing AV via Web Server <ul><ul><li>Client’s web browser passes meta file to the media player </li></ul></ul><ul><ul><ul><li>The meta file tells the browser which media player to use! </li></ul></ul></ul><ul><ul><li>Media player sets up TCP connection with the HTTP server, and requests the actual AV file </li></ul></ul><ul><ul><li>AV file is sent to the media player, which then streams it </li></ul></ul><ul><li>So this could work, but it’s slow (TCP) and doesn’t allow pausing or rewinding easily </li></ul>
  26. 26. Accessing AV via Streaming Server <ul><li>To avoid the slowness of HTTP/TCP, AV can be sent via a dedicated streaming server over UDP </li></ul><ul><ul><li>Custom protocols can be used in place of HTTP </li></ul></ul><ul><li>Now one server has HTTP and meta files, and the streaming server has the AV files </li></ul><ul><ul><li>These could be two physical servers, or one </li></ul></ul>
  27. 27. Accessing AV via Streaming Server <ul><li>Now the AV is sent over UDP, at a rate equal to its play rate (or drain rate ) </li></ul><ul><ul><li>Playout is delayed 2-5 seconds, to allow for jitter </li></ul></ul><ul><ul><li>Data is put in a client buffer, from which it’s played after the delay </li></ul></ul><ul><li>Or could send AV data over TCP, to get better sound quality, at the risk of sound pauses ( client buffer starvation ) </li></ul>
  28. 28. Accessing AV via Streaming Server
  29. 29. Client Buffer
  30. 30. RTSP <ul><li>The real time streaming protocol (RTSP) allows the user to control playback of audio or video </li></ul><ul><ul><li>Defined by RFC 2326 </li></ul></ul><ul><li>It does NOT define compression schemes to be used, encapsulation (see RTP), transport protocol (TCP or UDP), or buffering approach </li></ul><ul><ul><li>Those are all application-level concerns </li></ul></ul>
  31. 31. RTSP <ul><li>So what DOES it do? </li></ul><ul><ul><li>Allow user to pause/resume, reposition playback, fast forward, or rewind </li></ul></ul><ul><li>RTSP sends control messages out-of-band, using port 544, could be over TCP or UDP </li></ul><ul><ul><li>Recall FTP also used out-of-band control msgs </li></ul></ul><ul><ul><li>The actual media stream is a separate band </li></ul></ul><ul><li>Like HTTP, commands are plain text, with code-identified responses </li></ul>
  32. 32. RTSP Example <ul><li>An HTTP GET command requests the presentation (meta) file from the web server </li></ul><ul><li>Then passes it to the media player to manage getting the media and playing it </li></ul><ul><li>In this example, the audio and video files are separate, but are played together (lipsynch) </li></ul>
  33. 33. Meta file example <ul><li><title>Twister</title> </li></ul><ul><li><session> </li></ul><ul><li><group language=en lipsync> </li></ul><ul><li><switch> </li></ul><ul><li><track type=audio </li></ul><ul><li>e=&quot;PCMU/8000/1&quot; </li></ul><ul><li>src = &quot;rtsp://;> </li></ul><ul><li><track type=audio </li></ul><ul><li>e=&quot;DVI4/16000/2&quot; pt=&quot;90 DVI4/8000/1&quot; </li></ul><ul><li>src=&quot;rtsp://;> </li></ul><ul><li></switch> </li></ul><ul><li><track type=&quot;video/jpeg&quot; </li></ul><ul><li>src=&quot;rtsp://;> </li></ul><ul><li></group> </li></ul><ul><li></session> </li></ul>
  34. 34. RTSP Example
  35. 35. RTSP <ul><li>Many RTSP methods are pretty self-explanatory – PLAY, PAUSE, RECORD </li></ul><ul><ul><li>SETUP establishes the connection </li></ul></ul><ul><ul><li>TEARDOWN closes the connection </li></ul></ul><ul><ul><li>DESCRIBE identifies the media to be played </li></ul></ul><ul><ul><li>ANNOUNCE updates the session description </li></ul></ul><ul><li>RTSP is used by Real Networks </li></ul>
  36. 36. Internet Phone <ul><li>Real-time apps, such as Internet phone and video conferencing, are very sensitive to packet delay, jitter, and packet loss </li></ul><ul><li>See how these issues are handled for Internet phone </li></ul><ul><ul><li>Data is generated at 8 kBps </li></ul></ul><ul><ul><li>Every 20 ms, a chunk of 160 bytes of data gets a header attached, and the packet is sent via UDP </li></ul></ul><ul><li>Ideally, these packets all get to the receiver </li></ul>
  37. 37. Internet Phone <ul><li>The receiver must decide </li></ul><ul><ul><li>When to play back a given packet </li></ul></ul><ul><ul><li>What to do if a packet is missing </li></ul></ul><ul><li>Recall packets can be lost if they arrive at a router with a full input or output queue </li></ul><ul><li>From 1-20% packet loss can be tolerated </li></ul><ul><ul><li>Forward error correction (FEC) can help make up for lost packets </li></ul></ul>
  38. 38. Internet Phone <ul><li>End-to-end delay can be confusing for the receiver, if it simply takes too long for the data to get there </li></ul><ul><ul><li>Recall the under 150 ms, 150-400 ms, and over 400 ms ranges for good, ok, and bad delays </li></ul></ul><ul><ul><li>Internet phone may discard packets over 400 ms old </li></ul></ul><ul><li>Jitter is typically caused by variation in queuing delays </li></ul>
  39. 39. Internet Phone <ul><li>Some jitter problems can be removed by using sequence numbers, time stamps, and playout delays to make sure packets are in order as well as possible </li></ul><ul><li>Playout delay can be fixed or adaptive </li></ul><ul><li>For fixed playout delay, anything arriving after its planned play time is discarded </li></ul><ul><ul><li>The amount of delay is typically 150-400 ms, less under good network conditions </li></ul></ul>
  40. 40. Adaptive playout delay <ul><li>Adaptive playout delay is often used because long delay is annoying to the users </li></ul><ul><ul><li>Want to make the delay as small as possible without losing a lot of packets </li></ul></ul><ul><li>Delay is reassessed for each talk spurt (period of transmission) </li></ul><ul><li>Similar to calculation of timeout interval for TCP, use previous history, amended by the most recent data </li></ul>
  41. 41. Adaptive playout delay <ul><li>d i = (1-u)*d i-1 + u*(r i -t i ) </li></ul><ul><li>Where d is the average network delay </li></ul><ul><ul><li>u is a fixed value, e.g. 0.01 </li></ul></ul><ul><ul><li>r i is when the i th packet was received </li></ul></ul><ul><ul><li>t i is the time that packet was timestamped by the sender </li></ul></ul><ul><li>Similarly the average deviation is </li></ul><ul><li>v i = (1-u)*v i-1 + u*|r i – t i – d i | </li></ul>
  42. 42. Adaptive playout delay <ul><li>Then the playout time for the first packet in a talk spurt is </li></ul><ul><li>p i = t i + d i + K*v i </li></ul><ul><ul><li>Where K is typically 4, much like TimeoutInterval = EstimatedRTT + 4*DevRTT </li></ul></ul><ul><li>This gives us an approach to calculate the playout delay, and keep adjusting it to compensate for network traffic conditions </li></ul>
  43. 43. Recovering from packet loss <ul><li>The method for compensating for lost packets is the loss recovery scheme </li></ul><ul><ul><li>Here, ‘lost’ means it never got there, or it got there after its planned play time </li></ul></ul><ul><li>Retransmitting lost packets doesn’t make sense here (why?) </li></ul><ul><li>Instead anticipate loss, using methods like </li></ul><ul><ul><li>Forward Error Correction </li></ul></ul><ul><ul><li>Interleaving </li></ul></ul>
  44. 44. Forward Error Correction <ul><li>Forward Error Correction adds a little redundant data to packets to help allow recreating what missing packets had in them </li></ul><ul><li>There are lots of FEC approaches; we’ll look at two of them </li></ul>
  45. 45. Forward Error Correction <ul><li>First is to send a redundant encoded chunk of data after every n normal chunks </li></ul><ul><ul><li>The redundant chunk is obtained from XOR-ing the normal chunks </li></ul></ul><ul><li>If any ONE of the n chunks is missing, it can be reconstructed mathematically </li></ul><ul><ul><li>But if two or more packets are lost, tough luck </li></ul></ul><ul><li>This increases transmission rate by 100/n % </li></ul>
  46. 46. Forward Error Correction <ul><li>The second approach is sneakier </li></ul><ul><ul><li>Add a second, lower quality data stream in parallel with the primary stream (e.g. tack on a 13 kbps stream to a 65 kbps stream) </li></ul></ul><ul><ul><li>When loss occurs, use the low quality stream </li></ul></ul><ul><ul><li>This increases playout delay little </li></ul></ul><ul><ul><li>Many variations on this approach are possible, especially to allow for higher loss rates </li></ul></ul>
  47. 47. Interleaving <ul><li>Interleaving breaks the stream of data into smaller chunks, and rearranges how the chunks are sent </li></ul><ul><ul><li>So if each chunk of data is broken into four pieces, then the first unit of data sent has chunks number 1, 5, 9, and 13 instead of just 1-4 </li></ul></ul><ul><ul><ul><li>The second chunk sent has 2, 6, 10, & 14; the third chunk has 3, 7, 11, & 15, etc. </li></ul></ul></ul><ul><ul><li>That way if a chunk is lost, the loss is distributed across a wider range of time </li></ul></ul>
  48. 48. Interleaving <ul><li>This increases latency (have to break up & reassemble chunks) </li></ul><ul><li>Doesn’t increase bandwidth of data – no extra data is being sent </li></ul><ul><li>So how can we fix the data if some is lost? </li></ul>
  49. 49. Repair of damaged audio <ul><li>Voice is relatively easy to fix if a little data is missing </li></ul><ul><ul><li>Loss rates under 15% for packets 4-40 ms long </li></ul></ul><ul><li>One technique is simply repetition – copy the previous packet and play it again </li></ul><ul><ul><li>Easy to do and usually works ok </li></ul></ul><ul><li>Or can try to interpolate between before and after packets </li></ul><ul><ul><li>More tricky computationally, but sounds better </li></ul></ul>
  50. 50. Stored vs real time AV <ul><li>Streaming stored audio & video, in contrast, uses the same techniques to help smooth out network jitter </li></ul><ul><ul><li>Sequence numbers, timestamps, playout delay </li></ul></ul><ul><li>But stored AV can tolerate much larger delays before playout begins (compared to real time AV), which gives the app developer much more design flexibility </li></ul>
  51. 51. Real-time Interactive Protocols <ul><li>Demand for real time interactive applications is huge, so there has been a lot of work on protocols to help make such apps easier to develop </li></ul><ul><li>Here we’ll look at three common ones </li></ul><ul><ul><li>RTP, the Real-time Transport Protocol </li></ul></ul><ul><ul><li>SIP </li></ul></ul><ul><ul><li>H.323 </li></ul></ul>
  52. 52. RTP <ul><li>RTP defines a standard AV chunk-of-data structure for data, sequence numbers, timestamps, etc. </li></ul><ul><ul><li>The actual data format can be a proprietary format, or other AV formats such as PCM, GSM, MP3, MPEG, H.263, etc. </li></ul></ul><ul><li>RTP is defined by RFC 3550, and usually runs over UDP (no specific port number) </li></ul><ul><li>Often used for Internet telephony apps </li></ul>
  53. 53. RTP
  54. 54. RTP <ul><li>An RTP packet consists of the RTP header plus the data </li></ul><ul><ul><li>The RTP header is at least 12 B (3 rows x 4B ea.) </li></ul></ul><ul><li>Apps that both use RTP have a better chance of cooperating (e.g. if two users have different apps at each end of a phone call) </li></ul><ul><li>RTP doesn’t guarantee data delivery, or sequence </li></ul><ul><ul><li>Routers can’t tell RTP data from anything else </li></ul></ul>
  55. 55. RTP <ul><li>Every data source (video camera, microphone) can have an RTP data stream </li></ul><ul><ul><li>Video conference could have four RTP streams to send video each direction, and audio each way </li></ul></ul><ul><ul><li>Some compression formats (MPEG-1 and -2) combine audio and video into one stream </li></ul></ul><ul><li>RTP can be used with unicast or multicast </li></ul><ul><ul><li>A group of streams from the same origin form an RTP session </li></ul></ul>
  56. 56. RTP Header Fields <ul><li>The RTP header is very simple </li></ul><ul><ul><li>First line has: </li></ul></ul><ul><ul><ul><li>Nine bits of misc. identifiers (version, how long the CSRC list will be, if custom extensions are used, etc.) </li></ul></ul></ul><ul><ul><ul><li>Payload type (7 b) </li></ul></ul></ul><ul><ul><ul><li>Sequence number (16 b) </li></ul></ul></ul><ul><ul><li>Timestamp (32 b) </li></ul></ul><ul><ul><li>SSRC (32 b) </li></ul></ul><ul><ul><li>CSRC list (0 to 15 lines of 32 b each) </li></ul></ul>
  57. 57. RTP Header <ul><li>The Payload Type is a numeric code that identifies what format the data has – PCM, GSM, MPEG, etc. </li></ul><ul><li>The Sequence Number starts at a random value, and “increments by one for each RTP data packet sent” [RFC 3550] </li></ul><ul><li>The Timestamp is when the first data was sampled; change from one to the next is inversely proportional to the sampling rate </li></ul>
  58. 58. RTP Header <ul><li>The SSRC is the synchronization source identifier – just a random number to identify the source </li></ul><ul><ul><li>Only goal is that no two SSRCs are the same in a session </li></ul></ul><ul><li>The CSRC list is the contributing sources for audio data </li></ul><ul><ul><li>Is often used for mixing, or to identify specific data sources (Fred vs. Wilma) </li></ul></ul>
  59. 59. RTP App Development <ul><li>RTP can be implemented two ways </li></ul><ul><ul><li>Use RFC 3550 and manually implement RTP headers within your application </li></ul></ul><ul><ul><li>Use existing API libraries (e.g. in C or Java ) to implement RTP for you, and have your app call them </li></ul></ul><ul><ul><li>Hmm, I wonder which is easier? </li></ul></ul><ul><li>RTP can be coded as an app-layer protocol, or used in conjunction with UDP via the API </li></ul>
  60. 60. RTP Control Protocol (RTCP) <ul><li>RTCP is also defined by RFC 3550 </li></ul><ul><li>It defines control packets that are sent by data senders and receivers in an RTP session via IP multicast </li></ul><ul><ul><li>Main purpose is to “provide feedback on the quality of the data distribution” </li></ul></ul><ul><ul><li>It identifies the RTP source by a canonical name or CNAME </li></ul></ul><ul><ul><li>Control rate of data transmission, & identify users </li></ul></ul>
  61. 61. RTCP <ul><li>RTCP uses the next port number above that used by RTP </li></ul><ul><li>RTCP packets are sent periodically by all session systems </li></ul><ul><li>They have no ‘data’ attached – just headers </li></ul><ul><ul><li>E.g. Sender Report (SR) has 7 32-bit lines to describe the sender, plus 6 32-bit lines for each SSRC in the session </li></ul></ul><ul><ul><li>The Receiver Report (RR) has reception statistics </li></ul></ul>
  62. 62. RTCP <ul><li>RFC 3550 has massive detail on the statistics to be collected (bandwidth, packet size, jitter, transmission interval, packets lost, etc.) but leaves analysis and interpretation of the data to the app developer </li></ul><ul><li>Sender and receiver reports can be stacked into a combined report </li></ul>
  63. 63. RTCP Scaling <ul><li>The amount of RTP traffic doesn’t change with a large number of receivers, but the amount of RTCP traffic does grow </li></ul><ul><ul><li>RTCP tries to limit itself to 5% of session bandwidth(!) </li></ul></ul><ul><li>This results in different RTCP transmission periods (T) for senders versus receivers </li></ul><ul><ul><li>Two senders and 100 receivers will get T(receiver) = 16.67*T(sender) </li></ul></ul>
  64. 64. SIP <ul><li>The Session Initiation Protocol (SIP) is defined by RFC 3261 </li></ul><ul><ul><li>SIP can be over UDP or TCP, and uses port 5060 </li></ul></ul><ul><li>It is designed to handle Internet telephone across LANs (not local phone exchanges) </li></ul><ul><ul><li>It allows calls to be placed over IP </li></ul></ul><ul><ul><li>Allows caller to determine IP of callee (varies) </li></ul></ul><ul><ul><li>Can add media streams during call </li></ul></ul>
  65. 65. SIP Session Example <ul><li>Caller sends an INVITE message </li></ul><ul><ul><li>Tells caller and callee IP addresses, media format and encoding, type of encapsulation (RTP) and receiving port number </li></ul></ul><ul><li>Callee sends response msg </li></ul><ul><ul><li>Confirms IP address, encoding, encapsulation, and port number </li></ul></ul><ul><li>Caller sends ACK to callee, and the call can take place </li></ul>
  66. 66. SIP Session Example
  67. 67. SIP <ul><li>So what? </li></ul><ul><ul><li>The two parties can be using completely different encoding and encapsulation methods, yet carry on the call </li></ul></ul><ul><ul><li>Also note that the control messages stay over port 5060, yet the media are over two other, negotiated ports – so SIP uses out-of-band control messages </li></ul></ul><ul><ul><li>SIP requires ACK of all messages, so either UDP or TCP can be used </li></ul></ul>
  68. 68. SIP Addressing <ul><li>SIP addresses can look like email addresses, or cite IP addresses, or be a phone number, or even a full personal name </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
  69. 69. SIP Messages <ul><li>The SIP protocol is huge – 269 pages – so only a brief overview is in order </li></ul><ul><li>The INVITE message typically is addressed to an email-like address, e.g. [email_address] </li></ul><ul><li>Each device the message passes through adds a Via: header with that device’s IP </li></ul><ul><li>A SIP proxy finds the IP of the device the callee is currently using </li></ul>
  70. 70. SIP Messages <ul><li>Every SIP user is associated with a SIP registrar </li></ul><ul><ul><li>When a SIP device is launched, it registers with the registrar to give its current IP address </li></ul></ul><ul><li>So the SIP proxy asks the callee’s registrar for their IP address </li></ul><ul><ul><li>The proxy might be redirected to another registrar if the callee is not nearby </li></ul></ul>
  71. 71. SIP applications <ul><li>SIP has been described for voice over IP, but can also be used for any media – video, even text messaging </li></ul><ul><li>SIP software is widely available for many common functions, on various platforms (PC/Mac/Linux) </li></ul>
  72. 72. H.323 <ul><li>H.323 (catchy name, huh?) is an alternative to SIP </li></ul><ul><li>Computers can use SIP or H.323 to connect to plain telephones, as well as do IP-only calling </li></ul><ul><li>H.323 can support audio and optionally, video </li></ul><ul><ul><li>Audio must support at least G.711 speech compression at 56 or 64 kbps </li></ul></ul>
  73. 73. H.323 <ul><ul><li>Video, if used, must support at least QCIF H.261, which is a massive 176x144 pixels </li></ul></ul><ul><li>H.323 is a suite of protocols </li></ul><ul><ul><li>Includes a separate control protocol (H.245), signaling channel (Q.931), and uses RAS for registering with the gatekeeper </li></ul></ul><ul><ul><li>The gatekeeper is between the IP and plain telephone networks </li></ul></ul><ul><li>In contrast, SIP only manages connections </li></ul>
  74. 74. H.323 vs SIP <ul><li>H.323 is from the ITU (mainly telephone basis), whereas SIP is from IETF (the RFC folks) </li></ul><ul><li>SIP can work with RTP, G.711, and H.261, but doesn’t require any of them </li></ul><ul><li>SIP is simple compared to H.323 </li></ul>
  75. 75. Content Distribution Networks <ul><li>Content Distribution Networks (CDNs) are to address the need for lots of people accessing the same stored media often and/or at once </li></ul><ul><ul><li>After all, a single server source would have terrible bandwidth and packet loss issues </li></ul></ul><ul><li>Often a content provider (CNN, MSN, etc.) will pay a CDN company ( Akamai ) to provide videos to users with as little delay as possible </li></ul>
  76. 76. Content Distribution Networks <ul><li>The CDN approach is simple – make lots of copies of the media, and put them on lots of servers everywhere </li></ul><ul><li>CDN servers get put throughout the Internet </li></ul><ul><li>Often the CDN company will lease data center space to house the servers </li></ul><ul><ul><li>Data centers might be located at second or third tier ISPs </li></ul></ul>
  77. 77. Content Distribution Networks <ul><li>The CDN gets source media (videos) from the customer, and copies them to the servers </li></ul><ul><li>When a user requests content, the nearest (or most available) CDN server delivers it </li></ul><ul><ul><li>DNS redirection is used to find the correct CDN server </li></ul></ul><ul><ul><li>This results in URLs with two addresses in them – the first is the CDN, the second is the file name </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul>
  78. 78. Content Distribution Networks <ul><li>The ‘best’ server for each ISP is determined using the same approaches we saw for BGP routing tables </li></ul><ul><li>CDNs may also be used within a large corporation to stream, for example, training videos locally </li></ul>
  79. 79. Beyond Best Effort <ul><li>So lots of techniques have been used to get the most out of the Internet’s ‘best effort’ approach </li></ul><ul><ul><li>The current quality of service (QoS) has no guarantees </li></ul></ul><ul><ul><li>How can we improve on that? </li></ul></ul><ul><li>Change the architecture of the Internet! </li></ul><ul><li>Look at a simple network to examine the problems </li></ul>
  80. 80. A Sample Network
  81. 81. A Sample Network <ul><li>In this example, the local networks are assumed much faster than the 1.5 Mbps connection between them </li></ul><ul><ul><li>Two apps are competing for that 1.5 Mbps of bandwidth, e.g. leaving the first router (R1) </li></ul></ul><ul><li>Scenario 1: If hosts H1 is sending FTP to H3, and then H2 tries to send audio traffic to H4, the router R1 will already be full, making for lost audio packets </li></ul>
  82. 82. A Sample Network <ul><li>But IF we could mark audio packets versus FTP packets, we could give priority to audio packets, since they are delay sensitive </li></ul><ul><ul><li>Principle 1: packet marking lets a router distinguish between different classes of traffic </li></ul></ul><ul><li>Scenario 2 – what if the FTP traffic was on a high priority (paid) connection, but the audio traffic was normal free Internet </li></ul><ul><ul><li>Principle 1a: packet classification lets a router distinguish between different classes of traffic </li></ul></ul>
  83. 83. A Sample Network <ul><li>The distinction is important </li></ul><ul><ul><li>Marking packets for type of payload is one way to classify them, but hardly the only one </li></ul></ul><ul><ul><li>The packets could be prioritized by the originating IP address (which could imply whether premium service was used) </li></ul></ul><ul><li>Scenario 3: Bad application </li></ul><ul><ul><li>What if the audio app should get priority, but it abuses that and hogs the whole link? </li></ul></ul>
  84. 84. A Sample Network <ul><ul><li>Instead of allowing 1.0 Mbps for audio, the app tries to take the whole 1.5 Mbps, thereby shutting off the FTP service </li></ul></ul><ul><ul><li>Just like circuit switching, we want to isolate each traffic flow, so a misbehaving app doesn’t ruin the link for everyone </li></ul></ul><ul><ul><li>Principle 2: Some degree of isolation is desirable to protect traffic flows from each other </li></ul></ul><ul><ul><li>This might imply the need for traffic cops, to ensure app compliance </li></ul></ul>
  85. 85. A Sample Network <ul><li>So two approaches could address these concerns and improve the QoS </li></ul><ul><ul><li>Mark packets, and police app behavior to share bandwidth fairly </li></ul></ul><ul><ul><li>Or, logically isolate traffic flows, and designate some specific bandwidth for each </li></ul></ul><ul><li>But if the flows are isolated, need to make sure full bandwidth is used if a traffic flow isn’t active </li></ul>
  86. 86. A Sample Network <ul><ul><li>Principle 3: When traffic flows are isolated, need to use resources (bandwidth, router buffers) as efficiently as possible </li></ul></ul><ul><li>Scenario 4: Two 1.0 Mbps audio apps over a 1.5 Mbps link </li></ul><ul><ul><li>Both audio apps can’t get the full bandwidth needed – each would lose 25% of their packets </li></ul></ul><ul><ul><li>To maintain any decent QoS level, the network should allow or block the flow </li></ul></ul><ul><ul><ul><li>Telephones have done this for years! </li></ul></ul></ul>
  87. 87. A Sample Network <ul><ul><li>So to guarantee a minimum level of QoS we need a call admission process </li></ul></ul><ul><ul><li>Principle 4: a call admission process is needed to admit or block calls from the network, based on the call’s QoS requirements </li></ul></ul><ul><li>Now that we have the principles of guaranteeing QoS, look at how these are implemented in the Internet </li></ul>
  88. 88. Scheduling and Policing <ul><li>Recall at the link level, packets from various flows are multiplexed and queued on the output buffers to go onto a link </li></ul><ul><li>The link-scheduling discipline is the process for queuing packets, which is vital for making QoS guarantees </li></ul><ul><li>Look at FIFO, priority, round robin, and WFQ approaches for link-scheduling </li></ul>
  89. 89. FIFO Scheduling <ul><li>FIFO (first-in first-out), also called first-come first-served (FCFS) is the McDonald’s approach to scheduling </li></ul><ul><ul><li>Packets are queued in the order in which they arrived at the device </li></ul></ul><ul><ul><li>If the output buffer gets full, the packet-discarding policy is used to decide which packets are dropped </li></ul></ul>
  90. 90. Priority Queuing <ul><li>Here, packets are grouped by their priority – a separate queue for each level of priority </li></ul><ul><ul><li>How they are grouped could be by type of service, source IP, or other methods </li></ul></ul><ul><li>The highest priority queue is emptied before the next priority queue is transmitted </li></ul><ul><ul><li>If the high priority queue is empty, a lower priority packet will still be sent immediately </li></ul></ul><ul><li>Within each queue, FIFO applies </li></ul>
  91. 91. Round Robin Queuing <ul><li>In round robin, packets are sorted into classes which have no relative priority </li></ul><ul><ul><li>One packet from class 1 is sent, then one from class 2, etc. </li></ul></ul><ul><ul><li>Then go back to class 1 and keep repeating the cycle </li></ul></ul><ul><li>A work-conserving round robin tries to keep the link busy, so will check the next class if one is empty </li></ul>
  92. 92. Weighted Fair Queuing (WFQ) <ul><li>WFQ is a variation on round robin queuing </li></ul><ul><ul><li>Here each class is assigned a ‘weight,’ which determines how much transmission time they get </li></ul></ul><ul><ul><li>In short, some classes are more equal than others </li></ul></ul><ul><ul><li>The weights for all classes total 100% </li></ul></ul><ul><ul><li>Incoming packets are classified into the correct class, which has its own queue </li></ul></ul><ul><li>WFQ is very widely used </li></ul>
  93. 93. Policing <ul><li>We may need to control the rate data are allowed to enter the network – a traffic cop </li></ul><ul><li>Could control three aspects </li></ul><ul><ul><li>Long term average data rate </li></ul></ul><ul><ul><li>Peak or max rate </li></ul></ul><ul><ul><li>Burst size – max number of packets in a short time interval </li></ul></ul>
  94. 94. The Leaky Bucket Analogy <ul><li>Bucket holds ‘b’ tokens (packets) </li></ul><ul><li>New tokens are created at rate ‘r’ tokens per sec </li></ul><ul><li>If bucket is full, new tokens are discarded </li></ul>
  95. 95. The Leaky Bucket Analogy <ul><li>The token generation rate, r, limits the long term average rate </li></ul><ul><li>In any time ‘t’, the max number of tokens which could be added to the network is r*t + b, so that limits the peak rate </li></ul><ul><li>The size of the bucket limits the max burst size </li></ul><ul><ul><li>No more than b tokens can be removed in a short time </li></ul></ul>
  96. 96. WFQ + Leaky buckets <ul><li>If we combine the WFQ scheduling with the leaky bucket policing options, what happens to the delay for any class of packets? </li></ul><ul><li>If the class’ bucket is full, and ‘b1’ packets arrive, the rate the bucket is emptied is at least R*wi/sum(w) where R is the link rate, wi is the weight of this class, and sum(w) is the sum of all active classes’ weights </li></ul>
  97. 97. WFQ + Leaky buckets <ul><li>So the time for the bi packets to be handled is time = quantity/rate </li></ul><ul><ul><li>di = bi/[R*wi/sum(w)] = max delay </li></ul></ul><ul><li>As long as the rate this class can handle packets is less than [R*wi/sum(w)], the above di equation is the max delay in a WFQ queue </li></ul>
  98. 98. Integrated vs Differentiated Services <ul><li>Now we’ve covered the types of mechanisms needed to provide QoS guarantees in the Internet </li></ul><ul><ul><li>Cool. So, how is this being implemented? </li></ul></ul><ul><li>Two major architectures are trying to provide an answer – Intserv and Diffserv </li></ul><ul><ul><li>Integrated Services = Intserv </li></ul></ul><ul><ul><li>Differentiated Services = Diffserv </li></ul></ul>
  99. 99. Intserv <ul><li>Intserv provides a way for QoS to be specified for a given session </li></ul><ul><ul><li>Kind of like setting up a virtual circuit </li></ul></ul><ul><li>Intserv depends on two key features </li></ul><ul><ul><li>Must know what resources are already occupied by routers along a desired path </li></ul></ul><ul><ul><li>Must do call setup to prepare for a session </li></ul></ul>
  100. 100. Intserv <ul><li>Call setup includes </li></ul><ul><ul><li>A session must define the QoS needs </li></ul></ul><ul><ul><ul><li>An Rspec defines the type of QoS service desired </li></ul></ul></ul><ul><ul><ul><li>A Tspec defines the traffic the session will be sending </li></ul></ul></ul><ul><ul><li>See RFC 2210 and 2215 for Rspec and Tspec </li></ul></ul><ul><ul><li>Then a signaling protocol, RSVP, is used to set up along the path’s routers </li></ul></ul><ul><ul><li>Each router (element) decides whether to allow the session </li></ul></ul>
  101. 101. Intserv <ul><li>Intserv provides two different types of QoS </li></ul><ul><ul><li>Guaranteed QoS – the bounds on queuing delays for each router are assured </li></ul></ul><ul><ul><ul><li>See RFC 2212 for gory details how this is done </li></ul></ul></ul><ul><ul><li>Controlled-load Network Service – the session will receive a “close approximation” to the QoS an unloaded element would provide </li></ul></ul><ul><ul><ul><li>Oddly, this QoS is not quantified </li></ul></ul></ul><ul><ul><ul><li>RFC 2211, since you were wondering </li></ul></ul></ul>
  102. 102. Diffserv <ul><li>Diffserv (RFC 2475) was in response to problems with Intserv: </li></ul><ul><ul><li>Scalability problems with per-flow (session) reservations </li></ul></ul><ul><ul><ul><li>Gets very time consuming for large networks </li></ul></ul></ul><ul><ul><li>Flexibility in service classes – Intserv only provides specific service classes </li></ul></ul><ul><ul><ul><li>Want ability to grade or rank service classes (low/med/high, silver/gold/platinum, etc.) </li></ul></ul></ul>
  103. 103. Diffserv <ul><li>Diffserv assumes the whole network will be aware of Diffserv protocols, and that most traffic flows are under Diffserv </li></ul><ul><ul><li>You will be assimilated! </li></ul></ul><ul><li>Two main functions under Diffserv </li></ul><ul><ul><li>At the edges of the network, hosts or first hop routers mark the DS field in the packet header </li></ul></ul><ul><ul><li>Within the core of the network, traffic is handled based on its class’ per-hop behavior </li></ul></ul>
  104. 104. Diffserv <ul><li>Analogy </li></ul><ul><ul><li>The marking process is like getting your hand stamped at a night club, or having a VIP or backstage pass, or getting comped for spending too much money at a casino </li></ul></ul><ul><li>Packets are classified based on source or destination IP or port, or (transport) protocol </li></ul><ul><ul><li>There could be different marking algorithms for various classes of flows </li></ul></ul>
  105. 105. Diffserv <ul><li>Classes of flows could follow a traffic profile </li></ul><ul><ul><li>May limit their peak transmission rate, or burstiness </li></ul></ul><ul><ul><li>A metering function could be used to control flow rate into the network, or shape flow rates </li></ul></ul><ul><li>The differentiated services (DS) field (RFC 3260) replaces the type of service and traffic class fields from IPv4 and IPv6 </li></ul><ul><ul><li>The packets are marked using the DS field </li></ul></ul>
  106. 106. Diffserv <ul><li>Within the network, each class’ per-hop behavior (PHB) is critical to controlling its handling </li></ul><ul><ul><li>PHB influences the forwarding behavior (performance) at a Diffserv node </li></ul></ul><ul><ul><li>No method for implementing behavior is given </li></ul></ul><ul><ul><li>Only key is that they are externally measurable </li></ul></ul><ul><li>Two PHBs have been defined – expedited forwarding (EF), and assured forwarding (AF) </li></ul>
  107. 107. Diffserv <ul><li>Expedited forwarding (EF, RFC 3246) requires the departure rate of a class must equal or exceed a certain rate </li></ul><ul><ul><li>Implies isolation from other traffic classes, since the absolute rate is guaranteed </li></ul></ul><ul><li>Assured forwarding (AF, RFC 2597) divides traffic into four classes </li></ul><ul><ul><li>Each is guaranteed bandwidth and buffer space </li></ul></ul><ul><ul><li>Per class there are three levels of drop preference </li></ul></ul>
  108. 108. Intserv, Diffserv, and Reality <ul><li>So while techniques exist to provide QoS guarantees, they aren’t widely used </li></ul><ul><li>Why? The Internet is highly distributed, and not everyone will agree 1) to implement QoS methods, 2) on the type of QoS needed, and 3) on how to pay for it </li></ul><ul><li>And if traffic levels are low, ‘best effort’ will provide the same service as Intserv/Diffserv! </li></ul>
  109. 109. RSVP Protocol <ul><li>In order to reserve resources in the Internet, a signaling protocol is needed </li></ul><ul><ul><li>The Resource reSerVation Protocol (RSVP, RFC 2205) does so </li></ul></ul><ul><ul><li>Here we focus on bandwidth reservation, but RSVP can be used for other applications </li></ul></ul><ul><li>To work, hosts and routers need to implement the RSVP protocol </li></ul>
  110. 110. RSVP Protocol <ul><li>RSVP provides reservations for bandwidth in multicast trees (unicast is easy then) </li></ul><ul><li>The receiver of the data controls getting the reservations (not the sender) </li></ul><ul><li>In a session, each sender can control many flows (audio and video, e.g.) </li></ul><ul><ul><li>Each flow has the same multicast address </li></ul></ul><ul><ul><li>To distinguish flows, use the flow identifier (IPv6) </li></ul></ul>
  111. 111. RSVP Protocol <ul><li>RSVP does not specify how the bandwidth is obtained – see earlier scheduling methods (priority scheduling, WFQ, etc.) </li></ul><ul><li>RSVP depends on other routing protocols to determine the path needed, and hence the specific links in the path </li></ul><ul><ul><li>If the path changes during the session, RSVP re-reserves the path </li></ul></ul>
  112. 112. RSVP Protocol <ul><li>In multicast, receivers could have many different speeds – dial up, cable, DSL, etc. </li></ul><ul><li>Sender doesn’t need to know the rate of all receivers, only the rate of the fastest one </li></ul><ul><li>Encode the media in layers at different data rates (e.g. 20 kbps + 100 kbps) </li></ul><ul><ul><li>A slow base layer (dial up), and add other layers to enhance the image/signal for faster receivers </li></ul></ul><ul><ul><li>Each receiver picks up the layers they can use </li></ul></ul>
  113. 113. RSVP Protocol <ul><li>The source of a multicast advertises content using RSVP path messages through a multicast tree </li></ul><ul><ul><li>Tells the bandwidth required, timeout interval, and upstream path to the sender </li></ul></ul><ul><li>Receivers send RSVP reservation messages </li></ul><ul><ul><li>Tells what rate they want the data </li></ul></ul><ul><ul><li>Message is passed upstream to the source, where each router allocates the bandwidth </li></ul></ul>
  114. 114. RSVP Protocol <ul><li>Routers can merge requests for the same multicast event – saves having many reservations for the same signal! </li></ul><ul><ul><li>Hence routers only need to reserve the maximum downstream receiver rate </li></ul></ul><ul><ul><li>Routers only send one reservation message upstream </li></ul></ul>
  115. 115. RSVP Protocol <ul><li>In a conference call situation, all participants are typically senders and receivers of video, so the bandwidths are added </li></ul><ul><li>For audio only, it’s rarer for many to speak at once, to typically if one user is transmitting at rate ‘b’ bps, reserving 2*b bps is typically adequate bandwidth </li></ul>
  116. 116. RSVP Protocol <ul><li>When a router gets a reservation request, it must do an admission test </li></ul><ul><li>If there isn’t enough bandwidth to handle the reservation, the router rejects the reservation and returns an error message to the receiver </li></ul>
  117. 117. Soft & Hard State Reservations <ul><li>In general, a signaling protocol can have soft or hard state reservations </li></ul><ul><li>Soft state reservations will time out unless renewed periodically </li></ul><ul><ul><li>You have to say “I’m alive!” or I’ll assume you’re dead </li></ul></ul><ul><ul><li>A system could crash and reboot, and it wouldn’t lose its reservation, if it responded fast enough </li></ul></ul><ul><ul><li>RSVP, PIM, SIP, and IGMP use soft state </li></ul></ul>
  118. 118. Soft & Hard State Reservations <ul><li>Hard state signaling means the reservation stays forever, until explicitly removed by an uninstall, delete, tear-down, or other message </li></ul><ul><ul><li>Requires a means to look for orphaned states (its installer is dead or gone) </li></ul></ul><ul><ul><li>Typically used for reliable systems (not best effort) </li></ul></ul><ul><ul><li>RSVP has optional removal of reservations </li></ul></ul>
  119. 119. Summary <ul><li>Multimedia is huge in the Internet, and getting bigger! </li></ul><ul><ul><li>May replace circuit switched telephones </li></ul></ul><ul><li>Here we reviewed the types of multimedia apps, looked at methods for best-effort networking, added methods for QoS guarantees, and outlined architectures for providing QoS </li></ul>