Post on 17-Dec-2015
transcript
3-1
Dealing with (Internet) Scale : CDNs
Recall: one single “mega-server” can’t possibly handle all requests for popular serviceDNSnot enough bandwidth: Netflix video streaming at 2 Mbps per connection
only 5000 connections over fastest possible (10Gbs) connection to Internet at one server
30 Million Netflix customerstoo far from some users: halfway around the globe to someonereliability: single point of failure
A single server doesn’t “scale”
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
3-2
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 Limelight3-3
CDN: “simple” content access scenario
3-4
Bob (client) requests video http://netcinema.com/6Y7B23Vvideo stored in CDN at http://KingCDN.com/NetC6y&B23V
netcinema.com
KingCDN.com
1
1. Bob gets URL for for video http://netcinema.com/6Y7B23Vfrom netcinema.com web page 2
2. resolve http://netcinema.com/6Y7B23Vvia Bob’s local DNS
netcinema’sauthorative DNS
3
3. netcinema’s DNS returns URL http://KingCDN.com/NetC6y&B23V
4
4&5. Resolve http://KingCDN.com/NetC6y&B23via KingCDN’s authoritative DNS, which returns IP address of KIingCDN server with video
56. request video fromKINGCDN server,streamed via HTTP
KingCDNauthoritative DNS
CDN cluster selection strategy
challenge: how does CDN DNS select “good” CDN node to stream to client pick CDN node geographically closest to
client pick CDN node with shortest delay (or min #
hops) to client (CDN nodes periodically ping access ISPs, reporting results to CDN DNS)
alternative: let client decide - give client a list of several CDN servers client pings servers, picks “best”
3-5
Akamai CDN: quickie pioneered creation of CDNs circa 2000 now: 61,000 servers in 1,000 networks
in 70 countries delivers est 15-20% of all Internet traffic runs its own DNS service (alternative to
public root, TLD, hierarchy) hundreds of billions of Internet
interactions daily more shortly….
3-6
Case study: Netflix 30% downstream US traffic in 2013 $1B quarterly revenue 2B hours viewing streamed video owns very little infrastructure, uses 3rd
party services: own registration, payment servers Amazon (3rd party) cloud services:
• Netflix uploads studio master to Amazon cloud
• create multiple version of movie (different encodings) in cloud, move to CDNs
• Cloud hosts Netflix web pages for user browsing
3-7http://www.statisticbrain.com/netflix-statistics/
Case study: Netflix uses three 3rd party CDNs to store, host,
stream Netflix content: Akamai, Limelight, Level-3 can play each of the CDNs against each
other in terms of customer experience
developing its own CDN (2012)
3-8
Case study: Netflix
3-9
1
1. Bob manages Netflix account
Netflix registration,accounting servers
Amazon cloudAkamai CDN
Limelight CDN
Level-3 CDN
22. Bob browsesNetflix video
3
3. Manifest filereturned for requested video
4. DASH streaming
upload copies of multiple versions of video to CDNs
Streaming multimedia: DASH
DASH: Dynamic, Adaptive Streaming over HTTP
server: divides video file into multiple chunks each chunk stored, encoded at different rates manifest file: provides URLs for different chunks
client: periodically measures server-to-client bandwidth consulting manifest, requests one chunk at a time
• chooses maximum coding rate sustainable given current bandwidth
• can choose different coding rates at different points in time (depending on available bandwidth at time)
3-10
Streaming multimedia: DASH
manifest file: provides URLs for different chunks
3-11
Segment Info
Initialization Segment http://www.e.com/ahs-5.3gp
Initialization Segment http://www.e.com/ahs-5.3gp
Media Presentation
Period, start=0s
…Period, start=100s
…Period, start=295s
…
…
Period, •start=100•baseURL=http://www.e.com/
Representation 1500kbit/s
…
Representation 2100kbit/s
…Representation 1•bandwidth=500kbit/s•width 640, height 480
Segment Infoduration=10sTemplate:./ahs-5-$Index$.3gs
…
Media Segment 1start=0shttp://www.e.com/ahs-5-1.3gs
Media Segment 1start=0shttp://www.e.com/ahs-5-1.3gsMedia Segment 2start=10shttp://www.e.com/ahs-5-2.3gs
Media Segment 2start=10shttp://www.e.com/ahs-5-2.3gsMedia Segment 3start=20shttp://www.e.com/ahs-5-3.3gh
Media Segment 3start=20shttp://www.e.com/ahs-5-3.3gh
Media Segment 20start=190shttp://www.e.com/ahs-5-20.3gs
Media Segment 20start=190shttp://www.e.com/ahs-5-20.3gs
Ack & ©: Thomas Stockhammer
Streaming multimedia: DASH
DASH: Dynamic, Adaptive Streaming over HTTP
“intelligence” at client: client determines when to request chunk (so that buffer
starvation, or overflow does not occur) what encoding rate to request (higher
quality when more bandwidth available) where to request chunk (can request from
URL server that is “close” to client or has high available bandwidth)
3-12
Let’s check out Netflix: use wireshark to capture and view
packets being sent to/from my laptop you’re not responsible for knowing how to
use it, but it’s a lot of fun logging in (authorization), content
selection main webpage hosted by amazon cloud? use whois to see who server is select video and begin playing use whois to see who is serving video how far away is server (use traceroute, no info?
Ip2location.com)3-13
Netflix: user adaptation to bandwidth changes
Question: how does Netflix client adapt to changes in bandwidth (due to changing congestion levels on network path)
two client-based alternatives: get video from new CDN server (over new path)? change video streaming rate via DASH?
experiment: connect to Netflix systematically decrease bandwidth from server to
client measure how client responds: decrease rate or
change servers3-14
Netflix experiment
3-15
Akamai CDN
Limelight CDN
Level-3 CDN
Bob’s home network
Public Internet
Adjust bandwidth to Bob’s computer, see how Netflix responds
Vijay Kumar Adhikari, Yang Guo, Fang Hao, Matteo Varvello, Volker Hilt, Moritz Steiner, Zhi-Li Zhang, “Unreeling Netflix: Understanding and Improving Multi-CDN Movie Delivery”, INFOCOM, Orlando, FL, USA, March, 2012.