chapter 2: application layer

22
2: Application Layer 1 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server

Upload: ulric-boyd

Post on 03-Jan-2016

20 views

Category:

Documents


3 download

DESCRIPTION

2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS. 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server. Chapter 2: Application layer. People: many identifiers: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 2: Application layer

2: Application Layer 1

Chapter 2: Application layer

2.1 Principles of network applications

2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 P2P applications 2.7 Socket

programming with TCP 2.8 Socket

programming with UDP

2.9 Building a Web server

Page 2: Chapter 2: Application layer

2: Application Layer 2

DNS: Domain Name System

People: many identifiers: SSN, name, passport #

Internet hosts, routers: IP address (32 bit) -

used for addressing datagrams

“name”, e.g., ww.yahoo.com - used by humans

Q: map between IP addresses and name ?

Domain Name System: distributed database

implemented in hierarchy of many name servers

application-layer protocol host, routers, name servers to communicate to resolve names (address/name translation) note: core Internet

function, implemented as application-layer protocol

complexity at network’s “edge”

Page 3: Chapter 2: Application layer

2: Application Layer 3

DNS

Why not centralize DNS? single point of failure traffic volume distant centralized

database maintenance

doesn’t scale!

DNS services hostname to IP

address translation host aliasing

Canonical, alias names

mail server aliasing load distribution

replicated Web servers: set of IP addresses for one canonical name

Page 4: Chapter 2: Application layer

2: Application Layer 4

Root DNS Servers

com DNS servers org DNS servers edu DNS servers

poly.eduDNS servers

umass.eduDNS servers

yahoo.comDNS servers

amazon.comDNS servers

pbs.orgDNS servers

Distributed, Hierarchical Database

Client wants IP for www.amazon.com; 1st approx: client queries a root server to find com DNS

server client queries com DNS server to get

amazon.com DNS server client queries amazon.com DNS server to get IP

address for www.amazon.com

Page 5: Chapter 2: Application layer

2: Application Layer 5

DNS: Root name servers contacted by local name server that can not resolve name root name server:

contacts authoritative name server if name mapping not known

gets mapping returns mapping to local name server

13 root name servers worldwideb USC-ISI Marina del Rey, CA

l ICANN Los Angeles, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 36 other locations)

i Autonomica, Stockholm (plus 28 other locations)

k RIPE London (also 16 other locations)

m WIDE Tokyo (also Seoul, Paris, SF)

a Verisign, Dulles, VAc Cogent, Herndon, VA (also LA)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 21 locations)

Page 6: Chapter 2: Application layer

2: Application Layer 6

TLD and Authoritative Servers Top-level domain (TLD) servers:

responsible for com, org, net, edu, etc, and all top-level country domains uk, fr, ca, jp.

Network Solutions maintains servers for com TLD

Educause for edu TLD Authoritative DNS servers:

organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web, mail).

can be maintained by organization or service provider

Page 7: Chapter 2: Application layer

2: Application Layer 7

Local Name Server

does not strictly belong to hierarchy each ISP (residential ISP, company,

university) has one. also called “default name server”

when host makes DNS query, query is sent to its local DNS server acts as proxy, forwards query into hierarchy

Page 8: Chapter 2: Application layer

2: Application Layer 8

requesting hostcis.poly.edu

gaia.cs.umass.edu

root DNS server

local DNS serverdns.poly.edu

1

23

4

5

6

authoritative DNS serverdns.cs.umass.edu

78

TLD DNS server

DNS name resolution example

Host at cis.poly.edu wants IP address for gaia.cs.umass.edu

iterated query: contacted server

replies with name of server to contact

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

Page 9: Chapter 2: Application layer

2: Application Layer 9

requesting hostcis.poly.edu

gaia.cs.umass.edu

root DNS server

local DNS serverdns.poly.edu

1

2

45

6

authoritative DNS serverdns.cs.umass.edu

7

8

TLD DNS server

3recursive query: puts burden of

name resolution on contacted name server

heavy load?

DNS name resolution example

Page 10: Chapter 2: Application layer

2: Application Layer 10

DNS: caching and updating records once (any) name server learns mapping, it

caches mapping cache entries timeout (disappear) after

some time TLD servers typically cached in local name

servers• Thus root name servers not often visited

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

Page 11: Chapter 2: Application layer

2: Application Layer 11

DNS records

DNS: distributed db storing resource records (RR)

Type=NS name is domain (e.g.

foo.com) value is hostname 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 alias name for some

“canonical” (the real) name www.ibm.com is really servereast.backup2.ibm.com value is canonical name

Type=MX value is name of

mailserver associated with name

Page 12: Chapter 2: Application layer

2: Application Layer 12

DNS protocol, messagesDNS protocol : query and reply messages, both with same message format

msg header identification: 16 bit #

for query, reply to query uses same #

flags: query or reply recursion desired recursion available reply is authoritative

Page 13: Chapter 2: Application layer

2: Application Layer 13

DNS protocol, messages

Name, type fields for a query

RRs in responseto query

records forauthoritative servers

additional “helpful”info that may be used

Page 14: Chapter 2: Application layer

Multimedia Networking 7-14

SIP: Session Initiation Protocol [RFC 3261]

SIP long-term vision:

all telephone calls, video conference calls take place over Internet

people are identified by names or e-mail addresses, rather than by phone numbers

you can reach callee, no matter where callee roams, no matter what IP device callee is currently using

Page 15: Chapter 2: Application layer

Multimedia Networking 7-15

SIP Services Setting up a call, SIP

provides mechanisms .. for caller to let

callee know she wants to establish a call

so caller, callee can agree on media type, encoding

to end call

determine current IP address of callee: maps mnemonic

identifier to current IP address

call management: add new media

streams during call change encoding

during call invite others transfer, hold calls

Page 16: Chapter 2: Application layer

Multimedia Networking 7-16

Setting up a call to known IP address

Alice’s SIP invite message indicates her port number, IP address, encoding she prefers to receive (PCM ulaw)

Bob’s 200 OK message indicates his port number, IP address, preferred encoding (GSM)

SIP messages can be sent over TCP or UDP; here sent over RTP/UDP. default SIP port number is 5060.time time

Bob'stermina l rings

A lice

167.180.112.24

Bob

193.64.210.89

port 38060

Law audio

G SMport 48753

Page 17: Chapter 2: Application layer

Multimedia Networking 7-17

Setting up a call (more) codec negotiation:

suppose Bob doesn’t have PCM ulaw encoder.

Bob will instead reply with 606 Not Acceptable Reply, listing his encoders Alice can then send new INVITE message, advertising different encoder

rejecting a call Bob can reject

with replies “busy,” “gone,” “payment required,” “forbidden”

media can be sent over RTP or some other protocol

Page 18: Chapter 2: Application layer

Multimedia Networking 7-18

Example of SIP message

INVITE sip:[email protected] SIP/2.0

Via: SIP/2.0/UDP 167.180.112.24

From: sip:[email protected]

To: sip:[email protected]

Call-ID: [email protected]

Content-Type: application/sdp

Content-Length: 885

c=IN IP4 167.180.112.24

m=audio 38060 RTP/AVP 0

Notes: HTTP message syntax sdp = session description protocol Call-ID is unique for every call.

Here we don’t know Bob’s IP address.

intermediate SIPservers needed.

Alice sends, receives SIP messages using SIP default port 506

Alice specifies in header that SIP client

sends, receives SIP messages over UDP

Page 19: Chapter 2: Application layer

Multimedia Networking 7-19

Name translation and user location caller wants to call

callee, but only has callee’s name or e-mail address.

need to get IP address of callee’s current host: user moves around DHCP protocol user has different IP

devices (PC, PDA, car device)

result can be based on: time of day (work,

home) caller (don’t want boss to

call you at home) status of callee (calls

sent to voicemail when callee is already talking to someone)

Service provided by SIP servers:

SIP registrar server SIP proxy server

Page 20: Chapter 2: Application layer

Multimedia Networking 7-20

SIP Registrar

REGISTER sip:domain.com SIP/2.0

Via: SIP/2.0/UDP 193.64.210.89

From: sip:[email protected]

To: sip:[email protected]

Expires: 3600

when Bob starts SIP client, client sends SIP REGISTER message to Bob’s registrar server

(similar function needed by Instant Messaging)

Register Message:

Page 21: Chapter 2: Application layer

Multimedia Networking 7-21

SIP Proxy

Alice sends invite message to her proxy server contains address sip:[email protected]

proxy responsible for routing SIP messages to callee possibly through multiple proxies.

callee sends response back through the same set of proxies.

proxy returns SIP response message to Alice contains Bob’s IP address

proxy analogous to local DNS server

Page 22: Chapter 2: Application layer

Multimedia Networking 7-22

ExampleCaller [email protected] with places a call to [email protected]

(1) Jim sends INVITEmessage to umass SIPproxy. (2) Proxy forwardsrequest to upenn registrar server. (3) upenn server returnsredirect response,indicating that it should try [email protected](4) umass proxy sends INVITE to eurecom registrar. (5) eurecom registrar forwards INVITE to 197.87.54.21, which is running keith’s SIP client. (6-8) SIP response sent back (9) media sent directly between clients. Note: also a SIP ack message, which is not shown.

SIP client217.123.56.89

SIP client197.87.54.21

SIP proxyum ass.edu

SIP registrarupenn.edu

SIPregistrareurecom .fr

1

2

34

5

6

7

8

9