Application Layer Socket API, HTTP, VoIP, DNS IS250 Spring 2010 John Chuang
2 Application Layer & Socket API Appl Trans port Net work Link Net work Link Net work Link Appl Trans port Net work Link Host AHost BRouter 1Router 2 end-to-end point-to-point end-to-end Software Operating System Hardware Socket API
John Chuang3 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 Two common types of sockets: -Stream socket (supported by TCP) -Datagram socket (supported by UDP) Read: Comer
John Chuang4 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, … IP TCP, UDP HTTP, FTP, NNTP, SMTP, telnet,... coax, twisted pair, fiber, wireless,... Ethernet FDDI, SONET Wi-Fi
John Chuang5 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 Chuang6 L7 Alphabet Soup Applications: -HTTP (Comer ) -FTP (Comer 4.11) - , SMTP (Comer ) -telnet, SSH -RTP, SIP (Comer 29) -… Network support: -DNS (Comer ) -BGP, RIP, OSPF (Comer 27) -…
John Chuang7 Hypertext Transfer Protocol HTTP specification (RFC 2616): - HTTP uses TCP Two types of HTTP messages -HTTP Request -HTTP Response Client Server HTTP Request HTTP Response
John Chuang8 HTTP Request Format Request line [ : ] … [Message body] Request header Entity body Note: = carriage-return-line-feed optional fields in [] General header Entity header Blank line
John Chuang9 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 Request Headers -Accept -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-MD5 -Content-Range -Content-Type -Expires -Last-Modified
John Chuang10 HTTP Request: Example Request line GET /index.html HTTP/1.1 Host: Blank line Request header HTTP message TCP header IP header Ethernet header Ethernet frame port TCP IP IP datagram/packet TCP segment HTTP message Adapted from Coulouris, Dollimore and Kindberg
John Chuang11 HTTP Response Response Header Fields -Accept-Ranges -Age -Etag -Location -Proxy-Authenticate -Retry-After -Server -Set-Cookie -Vary -WWW-Authenticate Status Codes -1xx: Informational -2xx: Success -3xx: Redirection -4xx: Client error -5xx: Server error Some common codes: -200 OK -401 Unauthorized -404 Not Found Status line [ : ] … [Message body] Response header Entity body General header Entity header Blank line Note: = carriage-return-line-feed optional fields in []
John Chuang12 HTTP Response: Example Status line Response header Entity body General header Entity header Blank line HTTP/ OK Date: Mon, 12 Nov :14:04 GMT Server: Apache/ (Red Hat) X-Powered-By: PHP/4.3.9 Set-Cookie: PHPSESSID=f49e0b5ec; expires=Wed, 05-Dec :47:24 GMT; path=/ Last-Modified: Mon, 12 Nov :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 …
John Chuang13 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 Chuang14 L7 Alphabet Soup Applications: -HTTP (Comer ) -FTP (Comer 4.11) - , SMTP (Comer ) -telnet, SSH -RTP, SIP (Comer 29) -… Network support: -DNS (Comer ) -BGP, RIP, OSPF (Comer 27) -…
John Chuang15 Real-Time Multimedia How to support real-time multimedia applications (e.g., video, audio) over a best- effort 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 Source: Douglas Comer
John Chuang16 Real-Time Transport Protocol (RTP) Protocol for transport of real-time multi- media data -Sequence number and timestamp in RTP header Source: Douglas Comer
John Chuang17 Real-Time Transport Protocol (RTP) RTP messages encapsulated in UDP datagrams -Why not TCP? Source: Douglas Comer
John Chuang18 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 Chuang19 IP Telephony (VoIP) 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 Chuang20 IP Telephony (VoIP) IP telephone Media gateway controller Media gateway Signaling gateway Source: Douglas Comer
John Chuang21 VoIP 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 Source: Douglas Comer
John Chuang22 Example SIP Session Source: Douglas Comer
John Chuang23 L7 Alphabet Soup Applications: -HTTP (Comer ) -FTP (Comer 4.11) - , SMTP (Comer ) -telnet, SSH -RTP, SIP (Comer 29) -… Network support: -DNS (Comer ) -BGP, RIP, OSPF (Comer 27) -…
John Chuang24 Domain Name Service (DNS) Routers and end-hosts use IP addresses -e.g., 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 Chuang25 Local Name Server (ns1.berkeley.edu) Server ( Client (client.ischool.berkeley.edu) DNS Query (1) (2) (3)
John Chuang26 Local Name Server (ns1.berkeley.edu) Server ( DNS Query (1) (2) Remote Name Server (ns.publisher.com) Root Name Server (f.root-servers.net) (3) (4) (5) (6) (7) Client (client.ischool.berkeley.edu)
John Chuang27 Hostnames: [a-m].root-servers.net Source:
John Chuang28 Next Time: Overlays Build your own networks at the application layer