Download presentation
Presentation is loading. Please wait.
1
Application Layer Socket API, HTTP, VoIP, DNS IS250 Spring 2010 John Chuang
2
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
3
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 3.13-3.23
4
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
5
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
6
John Chuang6 L7 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) -…
7
John Chuang7 Hypertext Transfer Protocol HTTP specification (RFC 2616): -http://www.ietf.org/rfc/rfc2616.txthttp://www.ietf.org/rfc/rfc2616.txt HTTP uses TCP Two types of HTTP messages -HTTP Request -HTTP Response Client Server HTTP Request HTTP Response
8
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
9
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
10
John Chuang10 HTTP Request: Example Request line GET /index.html HTTP/1.1 Host: www.sims.berkeley.edu 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
11
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 []
12
John Chuang12 HTTP Response: Example Status line Response header Entity body General header Entity header Blank line 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=f49e0b5ec; 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 …
13
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
14
John Chuang14 L7 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) -…
15
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
16
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
17
John Chuang17 Real-Time Transport Protocol (RTP) RTP messages encapsulated in UDP datagrams -Why not TCP? Source: Douglas Comer
18
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)
19
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
20
John Chuang20 IP Telephony (VoIP) IP telephone Media gateway controller Media gateway Signaling gateway Source: Douglas Comer
21
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
22
John Chuang22 Example SIP Session Source: Douglas Comer
23
John Chuang23 L7 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) -…
24
John Chuang24 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
25
John Chuang25 Local Name Server (ns1.berkeley.edu) Server (www.publisher.com) Client (client.ischool.berkeley.edu) DNS Query (1) (2) (3)
26
John Chuang26 Local Name Server (ns1.berkeley.edu) Server (www.publisher.com) 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)
27
John Chuang27 Hostnames: [a-m].root-servers.net Source: http://www.wia.org/pub/rootserv.html
28
John Chuang28 Next Time: Overlays Build your own networks at the application layer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.