touring a datacenter, finishing up tcp, and if time, the...
TRANSCRIPT
![Page 1: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/1.jpg)
Touring a Datacenter, Finishing up TCP, and if time, The Web
15-441 Fall 2017 Profs Peter Steenkiste & Justine Sherry
Thanks to Scott Shenker, Sylvia Ratnasamay, Peter Steenkiste,
and Srini Seshan for slides.
![Page 2: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/2.jpg)
Preamble to Web• Professor Steenkiste is traveling most of the month
• Anonymous Q&A
• I went to a Facebook datacenter
• Guest speaker to tell us about data centers at Microsoft on 11/17
• Finishing up TCP
![Page 3: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/3.jpg)
More About Datacenters
• Dr. David Maltz will be visiting our class 11/17
• Invite your friends
• He is a CMU alumnus!
• He runs most of networking for Microsoft Azure (ie, their public cloud datacenters).
![Page 4: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/4.jpg)
Preamble to Lecture• Professor Steenkiste is traveling most of the month
• Anonymous Q&A
• I went to a Facebook datacenter
• Guest speaker to tell us about data centers at Microsoft on 11/17
• Finishing up TCP
![Page 5: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/5.jpg)
Quick Reviewslow start
congstn. avoid.
fast recovery
cwnd > ssthresh
timeout
dupACK=3
timeoutdupACK=3
new ACK
dupACK
new ACK
timeoutnew ACK
![Page 6: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/6.jpg)
Quick Reviewslow start
congstn. avoid.
fast recovery
cwnd > ssthresh
timeout
dupACK=3
timeoutdupACK=3
new ACK
dupACK
new ACK
timeoutnew ACK
![Page 7: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/7.jpg)
Quick Reviewslow start
congstn. avoid.
fast recovery
cwnd > ssthresh
timeout
dupACK=3
timeoutdupACK=3
new ACK
dupACK
new ACK
timeoutnew ACK
![Page 8: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/8.jpg)
Quick Reviewslow start
congstn. avoid.
fast recovery
cwnd > ssthresh
timeout
dupACK=3
timeoutdupACK=3
new ACK
dupACK
new ACK
timeoutnew ACK
![Page 9: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/9.jpg)
What’s wrong with TCP?
![Page 10: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/10.jpg)
Did we meet our goals?
![Page 11: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/11.jpg)
Did we meet our goals?
Wanted a mechanism that:• Uses network resources efficiently• Prevents collapse• Preserves fair network resource allocation
![Page 12: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/12.jpg)
A Simple Model for TCP ThroughputLoss
t
cwnd
maxW
2maxW
![Page 13: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/13.jpg)
A Simple Model for TCP ThroughputLoss
t
cwnd
1
RTT
maxW
2maxW
![Page 14: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/14.jpg)
A
A Simple Model for TCP ThroughputLoss
t
cwnd
1
RTT
maxW
2maxW
![Page 15: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/15.jpg)
A
A Simple Model for TCP ThroughputLoss
t
cwnd
maxW
2maxW
½ Wmax RTTs between drops
![Page 16: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/16.jpg)
A
A Simple Model for TCP ThroughputLoss
t
cwnd
maxW
2maxW
½ Wmax RTTs between drops
Avg. ¾ Wmax packets per RTTs
![Page 17: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/17.jpg)
A
A Simple Model for TCP ThroughputLoss
t
cwnd
maxW
2maxW
Packet drop rate, p=1/ A, where A= 38Wmax
2
Throughput, B= AWmax
2⎛
⎝⎜
⎞
⎠⎟RTT
=32
1RTT p
![Page 18: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/18.jpg)
Did we meet our goals?
Wanted a mechanism that:• Uses network resources efficiently?• Prevents collapse• Preserves fair network resource allocation
![Page 19: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/19.jpg)
Problem #1: Can’t scale to large BDP networksDelay-bandwidth product for 100ms delay
1.5Mbps: 18KB 10Mbps: 122KB 45Mbps: 549KB 100Mbps: 1.2MB 622Mbps: 7.4MB 1.2Gbps: 14.8MB
Why is this a problem? 10Mbps > max 16bit window
Scaling factor on advertised window Specifies how many bits window must be shifted to the left Scaling factor exchanged during connection setup
![Page 20: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/20.jpg)
Problem #1: Can’t scale to large BDP networks• “Large window” option (RFC
1323)• Negotiated by the hosts during
connection establishment• Option 3 specifies the number
of bits by which to shift the value in the 16 bit window field
• Independently set for the two transmit directions
• The scaling factor specifies bit shift of the window field in the TCP header• Scaling value of 2 translates
into a factor of 4• Old TCP implementations will
simply ignore the option• Definition of an option
TCP syn
SW? 3
TCP syn,ack
SW yes 3SW? 2
TCP ack
SW yes 2
![Page 21: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/21.jpg)
Even if we had enough sequence numbers, TCP algorithm can’t easily keep the link saturated.
32pRTT
MSSBW´
=
![Page 22: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/22.jpg)
Same problem, visually.
Packet loss
Time (RTT)Congestion avoidance
Packet loss Packet losscwnd
Slow start
Packet loss
l A TCP connection with 1250-Byte packet size and 100ms RTT is running over a 10Gbps link (assuming no other connections, and no buffers at routers)
100,000 10Gbps
50,000 5Gbps
1.4 hours 1.4 hours 1.4 hours
TCP
![Page 23: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/23.jpg)
Enter: TCP Cubic• Goal is to spend more time at the high end of the window value range
• Remember: 1.4 hours to reach Wmax on 10 Gbps link?
• Idea: make the additive increase adaptive depending on how close you are to presumed Wmax value
• Fast recovery using larger additive increase toward Wmax (cubic increase)
• Slow change around Wmax
• Fast search for a higher Wmax
![Page 24: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/24.jpg)
TCP Cubic in One Slide
![Page 25: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/25.jpg)
Did we meet our goals?
Wanted a mechanism that:• Uses network resources efficiently?• Prevents collapse — YES• Preserves fair network resource allocation
![Page 26: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/26.jpg)
Did we meet our goals?
Wanted a mechanism that:• Uses network resources efficiently?• Prevents collapse• Preserves fair network resource allocation
![Page 27: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/27.jpg)
Is it fair?
A1
A2 B2
B1
bottleneck link
100ms
200ms
![Page 28: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/28.jpg)
Is it fair?
● Flows get throughput inversely proportional to RTT
Throughput = 32
1RTT p
A1
A2 B2
B1
bottleneck link
100ms
200ms
![Page 29: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/29.jpg)
Is it fair?
● Flows get throughput inversely proportional to RTT● TCP unfair in the face of heterogeneous RTTs!
Throughput = 32
1RTT p
A1
A2 B2
B1
bottleneck link
100ms
200ms
![Page 30: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/30.jpg)
Did we meet our goals?
Wanted a mechanism that:• Uses network resources efficiently?• Prevents collapse• Preserves fair network resource allocation
One thing we forgot: latency
![Page 31: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/31.jpg)
Latency• TCP detects loss when buffers fill up and drop packets
• This means that packets incur high queueing delay in the network.
• When queues are long, this makes observed RTT go up!
• Consider a 100GB transfer sharing a link with a few 100B transfers.
• Recent work from Google on new algorithm (called BBR) that doesn’t fill up queues.
![Page 32: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/32.jpg)
Today’s Network: Lots of TCP Algorithms
• TCP Cubic is the standard in Linux. Windows uses another algorithm called “Compound TCP”
• TCP NewReno (which we learned in this class) remains the “standard” — and everyone uses it as the reference.
• UDP-based protocols use their own algorithms for congestion control to avoid interfering with TCP.
![Page 33: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/33.jpg)
Preamble to Lecture• Professor Steenkiste is traveling most of the month
• Anonymous Q&A
• I went to a Facebook datacenter
• Guest speaker to tell us about data centers at Microsoft on 11/17
• Finishing up TCP
![Page 34: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/34.jpg)
ONWARD TO THE WEB!
![Page 35: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/35.jpg)
![Page 36: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/36.jpg)
1945: Vannevar Bush• “As we may think”,
Atlantic Monthly, July, 1945.
• Describes the idea of a distributed hypertext system
• A “memex” that mimics the “web of trails” in our minds
![Page 37: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/37.jpg)
Dec 9, 1968: “The Mother of All Demos”
https://www.youtube.com/watch?v=74c8LntW7fo
First demonstration of Memex-inspired system
Working prototype with hypertext, linking, use of a mouse…
![Page 38: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/38.jpg)
Many other iterations before we got to the World Wide Web
• MINITEL in France. https://en.wikipedia.org/wiki/Minitel
• Project Xanadu. https://en.wikipedia.org/wiki/Project_Xanadu
• (Note that you don’t need to know any of this history for exams, this is just for the curious…)
![Page 39: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/39.jpg)
1989: Tim Berners-Lee1989: Tim Berners-Lee (CERN) writes internal proposal to develop a distributed hypertext system
• Connects “a web of notes with links”.
• Intended to help CERN physicists in large projects share and manage information
1990: TBL writes graphical browser for Next machines
1992-1994: NCSA/Mosaic/Netscape browser release
![Page 40: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/40.jpg)
Internet Traffic History
0.001
0.01
0.1
1
10
100
1000
10000
100000PByte/month
Year
All
Fixed
Mobile
![Page 41: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/41.jpg)
Hyper Text Transfer Protocol (HTTP)
![Page 42: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/42.jpg)
Hyper Text Transfer Protocol (HTTP)
● Client-server architecture ● server is “always on” and “well known” ● clients initiate contact to server
![Page 43: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/43.jpg)
Hyper Text Transfer Protocol (HTTP)
● Client-server architecture ● server is “always on” and “well known” ● clients initiate contact to server
● Synchronous request/reply protocol ● Runs over TCP, Port 80
![Page 44: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/44.jpg)
Hyper Text Transfer Protocol (HTTP)
● Client-server architecture ● server is “always on” and “well known” ● clients initiate contact to server
● Synchronous request/reply protocol ● Runs over TCP, Port 80
● Stateless
![Page 45: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/45.jpg)
Hyper Text Transfer Protocol (HTTP)
● Client-server architecture ● server is “always on” and “well known” ● clients initiate contact to server
● Synchronous request/reply protocol ● Runs over TCP, Port 80
● Stateless
● ASCII format
![Page 46: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/46.jpg)
Steps in HTTP Request/ResponseClient Server
![Page 47: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/47.jpg)
Steps in HTTP Request/ResponseClient Server
TCP Syn
TCP syn + ack Establish connection
![Page 48: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/48.jpg)
Steps in HTTP Request/ResponseClient Server
TCP Syn
TCP syn + ack
TCP ack + HTTP GET
...
Establish connection
Request response
Client request
![Page 49: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/49.jpg)
Steps in HTTP Request/ResponseClient Server
TCP Syn
TCP syn + ack
TCP ack + HTTP GET
...
Establish connection
Request response
Client request
Close connection
![Page 50: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/50.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message
request line
header lines
carriage return line feed indicates end of message
![Page 51: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/51.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version
request line
header lines
carriage return line feed indicates end of message
![Page 52: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/52.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version
request line
header lines
carriage return line feed indicates end of message
![Page 53: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/53.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version
request line
header lines
carriage return line feed indicates end of message
![Page 54: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/54.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version
request line
header lines
carriage return line feed indicates end of message
![Page 55: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/55.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version● Request headers: provide information or modify request
request line
header lines
carriage return line feed indicates end of message
![Page 56: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/56.jpg)
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: fr (blank line)
Client-to-Server Communication● HTTP Request Message● Request line: method, resource, and protocol version● Request headers: provide information or modify request● Body: optional data (e.g., to “POST” data to the server)
request line
header lines
carriage return line feed indicates end of message
![Page 57: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/57.jpg)
46
Server-to-Client Communication● HTTP Response Message
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 58: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/58.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 59: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/59.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 60: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/60.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 61: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/61.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 62: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/62.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase● Response headers: provide information
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 63: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/63.jpg)
46
Server-to-Client Communication● HTTP Response Message● Status line: protocol version, status code, status phrase● Response headers: provide information● Body: optional data
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2006 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2006 ... Content-Length: 6821 Content-Type: text/html (blank line) data data data data data ...
status line (protocol, status code, status phrase)
header lines
data e.g., requested HTML file
![Page 64: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/64.jpg)
HTTP is Stateless
![Page 65: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/65.jpg)
HTTP is Stateless
● Each request-response treated independently ● Servers not required to retain state
![Page 66: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/66.jpg)
HTTP is Stateless
● Each request-response treated independently ● Servers not required to retain state
● Good: Improves scalability on the server-side ● Failure handling is easier ● Can handle higher rate of requests ● Order of requests doesn’t matter
![Page 67: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/67.jpg)
HTTP is Stateless
● Each request-response treated independently ● Servers not required to retain state
● Good: Improves scalability on the server-side ● Failure handling is easier ● Can handle higher rate of requests ● Order of requests doesn’t matter
● Bad: Some applications need persistent state ● Need to uniquely identify user or store temporary info ● e.g., Shopping cart, user profiles, usage tracking, …
![Page 68: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/68.jpg)
State in a Stateless Protocol:
Cookies
![Page 69: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/69.jpg)
State in a Stateless Protocol:
Cookies● Client-side state maintenance ● Client stores small state on behalf of server ● Client sends state in future requests to the server
![Page 70: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/70.jpg)
State in a Stateless Protocol:
Cookies● Client-side state maintenance ● Client stores small state on behalf of server ● Client sends state in future requests to the server
Request
![Page 71: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/71.jpg)
State in a Stateless Protocol:
Cookies● Client-side state maintenance ● Client stores small state on behalf of server ● Client sends state in future requests to the server
Request
Response Set-Cookie: XYZ
![Page 72: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/72.jpg)
State in a Stateless Protocol:
Cookies● Client-side state maintenance ● Client stores small state on behalf of server ● Client sends state in future requests to the server
Request
Response Set-Cookie: XYZ
Request Cookie: XYZ
![Page 73: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/73.jpg)
State in a Stateless Protocol:
Cookies● Client-side state maintenance ● Client stores small state on behalf of server ● Client sends state in future requests to the server
● Can provide authentication
Request
Response Set-Cookie: XYZ
Request Cookie: XYZ
![Page 74: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/74.jpg)
Performance Issues
![Page 75: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/75.jpg)
Performance Goals
![Page 76: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/76.jpg)
Performance Goals● User ● fast downloads (not identical to low-latency commn.!) ● high availability
![Page 77: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/77.jpg)
Performance Goals● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective infrastructure
![Page 78: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/78.jpg)
Performance Goals● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective infrastructure
● Network (secondary) ● avoid overload
![Page 79: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/79.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective infrastructure
● Network (secondary) ● avoid overload
![Page 80: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/80.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective infrastructure
● Network (secondary) ● avoid overload
Improve HTTP to compensate for
TCP’s weak spots
![Page 81: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/81.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Improve HTTP to compensate for
TCP’s weak spots
![Page 82: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/82.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Improve HTTP to compensate for
TCP’s weak spots
![Page 83: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/83.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Improve HTTP to compensate for
TCP’s weak spots
![Page 84: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/84.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Improve HTTP to compensate for
TCP’s weak spots
![Page 85: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/85.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Improve HTTP to compensate for
TCP’s weak spots
![Page 86: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/86.jpg)
Solutions?● User ● fast downloads (not identical to low-latency commn.!) ● high availability
● Content provider ● happy users (hence, above) ● cost-effective delivery infrastructure
● Network (secondary) ● avoid overload
Caching and Replication
Exploit economies of scale (Webhosting, CDNs, datacenters)
Improve HTTP to compensate for
TCP’s weak spots
![Page 87: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/87.jpg)
HTTP Performance
![Page 88: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/88.jpg)
HTTP Performance● Most Web pages have multiple objects ● e.g., HTML file and a bunch of embedded images
![Page 89: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/89.jpg)
HTTP Performance● Most Web pages have multiple objects ● e.g., HTML file and a bunch of embedded images
● How do you retrieve those objects (naively)? ● One item at a time
![Page 90: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/90.jpg)
HTTP Performance● Most Web pages have multiple objects ● e.g., HTML file and a bunch of embedded images
● How do you retrieve those objects (naively)? ● One item at a time
● New TCP connection per (small) object!
![Page 91: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/91.jpg)
Typical Workload (Web Pages)
• Multiple (typically small) objects per page • File sizes
• Heavy-tailed • Pareto distribution for tail • Lognormal for body of distribution
• Embedded references • Number of embedded objects also Pareto
Pr(X>x) = (x/xm)-k • This plays havoc with performance. Why? • Solutions?
![Page 92: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/92.jpg)
Typical Workload (Web Pages)
• Multiple (typically small) objects per page • File sizes
• Heavy-tailed • Pareto distribution for tail • Lognormal for body of distribution
• Embedded references • Number of embedded objects also Pareto
Pr(X>x) = (x/xm)-k • This plays havoc with performance. Why? • Solutions?
• Lots of small objects versus TCP • 3-way handshake • Lots of slow starts • Extra connection state
![Page 93: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/93.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
![Page 94: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/94.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
![Page 95: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/95.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
![Page 96: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/96.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
![Page 97: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/97.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
![Page 98: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/98.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
R1R2 R3
T1
T2 T3
![Page 99: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/99.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
• Client = ☺
R1R2 R3
T1
T2 T3
![Page 100: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/100.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
• Client = ☺
• Content provider = ☺
R1R2 R3
T1
T2 T3
![Page 101: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/101.jpg)
Improving HTTP Performance:
Concurrent Requests & Responses
● Use multiple connections in parallel
● Does not necessarily maintain order of responses
• Client = ☺
• Content provider = ☺
• Network = ☹ Why?
R1R2 R3
T1
T2 T3
![Page 102: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/102.jpg)
Improving HTTP Performance:Persistent Connections
![Page 103: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/103.jpg)
Improving HTTP Performance:Persistent Connections
● Maintain TCP connection across multiple requests ● Including transfers subsequent to current page ● Client or server can tear down connection
![Page 104: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/104.jpg)
Improving HTTP Performance:Persistent Connections
● Maintain TCP connection across multiple requests ● Including transfers subsequent to current page ● Client or server can tear down connection
● Performance advantages: ● Avoid overhead of connection set-up and tear-down ● Allow TCP to learn more accurate RTT estimate ● Allow TCP congestion window to increase ● i.e., leverage previously discovered bandwidth
![Page 105: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/105.jpg)
Improving HTTP Performance:Persistent Connections
● Maintain TCP connection across multiple requests ● Including transfers subsequent to current page ● Client or server can tear down connection
● Performance advantages: ● Avoid overhead of connection set-up and tear-down ● Allow TCP to learn more accurate RTT estimate ● Allow TCP congestion window to increase ● i.e., leverage previously discovered bandwidth
● Default in HTTP/1.1
![Page 106: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/106.jpg)
Improving HTTP Performance:
Pipelined Requests & Responses
Client Server
Request 1Request 2Request 3
Transfer 1
Transfer 2
Transfer 3
● Batch requests and responses to reduce the number of packets
● Multiple requests can be contained in one TCP segment
![Page 107: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/107.jpg)
Scorecard: Getting n Small Objects
![Page 108: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/108.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
![Page 109: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/109.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
● One-at-a-time: ~2n RTT
![Page 110: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/110.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
● One-at-a-time: ~2n RTT
● M concurrent: ~2[n/m] RTT
![Page 111: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/111.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
● One-at-a-time: ~2n RTT
● M concurrent: ~2[n/m] RTT
● Persistent: ~ (n+1)RTT
![Page 112: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/112.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
● One-at-a-time: ~2n RTT
● M concurrent: ~2[n/m] RTT
● Persistent: ~ (n+1)RTT
● Pipelined: ~2 RTT
![Page 113: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/113.jpg)
Scorecard: Getting n Small Objects
Time dominated by latency
● One-at-a-time: ~2n RTT
● M concurrent: ~2[n/m] RTT
● Persistent: ~ (n+1)RTT
● Pipelined: ~2 RTT
● Pipelined/Persistent: ~2 RTT first time, RTT later
![Page 114: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/114.jpg)
Scorecard: Getting n Large Objects
![Page 115: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/115.jpg)
Scorecard: Getting n Large Objects
Time dominated by bandwidth
![Page 116: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/116.jpg)
Scorecard: Getting n Large Objects
Time dominated by bandwidth
● One-at-a-time: ~ nF/B
![Page 117: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/117.jpg)
Scorecard: Getting n Large Objects
Time dominated by bandwidth
● One-at-a-time: ~ nF/B
● M concurrent: ~ [n/m] F/B ● assuming shared with large population of users ● and each TCP connection gets the same bandwidth
![Page 118: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/118.jpg)
Scorecard: Getting n Large Objects
Time dominated by bandwidth
● One-at-a-time: ~ nF/B
● M concurrent: ~ [n/m] F/B ● assuming shared with large population of users ● and each TCP connection gets the same bandwidth
● Pipelined and/or persistent: ~ nF/B ● The only thing that helps is getting more bandwidth..
![Page 119: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/119.jpg)
Improving HTTP Performance:
Caching
● Why does caching work? ● Exploits locality of reference
● How well does caching work? ● Very well, up to a limit ● Large overlap in content ● But many unique requests
![Page 120: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/120.jpg)
Improving HTTP Performance:
Caching: How
![Page 121: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/121.jpg)
Improving HTTP Performance:
Caching: How
● Modifier to GET requests: ● If-modified-since – returns “not modified” if resource
not modified since specified time
![Page 122: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/122.jpg)
Improving HTTP Performance:
Caching: How
● Modifier to GET requests: ● If-modified-since – returns “not modified” if resource
not modified since specified time
GET /~ee122/fa13/ HTTP/1.1 Host: inst.eecs.berkeley.eduUser-Agent: Mozilla/4.03 If-modified-since: Sun, 27 Oct 2013 22:25:50 GMT <CRLF>
![Page 123: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/123.jpg)
Improving HTTP Performance:
Caching: How
● Modifier to GET requests: ● If-modified-since – returns “not modified” if resource
not modified since specified time
GET /~ee122/fa13/ HTTP/1.1 Host: inst.eecs.berkeley.eduUser-Agent: Mozilla/4.03 If-modified-since: Sun, 27 Oct 2013 22:25:50 GMT <CRLF>
● Client specifies “if-modified-since” time in request ● Server compares this against “last modified” time of resource ● Server returns “Not Modified” if resource has not changed ● …. or a “OK” with the latest version otherwise
![Page 124: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/124.jpg)
Improving HTTP Performance:
Caching: How
● Modifier to GET requests: ● If-modified-since – returns “not modified” if resource
not modified since specified time
● Response header: ● Expires – how long it’s safe to cache the resource● No-cache – ignore all caches; always get resource
directly from server
![Page 125: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/125.jpg)
Improving HTTP Performance:
Caching: Where?
![Page 126: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/126.jpg)
Improving HTTP Performance:
Caching: Where?
● Options ● Client ● Forward proxies ● Reverse proxies ● Content Distribution Network
![Page 127: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/127.jpg)
● Baseline: Many clients transfer same information ● Generate unnecessary server and network load ● Clients experience unnecessary latency
Server
Clients
Tier-1 ISP
ISP-1 ISP-2
Improving HTTP Performance:
Caching: Where?
![Page 128: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/128.jpg)
66
Improving HTTP Performance:
Caching with Reverse Proxies
● Cache documents close to server à decrease server load
● Typically done by content provider
Clients
Backbone ISP
ISP-1 ISP-2
Server
Reverse proxies
![Page 129: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/129.jpg)
Improving HTTP Performance:
Caching with Forward Proxies
● Cache documents close to clients à reduce network traffic and decrease latency ● Typically done by ISPs or enterprises
Clients
Backbone ISP
ISP-1 ISP-2
Server
Reverse proxies
Forward proxies
![Page 130: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/130.jpg)
Improving HTTP Performance: Replication
![Page 131: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/131.jpg)
● Replicate popular Web site across many machines ● Spreads load on servers ● Places content closer to clients ● Helps when content isn’t cacheable
Improving HTTP Performance: Replication
![Page 132: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/132.jpg)
● Replicate popular Web site across many machines ● Spreads load on servers ● Places content closer to clients ● Helps when content isn’t cacheable
● Problem: Want to direct client to particular replica ● Balance load across server replicas ● Pair clients with nearby servers
Improving HTTP Performance: Replication
![Page 133: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/133.jpg)
● Replicate popular Web site across many machines ● Spreads load on servers ● Places content closer to clients ● Helps when content isn’t cacheable
● Problem: Want to direct client to particular replica ● Balance load across server replicas ● Pair clients with nearby servers
● Common solution: ● DNS returns different addresses based on client’s geo
location, server load, etc.
Improving HTTP Performance: Replication
![Page 134: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/134.jpg)
Improving HTTP Performance: Content Distribution Networks
![Page 135: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/135.jpg)
Improving HTTP Performance: Content Distribution Networks
● Caching and replication as a service
![Page 136: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/136.jpg)
Improving HTTP Performance: Content Distribution Networks
● Caching and replication as a service● Large-scale distributed storage infrastructure (usually)
administered by one entity ● e.g., Akamai has servers in 20,000+ locations
![Page 137: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/137.jpg)
Improving HTTP Performance: Content Distribution Networks
● Caching and replication as a service● Large-scale distributed storage infrastructure (usually)
administered by one entity ● e.g., Akamai has servers in 20,000+ locations
● Combination of (pull) caching and (push) replication ● Pull: Direct result of clients’ requests ● Push: Expectation of high access rate
![Page 138: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/138.jpg)
Improving HTTP Performance: Content Distribution Networks
● Caching and replication as a service● Large-scale distributed storage infrastructure (usually)
administered by one entity ● e.g., Akamai has servers in 20,000+ locations
● Combination of (pull) caching and (push) replication ● Pull: Direct result of clients’ requests ● Push: Expectation of high access rate
● Also do some processing ● Handle dynamic web pages ● Transcoding
![Page 139: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/139.jpg)
Improving HTTP Performance:CDN Example – Akamai
![Page 140: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/140.jpg)
Improving HTTP Performance:CDN Example – Akamai
● Akamai creates new domain names for each client ● e.g., a128.g.akamai.net for cnn.com
![Page 141: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/141.jpg)
Improving HTTP Performance:CDN Example – Akamai
● Akamai creates new domain names for each client ● e.g., a128.g.akamai.net for cnn.com
● The CDN’s DNS servers are authoritative for the new domains
![Page 142: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/142.jpg)
Improving HTTP Performance:CDN Example – Akamai
● Akamai creates new domain names for each client ● e.g., a128.g.akamai.net for cnn.com
● The CDN’s DNS servers are authoritative for the new domains
● The client content provider modifies its content so that embedded URLs reference the new domains.
● “Akamaize” content ● e.g.: http://www.cnn.com/image-of-the-day.gif becomes http://
a128.g.akamai.net/image-of-the-day.gif
![Page 143: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/143.jpg)
Improving HTTP Performance:CDN Example – Akamai
● Akamai creates new domain names for each client ● e.g., a128.g.akamai.net for cnn.com
● The CDN’s DNS servers are authoritative for the new domains
● The client content provider modifies its content so that embedded URLs reference the new domains.
● “Akamaize” content ● e.g.: http://www.cnn.com/image-of-the-day.gif becomes http://
a128.g.akamai.net/image-of-the-day.gif
● Requests now sent to CDN’s infrastructure…
![Page 144: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/144.jpg)
Cost-Effective Content Delivery
![Page 145: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/145.jpg)
Cost-Effective Content Delivery
● General theme: multiple sites hosted on shared physical infrastructure ● efficiency of statistical multiplexing ● economies of scale (volume pricing, etc.) ● amortization of human operator costs
![Page 146: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/146.jpg)
Cost-Effective Content Delivery
● General theme: multiple sites hosted on shared physical infrastructure ● efficiency of statistical multiplexing ● economies of scale (volume pricing, etc.) ● amortization of human operator costs
● Examples: ● Web hosting companies ● CDNs ● Cloud infrastructure
![Page 147: Touring a Datacenter, Finishing up TCP, and if time, The Webprs/15-441-F17/lectures/15-web-cdn-perf.pdf · is just for the curious…) 1989: Tim Berners-Lee 1989: Tim Berners-Lee](https://reader033.vdocument.in/reader033/viewer/2022050606/5fad5dcd884de64ee378967b/html5/thumbnails/147.jpg)
Thursday: Midterm Review.