CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and...

29
CSE 524: Lecture 5 Application layer protocols

Transcript of CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and...

Page 1: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

CSE 524: Lecture 5

Application layer protocols

Page 2: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

Where we’re at…● Internet architecture and history

● Internet protocols in practice

● Application layer– Overview and functions– Network programming interface– Specific application protocols

● HTTP● DNS, SMTP/POP, FTP

● Transport layer

● Network layer

● Data-link layer

● Physical layer

Page 3: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Web Caches (proxy server)

• user sets browser: Web accesses via web cache

• client sends all http requests to web cache– if object at web cache, web cache

immediately returns object in http response

– else requests object from origin server, then returns http response to client

• Internet dense with caches enables “poor” content providers to effectively deliver content

Goal: satisfy client request without involving origin server

client

Proxyserver

client

http request

http re

quest

http response

http re

sponse

http re

quest

http re

sponse

http requesthttp response

origin server

origin server

Page 4: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: More about Web caching● Cache acts as both client to content servers● Cache acts as server to its users● Typically installed by ISP (university, company, residential ISP)● Cache can do up-to-date check using If-modified-since

HTTP header– Issue: should cache take risk and deliver cached object without

checking?– Heuristics are used.

Page 5: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Benefits of web caches

Assume: cache is “close” to client (e.g., in same network)

• smaller response time: cache “closer” to client

• decrease traffic to distant servers– link out of institutional/local ISP

network often bottleneck

• Further info on web caching– http://www.ircache.net/– http://www.squid.org– ICP

• http://www.rfc-editor.org/rfc/rfc2186.txt

• http://www.rfc-editor.org/rfc/rfc2187.txt

originservers

public Internet

institutionalnetwork

10 Mbps LAN

1.5 Mbps access link

institutionalcache

Page 6: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Content distribution networks (CDNs)• The content providers are the CDN

customers.

Content replication

• CDN company installs hundreds of CDN servers throughout Internet– in lower-tier ISPs, close to users

• CDN replicates its customers’ content in CDN servers. When provider updates content, CDN updates servers

origin server in North America

CDN distribution node

CDN serverin S. America CDN server

in Europe

CDN serverin Asia

Page 7: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

CDN example

origin server• www.foo.com• distributes HTML• Replaces: http://www.foo.com/sports.ruth.gif

with

http://www.cdn.com/www.foo.com/sports/ruth.gif

HTTP request for

www.foo.com/sports/sports.html

DNS query for www.cdn.com

HTTP request for

www.cdn.com/www.foo.com/sports/ruth.gif

1

2

3

Origin server

CDNs authoritative DNS server

NearbyCDN server

CDN company

• cdn.com

• distributes gif files

• uses its authoritative DNS server to route redirect requests

Page 8: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

More about CDNs

routing requests

• CDN creates a “map”, indicating distances from leaf ISPs and CDN nodes

• when query arrives at authoritative DNS server:– server determines ISP from

which query originates

– uses “map” to determine best CDN server

not just Web pages

• streaming stored audio/video

• streaming real-time audio/video– CDN nodes create

application-layer multicast overlay network

Page 9: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Domain Name System (DNS)● Internet hosts, routers like to use fixed-length addresses

(numbers)– IP address (32 bit) - used for addressing datagrams

● Humans like to use variable-length names– www.cse.ogi.edu– keywords

● DNS, keywords, naming protocols– Map from IP addresses to names– Map from names to IP addresses

Page 10: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Original Name to Address Mapping● Flat namespace

– /etc/hosts – SRI kept main copy– Downloaded regularly

● Problems– Count of hosts was increasing: machine per domain machine per

user● Many more downloads● Many more updates

Page 11: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Goals for a new naming system● Implement a wide area distributed database

– Scalability– Decentralized maintenance– Robustness, fault-tolerance– Global scope

● Names mean the same thing everywhere

– Don’t need● Atomicity● Strong consistency

Page 12: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Goals for a new naming system

Why not centralize DNS?● Single server with all name-to-IP address mappings

– single point of failure– traffic volume– distant centralized database (performance)– maintenance– doesn’t scale!

Page 13: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS (Domain Name System)● http://www.rfc-editor.org/rfc/rfc1034.txt● http://www.rfc-editor.org/rfc/rfc1035.txt● distributed database implemented in hierarchy of many name

servers● decentralized control and management of data● application-layer protocol used by hosts and name servers

– communicate to resolve names (address/name translation)– core Internet function implemented as application-layer protocol

● complexity at network’s “edge”● compare to phone network

– Naming (none supported)– Addressing (complex mechanism within network)

Page 14: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS nutshell solution● Hierarchical canonical name space

– www.cse.ogi.edu

root

edunetorg ukcom ca

gwu ucb ogi bu mit

cse ece

www

Page 15: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS nutshell solution● Authoritative name servers store parts of the database

– Names assigned to authoritative name servers● For a host, authority stores that host’s IP address, name● Responds to queries for host’s IP address● Perform name/address translation for that host’s name

– Root name server knows authoritative servers for particular subdomains● Hierarchy organizes authoritative name servers● Reserving a domain gives you control of entry in root name server for particular

names

● DNS hierarchical lookup– Each host has a pointer to a local name server for which to query for

unknown names– Each local name server knows root of hierarchy– Root points to sub-levels, sub-levels point to deeper sub-levels, … ,

deeper sub-levels point to leaf name server representing authority for unknown name

Page 16: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS nutshell figureRoot name servers:• may not know

authoratiative name server• may know intermediate

name server: who to contact to find authoritative name server

• multiple root name servers for fault-tolerance

Example:• surf.eurecom.fr wants to

talk to gaia.cs.umass.edu– contact local dns server– local dns contacts root– root contacts authoritative (or next

level to authoritative)

requesting hostsurf.eurecom.fr

gaia.cs.umass.edu

root name server

local name serverdns.eurecom.fr

1

23

4 5

6

authoritative name serverdns.cs.umass.edu

intermediate name serverdns.umass.edu

7

8

Page 17: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS: Root name servers

• contacted by local name server that can not resolve any part of the name

• root name server:

– contacts authoritative name server if name mapping not known

– gets mapping

– returns mapping to local name server

b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA

i NORDUnet Stockholm

k RIPE London

m WIDE Tokyo

a NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA

13 root name servers worldwide (all that fit in a 512 octet SOA record)

Page 18: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS server name database● DB contains tuples called resource records (RRs)

– RR contains type, class and application data● Before types added, only one record type (A)

– Classes = Internet (IN), Chaosnet (CH), etc.– Each class defines types, e.g. for IN:

● A = address● NS = name server● CNAME = canonical name (for aliasing)● HINFO = CPU/OS info● MX = mail exchange● PTR = pointer for reverse mapping of address to name

● nslookup example

Page 19: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS record types

Resource records (RR) and their types

• Type=NS– name is domain (e.g. foo.com)

– value is IP address of authoritative name server for this domain

RR format: (name, value, type,ttl)

• Type=A– name is hostname

– value is IP address

• Type= CNAME– name is an alias name for

some “cannonical” (the real) name

– value is cannonical name

• Type=MX– value is hostname of

mailserver associated with name

Page 20: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS MX record type● MX records point to mail exchanger for a name

– E.g. mail.acm.org is MX for acm.org● Addition of MX record type proved to be a challenge

– How to get mail programs to lookup MX record for mail delivery rather than A record?

– Needed critical mass of such mailers

Page 21: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS server database distribution● Administrative hierarchy

– Organized into regions known as “zones”– “.” as separator– zone = contiguous section of name space

● Zones created by convincing owner node to delegate a subzone– umass.edu zone delegates cs.umass.edu to a different set of authoritative name servers– Each zone contains multiple redundant servers

● Primary (master) name server updated manually

● Secondary (redundant) servers updated by zone transfer of name space

● Provides fault-tolerance within zone

● Host name to address section– Top-level domains edu, gov, ca, us, etc.– Sub-domains = subtrees– Human readable name = leaf root path

Page 22: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS client lookups● Each host has a resolver

– Typically a library that applications can link gethostbyname()– Local name servers hand-configured (e.g. /etc/resolv.conf) or

automatically configured (DHCP)● Can specify a file /etc/hosts● Can specify a name server by its IP address (i.e. 129.95.50.2)

– Host queries local name server for unknown names● Name servers

– Configured with well-known root servers● Currently {a-m}.root-servers.net

– Local servers● Typically answer queries about local zone● Typically do a lookup of distant host names for local hosts

Page 23: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Lookup Methods● Recursive queries

– Server goes out and searches for more info on behalf of the client (recursive)

– Only returns final answer or “not found”● Iterative

– Server responds with as much as it knows (i.e. name of server to contact next)

– Client iteratively queries additional servers

Page 24: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: All recursive DNS example

host surf.eurecom.fr wants IP address of gaia.cs.umass.edu

1. Contacts its local DNS server, dns.eurecom.fr

2. dns.eurecom.fr contacts root name server, if necessary

3. root name server contacts authoritative name server, dns.umass.edu, if necessary

requesting hostsurf.eurecom.fr

gaia.cs.umass.edu

root name server

authorititive name serverdns.umass.edu

local name serverdns.eurecom.fr

1

23

4

5

6

Page 25: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS: iterated queries● recursive query:

– puts burden of name resolution on contacted name server

– heavy load?– root servers now disable

recursive queries (RFC 2010)

● iterated query:– contacted server replies

with name of server to contact

– “I don’t know this name, but ask this server”

requesting hostsurf.eurecom.fr

gaia.cs.umass.edu

root name server

local name serverdns.eurecom.fr

1

23

4

5 6

authoritative name serverdns.cs.umass.edu

intermediate name serverdns.umass.edu

7

8

iterated query

Page 26: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Typical Resolution● Client does recursive request to local name server● Local name server does iterative requests to find name● Local name server has knowledge of root servers● Steps for resolving www.ogi.edu

– Application calls gethostbyname()– Resolver contacts local name server (S1)

– S1 queries root server (S2) for (www.ogi.edu)

– S2 returns NS record for ogi.edu (S3)

– S1 queries S3 for www.ogi.edu

– S3 returns A record for www.ogi.edu● Can return multiple addresses -> what does this mean?

Page 27: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS Caching● DNS responses are cached

– Quick response for repeated translations– Other queries may reuse some parts of lookup

● NS records for domains

● DNS negative queries are also cached– Don’t have to repeat past mistakes– E.g. misspellings

● Cached data periodically times out– Soft state– Lifetime (TTL) of data controlled by owner of data– TTL passed with every record– TTL affects DNS-based load balancing techniques

● update/notify mechanisms under design by IETF– RFC 2136– http://www.ietf.org/html.charters/dnsind-charter.html

Page 28: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: DNS Lookup Caching Example

ClientLocal

DNS server

root & edu DNS server

ogi.edu DNS server

www.cse.ogi.edu

NS ogi.eduwww.cse.ogi.edu

NS cse.ogi.edu

www=IPaddr

cse.ogi.eduDNS

server

Page 29: CSE 524: Lecture 5 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer.

AL: Subsequent Lookup Example

ClientLocal

DNS server

root & edu DNS server

ogi.edu DNS server

cse.ogi.eduDNS

server

ftp.cse.ogi.edu

ftp=IPaddr

ftp.cse.ogi.edu

cse.ogi.edu entry cached