Application Layer Socket API HTTP Vo IP DNS

  • Slides: 28
Download presentation
Application Layer Socket API, HTTP, Vo. IP, DNS IS 250 Spring 2010 John Chuang

Application Layer Socket API, HTTP, Vo. IP, DNS IS 250 Spring 2010 John Chuang

Application Layer & Socket API end-to-end Appl Software Socket API end-to-end Trans port Net

Application Layer & Socket API end-to-end Appl Software Socket API end-to-end Trans port Net work Link Host A John Chuang Router 1 point-to-point Trans port Net work Link Router 2 Operating System Hardware Host B 2

Socket § Socket: an API (application programming interface) that allows the abstraction of the

Socket § Socket: an API (application programming interface) that allows the abstraction of the underlying network (i. e. , layers 4 and lower) § Sockets support send and receive methods § Sockets identified by <IP addr, TCP/UDP port> § Two common types of sockets: - Stream socket (supported by TCP) - Datagram socket (supported by UDP) § Read: Comer 3. 13 -3. 23 John Chuang 3

Network Layers § Application (layer 7): specific to application need § Transport (layer 4):

Network Layers § Application (layer 7): specific to application need § Transport (layer 4): end-to-end delivery, congestion and flow control § Network (layer 3): addressing, routing § Data Link (layer 2): framing, error detection § Physical (layer 1): bits (0/1), voltages, frequencies, wires, pins, … John Chuang HTTP, FTP, NNTP, SMTP, telnet, . . . TCP, UDP IP Wi-Fi Ethernet FDDI, SONET coax, twisted pair, fiber, wireless, . . . 4

Representation v. Transfer § Application layer protocols specify two aspects of interaction: - Data

Representation v. Transfer § Application layer protocols specify two aspects of interaction: - Data representation: Syntax of data items that are exchanged, e. g. , HTML - Data transfer: Interaction between client and server, e. g. , HTTP John Chuang 5

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP (Comer 4. 11) Email, SMTP (Comer 4. 12 -4. 16) telnet, SSH RTP, SIP (Comer 29) … § Network support: - DNS (Comer 4. 17 -4. 25) - BGP, RIP, OSPF (Comer 27) - … John Chuang 6

Hypertext Transfer Protocol § HTTP specification (RFC 2616): - http: //www. ietf. org/rfc 2616.

Hypertext Transfer Protocol § HTTP specification (RFC 2616): - http: //www. ietf. org/rfc 2616. txt § HTTP uses TCP § Two types of HTTP messages - HTTP Request - HTTP Response HTTP Request Client John Chuang HTTP Response Server 7

HTTP Request Format Request line General header Request header <method><resource identifier><HTTP version><CRLF> [<Header>: <value><CRLF>]

HTTP Request Format Request line General header Request header <method><resource identifier><HTTP version><CRLF> [<Header>: <value><CRLF>] … Entity header [<Header>: <value><CRLF>] Blank line <CRLF> Entity body [Message body] Note: • <CRLF> = carriage-return-line-feed • optional fields in [] John Chuang 8

HTTP Header Fields § HTTP Methods - § GET POST HEAD OPTIONS PUT DELETE

HTTP Header Fields § HTTP Methods - § GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT General Header Fields - Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade Via Warning John Chuang § Request Headers - Accept-Charset Accept-Encoding Accept-Language Authorization Cookie Expect From Host * If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Max-Forwards Proxy-Authorization Range Referrer TE User-Agent * Mandatory in HTTP/1. 1 § Entity Headers - Allow Content-Encoding Content-Language Content-Length Content-Location Content-MD 5 Content-Range Content-Type Expires Last-Modified 9

HTTP Request: Example Request line GET /index. html HTTP/1. 1<CRLF> Request header Host: www.

HTTP Request: Example Request line GET /index. html HTTP/1. 1<CRLF> Request header Host: www. sims. berkeley. edu <CRLF> Blank line <CRLF> HTTP message TCP header HTTP message TCP segment IP header TCP Ethernet header IP port IP datagram/packet Ethernet frame John Chuang Adapted from Coulouris, Dollimore and Kindberg 10

Note: • <CRLF> = carriage-return-line-feed • optional fields in [] HTTP Response Status line

Note: • <CRLF> = carriage-return-line-feed • optional fields in [] HTTP Response Status line § <HTTP version><status code><Reason phrase><CRLF> General header Response header Entity header … Blank line <CRLF> Entity body [Message body] [<Header>: <value><CRLF>] Response Header Fields - Accept-Ranges - Age - Etag - Location - Proxy-Authenticate - Retry-After - Server - Set-Cookie - Vary - WWW-Authenticate John Chuang § Status Codes - § 1 xx: 2 xx: 3 xx: 4 xx: 5 xx: Informational Success Redirection Client error Server error Some common codes: - 200 OK 401 Unauthorized 404 Not Found 11

HTTP Response: Example Status line General header Response header Entity header Blank line Entity

HTTP Response: Example Status line General header Response header Entity header Blank line Entity body John Chuang HTTP/1. 1 200 OK Date: Mon, 12 Nov 2007 20: 14: 04 GMT Server: Apache/2. 0. 52 (Red Hat) X-Powered-By: PHP/4. 3. 9 Set-Cookie: PHPSESSID=f 49 e 0 b 5 ec; expires=Wed, 05 -Dec-2007 23: 47: 24 GMT; path=/ Last-Modified: Mon, 12 Nov 2007 20: 14: 04 GMT Cache-Control: no-store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0 Pragma: no-cache Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8 <html xmlns="http: //www. w 3. org/1999/xhtml" lang="en" xml: lang="en”> … </html> 12

HTTP/1. 1 and Persistent TCP Connections § An HTML object often has other embedded

HTTP/1. 1 and Persistent TCP Connections § An HTML object often has other embedded objects (e. g. , images) § HTTP/1. 0 requires a new TCP session for each object - Overhead of session establishment § HTTP/1. 1 permits reuse of one TCP session for multiple requests - Use “Connection: Keep-Alive” header John Chuang 13

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP (Comer 4. 11) Email, SMTP (Comer 4. 12 -4. 16) telnet, SSH RTP, SIP (Comer 29) … § Network support: - DNS (Comer 4. 17 -4. 25) - BGP, RIP, OSPF (Comer 27) - … John Chuang 14

Real-Time Multimedia § How to support real-time multimedia applications (e. g. , video, audio)

Real-Time Multimedia § How to support real-time multimedia applications (e. g. , video, audio) over a besteffort IP network? - Packets may be delivered out of order or lost - Retransmission is too slow to be helpful § Technique: delayed playback using timestamps and jitter buffer John Chuang 15 Source: Douglas Comer

Real-Time Transport Protocol (RTP) § Protocol for transport of real-time multimedia data - Sequence

Real-Time Transport Protocol (RTP) § Protocol for transport of real-time multimedia data - Sequence number and timestamp in RTP header Source: Douglas Comer John Chuang 16

Real-Time Transport Protocol (RTP) § RTP messages encapsulated in UDP datagrams - Why not

Real-Time Transport Protocol (RTP) § RTP messages encapsulated in UDP datagrams - Why not TCP? Source: Douglas Comer John Chuang 17

RTP Companion Protocols § RTCP: Real-time Transport Control Protocol - Control packets sent periodically

RTP Companion Protocols § RTCP: Real-time Transport Control Protocol - Control packets sent periodically to report quality such as loss rate and jitter § RTSP: Real-time Transport Streaming Protocol - Used by streaming media players to provide remote control like capabilities (e. g. , play, stop, fast forward) John Chuang 18

IP Telephony (Vo. IP) § Companies around the world are replacing traditional telephone switches

IP Telephony (Vo. IP) § Companies around the world are replacing traditional telephone switches with IP routers - Routers cost much less than traditional telephone switches - Sending both data and voice as IP packets lowers cost because underlying infrastructure is shared § The basic idea behind IP telephony: - continuously sample audio, convert to digital (PCM) - send digitized stream across IP network (RTP) - convert stream back to analog for playback § Complications arise in signaling and backward compatibility with PSTN John Chuang 19

IP Telephony (Vo. IP) § IP telephone § Media gateway controller § Media gateway

IP Telephony (Vo. IP) § IP telephone § Media gateway controller § Media gateway § Signaling gateway John Chuang Source: Douglas Comer 20

Vo. IP Protocols § RTP for user multimedia data § Multiple protocols for signaling:

Vo. IP Protocols § RTP for user multimedia data § Multiple protocols for signaling: - SIP: Session Initiation Protocol [RFC 2543] (IETF) - H. 323 (ITU) - ENUM: converts telephone number to URI; facilitates DNS lookup John Chuang 21 Source: Douglas Comer

Example SIP Session John Chuang Source: Douglas Comer 22

Example SIP Session John Chuang Source: Douglas Comer 22

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP

L 7 Alphabet Soup § Applications: - HTTP (Comer 4. 4 -4. 10) FTP (Comer 4. 11) Email, SMTP (Comer 4. 12 -4. 16) telnet, SSH RTP, SIP (Comer 29) … § Network support: - DNS (Comer 4. 17 -4. 25) - BGP, RIP, OSPF (Comer 27) - … John Chuang 23

Domain Name Service (DNS) § Routers and end-hosts use IP addresses - e. g.

Domain Name Service (DNS) § Routers and end-hosts use IP addresses - e. g. , 128. 32. 226. 87 § Human beings remember hostnames - e. g. , ischool. berkeley. edu § Need translation service! § Client sends query message (hostname) to domain name server using UDP § Name server sends response message (with resolved IP address) back to client John Chuang 24

DNS Query Local Name Server (ns 1. berkeley. edu) (1) (2) (3) Client (client.

DNS Query Local Name Server (ns 1. berkeley. edu) (1) (2) (3) Client (client. ischool. berkeley. edu) John Chuang Server (www. publisher. com) 25

DNS Query Local Name Server (ns 1. berkeley. edu) Root Name Server (f. root-servers.

DNS Query Local Name Server (ns 1. berkeley. edu) Root Name Server (f. root-servers. net) (2) (3) Remote Name Server (ns. publisher. com) (4) (5) (1) (6) (7) Client (client. ischool. berkeley. edu) John Chuang Server (www. publisher. com) 26

Hostnames: [a-m]. root-servers. net Source: http: //www. wia. org/pub/rootserv. html John Chuang 27

Hostnames: [a-m]. root-servers. net Source: http: //www. wia. org/pub/rootserv. html John Chuang 27

Next Time: Overlays § Build your own networks at the application layer John Chuang

Next Time: Overlays § Build your own networks at the application layer John Chuang 28