• No results found

Applications & Application-Layer Protocols: The Domain Name System and Peerto-Peer

N/A
N/A
Protected

Academic year: 2021

Share "Applications & Application-Layer Protocols: The Domain Name System and Peerto-Peer"

Copied!
21
0
0

Loading.... (view fulltext now)

Full text

(1)

1

CPSC 360

Network Programming

Applications &

Application-Layer Protocols:

The Domain Name System and

Peer-to-Peer Systems

Michele Weigle

Department of Computer Science

Clemson University

[email protected]

http://www.cs.clemson.edu/~mweigle/courses/cpsc360 2

Application-Layer Protocols

Outline

 The architecture of distributed systems

» Client/Server computing

» P2P and Hybrid computing

 The programming model used in constructing

distributed systems » Socket programming

 Example client/server systems and

their application-layer protocols

» The World-Wide Web (HTTP)

» Reliable file transfer (FTP)

» E-mail (SMTP & POP)

» Internet Domain Name System (DNS)

 Example P2P/Hybrid systems

local ISP company network regional ISP application transport network link physical application transport network link physical application

(2)

3

Application-Layer Protocols

The Domain Name System (DNS)



Computers (hosts, routers) connected to the Internet have

two forms of names:

» IP address — a 32 bit identifier used for addressing hosts and

routing data to them

» Hostname — an ASCII string used by applications



The DNS is an Internet-wide service that provides

mappings between IP addresses and hostnames

» The DNS is a distributed database implemented in a hierarchy

of name servers

» The DNS is also an application-layer protocol



Hosts and routers use name servers to resolve names

(address/name translation)

» Name resolution is an essential Internet function implemented

as application-layer protocol

4

The Domain Name System

Services



Host Aliasing

» canonical hostname: relay1.west-coast.enterprise.com

» aliases: enterprise.com, www.enterprise.com



Mail Server Aliasing

» email address: [email protected]

» mail server: relay1.west-coast.hotmail.com



Load Distribution

» set of IP addresses associated with 1 canonical hostname

(e.g., cnn.com)

(3)

5

The Domain Name System

Names are valuable!



A New York Times article from August 22, 2000

6

The Domain Name System

Growth of DNS registrations

(4)

7

The Domain Name System

Name Hierarchy in DNS



hostname

= “dot” separated concatenation of domain

names along path toward the root

» clemson.edu

» cs.clemson.edu

» shadow1.cs.clemson.edu

com edu net org gov

npr yahoo amazon clemson cornell sprint bellsouth

cs ece cs

srv

ads

8

Name Hierarchy in the DNS

Top level domains



Generic domains:

» .com, .org, .net, .edu, .gov, .mil, .int

» .biz, .info, .name, .pro



Special sponsored names

» .aero, .coop, .museum



Country code domains

» .uk, .de, .jp, .us, etc.

(5)

9

DNS

Overview



Applications need IP address to open connection



Use DNS to find the IP address given a hostname



Steps:

1. Application invokes DNS (gethostbyname())

2. DNS application in host sends query into network

(UDP port 53)

3. DNS application in host receives reply with IP address

(after some delay)

4. IP address passed up to the application

DNS is a black box as far as the application is concerned.

10

The Domain Name System

Designing a distributed service



Why not centralize the DNS

» A server process on a big, well connected supercomputer?



Centralized systems do not scale!

» Poor reliability: centralized = single point of failure

» Poor performance: centralized = “remote access” for most

users

» Difficult to manage: centralized = all traffic goes to one

location, a large staff has to be present to handle registrations



A centralized system is not politically feasible in an

(6)

11

Designing a Distributed Service

DNS Name Servers



No server has every hostname-to-IP

address mapping



Authoritative name server:

» Every host is registered with at least

one authoritative server that stores that host’s IP address and name

» The authoritative name server can

perform name/address translation for that host’s name/address



Local

authoritative name servers:

» Each ISP, university, company, has a

local (default) name server

authoritative for its own hosts

» Resolvers always query a name server local to it to resolve any host name

Local host

shadow1.cs.clemson.edu

Local authoritative server

tornado.cs.clemson.edu

What if the name is

not a local host (e.g.,

www.yahoo.com)?

What if the name is

not a local host (e.g.,

www.yahoo.com)?

Name resolution: Query and Reply

12

DNS Name Servers

Root name servers

 A root name server is contacted when a local name server that can’t

resolve a name

» The root server either resolves the name or provides pointers to authoritative servers at lower level of name hierarchy

(7)

13

12 independent sites

DNS Name Servers

Generic TLD servers (Verisign Corp.)



.com, org, .net server locations (separated from root

servers)

14

DNS Name Servers

Using a server hierarchy for resolving names

 Host shadow1.cs.clemson.edu wants to know

the IP address of www.yahoo.com

» shadow1contacts its local DNS server tornado.cs.clemson.edu

 To resolve a non-local name, the local name

server queries the root server

 The root server responds with the TLD for

.com

 The local DNS server contacts the TLD

server

 The local DNS server contacts the

authoritative server dns.yahoo.com

 Results feed back to shadow1

 shadow1can now use the IP address of

www.yahoo.comto make a connection

Requesting host shadow1.cs.clemson.edu Root DNS server a.root-servers.net Local DNS server tornado.cs.clemson.edu Authoritative DNS server dns.yahoo.com TLD DNS server 1 8 2 3 4 5 6 7 Target host www.yahoo.com

(8)

15

DNS Name Servers

Recursive vs. Iterative Queries

Requesting host estore.yahoo.com Root DNS server a.root-servers.net Local DNS server dns.yahoo.com TLD DNS server



The DNS supports two

paradigms of queries:

» Recursive queries

» Iterative queries



Recursive queries place the

burden of name resolution

(recursively) on the contacted

server



In an iterated query the contacted

server simply replies with the

name of the server to contact

» “I don’t know; trying asking X”

1 8 2 7 3 6 Authortative DNS server dns.cs.clemson.edu 4 5 16

DNS Name Servers

Recursive vs. Iterative Queries

Requesting host shadow1.cs.clemson.edu Root DNS server a.root-servers.net Local DNS server tornado.cs.clemson.edu Authoritative DNS server dns.yahoo.com TLD DNS server 1 8 2 3 4 5 6 7 Target host www.yahoo.com



Any query can be recursive

or iterative



Iterative and recursive

queries can be combined



Typically, the query from

the requesting host to the

local DNS server is

recursive and the remaining

queries are iterative

(9)

17

DNS Name Servers

Caching and updating DNS entries



Every server caches all the

mappings it learns

» Cache entries are “soft state”

» They timeout (are deleted)

after some time period



DNS cache update/notify

mechanisms under design by

the IETF

» See RFC 2136 Requesting host shadow1.cs.clemson.edu Root DNS server a.root-servers.net Local DNS server tornado.cs.clemson.edu Authoritative DNS server dns.yahoo.com TLD DNS server 1 8 2 3 4 5 6 7 Target host www.yahoo.com 18

DNS Name Servers

DNS resource records



The DNS is a distributed database storing resource

records

(RRs)



Type = NS

» name is a domain

» valueis name of authoritative name server for this domain

RR format: <name, value, type, time_to_live>

RR format: <name, value, type, time_to_live>



Type = A

» name is a hostname

» value is hostname’s IP address



Type = CNAME

» name is an alias name for some “canonical” (the real) name

» valueis canonical name



Type = MX

» valueis name of mail server host associated with name

(10)

19

DNS Name Servers

DNS resource records / Examples



A record

» (relay1.west-coast.yahoo.com, 145.137.93.126, A) 

NS record

» (yahoo.com, dns.yahoo.com, NS) 

CNAME record

» (yahoo.com, relay1.west-coast.yahoo.com, CNAME) 

MX record

» (yahoo.com, mail.yahoo.com, MX) 20 Identification Flags Number of questions Number of authority RRs Number of answer RRs Number of additional RRs Questions (variable number) Answers

(variable number of records) Authority

(variable number of records) Additional Information (variable number of records)

DNS Protocol

DNS query and reply messages



DNS query and reply messages both have the same

message format



Messages have a fixed

length message header

» Identification — 16 bit

query/reply identifier used to match relies to queries

» Flags:

Query/Reply bit

“Reply is authoritative” bit “Recursion desired” bit ....

variable 12 bytes

(11)

21 Identification Flags Number of questions Number of authority RRs Number of answer RRs Number of additional RRs Questions (variable number) Answers

(variable number of records) Authority

(variable number of records) Additional Information (variable number of records)

DNS Protocol

DNS query and reply messages



Messages have a variable-length “question & answer”

body



Questions:

» The name and type fields

(type A or MX) for a

query — hotmail.com MX



Answers:

» One RR for each IP

address answering query



Authority:

» Resource records of other

authoritative servers

variable 12 bytes

22

DNS Resource Records

nslookup query/reply message example

shadow1% nslookup

Default Server: tornado.cs.clemson.edu Address: 130.127.48.3

> set debug > www.yahoo.com

Server: tornado.cs.unc.edu Address: 130.127.48.3

;; res_nmkquery(QUERY, www.yahoo.com, IN, A)

---Got answer: HEADER:

opcode = QUERY, id = 16795, rcode = NOERROR

header flags: response, want recursion, recursion avail.

questions = 1, answers = 9, authority records = 11, additional = 3

QUESTIONS:

(12)

23

DNS Resource Records

nslookup query/reply message example

ANSWERS:

-> www.yahoo.com

canonical name = www.yahoo.akadns.net ttl = 300 (5M) -> www.yahoo.akadns.net internet address = 216.109.118.72 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.117.106 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.117.107 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.117.109 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.118.64 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.118.65 ttl = 60 (1M) -> www.yahoo.akadns.net internet address = 216.109.118.67 ttl = 60 (1M) AUTHORITY RECORDS: -> akadns.net nameserver = z0c.akadns.org ttl = 113598 (113598) -> akadns.net nameserver = zf.akadns.org ttl = 113598 (113598) -> akadns.net nameserver = zh.akadns.org ttl = 113598 (113598) -> akadns.net nameserver = eur3.akam.net ttl = 113598 (113598) -> akadns.net nameserver = use2.akam.net ttl = 113598 (113598) -> akadns.net nameserver = use4.akam.net ttl = 113598 (113598) -> akadns.net nameserver = usw5.akam.net ttl = 113598 (113598) 24

DNS Resource Records

nslookup query/reply message example

ADDITIONAL RECORDS: -> za.akadns.org internet address = 208.185.132.176 ttl = 19200 (19200) -> use4.akam.net internet address = 80.67.67.182 ttl = 126017 (126017) -> usw5.akam.net internet address = 63.241.73.214 ttl = 126017 (126017) Non-authoritative answer: Name: www.yahoo.akadns.net Addresses: 216.109.118.72, 216.109.117.106, 216.109.117.107, 216.109.117.109, 216.109.118.64, 216.109.118.65, 216.109.118.67, 216.109.118.71 Aliases: www.yahoo.com

(13)

25 root com edu net cnn

DNS Example

DNS processing for an iterated query



Resolve the hostname in

http://www.cnn.com

Local Server REPLY: co m (NS) QUERY: ww w.cnn.com REPLY: cnn .com (NS) REPLY: 207.25.71.28(A) QUERY: www.cnn .com REPLY: 207.25.71.28 com. NS A.GTLD-SERVERS.NET 192.5.6.30 cnn.com NS DNS.CNN.COM 128.2.232.1 www.cnn.com A 207.25.71.28 QUERY: www.cnn.com QUERY: www.cnn.com 26 root com edu net cnn

DNS Example

DNS processing for an iterated query



Resolve the hostname www2.cnn.com

with a warm cache

Local Server REPLY: 66.40.26.232(A) REPLY: 66.40.26.232 com. NS A.GTLD-SERVERS.NET 192.5.6.30 cnn.com NS DNS.CNN.COM 128.2.232.1 www.cnn.com A 207.25.71.28 QUERY: www2.cnn.com QUERY: www2.cnn.com www2.cnn.com A 66.40.26.232

(14)

27

The Domain Name System

Summary



F gets

270,000,000+

hits per day

» Other servers have

comparable load



The Verisign TLD

servers answer

5,000,000,000

queries per day



Clearly the DNS

would collapse without:

» Hierarchy

» Distributed processing

» Caching



If DNS fails, Internet services

stop working!

28

The Domain Name System

For More Info



DNS Specification

»

RFC 1034, RFC 1035

»

[Mockapetris 1988]



DNS Caching

»

RFC 2136



DNS Attacks

» CAIDA, Nameserver DoS Attack October 2 analysis

(15)

29

Application-Layer Protocols

Peer-to-Peer (P2P) Architecture



No always-on server



Arbitrary end systems

directly communicate



Peers are intermittently

connected and change

IP addresses

local ISP company network regional ISP 30

Application-Layer Protocols

P2P File Sharing



P2P file sharing accounts for more traffic than any

other application on the Internet



Types of files shared

» MP3s 3-8 MB

» videos 10MB - 1GB

» software



Legality

(16)

31

Application-Layer Protocols

P2P File Sharing / Example

 Alice runs P2P client application on

her notebook computer

 Intermittently connects to Internet;

gets new IP address

 Asks for “Hey Jude”

 Application displays other peers that

have copy of Hey Jude.

 Alice chooses one of the peers, Bob.  File is copied from Bob’s PC to

Alice’s notebook: HTTP

 While Alice downloads, other users

uploading from Alice.

 Alice’s peer is both a Web client and

a transient Web server.

All peers are servers =

highly scalable!

32

P2P File Sharing

Content Location Problem

local ISP company network regional ISP 

Centralized Directory



Query Flooding



Heterogeneous

Approach

How do peers know

which other peers have

content that they’re

interested in?

(17)

33

Bob

P2P File Sharing

Centralized Directory (Napster)

1) When peer connects, it informs central server:

» IP address » content

2) Alice queries for “Hey Jude” 3) Alice requests file from Bob

centralized directory server peers Alice 1 1 1 1 2 3

inform and update 1

2 query 3 file transfer

34

P2P File Sharing

Problems with Centralized Directory



Single point of failure



Performance bottleneck



Copyright infringement

File transfer is decentralized, but

locating content is highly

(18)

35

P2P File Sharing

Query Flooding (Gnutella)

 Fully distributed

» no central server

 Public domain protocol  Many Gnutella clients

implementing protocol

 Peers form an overlay network

» edge between peer X and Y if there’s a TCP connection

» group of active peers and edges is overlay network

» edge is not a physical link

» given peer will typically be connected with < 10 overlay neighbors

Protocol specification: [Gnutella 2004] 36

Query Flooding

Messages

Query QueryHit Query Qu ery Que ry Qu ery Quer yHit QueryHit File transfer: HTTP Scalability: limited scope flooding

 Querymessage sent

over existing TCP connections

 Peers forward Querymessage

 QueryHitmessage

sent over reverse path

Bob

(19)

37

P2P File Sharing

KaZaA

 Borrows ideas from Napster and Gnutella

» no dedicated server

» peers are either normal peers or group leaders » each group leader is a mini-Napster-like hub

» group leaders create a network that resembles a Gnutella network

 Contributes more traffic to the Internet than any other

application

» [Gummadi 2003, Saroiu 2002]

 Proprietary specification

» harder to know exactly how it works » [Liang 2004] - KaZaA traffic measurement

 Encrypts control traffic

38

P2P File Sharing

Exploiting Heterogeneity (KaZaA)

 Each peer is either a group

leader or assigned to a group leader.

» TCP connection between peer and its group leader.

» TCP connections between some pairs of group leaders.

 Group leader tracks the

content in all its children.

ordinary peer group-leader peer neighoring relationships

(20)

39

KaZaA

Querying

 Each file has a hash and a descriptor

 Client sends keyword query to its

group leader

 Group leader responds with

matches:

» For each match: hash, IP address

 If group leader forwards query to

other group leaders, they respond with matches

 Client then selects files for

downloading

» HTTP requests using hash as identifier sent to peers holding desired file ordinary peer group-leader peer neighoring relationships in overlay network 40

Kazaa

Tricks



Limitations on simultaneous uploads

» request queuing



Incentive priorities

» priority in queue given to users who upload more than

download



Parallel downloading

(21)

41

Peer-to-Peer Systems

For More Info



Content Location

» [Stoica 2001] » [Rowstron 2001] » [Ratnasamy 2001] » [Zhao 2004] » [Maymounkov 2002] » [Garces-Erce 2003] 

Gnutella

» [Gnutella 2004] -protocol specification 

KaZaA

» [KaZaA 2004] » [Gummadi 2003] » [Saroiu 2002] » [Liang 2004]

References

Related documents

Application Layer 2-18 requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8

DNS Operations root DNS Servers user DNS Servers (example.com) TLD DNS Servers www.example.com Queries Query Query Query Referral Answer Referral DNS Operations.  Authoritative

requesting host allspice.cs.swarthmore.edu gaia.cs.umass.edu root DNS server local DNS server dns.cs.swarthmore.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu

requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server Recursive

2-12 Requesting Host www.smith.edu gaia.cs.umass.edu root DNS server local DNS server dns.smith.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server

requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server DNS name

requesting host cis.poly.edu root DNS server local DNS server dns.poly.edu 1 2 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server 3 Recursive queries recursive query:.

requesting host cs.keene.edu gaia.cs.umass.edu root DNS server local DNS server nic.keene.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server • Host