+ All Categories
Home > Documents > CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport...

CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport...

Date post: 29-Jun-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
25
CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application Layer Dr. Xiaobo “Charles” Zhou Department of Computer Science 1 CS422 The Transport Layer.2 UC. Colorado Springs Application Layer Chapter 7 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall DNS – Domain Name System Electronic Mail The Web Streaming Audio and Video Content Delivery 2
Transcript
Page 1: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.1 UC. Colorado Springs

CS4220Computer Networks

Lecture 8 The Application Layer

Dr. Xiaobo “Charles” ZhouDepartment of Computer Science

1

CS422 The Transport Layer.2 UC. Colorado Springs

Application LayerChapter 7

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

• DNS – Domain Name System• Electronic Mail• The Web• Streaming Audio and Video• Content Delivery

2

Page 2: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.3 UC. Colorado Springs

The Application LayerCN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Uses transport services to build distributed applications

PhysicalLink

NetworkTransportApplication

3

CS422 The Transport Layer.4 UC. Colorado Springs

° User clicks on http://www.nytimes.com/° URL contains Internet name of machine (www.nytimes.com),

but not Internet address° Internet needs Internet address to send information to a

machine° Browser software uses Domain Name System (DNS) protocol to

send query for Internet address° DNS system responds with Internet address

Q. www.nytimes.com?

A. 64.15.247.200

1. DNS

4

Page 3: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.5 UC. Colorado Springs

° Browser software uses HyperText Transfer Protocol (HTTP) to send request for document

° HTTP server waits for requests by listening to a well-known port number (80 for HTTP)

° HTTP client sends request messages through an “ephemeral port number,” e.g. 1127

° HTTP needs a Transmission Control Protocol (TCP) connection between the HTTP client and the HTTP server to transfer messages reliably

TCP Connection RequestFrom: 128.100.11.13 Port 1127To: 64.15.247.200 Port 80

2. TCP

ACK, TCP Connection RequestFrom: 64.15.247.200 Port 80 To:128.100.11.13 Port 1127

ACK

5

CS422 The Transport Layer.6 UC. Colorado Springs

° HTTP client sends its request message: “GET …”° HTTP server sends a status response: “200 OK”° HTTP server sends requested file° Browser displays document° Clicking a link sets off a chain of events across the Internet!° Let’s see how protocols & layers come into play…

GET / HTTP/1.1

200 OK

3. HTTP

Content

6

Page 4: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.7 UC. Colorado Springs

DNS – Domain Name System

o 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

7

CS422 The Transport Layer.8 UC. Colorado Springs

The DNS Name Space (1)

DNS namespace is hierarchical from the root down• Different parts delegated to different organizations

The computer robot.cs.washington.edu

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

8

Page 5: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.9 UC. Colorado Springs

The DNS Name Space (2)

o 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

9

CS422 The Transport Layer.10 UC. Colorado Springs

Domain Resource Records (1)o 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

10

Page 6: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.11 UC. Colorado Springs

Domain Resource Records (2)

° A portion of a possible DNS database for cs.vu.nl.

IP addresses of computers

Name server

Mail gateways

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

11

CS422 The Transport Layer.12 UC. Colorado Springs

Name Servers (1)

o 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

12

Page 7: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.13 UC. Colorado Springs

Name Servers (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Finding the IP address for a given hostname is called resolution and is done with the DNS protocol.

o 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 name server can answer

o DNS protocol:• Runs on UDP port 53, retransmits lost messages• Caches name server answers for better performance

13

CS422 The Transport Layer.14 UC. Colorado Springs

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

14

Page 8: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.15 UC. Colorado Springs

The World Wide WebCN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

• Architectural overview »• Static Web pages »• Dynamic pages and Web applications »• HTTP – HyperText Transfer Protocol »• The mobile Web »• Web search »

15

CS422 The Transport Layer.16 UC. Colorado Springs

Architectural Overview (1)

° HTTP transfers pages from servers to browsers

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

16

Page 9: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.17 UC. Colorado Springs

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

Ourfocus

Protocol Page on serverServer

Common URL protocols

17

CS422 The Transport Layer.18 UC. Colorado Springs

Architectural Overview (3)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

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- 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

18

Page 10: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.19 UC. Colorado Springs

Architectural Overview (4)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

o Content type is identified by MIME types• Browser takes the appropriate action to display • Plug-ins / helper apps extend browser for new types

19

CS422 The Transport Layer.20 UC. Colorado Springs

Architectural Overview (5)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

o To scale performance, Web servers can use:• Caching, multiple threads, and a front end

20

Page 11: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.21 UC. Colorado Springs

Architectural Overview (6)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

Server steps, revisited:• Resolve name of Web page requested• Perform access control on the Web page• Check the cache• Fetch requested page from disk or run program• Determine the rest of the response• Return the response to the client• Make an entry in the server log

21

CS422 The Transport Layer.22 UC. Colorado Springs

Architectural Overview (7)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011

o Cookies support stateful client/server interactions• Server sends cookies (state) with page response• Client stores cookies across page fetches• Client sends cookies back to server with requests

Examples of cookies

22

Page 12: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.23 UC. Colorado Springs

Static Web Pages (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Static Web pages are simply files• Have the same contents for each viewing

o 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) . . .

23

CS422 The Transport Layer.24 UC. Colorado Springs

Static Web Pages (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

Progression of features through HTML 5.0

24

Page 13: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.25 UC. Colorado Springs

Dynamic Pages & Web Applications (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Dynamic pages are generated by programs running at the server (with a database) and the client

• E.g., PHP at server, JavaScript at client• Pages vary each time like using an application

25

CS422 The Transport Layer.26 UC. Colorado Springs

Dynamic Pages & Web Applications (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

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

26

Page 14: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.27 UC. Colorado Springs

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

27

CS422 The Transport Layer.28 UC. Colorado Springs

Dynamic Pages & Web Applications (4)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o The difference between server and client programs

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

28

Page 15: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.29 UC. Colorado Springs

Dynamic Pages & Web Applications (5)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o 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.• XML: let programs exchange data with the server.• Asynchronous way to send and retrieve XML data.• JavaScript as a language to bind all this together.

29

CS422 The Transport Layer.30 UC. Colorado Springs

Dynamic Pages & Web Applications (6)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o The DOM (Document Object Model) tree represents Web pages as a structure that programs can alter

30

Page 16: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.31 UC. Colorado Springs

Dynamic Pages & Web Applications (7)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

XML captures document structure, not presentation like HTML. Ex:

31

CS422 The Transport Layer.32 UC. Colorado Springs

Dynamic Pages & Web Applications (8)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

Web applications use a set of technologies, revisited:

32

Page 17: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.33 UC. Colorado Springs

HTTP (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o 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

33

CS422 The Transport Layer.34 UC. Colorado Springs

HTTP (2)

° HTTP uses persistent connections to improve performance

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

One connection for each request

Sequential requests on one connection

Pipelined requests on one connection

34

Page 18: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.35 UC. Colorado Springs

HTTP (3)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

HTTP has several request methods.

Fetch a page

Used to send input data to a server program

35

CS422 The Transport Layer.36 UC. Colorado Springs

HTTP (4)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

Response codes tell the client how the request fared:

36

Page 19: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.37 UC. Colorado Springs

HTTP (5)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

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

37

CS422 The Transport Layer.38 UC. Colorado Springs

HTTP (6)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o HTTP caching checks to see if the browser has a known fresh copy, and if not if the server has updated the page

• Uses a collection of headers for the checks• Can include further levels of caching (e.g., proxy)

38

Page 20: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.39 UC. Colorado Springs

The Mobile WebCN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o 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

o 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

39

CS422 The Transport Layer.40 UC. Colorado Springs

Content DeliveryCN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o 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 »

40

Page 21: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.41 UC. Colorado Springs

Content and Internet TrafficCN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

Internet traffic:1.Shifts seismically (emailàFTPàWebàP2Pàvideo)2.Has many small/unpopular and few large/popular flows – mice

and elephants

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

41

CS422 The Transport Layer.42 UC. Colorado Springs

Server Farms and Web Proxies (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Server farms enable large-scale Web servers:• Front-end load-balances requests over servers• Servers access the same backend database• Cloud Computing

42

Page 22: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.43 UC. Colorado Springs

Server Farms and Web Proxies (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

Proxy caches help organizations to scale the Web• Caches server content over clients for performance • Also implements organization policies (e.g., access)

43

CS422 The Transport Layer.44 UC. Colorado Springs

CDNs – Content Delivery Networks (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

CDNs scale Web servers by having clients get content from a nearby CDN node (cache)

44

Page 23: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.45 UC. Colorado Springs

Content Delivery Networks (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o 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

45

CS422 The Transport Layer.46 UC. Colorado Springs

Peer-to-Peer Networks (1)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o P2P (Peer-to-Peer) is an alternative CDN architecture with no dedicated infrastructure (i.e., servers)

• Clients serve content to each other as peers

o 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?

46

Page 24: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.47 UC. Colorado Springs

Peer-to-Peer Networks (2)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o BitTorrent lets peers download torrents- Peers find each other via Tracker in torrent file- Peers swap chunks (parts of content) with partners,

preferring those who send most quickly [2]- Many peers speed download; preference helps uploads [3]

47

CS422 The Transport Layer.48 UC. Colorado Springs

Peer-to-Peer Networks (3)CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall

o Distributed Hash Tables (DHTs) are a fully distributed index that scales to very many clients/entries

• Need to follow O(log N) path for N entries• Can use as Tracker to find peers with no servers [1]• Look up torrent (identifier) in DHT to find IP of peers• Kademlia is used in BitTorrent

48

Page 25: CS4220 Computer Networksxzhou/teaching/CS4220/LNCS/LEC8... · 2020. 1. 22. · CS422 The Transport Layer.1 UC. Colorado Springs CS4220 Computer Networks Lecture 8 The Application

CS422 The Transport Layer.49 UC. Colorado Springs

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

Identifier values are stored at predecessor

49

CS422 The Transport Layer.50 UC. Colorado Springs

Reading

° Chapter 7 of the text

50


Recommended