Download presentation
Presentation is loading. Please wait.
Published byEthelbert Porter Modified over 9 years ago
1
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Protocols
2
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Background
3
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Quality of Service (QoS) Basic concepts Quality of service Resource reservation End-to-end path must respond to real-time requirements and provide a certain level of service quality
4
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multimedia Systems QoS Often “quality” is subjective (e.g., video, audio) Real-time requirements Hard real-time: aircraft control system Soft real-time: e.g., video playback
5
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Real-time Requirements Fault tolerance Missed deadlines Result: e.g., jitter Periodic sampling: streams Affects scheduling policy Bandwidth demand Bandwidth versus quality tradeoff
6
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Service and Protocol Req. Time-sensitive requirements High data throughput requirements Service guarantee requirements High or partial reliability requirements Cost-based fairness requirements
7
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Resource Reservation Proper resource management helps to establish desired QoS (memory, bandwidth, CPU, …) E.g.: network bandwidth Circuit-switched Packet-switched versus
8
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Resource Reservation Rule of Thumb E.g.: In circuit-switched telephone system “silence” will consume bandwidth Shared resources can often be more (cost-) effectively used compared with dedicated resources
9
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) QoS Summary (Networked) multimedia systems have certain requirements Best-effort, shared network: Internet Non real-time OS: Windows, Linux But, we have Need to find clever techniques
10
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) You are Here Network Encoder Sender Middlebox Receiver Decoder
11
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Interested ISO Layers Application Transport Network
12
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Interested ISO Layers RTP TCP Network IP Multicast IP UDP
13
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) IP Multicast
14
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Communication Models Traditional Applications: One-to-One receiversender
15
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Communication Models Media Applications: One-to-Many sender receivers
16
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Communication Models Media Applications: Many-to-Many Mesh topology
17
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Communication Models Media Applications: Many-to-Many Star topology (client-server) Example: MCU for video conferencing (Multipoint Control Unit)
18
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Traditional Solutions Mesh N-1 connections at each client (N × (N-1))/2 connections total Not scalable! Star 1 connection per client Server resources become a bottleneck Single point of failure
19
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Example YouTube: client-server video distribution Throughput: > 100 million (July 2006); > 1 billion videos per day (July 2008) Number of users: > 20 million per month Video codec: Adobe Flash Sorenson Spark H.263, H.264/MPEG-4 AVC Video bit-rate: 200 to 2,000 kb/s (SD to HD) Cost of bandwidth: several million US$ per month
20
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) One Solution: IP Multicast sender receivers
21
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Group and Members members
22
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Sending to a Group
23
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Joining and Leaving
24
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Anyone can Send
25
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multicast Address Group ID or “Multicast address” 224.0.0.0 – 239.255.255.255
26
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Unicast Router A B C S A B C
27
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multicast Router A B C S G
28
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multicast Router A B C S G G
29
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multicast Router A B C S G G
30
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Question 1 Router G ? should I forward this packet to my subnet?
31
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Group Management Routers maintain “local host group membership table” “which group has a member in my subnet ?” IP Multicast requires ‘state’ in each router.
32
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Question 2 Router which neighbors should I forward this packet?
33
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Routing Protocols
34
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Routing Protocols Generic Methods : Form a tree to all routers with members Deliver the packets along the tree
35
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Shortest Path Tree One tree for each source for each group
36
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Shared Tree One tree for each group
37
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Routing Protocols DVMRP – shortest path tree CBT – shared tree PIM – combine both
38
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) DVMRP Distance Vector Multicast Routing Protocol
39
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) From S to G RP Q T S :
40
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T Is R on the shortest path to S ? S :
41
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T If no…, ignore the packet
42
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T If yes… Where should I forward it to ?
43
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T Is my subnet interested?
44
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T ? ? Are my neighbors interested?
45
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Observation If neighbor is going to ignore my packets, don’t need to send the packets to it.
46
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T Exchanging Routing Tables DestNext HopCost SP4 AT3 BP2
47
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Flooding Default : Always send to neighboring routers, unless told otherwise.
48
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Pruning Routers who received a “useless” packet send a prune message back. “Don’t send me packets addressed to G anymore !”
49
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T
50
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T PRUNE
51
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T
52
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T GRAFT
53
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T
54
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RP Q T PRUNE
55
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) A router needs to remember… If it has any member for group G in its subnet Where to forward packets from source S to group G Which neighbors will not throw my packets away Which sub-trees are pruned
56
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Problems of DVMRP Not Scalable O(|S||G|) Not Efficient Flooding initially Periodically exchange routing tables
57
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) CBT Core-based Tree
58
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Core Based Tree One tree per group Pick a router as core
59
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) A Shared Tree core P Q R U V W
60
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) V Joins G core P Q R U V JOIN W
61
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) V Joins G core P Q R U V JOIN W
62
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) V Joins G core P Q R U V ACK W
63
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) V Joins G corePQ R U V ACK W
64
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) V Joins G corePQ R U V W
65
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) U Joins G corePQ R U V JOIN W
66
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) U Joins G corePQ RU V ACK W intercept!
67
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) P Sends (on Tree) corePQ RU V W
68
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) W Sends (Not on Tree) corePQ RU V W
69
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) CBT Strengths Scalable O(|G|) states No flooding No exchange of states
70
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) CBT Weaknesses Core placement matters Single point of failure Core can become bottleneck Paths not always shortest
71
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) PIM Protocol Independent Multicast
72
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) PIM Get the best of both worlds: dense mode : similar to DVMRP sparse mode : similar to CBT
73
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Summary What is IP Multicast? How to route packets IGMP DVMRP/CBT/PIM
74
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) So, why can’t we multicast? Who assigns a multicast address? Who pays for multicast traffic? How to inter-operate between protocols? How can we prevent DoS?
75
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Multicast Programming
76
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Create a UDP Socket s = socket(PF_INET, SOCK_DGRAM, 0) bind(s, sock_addr, sizeof(sock_addr))
77
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Join a Group struct sockaddr_in groupStruct; struct ip_mreq mreq; mreq.imr_multiaddr = … // init mcast addr setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &mreq, sizeof(mreq))
78
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Leave a Group struct sockaddr_in groupStruct; struct ip_mreq mreq; mreq.imr_multiaddr = … // init mcast addr setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *) &mreq, sizeof(mreq))
79
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Transport Layer
80
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Interested ISO Layers RTP TCP Network IP Multicast IP UDP
81
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) TCP vs UDP
82
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) TCP vs UDP TCP connection oriented packet ordering reliability congestion control UDP just send!
83
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) How TCP Works (Roughly) Sender expects packet to be ACK’ed If received duplicate ACKs or no ACK after RTO, assume packet lost
84
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) How TCP Works (Roughly) Congestion Avoidance - Reduce sending window when packet lost, increase when packet gets through
85
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Conventional Wisdom Continuous media uses UDP Retransmission may not be useful Congestion control makes throughput unpredictable Multicast + TCP has problems
86
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) UDP Header struct UDPHeader { short src_port; short dst_port; short length; short checksum; }
87
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) UDP not enough Who sent this packet? How do I interpret this packet? When was this packet generated? Which packets come first? Is this packet important? Should I ask for retransmission?
88
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) UDP Challenges “NATmare” (© Nan Chen, Atrica) Many residential computers use network address translation (NAT) Peer 1 Peer 2 NAT device (Cable modem gateway) NAT device (DSL gateway) 192.168.0.1 192.168.1.3 128.125.4.204 209.7.114.157
89
NAT Solutions UDP Hole Punching Third party host is used to initially establish correct state in the routers State periodically expires: keep-alive message may be needed in the absence of traffic STUN protocol (RFC 5389) “Session Traversal Utilities for NAT” NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
90
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Application-Level Framing Expose details to applications Let application decide what to do with a packet, not transport protocol
91
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Real-Time Transport Protocol
92
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Packet Format RTP Header RTP Payload Header RTP Payload
93
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) 9 bits: protocol version, alignment, header extension, CSRC length, marker RTP Header
94
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) payload type: 7 bits identify content e.g. 14: mp3; 32: MPEG-1 RTP Header
95
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Header sequence number: 16 bits packet sequence number
96
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Header media timestamp: 32 bits the instant when the first byte in this packet was captured
97
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Header SSRC: 32 bits random, unique in a session identifies a source (not host!)
98
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTP Header marker bit: depends on payload e.g. beginning of frame
99
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) On Receiving RTP packet check SSRC new source? existing source? which one? check payload type has format been changed? which decoder should I use?
100
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTCP Real-Time Transport Control Protocol
101
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTCP Real-Time Control Protocol Provides receiver’s feedback network conditions time synchronization receiver’s description
102
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTCP Packet Types Sender’s Report (SR) Receiver’s Report (RR) Source Description (SDES) Application Specific (APP) BYE
103
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Fields in SR NTP and RTP Timestamp relate media timestamp to real time Sender’s stats byte count, packet count
104
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Fields in SR + RR Reception Report Number of lost packets % of lost packets Inter-arrival jitter Timestamp of last SR Delay since last SR t lsr t dlsr SR RR
105
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Deducing Network Conditions Packet Loss Rate Interarrival Jitter Round Trip Time
106
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating Packet Loss Ratio For each source, keep first sequence number S 0 last sequence number S last Expected packets = S last – S 0 Count how many received packets
107
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating Interarrival Jitter Variance in packet spacing Define: P i.arrival_time P i.media_timestamp P i.transit_time
108
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating Interarrival Jitter P i.transit_time = P i.arrival_time - P i.media_timestamp Difference in transit time for two consecutive packets = D(i,i-1) = |P i.transit_time – P i-1.transit_time|
109
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating Interarrival Jitter Jitter after packet i = J i J i = (1-a) × J i-1 + a × |D(i,i-1)| RFC 1889: J i = J i-1 + ( |D(i,i-1)| J i-1 )/16
110
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating RTT t lsr t dlsr SR RR Calc RTT
111
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) Calculating ??? P i.sender_byte_count P i.sender_packet_count
112
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTCP Scaling B: Fix RTCP bandwidth N: Number of participants S: Mean RTCP packet size Sending interval =
113
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTSP Real-Time Streaming Protocol
114
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTSP Application-level protocol for control over the delivery of data with real-time properties Simple, text-based RFC 2326
115
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTSP Example DESCRIBE rtsp://genesis/hackers.mov RTSP/1.0 RTSP/1.0 200 OK Server: QTSS/v96 Cseq: Content-Type: application/sdp Content-Base: rtsp://genesis/hackers.mov/ Content-length: 179 v=0 s=hackers.mov u=http://genesis.usc.edu/ e=admin@genesis.usc.edu c=IN IP4 128.125.163.19 a=control:/ a=range:npt=0-3714.90167 m=audio 0 RTP/AVP 10 a=control:trackID=2
116
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTSP Example SETUP rtsp://genesis/hackers.mov Transport: RTP/AVP;unicast;client_port=3000-3001 RTSP/1.0 200 OK Server: QTSS/v96 Cseq: Session: 4862038713701816342;timeout=6000 Transport: rtp/avp;server_port=2000-2001;client_port=3000-3001 PLAY rtsp://genesis/hackers.mov Session: 4862038713701816342 RTSP/1.0 200 OK Server: QTSS/v96 Cseq: Session: 4862038713701816342 RTP-Info:url=hackers.mov;seq=59970;ssrc=477987946;rtptime=263102960
117
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) RTSP Example … [Session plays] … TEARDOWN rtsp://genesis/hackers.mov Session: 4862038713701816342 RTSP/1.0 200 OK Server: QTSS/v96 Cseq: Session: 4862038713701816342 Connection: Close
118
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) SIP Session Initiation Protocol
119
NUS.SOC.CS5248-2010 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) SIP Application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. Text-based RFC 3261 Has been accepted as a standard for VoIP (Note: Skype does not use SIP)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.