Applications! Where we are in the Course Applicatjon layer - - PowerPoint PPT Presentation

applications where we are in the course
SMART_READER_LITE
LIVE PREVIEW

Applications! Where we are in the Course Applicatjon layer - - PowerPoint PPT Presentation

Applications! Where we are in the Course Applicatjon layer protocols are ofuen part of app But dont need a GUI, e.g., DNS Applicatjon Transport Network Link Physical CSEP 561 University of Washington 2 Recall


slide-1
SLIDE 1

Applications!

slide-2
SLIDE 2

Where we are in the Course

  • Applicatjon layer protocols are ofuen part of “app”
  • But don’t need a GUI, e.g., DNS

CSEP 561 University of Washington 2

Physical Link Network Transport Applicatjon

slide-3
SLIDE 3

Recall

  • Applicatjon layer messages are ofuen split over

multjple packets

  • Or may be aggregated in a packet …

CSEP 561 University of Washington 3

802.11 IP TCP HTTP 802.11 IP TCP HTTP 802.11 IP TCP HTTP HTTP

slide-4
SLIDE 4

Application Communication Needs

  • Vary widely; must build on Transport services

CSEP 561 University of Washington 4

UDP DNS TCP

Series of variable length, reliable request/reply exchanges

Web UDP

Real-tjme (unreliable) stream delivery

Skype

Short, reliable request/reply exchanges

Message reliability!

slide-5
SLIDE 5

OSI Session/Presentation Layers

  • Remember this? Two relevant concepts …

CSEP 561 University of Washington 5

– Provides functjons needed by users – Converts difgerent representatjons – Manages task dialogs – Provides end-to-end delivery – Sends packets over multjple links – Sends frames of informatjon – Sends bits as signals Considered part of the applicatjon, not strictly layered!

slide-6
SLIDE 6

Session Concept

  • A session is a series of related network interactjons

in support of an applicatjon task

  • Ofuen informal, not explicit
  • Examples:
  • Web page fetches multjple resources
  • Skype call involves audio, video, chat

CSEP 561 University of Washington 6

slide-7
SLIDE 7

Presentation Concept

  • Apps need to identjfy the type of content, and encode it

for transfer

  • These are Presentatjon functjons
  • Examples:
  • Media (MIME) types, e.g., image/jpeg, identjfy content type
  • Transfer encodings, e.g., gzip, identjfy the encoding of content
  • Applicatjon headers are ofuen simple and readable versus

packed for effjciency

CSEP 561 University of Washington 7

slide-8
SLIDE 8

Evolution of Internet Applications

  • Always changing, and growing …

CSEP 561 University of Washington 8

2010 1970 1990 1980 2000

Traffjc

File Transfer (FTP) Email (SMTP) News (NTTP) Secure Shell (ssh) Telnet Email Web (HTTP) Web (CDNs) P2P (BitTorrent) Web (Video) ???

slide-9
SLIDE 9

Evolution of Internet Applications (2)

  • For a peek at the state of the Internet:
  • Akamai’s State of the Internet Report (quarterly)
  • Cisco’s Visual Networking Index
  • Mary Meeker’s Internet Report
  • Robust Internet growth, esp. video, wireless, mobile,

cats

  • Most (70%) traffjc is video (expected 80% in 2019)
  • Mobile traffjc overtakes desktop (2016)
  • 15% of traffjc is cats (2013)
  • Growing atuack traffjc from China, also U.S. and Russia

CSEP 561 University of Washington 9

slide-10
SLIDE 10

Evolution of the Web

CSEP 561 University of Washington 10

Source: htup://www.evolutjonofuheweb.com, Vizzuality, Google, and Hyperakt

slide-11
SLIDE 11

Evolution of the Web (2)

CSEP 561 University of Washington 11

Source: htup://www.evolutjonofuheweb.com, Vizzuality, Google, and Hyperakt

slide-12
SLIDE 12

Domain Name System

slide-13
SLIDE 13

DNS

  • Human-readable host names, and more

CSEP 561 University of Washington 13

www.uw.edu? Network

128.94.155.135

slide-14
SLIDE 14

Names and Addresses

  • Names are higher-level identjfjers for resources
  • Addresses are lower-level locators for resources
  • Multjple levels, e.g. full name → email → IP address → Ethernet addr
  • Resolutjon (or lookup) is mapping a name to an address

CSEP 561 University of Washington 14

Name, e.g. “Andy Tanenbaum,”

  • r “fmits.cs.vu.nl”

Address, e.g. “Vrijie Universiteit, Amsterdam”

  • r IPv4 “130.30.27.38”

Directory

Lookup

slide-15
SLIDE 15

Before the DNS – HOSTS.TXT

  • Directory was a fjle HOSTS.TXT regularly retrieved

for all hosts from a central machine at the NIC (Network Informatjon Center)

  • Names were initjally fmat, became hierarchical (e.g.,

lcs.mit.edu) ~85

  • Not manageable or effjcient as the ARPANET grew …

CSEP 561 University of Washington 15

slide-16
SLIDE 16

DNS

  • A naming service to map between host names and their IP

addresses (and more)

  • www.uwa.edu.au → 130.95.128.140
  • Goals:
  • Easy to manage (esp. with multjple partjes)
  • Effjcient (good performance, few resources)
  • Approach:
  • Distributed directory based on a hierarchical namespace
  • Automated protocol to tje pieces together

CSEP 561 University of Washington 16

slide-17
SLIDE 17

DNS Namespace

  • Hierarchical, startjng from “.” (dot, typically omitued)
slide-18
SLIDE 18

TLDs (T

  • p-Level Domains)
  • Run by ICANN (Internet Corp. for Assigned Names and Numbers)
  • Startjng in ‘98; naming is fjnancial, politjcal, and internatjonal
  • 700+ generic TLDs
  • Initjally .com, .edu , .gov., .mil, .org, .net
  • Unrestricted (.com) vs Restricted (.edu)
  • Added regions (.asia, .kiwi), Brands (.apple), Sponsored (.aero) in 2012
  • ~250 country code TLDs
  • Two letuers, e.g., “.au”, plus internatjonal characters since 2010
  • Widely commercialized, e.g., .tv (Tuvalu)
  • Many domain hacks, e.g., instagr.am (Armenia), kurtj.sh (St. Helena)

CSEP 561 University of Washington 18

slide-19
SLIDE 19

DNS Zones

  • A zone is a contjguous portjon of the namespace

A zone Delegatjon

slide-20
SLIDE 20

DNS Zones (2)

  • Zones are the basis for distributjon
  • EDU Registrar administers .edu
  • UW administers washington.edu
  • CSE administers cs.washington.edu
  • Each zone has a nameserver to contact for

informatjon about it

  • Zone must include contacts for delegatjons, e.g., .edu

knows nameserver for washington.edu

CSEP 561 University of Washington 20

slide-21
SLIDE 21

DNS Resolution

  • DNS protocol lets a host resolve any host name

(domain) to IP address

  • If unknown, can start with the root nameserver and

work down zones

  • Let’s see an example fjrst …

CSEP 561 University of Washington 21

slide-22
SLIDE 22

DNS Resolution (2)

  • fmits.cs.vu.nl resolves robot.cs.washington.edu
slide-23
SLIDE 23

Iterative vs. Recursive Queries

  • Recursive query
  • Nameserver resolves and returns fjnal answer
  • E.g., fmits → local nameserver
  • Iteratjve (Authoritatjve) query
  • Nameserver returns answer or who to contact for answer
  • E.g., local nameserver → all others

CSEP 561 University of Washington 23

slide-24
SLIDE 24

Iterative vs. Recursive Queries (2)

Recursive Iteratjve

slide-25
SLIDE 25

Iterative vs. Recursive Queries (3)

  • Recursive query
  • Lets server offmoad client burden (simple resolver) for

manageability

  • Lets server cache results for a pool of clients
  • Iteratjve query
  • Lets server “fjle and forget”
  • Easy to build high load servers

CSEP 561 University of Washington 25

slide-26
SLIDE 26

Local Nameservers

  • Local nameservers ofuen run by IT (enterprise, ISP)
  • But may be your host or AP
  • Or alternatjves e.g., Google public DNS (8.8.8.8)

Cloudfmare’s public DNS (1.1.1.1)

  • Clients need to be able to contact local nameservers
  • Typically confjgured via DHCP

CSEP 561 University of Washington 26

slide-27
SLIDE 27

Root Nameservers

  • Root (dot) is served by 13 server names
  • a.root-servers.net to m.root-servers.net
  • All nameservers need root IP addresses
  • Handled via confjguratjon fjle (named.ca)
  • There are >1000 distributed server instances
  • Highly reachable, reliable service
  • Most servers are reached by IP anycast (Multjple locatjons

advertjse same IP! Routes take client to the closest one.)

  • Servers are IPv4 and IPv6 reachable

CSEP 561 University of Washington 27

slide-28
SLIDE 28

Root Server Deployment

CSEP 561 University of Washington 28

Source: htup://www.root-servers.org. Snapshot on 27.02.12. Does not represent current deployment.

slide-29
SLIDE 29

Iterative vs. Recursive Queries (2)

slide-30
SLIDE 30

Caching

  • Resolutjon latency needs to be low
  • URLs don’t have much churn
  • Cache query/responses to answer future queries

immediately

  • Including partjal (iteratjve) answers
  • Responses carry a TTL for caching

CSEP 561 University of Washington 30

Nameserver query

  • ut

response Cache

slide-31
SLIDE 31

Caching (2)

  • fmits.cs.vu.nl looks up and stores

eng.washington.edu

CSEP 561 University of Washington 31

1: query 2: query UW nameserver (for washington.edu) 3: eng.washington.edu 4: eng.washington.edu Local nameserver (for cs.vu.nl)

Cache

slide-32
SLIDE 32

Caching (3)

  • fmits.cs.vu.nl now directly resolves

eng.washington.edu

CSEP 561 University of Washington 32

1: query UW nameserver (for washington.edu) 4: eng.washington.edu Local nameserver (for cs.vu.nl)

I know the server for washington.edu! Cache

slide-33
SLIDE 33

DNS Protocol

  • Query and response messages
  • Built on UDP messages, port 53
  • ARQ for reliability; server is stateless!
  • Messages linked by a 16-bit ID fjeld

Query Response Time

Client Server

ID=0x1234 ID=0x1234

slide-34
SLIDE 34

DNS Protocol (2)

  • Service reliability via replicas
  • Run multjple nameservers for domain
  • Return the list; clients use one answer
  • Helps distribute load too

CSEP 561 University of Washington 34

NS for uw.edu?

A B C Use A, B or C

slide-35
SLIDE 35

DNS Resource Records

  • A zone is comprised of DNS resource records that

give informatjon for its domain names

CSEP 561 University of Washington 35

Type Meaning SOA Start of authority, has key zone parameters A IPv4 address of a host AAAA (“quad A”) IPv6 address of a host CNAME Canonical name for an alias MX Mail exchanger for the domain NS Nameserver of domain or delegated subdomain

slide-36
SLIDE 36

DNS Resource Records (2)

CSEP 561 University of Washington 36

IP addresses

  • f computers

Name server Mail gateways Start of Authority

slide-37
SLIDE 37

DIG DEMO

slide-38
SLIDE 38

DNSSEC (DNS Security Extensions)

  • Extends DNS with new record types
  • RRSIG for digital signatures of records
  • DNSKEY for public keys for validatjon
  • DS for public keys for delegatjon
  • First version in ‘97, revised by ’05
  • Deployment requires sofuware upgrade at both client and

server

  • Root servers upgraded in 2010
  • Followed by uptjck in deployment

Introductjon to Computer Networks 38

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
slide-42
SLIDE 42

HTTP

slide-43
SLIDE 43

HTTP, (HyperT ext Transfer Protocol)

  • Basis for fetching Web pages

CSEP 561 University of Washington 43

request

Network

slide-44
SLIDE 44

CSEP 561 University of Washington 44

Sir Tim Berners-Lee (1955–)

  • Inventor of the Web
  • Dominant Internet app since mid 90s
  • He now directs the W3C
  • Developed Web at CERN in ‘89
  • Browser, server and fjrst HTTP
  • Popularized via Mosaic (‘93), Netscape
  • First WWW conference in ’94 …

Source: By Paul Clarke, CC-BY-2.0, via Wikimedia Commons

slide-45
SLIDE 45

Web Context

CSEP 561 University of Washington 45

HTTP request HTTP response

Page as a set of related HTTP transactjons

slide-46
SLIDE 46

Web Protocol Context

  • HTTP is a request/response protocol for fetching

Web resources

  • Runs on TCP, typically port 80
  • Part of browser/server app

TCP IP 802.11 browser HTTP TCP IP 802.11 server HTTP request response

slide-47
SLIDE 47

Fetching a Web page with HTTP

  • Start with the page URL (Uniform Resource Locator):

htup://en.wikipedia.org/wiki/Vegemite

  • Steps:
  • Resolve the server to IP address (DNS)
  • Set up TCP connectjon to the server
  • Send HTTP request for the page
  • (Await HTTP response for the page)
  • Execute/fetch embedded resources/render
  • Clean up any idle TCP connectjons

CSEP 561 University of Washington 47

Protocol Page on server Server

slide-48
SLIDE 48

HTML

  • Hypertext Markup Language (HTML)
  • Uses Extensible Markup Language (XML) to build a

markup language for web content

  • Key innovatjon was the “hyperlink”, an HTML

element linking to other HTML elements using URLs

  • Also includes Cascading Style Sheets (CSS) for

maintaining look-and-feel across a domain

  • Specifjc standards have been the subject of many

“browser wars”

slide-49
SLIDE 49

DOM (Document Object Model)

  • Base primitjve for web browsers interactjng

with HTML

  • Use HTML (XML) to create a tree of elements
  • Javascript code is embedded in the page and

modifjes the DOM based on:

  • User actjons
  • Asynchronous Javascript
  • Other server-side actjons

CSEP 561 University of Washington 49

slide-50
SLIDE 50

DOM Example

CSEP 561 University of Washington 50

slide-51
SLIDE 51

DOM Examples

CSEP 561 University of Washington 51

 Go to browser and show DOM

slide-52
SLIDE 52

HTTP Protocol

  • Originally a simple protocol, with many optjons added over

tjme

  • Text-based commands, headers
  • Try it yourself:
  • As a “browser” fetching a URL
  • Run “telnet en.wikipedia.org 80”
  • Type “GET /wiki/Vegemite HTTP/1.0” to server followed by a blank

line

  • Server will return HTTP response with the page contents (or other

info)

CSEP 561 University of Washington 52

slide-53
SLIDE 53

HTTP Protocol (2)

  • Commands used in the request

Method Descriptjon GET Read a Web page HEAD Read a Web page's header POST Append to a Web page PUT Store a Web page DELETE Remove the Web page TRACE Echo the incoming request CONNECT Connect through a proxy OPTIONS Query optjons for a page Fetch page Upload data Basically defunct

slide-54
SLIDE 54

HTTP Protocol (3)

  • Codes returned with the response

CSEP 561 University of Washington 54

Code Meaning Examples 1xx Informatjon 100 = server agrees to handle client's request 2xx Success 200 = request succeeded; 204 = no content present 3xx Redirectjon 301 = page moved; 304 = cached page stjll valid 4xx Client error 403 = forbidden page; 404 = page not found 5xx Server error 500 = internal server error; 503 = try again later Yes!

slide-55
SLIDE 55

HTTP Performance

slide-56
SLIDE 56

PLT (Page Load Time)

  • PLT was the key measure of web performance
  • From click untjl user sees page
  • Small increases in PLT decrease sales
  • PLT depends on many factors
  • Structure of page/content
  • HTTP (and TCP!) protocol
  • Network RTT and bandwidth

CSEP 561 University of Washington 56

slide-57
SLIDE 57

CSEP 561 University of Washington 57

Early Performance

  • HTTP/1.0 used one TCP connectjon

to fetch one web resource

  • Made HTTP very easy to build
  • But gave fairly poor PLT …
slide-58
SLIDE 58

Remember: DOM Example

CSEP 561 University of Washington 58

slide-59
SLIDE 59

CSEP 561 University of Washington 59

Early Performance (2)

  • HTTP/1.0 used one TCP connectjon

to fetch one web resource

  • Made HTTP very easy to build
  • But gave fairly poor PLT…

Oh we need styles.css

slide-60
SLIDE 60

CSEP 561 University of Washington 60

Early Performance (3)

  • Many reasons why PLT is larger than

necessary

  • Sequentjal request/responses, even when

to difgerent servers

  • Multjple TCP connectjon setups to the

same server

  • Multjple TCP slow-start phases
  • Network is not used efgectjvely
  • Worse with many small resources / page
slide-61
SLIDE 61

Ways to Decrease PLT

  • 1. Reduce content size for transfer
  • Smaller images, gzip
  • 2. Change HTTP to make betuer use of bandwidth
  • 3. Change HTTP to avoid repeat sending of same

content

  • Caching, and proxies
  • 4. Move content closer to client
  • CDNs [later]

CSEP 561 University of Washington 61

slide-62
SLIDE 62

Parallel Connections

  • One simple way to reduce PLT
  • Browser runs multjple (8, say) HTTP instances in parallel
  • Server is unchanged; already handled concurrent requests

for many clients

  • How does this help?
  • Single HTTP wasn’t using network much …
  • So parallel connectjons aren’t slowed much
  • Pulls in completjon tjme of last fetch

CSEP 561 University of Washington 62

slide-63
SLIDE 63

Persistent Connections

  • Parallel connectjons compete with each other for

network resources

  • 1 parallel client ≈ 8 sequentjal clients?
  • Exacerbates network bursts, and loss
  • Persistent connectjon alternatjve
  • Make 1 TCP connectjon to 1 server
  • Use it for multjple HTTP requests

CSEP 561 University of Washington 63

slide-64
SLIDE 64

Persistent Connections (2)

CSEP 561 University of Washington 64

Client Server Client Server Client Server Persistent +Pipelining

slide-65
SLIDE 65

Persistent Connections (3)

CSEP 561 University of Washington 65

One request per connectjon Sequentjal requests per connectjon Pipelined requests per connectjon

slide-66
SLIDE 66

Persistent Connections (4)

  • Widely used as part of HTTP/1.1
  • Supports optjonal pipelining
  • PLT benefjts depending on page structure, but easy on

network

CSEP 561 University of Washington 66

slide-67
SLIDE 67

HTTP Futures

slide-68
SLIDE 68

HTTP 1.1

  • This was it! Standard protocol untjl circa 2015.
  • HTTP 1.1 everywhere for all web access
  • Untjl our favorite massive web company started notjcing some

trends….

slide-69
SLIDE 69

Continued Growth

Country Mobile-Only Internet Users Egypt 70% India 59% South Africa 57% Indonesia 44% United States 25% Thanks to Ben Greenstein @ google for slides

slide-70
SLIDE 70

Continued Growth (2)

RAM on Android Devices

slide-71
SLIDE 71

Tecno Y2 512MB RAM, 8GB ROM 1.3GHz dual-core Cortex- A7 2G & 3G only 4” (480x800) Infjnix Hot 4 Lite 1GB RAM, 16GB ROM 1.3GHz quad-core Cortex- A7 2G & 3G only 5.5” (720x1280) Tecno W3 1GB RAM, 8GB ROM 1.3GHz dual-core Cortex- A7 2G & 3G only 5” (480x854)

Source: Chrome logs

Continued Growth (3)

slide-72
SLIDE 72
  • 284 Requests
  • 93 Connections
  • 4.5MB

transferred

  • Lots of gaps

Waterfall of fjrst 4 seconds of page load

slide-73
SLIDE 73

■ First Contentgul Paint (FCP) “is it happening?” ■ First Meaningful Paint (FMP) “is it useful?” ■ Time to Interactjve (TTI) “is it usable?”

Key user moments (PLT is Dumb)

slide-74
SLIDE 74

HTTP Changes

HTTP/1.0: TCP connectjon per request HTTP/1.1: Persistence and pipelining HTTP2/SPDY: Targeted performance specifjcally

  • All happens below HTTP layer
  • Prioritjzed stream multjplexing
  • Header compression
  • Server push
  • Started as SPDY, standardized as HTTP/2 in 2015

afuer every possible bikeshed deep discussion

TLS TCP IP HTTP/2 (SPDY)

slide-75
SLIDE 75

HTTP 2 Optimizations

Prioritjzed Stream Multjplexing

  • HTTP 1.0: Each HTTP connectjon has own TCP
  • HTTP 1.1: Share one TCP connectjon to save setup
  • HTTP 2.0: Allow multjple concurrent HTTP connectjons in a single TCP

fmow to avoid head-of-line blocking Header Compression

  • HTTP Headers very wordy; Designed to be human readable
  • This was dumb. Lets compress them (usually gzip).
slide-76
SLIDE 76

Server Push: example resource loading gap

  • Browser requests

and receives HTML, encounters <script src=”...”>

  • Similarly, JavaScript

might src a dependent JavaScript fjle

Browser Server HTML Request/Response JavaScript Request/Response Gap

slide-77
SLIDE 77

Server Push: example resource loading gap

Use HTTP/2 server push to close gaps Or use Link: rel=preload

  • Particularly useful for

hidden render blocking resources (HRBRs)

Browser Server HTML Request/Response Push of JavaScript Response No Gap

slide-78
SLIDE 78

Simple server push lab experiment

Result: No benefjt when HTML size > BD Product Why? No gap even without push. Opportunity only on high BDP networks, e.g., LTE and Cable

slide-79
SLIDE 79

QUIC/HTTP 3.0

Goal: make HTTPS transport even faster! Deployed at Google startjng 2014 IETF working group formed in 2016 Standardized as HTTP 3.0 in October 2018

TLS HTTP/2 TCP IP QUIC UDP HTTP

slide-80
SLIDE 80

QUIC/HTTP 3.0 Innovations (1)

  • Speed up connectjon establishment

Include TLS/Encryptjon in setup (TLS 1.3) Similarly pack HTTP content into setup

CSEP 561 University of Washington 80

slide-81
SLIDE 81

CSEP 561 University of Washington 81

slide-82
SLIDE 82

QUIC/HTTP 3.0 Innovations (2)

  • Remove TCP/Switch to UDP
  • Error correctjon: Groups of packets contain a FEC

packet which can be used to recreate lost packet.

  • Congestjon control: Move congestjon control to

user space with pluggable implementatjons

  • BBR Implementatjon: all packets carry new

sequence numbers, allows for precise roundtrip- tjme calculatjon.

  • Per-packet encryptjon (rather than fmow)

CSEP 561 University of Washington 82

slide-83
SLIDE 83

QUIC/HTTP 3.0 Innovations (3)

  • Support mobility through 64-bit stream IDs
  • This means you can change IP address or ports

but stjll keep your connectjon alive

CSEP 561 University of Washington 83

slide-84
SLIDE 84

QUIC/HTTP 3.0: Problem of Mobility

  • What happens to IP addresses

and HTTP sessions when a user moves between wifj APs?

slide-85
SLIDE 85

QUIC/HTTP 3.0: Problem of Mobility

  • What happens to IP addresses

and HTTP sessions when a user moves between wifj APs?

  • What happens to IP addresses

and HTTP sessions when a user moves between cellular and wifj?

slide-86
SLIDE 86

IP Mobility

  • Hard problem: IP addresses are supposed to identjfy nodes in the

network but change as nodes move around.

  • Proposed solutjons:
  • IP Anchor: Place a server at an IP and tunnel traffjc to user.
  • DNS Anchor: Have DNS server which rapidly updates as user moves between

IP addresses

  • All try to keep some global state constant: IP or DNS Name
slide-87
SLIDE 87

QUIC summary

Makes HTTPS faster, partjcularly in the tail 35% of Google’s egress traffjc (7% of the Internet) Deploying at Google was 3+ years of hard work

slide-88
SLIDE 88

CDNs

slide-89
SLIDE 89

Content Delivery Networks

  • As the web took ofg in the 90s, traffjc volumes grew and
  • grew. This:

1. Concentrated load on popular servers 2. Led to congested networks and need to provision more bandwidth 3. Gave a poor user experience

  • Idea:
  • Place popular content near clients
  • Helps with all three issues above

CSEP 561 University of Washington 89

slide-90
SLIDE 90

Before CDNs

  • Sending content from the source to 4 users takes 4 x

3 = 12 “network hops” in the example

CSEP 561 University of Washington 90

Source User User . . .

slide-91
SLIDE 91

After CDNs

  • Sending content via replicas takes only 4 + 2 = 6

“network hops”

CSEP 561 University of Washington 91

Source User User . . . Replica

slide-92
SLIDE 92

After CDNs (2)

  • Benefjts assuming popular content:
  • Reduces server, network load
  • Improves user experience

CSEP 561 University of Washington 92

Source User User . . . Replica

slide-93
SLIDE 93

CSEP 561 University of Washington 93

Popularity of Content

  • Zipf’s Law: few popular items, many

unpopular ones; both matuer

Zipf popularity (kth item is 1/k)

Rank

Source: Wikipedia

George Zipf (1902-1950)

slide-94
SLIDE 94

How to place content near clients?

CSEP 561 University of Washington 94

slide-95
SLIDE 95

How to place content near clients?

  • Use browser and proxy caches
  • Helps, but limited to one client or clients in one
  • rganizatjon
  • Want to place replicas across the Internet for use by

all nearby clients

  • Done by clever use of DNS

CSEP 561 University of Washington 95

slide-96
SLIDE 96

Content Delivery Network

CSEP 561 University of Washington 96

slide-97
SLIDE 97

Content Delivery Network (2)

  • DNS gives difgerent answers to clients
  • Tell each client the nearest replica (map client IP)

CSEP 561 University of Washington 97

slide-98
SLIDE 98

Business Model

  • Clever model pioneered by Akamai
  • Placing site replica at an ISP is win-win
  • Improves site experience and reduces ISP bandwidth usage

CSEP 561 University of Washington 98

Consumer site

ISP User User . . . Replica

slide-99
SLIDE 99

CDNs - Issues

  • Security
  • What about private informatjon?
  • How to cache/forward encrypted content?
  • Basically can’t! Big players just share/ship keys.
  • Net neutrality
  • I.org, FreeBasics -> Basically CDNs
  • But for reasons of price, not effjciency
  • Who decides who gets to place CDNs?