340 likes | 352 Views
Explore the fundamentals of multimedia networking, quality of service, types of applications, and challenges like delay sensitivity and loss tolerance in video streaming. Learn about streaming, stored multimedia, VoIP, and CDN.
E N D
CS 1652 Jack Lange University of Pittsburgh
QoS network provides application with level of performance needed for application to function. Multimedia and Quality of Service: What is it? multimedia applications: network audio and video (“continuous media”) 7: Multimedia Networking
Multimedia networking: 3 application types • streaming, storedaudio, video • streaming: can begin playout before downloading entire file • stored (at server): can transmit faster than audio/video will be rendered (implies storing/buffering at client) • e.g., YouTube, Netflix, Hulu • conversational voice/video over IP • interactive nature of human-to-human conversation limits delay tolerance • e.g., Skype • streaming live audio, video • e.g., live sporting event Multimedia Networking
MM Networking Applications Fundamental characteristics: • typically delaysensitive • end-to-end delay • delay jitter • loss tolerant: infrequent losses cause minor glitches • antithesis of bulk data, which is loss intolerant but delay tolerant. Jitter is the variability of packet delays within the same packet stream 7: Multimedia Networking
Streaming Stored Multimedia Stored streaming: • media stored at source • transmitted to client • streaming: client playout begins before all data has arrived • timing constraint for still-to-be transmitted data: in time for playout 7: Multimedia Networking
2. video sent 3. video received, played out at client 1. video recorded network delay streaming: at this time, client playing out early part of video, while server still sending later part of video Streaming Stored Multimedia: What is it? Cumulative data time 7: Multimedia Networking
client video reception constant bit rate video playout at client variable network Delay (jitter) buffered video client playout delay Streaming Multimedia: Client Buffering constant bit rate video transmission • client-side buffering, playout delay compensate for network-added delay, delay jitter Cumulative data time 7: Multimedia Networking
Client-side buffering, playout buffer fill level, Q(t) playout rate, e.g., CBR r variable fill rate, x(t) client application buffer, size B video server client Multimedia Networking
Streaming multimedia: HTTP • multimedia file retrieved via HTTP GET • send at maximum possible rate under TCP • fill rate fluctuates due to TCP congestion control, retransmissions (in-order delivery) • larger playout delay: smooth TCP delivery rate • HTTP/TCP passes more easily through firewalls variable rate, x(t) video file TCP send buffer TCP receive buffer application playout buffer server client Multimedia Networking
Voice-over-IP (VoIP) • VoIP end-end-delay requirement: needed to maintain “conversational” aspect • higher delays noticeable, impair interactivity • < 150 msec: good • > 400 msec bad • includes application-level (packetization, playout), network delays • session initialization: how does callee advertise IP address, port number, encoding algorithms? • value-added services: call forwarding, screening, recording • emergency services: 911 Multimedia Networking
VoIP: packet loss, delay • network loss: IP datagram lost due to network congestion (router buffer overflow) • delay loss: IP datagram arrives too late for playout at receiver • delays: processing, queueing in network; end-system (sender, receiver) delays • typical maximum tolerable delay: 400 ms • loss tolerance: depending on voice encoding, loss concealment, packet loss rates between 1% and 10% can be tolerated Multimedia Networking
VoIP: fixed playout delay • receiver attempts to playout each chunk exactly q msecs after chunk was generated. • chunk has time stamp t: play out chunk at t+q • chunk arrives after t+q: data arrives too late for playout: data “lost” • tradeoff in choosing q: • large q: less packet loss • small q:better interactive experience Multimedia Networking
VoIP: fixed playout delay • sender generates packets every 20 msec during talk spurt. • first packet received at time r • first playout schedule: begins at p • second playout schedule: begins at p’ Multimedia Networking
Video Streaming and CDNs: context • video traffic: major consumer of Internet bandwidth • Netflix, YouTube: 37%, 16% of downstream residential ISP traffic • ~1B YouTube users, ~75M Netflix users • challenge: scale - how to reach ~1B users? • single mega-video server won’t work • challenge: heterogeneity • different users have different capabilities (e.g., wired versus mobile; bandwidth rich versus bandwidth poor) • solution: distributed, application-level infrastructure Application Layer
Content distribution networks • challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? • option 1: single, large “mega-server” • single point of failure • point of network congestion • long path to distant clients • multiple copies of video sent over outgoing link ….quite simply: this solution doesn’t scale Application Layer
Content distribution networks • challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? • option 2: store/serve multiple copies of videos at multiple geographically distributed sites (CDN) • enter deep: push CDN servers deep into many access networks • close to users • used by Akamai, 1700 locations • bring home: smaller number (10’s) of larger clusters in POPs near (but not within) access networks • used by Limelight Application Layer
manifest file where’s Madmen? Content Distribution Networks (CDNs) • CDN: stores copies of content at CDN nodes • e.g. Netflix stores copies of MadMen • subscriber requests content from CDN … … • directed to nearby copy, retrieves content • may choose different copy if network path congested … … … … Application Layer
Case study: Netflix upload copies of multiple versions of video to CDN servers CDN server CDN server CDN server Amazon cloud Netflix registration, accounting servers 3. Manifest file returned for requested video 2. Bob browses Netflix video 1 2 3 1. Bob manages Netflix account 4. DASH streaming Application Layer
CDN content access: a closer look Bob (client) requests video http://netcinema.com/6Y7B23V • video stored in CDN at http://KingCDN.com/NetC6y&B23V 1. Bob gets URL for video http://netcinema.com/6Y7B23V from netcinema.com web page 2. resolve http://netcinema.com/6Y7B23V via Bob’s local DNS 2 4 5 1 3 6. request video from KINGCDN server, streamed via HTTP Bob’s local DNS server 4&5. Resolve http://KingCDN.com/NetC6y&B23 via KingCDN’s authoritative DNS, which returns IP address of KingCDN server with video 3. netcinema’s DNS returns URL http://KingCDN.com/NetC6y&B23V netcinema.com netcinema’s authoratative DNS KingCDN authoritative DNS KingCDN.com Application Layer
VLANs: motivation consider: • CS user moves office to EE, but wants connect to CS switch? • single broadcast domain: • all layer-2 broadcast traffic (ARP, DHCP, unknown location of destination MAC address) must cross entire LAN • security/privacy, efficiency issues Computer Science Computer Engineering Electrical Engineering Link Layer and LANs
7 1 2 8 15 9 10 16 VLANs Virtual Local Area Network port-based VLAN: switch ports grouped (by switch management software) so that singlephysical switch …… 15 7 9 1 2 8 10 16 switch(es) supporting VLAN capabilities can be configured to define multiple virtualLANS over single physical LAN infrastructure. … … Computer Science (VLAN ports 9-15) Electrical Engineering (VLAN ports 1-8) … operates as multiple virtual switches … … Computer Science (VLAN ports 9-16) Electrical Engineering (VLAN ports 1-8) Link Layer and LANs
forwarding between VLANS: done via routing (just as with separate switches) • in practice vendors sell combined switches plus routers Port-based VLAN router • traffic isolation:frames to/from ports 1-8 can only reach ports 1-8 • can also define VLAN based on MAC addresses of endpoints, rather than switch port 15 7 9 1 2 8 10 16 • dynamic membership: ports can be dynamically assigned among VLANs … … Computer Science (VLAN ports 9-15) Electrical Engineering (VLAN ports 1-8) Link Layer and LANs
1 16 VLANS spanning multiple switches • trunk port:carries frames between VLANS defined over multiple physical switches • frames forwarded within VLAN between switches can’t be vanilla 802.1 frames (must carry VLAN ID info) • 802.1q protocol adds/removed additional header fields for frames forwarded between trunk ports 15 7 9 7 1 3 5 2 8 10 4 6 2 8 … … Computer Science (VLAN ports 9-15) Ports 2,3,5 belong to EE VLAN Ports 4,6,7,8 belong to CS VLAN Electrical Engineering (VLAN ports 1-8) Link Layer and LANs
802.1Q VLAN frame format type source address dest. address preamble data (payload) 802.1 frame CRC type 802.1Q frame data (payload) CRC 2-byte Tag Protocol Identifier (value: 81-00) Recomputed CRC Tag Control Information (12 bit VLAN ID field, 3 bit priority field like IP TOS) source address dest. address preamble Link Layer and LANs
Linux Network Management • Old style (net-tools) • Easier to read/parse but considered deprecated • /sbin/ifconfig • /sbin/route jarusl@gander:~$ ifconfig enp0s31f6 enp0s31f6 Link encap:Ethernet HWaddr 48:4d:7e:ba:98:d6 inet addr:136.142.119.36 Bcast:136.142.119.255 Mask:255.255.255.0 inet6 addr: fe80::4a4d:7eff:feba:98d6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39423777 errors:0 dropped:0 overruns:0 frame:0 TX packets:5912587 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3776746194 (3.7 GB) TX bytes:2307953279 (2.3 GB) Interrupt:19 Memory:f7000000-f7020000 jarusl@gander:~$ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default vl1425.fq-core- 0.0.0.0 UG 0 0 0 enp0s31f6 136.142.119.0 * 255.255.255.0 U 0 0 0 enp0s31f6 172.17.0.0 * 255.255.0.0 U 0 0 0 docker0 192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0 192.172.0.0 * 255.255.0.0 U 0 0 0 lbr0
Linux Network Management • New style (iproute2) • Supports modern networking features, but not friendly • ip addr • ip route jarusl@gander:~$ ip addr show dev enp0s31f6 2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 48:4d:7e:ba:98:d6 brd ff:ff:ff:ff:ff:ff inet 136.142.119.36/24 brd 136.142.119.255 scope global enp0s31f6 valid_lft forever preferred_lft forever inet6 fe80::4a4d:7eff:feba:98d6/64 scope link valid_lft forever preferred_lft forever jarusl@gander:~$ ip route default via 136.142.119.1 dev enp0s31f6 136.142.119.0/24 dev enp0s31f6 proto kernel scope link src 136.142.119.36 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 192.172.0.0/16 dev lbr0 proto kernel scope link src 192.172.0.1
ZeroConf Multimedia Networking
ZeroConf Networking • What: • Non-administered networks • Full Plug-and-Play architecture • No centralized services to configure (DNS, DHCP, etc) • Only need to plug computer into network • Automatically assigns address • Automatically discovers services • Automatically negotiates protocols and connections • For local networks mostly • Not easy to allow external (internet) connectivity 7: Multimedia Networking
Finding an Address • Do not require anyone to provide an address • No network administrator • No DHCP server • Step 1: Select a randomaddress • Special range dedicated to internal zeroconf networks • Step 2: Probe to check if address is already taken • How? • Step 3: Assign address to interface 7: Multimedia Networking
What is multicast • So far we’ve talked about unicast and broadcast • Multicast is “in between” • Each interface has an IP address • But also selectively listens for multicast addresses • Each network device has MAC address • But also selectively listens for multicast addresses • One host can send a packet to anyone who wants to receive it • Mechanism for self defined group communication • TCP doesn’t really work, but UDP is fine 7: Multimedia Networking
Multicast DNS • Dedicated TLD: .local • Dedicated Multicast Address: 224.0.0.251 • Send out a DNS request to a multicast group • If a group member has that name they respond • Example • When you buy a new computer you give it a name • E.g. “My Mac Laptop” • The DNS address is now “My Mac Laptop.local” • If someone queries for that hostname your laptop responds • Sort of like an ARP query 7: Multimedia Networking
Service Discovery • Service Discovery extension to DNS (DNS-SD) • DNS used to identify services (not computers) • Based on Multicast • Special domain name format • Instance.ServiceType.Domain • E.g. My iTunes._daap._tcp.local • Query for ServiceTypes • Enumerate all instances of a service • DNS is based on Multicast! • So we can send a query for _daap._tcp.local to EVERYONE! • If a computer is running a given service they respond with their instance name 7: Multimedia Networking