1 web content delivery reading: section 9.2.2 and 9.4.3 cos 461: computer networks spring 2007 (mw...
Post on 22-Dec-2015
215 views
TRANSCRIPT
![Page 1: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/1.jpg)
1
Web Content Delivery Reading: Section 9.2.2 and 9.4.3
COS 461: Computer Networks
Spring 2007 (MW 1:30-2:50 in Friend 004)
Ioannis Avramopoulos
Instructor: Jennifer Rexford
http://www.cs.princeton.edu/courses/archive/spring07/cos461/
![Page 2: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/2.jpg)
2
Web Content Delivery
![Page 3: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/3.jpg)
3
Scalability
![Page 4: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/4.jpg)
4
Server Farms
![Page 5: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/5.jpg)
5
Server Farms (cont.)
![Page 6: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/6.jpg)
6
Mirrors
![Page 7: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/7.jpg)
7
Mirrors (cont.)
• http://fedora.redhat.com/
![Page 8: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/8.jpg)
8
Web Proxies
![Page 9: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/9.jpg)
9
Web Proxies are Intermediaries
• Proxies play both roles– A server to the client– A client to the server
www.cnn.com
www.google.com
Proxy
![Page 10: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/10.jpg)
10
Proxy Caching
• Client #1 requests http://www.foo.com/fun.jpg– Client sends “GET fun.jpg” to the proxy– Proxy sends “GET fun.jpg” to the server– Server sends response to the proxy– Proxy stores the response, and forwards to client
• Client #2 requests http://www.foo.com/fun.jpg– Client sends “GET fun.jpg” to the proxy– Proxy sends response to the client from the cache
• Benefits– Faster response time to the clients– Lower load on the Web server– Reduced bandwidth consumption inside the network
![Page 11: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/11.jpg)
11
Getting Requests to the Proxy
• Explicit configuration–Browser configured to use a proxy–Directs all requests through the proxy–Problem: requires user action
• Transparent proxy (or “interception proxy”)–Proxy lies in path from the client to the servers–Proxy intercepts packets en route to the server–… and interposes itself in the data transfer–Benefit: does not require user action
![Page 12: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/12.jpg)
12
Challenges of Transparent Proxies
• Must ensure all packets pass by the proxy– By placing it at the only access point to the Internet– E.g., at the border router of a campus or company
• Overhead of reconstructing the requests– Must intercept the packets as they fly by– … and reconstruct into the ordered by stream
• May be viewed as a violation of user privacy– The user does not know the proxy lies in the path– Proxy may be keeping logs of the user’s requests
![Page 13: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/13.jpg)
13
Other Functions of Web Proxies
• Anonymization– Server sees requests coming from the proxy address– … rather than the individual user IP addresses
• Transcoding– Converting data from one form to another– E.g., reducing the size of images for cell-phone browsers
• Prefetching– Requesting content before the user asks for it
• Filtering– Blocking access to sites, based on URL or content
![Page 14: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/14.jpg)
14
Content Providers / Consumers
• Content providers / consumers are interested in being able to offer / access content– Efficiently– Reliably– Securely– Inexpensively
• Providers deploy server farms and replicas
• Consumers deploy web proxies
• There is an alternative solution…
![Page 15: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/15.jpg)
15
3rd Parties: Content Delivery Networks
![Page 16: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/16.jpg)
16
Domain Name System (DNS)and the Web
![Page 17: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/17.jpg)
17
DNS Query in Web Download
• User types or clicks on a URL– E.g., http://www.cnn.com/2006/leadstory.html
• Browser extracts the site name– E.g., www.cnn.com
• Browser calls gethostbyname() to learn IP address– Triggers resolver code to query the local DNS server
• Eventually, the resolver gets a reply– Resolver returns the IP address to the browser
• Then, the browser contacts the Web server– Creates and connects socket, and sends HTTP request
![Page 18: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/18.jpg)
18
Multiple DNS Queries
• Often a Web page has embedded objects– E.g., HTML file with embedded images
• Each embedded object has its own URL– … and potentially lives on a different Web server– E.g., http://www.myimages.com/image1.jpg
• Browser downloads embedded objects– Usually done automatically, unless configured otherwise– Requires learning the address for www.myimages.com
![Page 19: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/19.jpg)
19
When are DNS Queries Unnecessary?
• Browser is configured to use a proxy– E.g., browser sends all HTTP requests through a proxy– Then, the proxy takes care of issuing the DNS request
• Requested Web resource is locally cached– E.g., cache has http://www.cnn.com/2006/leadstory.html– No need to fetch the resource, so no need to query
• Browser recently queried for this host name– E.g., user recently visited http://www.cnn.com/– So, the browser already called gethostbyname()– … and may be locally caching the resulting IP address
![Page 20: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/20.jpg)
20
Directing Web Clients to Replicas
• Simple approach: different names– www1.cnn.com, www2.cnn.com, www3.cnn.com– But, this requires users to select specific replicas
• More elegant approach: different IP addresses– Single name (e.g., www.cnn.com), multiple addresses– E.g., 64.236.16.20, 64.236.16.52, 64.236.16.84, …
• Authoritative DNS server returns many addresses– And the local DNS server selects one address– Authoritative server may vary the order of addresses
![Page 21: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/21.jpg)
21
Clever Load Balancing Schemes
• Selecting the “best” IP address to return–Based on server performance–Based on geographic proximity–Based on network load–…
• Example policies–Round-robin scheduling to balance server load–U.S. queries get one address, Europe another–Tracking the current load on each of the replicas
![Page 22: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/22.jpg)
22
Assignments
![Page 23: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/23.jpg)
23
Assignment 0: Feedback
![Page 24: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/24.jpg)
24
Assignment 1: Tips
• Build on code for assignment 0
• Parsing is major component of assignment 1
• Use telnet to debug
• Then install and use Firefox for more testing
![Page 25: 1 Web Content Delivery Reading: Section 9.2.2 and 9.4.3 COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:](https://reader030.vdocuments.us/reader030/viewer/2022032523/56649d765503460f94a5846d/html5/thumbnails/25.jpg)
25
Conclusion
• Web Content Delivery– Client-Server Model– Scalability
• Web Proxies– Dynamic Content Replication
• Domain Name System– Dynamic Load Balancing
• Next class: Translating Addresses– DNS (cont.)– DHCP– ARP