application layer - central washington university ·  · 2017-05-20the application layer cn5e by...

88
Application Layer Chapter 7 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011 DNS Domain Name System Electronic Mail The Web Streaming Audio and Video Content Delivery Revised: August 2011

Upload: phungdat

Post on 27-May-2018

255 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Application Layer Chapter 7

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

• DNS – Domain Name System

• Electronic Mail

• The Web

• Streaming Audio and Video

• Content Delivery

Revised: August 2011

Page 2: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The Application Layer

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Uses transport services to build

distributed applications

Physical

Link

Network

Transport

Application

Page 3: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

DNS – Domain Name System DNS is a world-wide distributed directory service. DNS delegates the

responsibility of assigning domain names and mapping those names

to internet resources by designating authoritative name servers for

each domain (zone). Net admins may delegate authority over sub-

domains within their allocated name space to other name servers.

This provides a distributed and fault tolerant service that was designed

to avoid a single large central database.

Internet has two primary name-spaces:

1. domain name hierarchy (DNS addresses)

2. Internet Protocol Address spaces (IPv4 and IPv6)

The DNS resolves high-level human readable

names for computers to low-level IP addresses

• DNS name space »

• Domain Resource records »

• Name servers »

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Page 4: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The DNS Name Space (1) DNS namespace is hierarchical from the root down • Different parts delegated to different organizations

• Can register under multiple top-level domains

• Absolute domain names always end in a period, relative domain names do not − Relative names have to be interpreted in a context to uniquely determine their meaning

The computer robot.cs.washington.edu

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

250+ Top

Level

Domains:

1. Generic

2. Countries

Generic Second Level

Domains run by Registrars

appointed by ICANN

Question: What is a “domain”?

Page 5: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The DNS Name Space (2)

The Generic top-level

domains are controlled

by ICANN who appoints

registrars to run them

This one was controversial

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

ICANN = Internet Corporation for

Assigned Names and Numbers

To create a new domain, permission is required of the domain in which it will be included.

Naming follows organizational boundaries, not physical networks.

Page 6: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Domain Resource Records (1) Every domain (all levels) has its own DNS database that is comprised of Resource

Records.

Each Resource Record is a 5 tuple: Domain_Name, TTL, Class, Type, Value (page 616)

The key resource records in the namespace are IP addresses

(A/AAAA) and name servers (NS), but there are others too (e.g.,

MX)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Page 7: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Domain Resource Records (2)

A portion of a possible DNS database for cs.vu.nl. Question: What is cs.vu.nl’s web server’s name and IP address?

Question: What is a reverse lookup?

IP addresses

of computers

Name server

Mail gateways

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

CNAME and PTR

are aliases; CNAME

allows the same IP

address to have multiple

names; PTR enables

reverse lookups

Page 8: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Name Servers (1)

DNS name space divided into overlapping zones. Admins determine zone

boundaries. Each zone has one or more name servers.

Name servers contain data for portions of the name

space called zones (circled).

One zone

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Page 9: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Name Servers (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Finding the IP address for a given hostname is called

resolution and is done with the DNS protocol.

Resolution:

• Computer requests local name server to resolve

• Local name server asks the root name server

• Root returns the name server for a lower zone

• Continue down zones until a name server can answer

DNS protocol:

• Runs on UDP port 53, retransmits lost messages

• Caches name server answers for better performance

Page 10: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Name Servers (3)

Example of a computer looking up the IP for a name

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Page 11: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Electronic Mail

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

• Architecture and services »

• The user agent »

• Message formats »

• Message transfer »

• Final delivery »

Page 12: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architecture and Services (1) The key components and steps (numbered) to send email

− User Agent = Email Reader; a program that supports composing, receiving, and

replying to messages.

− Uses Simple Mail Transfer Protocol (SMTP) over TCP (port 25)

1. Mail submission is method by which user agents send messages into the email

system for delivery

2. Message transfer between MTAs

3. Final delivery to receiving User Agent

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architecture of the email system

Question: Where is the user’s mailbox located?

Page 13: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architecture and Services (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Paper mail Electronic mail

Envelope

Message

(= header

and body)

Question: Who

knows why this is

funny for Tanenbaum?

Page 14: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The User Agent

What users see – interface elements of a typical user agent − Email address format: user@dns-address

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Page 15: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Formats (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Header fields related to message transport; headers are

readable ASCII text

Page 16: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Formats (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Other header fields useful for user agents

Page 17: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Formats (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Originally only ASCII text could be sent by email. Multipurpose Internet

Mail Extensions (MIME) was developed to send messages with richer

content (non-Latin alphabets, Chinese, Japanese) as well as audio,

images, or binary documents or programs.

• MIME adds structures to the message body and also defines encoding

rules for the transfer of non-ASCII messages.

MIME header fields used to describe what content is in

the body of the message

Message Headers added by MIME

Page 18: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Formats (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Common MIME content types and subtypes

Page 19: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Formats (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Putting it all together:

a multipart message

containing HTML and

audio alternatives.

One part

(HTML)

Another

(audio)

Question: What does this email message do?

Page 20: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Transfer (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Messages are transferred with SMTP (Simple Mail Transfer

Protocol)

• Readable (4 byte long ASCII) text commands

• Submission from user agent to MTA on port 587 − If message cannot be delivered, an error report containing the first part of

the undeliverable msg is returned to the sender

• One MTA to the next MTA on port 25 usually using TCP − Recipient’s mailbox is within the destination MTA

− The destination MTA is the @dns-address part of the user’s email address

− user@dns-address is the user’s mailbox within the destination MTA

• Other protocols for final delivery (IMAP, POP3, webmail) − IMAP/POP3/webmail get email messages from the mailbox on the user’s

mail server to the user’s email user agent on the user’s machine.

− Webmail systems use web protocols: E.g., Gmail, Hotmail, Yahoo!mail

Page 21: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Transfer (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Sending a message:

• From Alice to Bob

• SMTP commands

are marked [pink]

. . . (rest of message) . . .

C: = from client (sender)

S: == from server (receiver)

HELO – Hello message

RCPT – ID email recipient(s)

EHLO – Hello msg for clients

wanting to use an

extension (next slide)

Question: Does the

Sender (client) or the

Receiver (server)

start the dialog?

If the server is first, how

does it know when to

talk?

Page 22: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Message Transfer (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Common SMTP extensions (not in simple example)

Page 23: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Final Delivery (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

User agent uses protocol

like IMAP for final delivery

• Has commands to

manipulate folders /

messages [right]

Alternatively, a Web

interface (with proprietary

protocol) might be used

Page 24: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The World Wide Web (WWW)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Standards body for the web is the W3C (World Wide Web Consortium;

see http://www.w3.org)

Primary web protocol is HTTP, which is a simple text-based protocol

that runs over TCP in the general case.

• Architectural overview »

• Static Web pages »

• Dynamic pages and Web applications »

• HTTP – HyperText Transfer Protocol »

• The mobile Web »

• Web search »

Page 25: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (1)

HTTP transfers pages from servers to browsers

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Question: Where is the User in this picture?

Page 26: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (2)

Pages are named with URLs (Uniform Resource Locators)

• Example: http://www.phdcomics.com/comics.php

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Our

focus

Protocol Page on server Server

Common URL protocols

Page 27: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Steps a client (browser) takes to follow a hyperlink:

− Determine the protocol (HTTP)

− Ask DNS for the IP address of server

− Make a TCP connection to server (port 80 or 443)

− Send request for the page; server sends it back

− Fetch other URLs as needed to display the page

− Close idle TCP connections

Steps a server takes to serve pages:

− Accept a TCP connection from client

− Get page request and map it to a resource (e.g., file name)

− Get the resource (e.g., file from disk)

− Send contents of the resource to the client.

− Release idle TCP connections

Page 28: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (4) -- Clients

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

When a server returns a page, it also returns some additional info about

that page. This info includes the MIME type of the page that instructs the

client’s browser how to process that info. If the MIME type is not one of the

built-in ones, then the browser consults its table of MIME types which

associates MIME types with Third-Party-provided viewers. Two types of

viewers: 1) plug in or 2) helper app.

Content type is identified by MIME types

• Browser takes the appropriate action to display

• Plug-ins / helper apps extend browser for new types

Question: Where did we see MIME before?

Installed as

an extension

to the browser

(same process as

the browser)

Complete

program

running as

a separate

process

Page 29: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (5) -- Servers

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Web servers are optimized to be able to quickly service numerous requests

To scale performance, Web servers can use:

• Caching to optimize disk retrievals, multiple threads for

parallel processing, and a front end to orchestrate

Page 30: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Server steps, revisited:

1. Resolve name of Web page requested − Incoming request may not contain the actual name of file or

program as a literal string

2. Perform access control on the Web page − Authenticate client to determine if (s)he can access material

3. Check the cache

− Dynamic pages cannot be cached; only current cached content

returned (if so, skip step 4)

4. Fetch requested page from disk or run program

5. Determine the rest of the response that accompany the

contents of the page

6. Return the response to the client

7. Make an entry in the server log

Page 31: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Architectural Overview (7) -- cookies

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Even though HTTP uses TCP, it does NOT have any concept of a login session

so each HTTP request has no memory nor context. Cookies provide a memory

or context. Examples: pay-for-view web sites; e-commerce; customized web

portals like Yahoo! Cookies can be abused to learn a user’s browsing habits.

Cookies support stateful client/server interactions − Cookies are a small (4KB or less) named string that the server

associates with a browser

− Browsers store the server-provided cookie for a time period within their

browser directory on the client’s disk. Cookies persist across browser

invocations to that server -- unless the user disables cookies.

• Server sends cookies (state) with page response

• Client stores cookies across page fetches

• Client sends cookies back to server with requests

Example of a browser directory within a client’s disk

Page 32: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Static Web Pages (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Static Web pages are simply files

• Have the same contents for each viewing

Can be visually rich and interactive nonetheless:

• HTML that mixes text and images

• Forms that gather user input

• Style sheets that tailor presentation

• Vector graphics, videos, and more (over) . . .

Page 33: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Static Web Pages (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Progression of features through HTML 5.0

Page 34: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Applications can now run inside the browser or the server with the web providing the

user interface. Users do not need to install separate apps and user data can be

accessed from different computers; this is a form of cloud computing

Dynamic pages are generated by programs running at the

server (with a database) and/or the client • E.g., PHP, JSP, and CGI at server; JavaScript at client

− Microsoft’s Active Server Pages .NET is a proprietary version of PHP and JSP

− CGI = Common Gateway Interface; JSP = JavaServer Pages

• Pages vary each time like using an application

Question: What does “a form of cloud computing” mean?

Page 35: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Web page that gets

form input and calls

a server program

PHP server program

that creates a

custom Web page

Resulting Web page

(for inputs “Barbara”

and “32”)

PHP calls

Page 36: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

JavaScript program

produces result

page in the browser

First page with form,

gets input and calls

program above

Client-side processing occurs inside the user’s browser. Technologies: 1) JavaScript,

2) VBScript, 3) Java applets, and 4) Microsoft ActiveX controls (see pages 677-678)

Page 37: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Client-side and Server-side scripting look the similar in that they both

embed code in HTML files, they are processed totally differently.

The difference between server and client programs

Server-side scripting with PHP Client-side scripting with JavaScript

After user clicks on submit button, the

browser collects info into a long string

and sends it to server as a request for PHP

Page. The server loads the PHP file and

executes the PHP script to produce a new

HTML page that is sent to the browser to

display.

When the user clicks on the submit

button the browser interprets a JavaScript

function contained on the page. All of the

work is done locally within the browser.

Question: when is it preferable to use

server-side and when preferable to use

client-side scripting?

Page 38: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

AJAX (Asynchronous Javascript and XML) is a set of technologies that

work together that work together to enable Web applications that are as

responsive and powerful as traditional desktop applications.

Web applications use a set of technologies that work

together, e.g. AJAX: • HTML: present information as pages.

• DOM: change parts of pages while they are viewed. − DOM (Document Object Model) – model of HTML page that is

accessible to programs (e.g., an API to change parts of a page)

• XML: let programs exchange data with the server. − XML (eXtensible Markup Language) is a language for specifying

structural content

− W3C created XML to allow web content to be structured for

automated processing

• Asynchronous way to send and retrieve XML data. − SOAP (Simple Object access Protocol) – language/system-

independent way to do RPC between programs

• JavaScript as a language to bind all this together.

Page 39: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The DOM (Document Object Model) tree represents

Web pages as a structure that programs can alter

Page 40: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (7)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

XML captures document structure

HTML is concerned with presentation.

Example of XML:

Note: XHTML is

HTML defined

in terms of XML

Page 41: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Dynamic Pages & Web Applications (8)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Web application developers have a library of technologies

available to them to create web content:

Page 42: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP is the primary protocol of the web.

HTTP (HyperText Transfer Protocol) is a request-

response protocol that runs on top of TCP

• Fetches pages from server to client

• Server usually runs on port 80

• Headers are given in readable ASCII

• Content is described with MIME types

• Protocol has support for pipelining requests

• Protocol has support for caching

Page 43: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (2) HTTP 1.0 – connection was set up and released for every response

HTTP 1.1 – Enables connection reuse

HTTP uses persistent connections to improve performance

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

One connection for

each request

HTTP 1.0

Sequential requests

on one connection

HTTP 1.1

Pipelined requests

on one connection

HTTP 1.1

Page 44: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP has several request methods.

Requests server to Fetch

a MIME-encoded page

Used to send

input data

(forms) to a

server program

Both GET and POST are

used for SOAP web services

Page 45: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Response codes tell the client how the request fared:

Page 46: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

A request line (e.g., GET, POST) may be optionally followed by additional

lines with more information, called request headers. Responses also

optionally may have response headers.

Many headers carry key information:

Function Example Headers

Browser capabilities

(client server)

User-Agent, Accept, Accept-Charset, Accept-

Encoding, Accept-Language

Caching related

(mixed directions)

If-Modified-Since, If-None-Match, Date, Last-

Modified, Expires, Cache-Control, ETag

Browser context

(client server)

Cookie, Referer, Authorization, Host

Content delivery

(server client)

Content-Encoding, Content-Length, Content-Type,

Content-Language, Content-Range, Set-Cookie

Page 47: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

HTTP has built-in support to help clients identify when they can safely

reuse pages

HTTP caching checks to see if the browser has a known

fresh copy, and if not if the server has updated the page − HTTP uses two strategies: 1) cache page validation (step 2),

2) conditional GET – asks server if the cached copy is still valid

• Uses a collection of headers for the checks

• Can include further levels of caching (e.g., proxy caching)

Page 48: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

The Mobile Web

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Enhancement/extensions made to support web access for small handhelds

and other mobile devices.

Mobiles (phones, tablets) are challenging as clients:

− Relatively small screens

− Limited input capabilities, lengthy input.

− Network bandwidth is limited

− Connectivity may be intermittent.

− Computing power is limited

Strategies to handle them:

• Content: servers provide mobile-friendly versions;

transcoding can also be used

• Protocols: no real need for specialized protocols;

HTTP with header compression sufficient

Page 49: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Web Search

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Search has proved hugely popular, in tandem with

advertising that has proved hugely profitable

• A simple interface for users to navigate the Web

Search engine requires:

• Content from all sites, accessed by crawling. Follow

links to new pages, but beware programs. − Each web search engine obtains its database of pages by doing

web crawling – a systematic traversal of all pages and links

− Deep web: Web content that search engines cannot catalog (e.g.,

dynamic content), which is therefore “hidden”

• Indexing, which benefits from known and discovered

structure (such as XML) to increase relevance

Page 50: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Audio and Video

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real time and streamed multimedia traffic.

• Real time multimedia is usually carried using RTP

• Streamed multimedia may be carried by RTP or HTTP

• Real Time Streaming Protocol – proprietary (RealNetworks) variant of RTCP

• RTCP (real time control protocol) controls remote multimedia playout

Audio and video have become key types of traffic, e.g., voice

over IP, and video streaming.

• Digital audio »

• Digital video »

• Streaming stored media »

• Streaming live media »

• Real-time conferencing »

Page 51: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Audio (1) – review

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

ADC (Analog-to-Digital Converter using Nyquist’s Sampling Theorem)

produces digital audio from a microphone

• Telephone: 8000 8-bit samples/second (64 Kbps);

computer audio is usually better quality (e.g., 16 bit)

Continuous audio

(sine wave)

Digital audio

(sampled, 4-bit quantized)

ADC

Page 52: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Audio (2) -- review

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital audio is typically compressed before it is sent

• Lossy encoders (like AAC) exploit human perception

• Large compression ratios (can be >10X)

Sensitivity of the ear

varies with frequency

A loud tone can mask

nearby tones

Page 53: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

When the human eyes sees something, the image is retained for some

milliseconds before decaying. If a sequence of images is shown at 50

images/sec, the eye does not notice that it is looking at discrete images. All

video systems exploit this principle to produce moving pictures.

Video is digitized as pixels (sampled, quantized)

• TV quality: 640x480 pixels, 24-bit per pixel color, 30 frames/sec

− Leveraging interlacing – odd number scan lines and even number

cumulatively sent sequentially at 60 frames/sec to fool the eye

• HDTV: 1280X720; Blu-ray: 1080X720

Video is sent compressed due to its large bandwidth

• Lossy compression exploits human perception

− E.g., JPEG for still images, MPEG, H.264 for video

− Large compression ratios (often 50X for video)

• Video is normally > 1 Mbps, versus >10 kbps for speech and

>100 kbps for music

Question: Why is music’s bandwidth higher than speech’s?

Page 54: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

JPEG = Joint Photographic Experts Group

JPEG lossy compression sequence for one image:

Step 1 Step 2 Step 3 Step 5

Subsequent slides show each step in the JPEG compression sequence

Question: What does “lossy” mean?

Page 55: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Step 1: Pixels are mapped to luminance/chrominance (matrix:

YCbCr) color space and chrominance is sub-sampled • Y = 16 + .26R + .5G + .09B (luminance);

• Cb = 128 + .15R - .29G - .44B (chrominance)

• Cr = 128 + .44R - .37G + .07B (chrominance)

• The eye is less sensitive to chrominance

Input 24-bit RGB pixels 8-bit luminance

pixels

8-bit chrominances

for every 4 pixels

Page 56: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Step 2: Each component block is transformed to spatial

frequencies with DCT (Discrete Cosine Transformation)

• Captures the key image features

One component block

of the Y matrix

Transformed block

(i.e., the DTC coefficients)

Page 57: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Step 3: DCT coefficients are quantized by dividing by

thresholds; reduces bits in higher spatial frequencies

• Top left element is differenced over blocks (Step 4)

/ = Input Thresholds Output

Page 58: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Step 5: The block is run-length encoded in a zig-zag

order. Then it is Huffman coded before sending (Step 6)

Order in which the block coefficients are sent

Page 59: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Digital Video (7)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

MPEG = Motion Picture Experts Group; following describes MPEG-1

MPEG compresses over a sequence of frames, further

using motion tracking to remove temporal redundancy

− I (Intra-coded) frames are self-contained

− P (Predictive) frames use block motion predictions

− B (Bidirectional) frames may base prediction on future frame

Three consecutive frames with stationary and moving components

Who has viewed I-frames in Netflix or other video playout during fast forwards?

Page 60: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

A simple method to stream stored media, e.g., for video

on demand, is to fetch the video as a file download

• But has large startup delay, except for short files

Video-on-Demand Playout can start after the file has downloaded

Page 61: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Effective streaming starts the playout during transport

• Using RTSP (Real-Time Streaming Protocol) or the RTCP (RTP’s Real-Time Control Protocol)

Question: What protocol is being used in step 5?

Page 62: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Key problem: how to handle transmission errors

Strategy Advantage (PRO) Disadvantage (CON)

Use reliable

transport (TCP)

Repairs all errors Increases jitter significantly

Add FEC

(e.g., parity packet)

Repairs most errors Increases overhead, decoding

complexity and jitter

Interleave media Masks most errors Slightly increases decoding

complexity and jitter

Question: Who remembers what FEC is?

Interleave media: mixing up the order of the media before transmission and

unmixing it on reception. In this way if a packet (or a burst of packets) is lost,

the loss will be spread out over time by the unmixing.

Page 63: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Parity packet can repair one lost packet in a group of N

• Decoding is delayed for N packets

An approach for FEC using multimedia

Page 64: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Interleaving spreads nearby media samples over

different transmissions to reduce the impact of loss

Loss reduces temporal resolution; doesn’t leave a gap

Packet

stream

Media

samples

Page 65: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Key problem: media may not arrive in time for playout

due to variable bandwidth and loss/retransmissions

• Client buffers media to absorb jitter; we still need to

pick an achievable media rate

Safety margin,

to avoid a stall Can pause server (or go

ahead and save to disk)

Page 66: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Stored Media (7)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

RTSP commands

• Sent from player to server to adjust streaming

Page 67: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Live Media (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming live media is similar to the stored case plus:

• Can’t stream faster than “live rate” to get ahead

− Usually need larger buffer to absorb jitter

• Often have many users viewing at the same time

− UDP with multicast greatly improves efficiency. When not

available, many TCP connections are used instead.

− For very many users, content distribution is used [later

section]

Page 68: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Live Media (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

With multicast streaming media, parity is effective

• Clients can each lose a different packet and recover

Page 69: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Streaming Live Media (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Comparatively easy today for anyone to set up an Internet radio station.

In this example, recorded content is either stored on a media server as

podcasts for subsequent streaming or sent to for live streaming.

Production side of a student radio station.

As before

Page 70: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-time conferencing has two or more connected live

media streams, e.g., voice over IP, Skype video call

Key issue over live streaming is low (interactive) latency

• Want to reduce delay to near propagation

• Benefits from network support, e.g., QoS

• Or, benefits from ample bandwidth (no congestion)

Page 71: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

H.323 was issued in 1996 for real time conferencing. It was a popular

approach until it became supplanted by the IETF’s SIP, which was

VASTLY simpler and cheaper to use and produced equivalent results.

H.323 architecture for Internet telephony supports calls

between Internet computers and PSTN phones.

Gatekeeper controls

calls for LAN hosts

Internet

VoIP

call

Internet/PSTN

Page 72: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

H.323 protocol stack:

• Call is digital audio/video over RTP/UDP/IP

• Call setup is handled by other protocols (Q.931 etc.)

Page 73: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (4)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Logical channels that make up an H.323 call

Page 74: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (5)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

SIP (Session Initiation Protocol) is an alternative to

H.323 to set up real-time calls

• Simple, text-based protocol with URLs for addresses

• Data is carried with RTP / RTCP as before

Page 75: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (6)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Setting up a call with the SIP three-way handshake

• Proxy server lets a remote callee be connected

• Call data flows directly between caller/callee

Page 76: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Real-Time Conferencing (7)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Comparison of H.323 and SIP.

YES

Corrected

by

Instructor

Page 77: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Content Delivery

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Majority of Internet bandwidth is currently used to deliver multimedia

content. This resulted in greatly enhanced bandwidth deployments

and Content Delivery Networks (CDN). CDN sets up a distributed

collection of machines at locations inside the Internet and uses them

to serve content to clients. This is used by big players. Alternative is a

peer-to-peer (P2P) network architect, used by little players. This

section also talks about other content delivery types for other data

types.

Delivery of content, especially Web and video, to

users is a major component of Internet traffic

• Content and Internet traffic »

• Server farms and Web proxies »

• Content delivery networks »

• Peer-to-peer networks »

Question: What does “distributed collection of machines” mean?

Page 78: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Content and Internet Traffic

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Internet traffic:

1. Shifts seismically (emailFTPWebP2Pvideo) − Internet traffic changes quickly, not only in the details but in the

overall makeup

2. Has many small/unpopular and few large/popular

flows – mice and elephants − Important: note description of “self-similar” traffic on page 737

Zipf popularity distribution, 1/k Shows up as a line on log-log plot

Page 79: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Server Farms and Web Proxies (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

No matter how much bandwidth one machine has, it can only serve so

many web requests before the load is too great. Server farm is a single

logical machine comprised of many physical machines.

Server farms enable large-scale Web servers:

• Front-end load-balances requests over servers

• Servers access the same backend database

Question: What is the difference between logical and physical?

Page 80: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Server Farms and Web Proxies (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Caching improves performance by shortening the response time and reducing

the network load. Web proxy shares the cache among multiple users by

actually fetching web requests on behalf of its users. This also enables an

organization to control the content that is entering its AS.

Proxy caches help organizations to scale the Web

• Caches server content over clients for performance

• Also implements organization policies (e.g., access)

Question: Where is a web proxy usually physically located?

Page 81: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

CDNs – Content Delivery Networks (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Server farms and web proxies help to build large sites and to improve web

performance, but they are not sufficient for truly popular web sites that

must serve content on a global scale. This is the role of a CDN.

CDNs scale Web servers by having clients get content

from a nearby CDN node (cache) Distributes copy of content to other

CDN nodes and is a Name Server to

resolve DNS queries

Page 82: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Content Delivery Networks (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Directing clients to nearby CDN nodes with DNS:

• Client query returns local CDN node as response

• Local CDN node caches content for nearby clients

and reduces load on the origin server

Page 83: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Content Delivery Networks (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Akamai pioneered using DNS for content distribution and became the first

major CDN and industry leader (page 745-6)

Origin server rewrites pages to serve content via CDN

Page that distributes content via CDN

Traditional Web page on server

Question: Where have we seen

Akamai before?

Page 84: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Peer-to-Peer Networks (1)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

P2P is a file-sharing network that many computers use to pool their

resources to jointly form a CDN together. The computers may simply be

home computers. There is often no dedicated infrastructure and everyone

participates in the task of distributing content, with no central point of

control.

P2P (Peer-to-Peer) is an alternative CDN architecture

with no dedicated infrastructure (i.e., servers)

• Clients serve content to each other as peers

Challenges when servers are removed:

1. How do peers find each other?

2. How do peers support rapid content downloads?

3. How do peers encourage each other to upload?

Page 85: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Peer-to-Peer Networks (2)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Two common types of P2P technology:

1. BitTorrent protocol – see pages 750 – 752 – standard: www.bittorent.org

2. Distributed Hash Table (DHT)– see pages 753 - 756 – academic

1) BitTorrent lets peers download torrents, which are a content description

− Peers find each other via Tracker in torrent file

» Tracker is a server with the list of all other peers uploading or downloading content

− Peers swap chunks (parts of content) with partners, preferring those who

send most quickly [2]

− Many peers speed download; preference helps uploads [3]

Page 86: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Peer-to-Peer Networks (3)

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Distributed Hash Tables (DHTs) are a fully distributed

index that scales to very many clients/entries

• Basic functionality of an index is to map a key to a value, much

like a hash table

− Chord uses SHA-1 for its hash, just like in BitTorrent (and cryptography). It

takes a variable length string and produces a random 160-bit number. It is

used to:

1. Convert any IP address to a 160-bit number called a node identifier.

2. Convert a content name to a key

• Need to follow O(log N) path for N entries

• Each node maintains a finger table that has m entries, each pointing to a

different actual node. Each entry has two fields: start and IP address of

successor.

• Lookup process (next slide): requesting node sends a packet to its

successor containing its IP address and the key it is looking for. The

packet is propagated around the ring until it locates the successor to the

node identifier being sought. That node checks to see if it has any info

matching the key and, if so, returns it directly to the requesting node,

whose IP address it has

Page 87: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Peer-to-Peer Networks (3)

A Chord ring of 32 identifiers. Finger tables [at right, and as

arcs] are used to navigate the ring.

• Example: path to look up 16 from 1 is 1 12 15

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Identifier

values are

stored at

predecessor

Example: 32 node ID arranged in

circle. Shaded ones are actual machines,

Arcs show fingers and labels on arcs are

table indices.

Page 88: Application Layer - Central Washington University ·  · 2017-05-20The Application Layer CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

End

Chapter 7

CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011