ppt - Courses
Download
Report
Transcript ppt - Courses
Application Layer
Socket API, HTTP, VoIP, DNS
IS250
Spring 2010
John Chuang
Application Layer & Socket API
end-to-end
Appl
Appl
Software
Socket API
end-to-end
Trans
port
Net
work
Net
work
Link
Link
Host A
John Chuang
Router 1
point-to-point
point-to-point
Trans
port
Net
work
Net
work
Link
Link
Router 2
Operating
System
Hardware
Host B
2
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): 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: Syntax of data items that are
exchanged, e.g., HTML
- Data transfer: Interaction between client and server,
e.g., HTTP
John Chuang
5
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)
- …
John Chuang
6
Hypertext Transfer Protocol
HTTP specification (RFC 2616):
- http://www.ietf.org/rfc/rfc2616.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>]
…
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
TRACE
CONNECT
General Header Fields
-
Cache-Control
Connection
Date
Pragma
Trailer
Transfer-Encoding
Upgrade
Via
Warning
John Chuang
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
9
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
<HTTP version><status code><Reason phrase><CRLF>
General header
Response header
Entity header
[<Header>:<value><CRLF>]
…
Blank line
<CRLF>
Entity body
[Message body]
Response Header Fields
- Accept-Ranges
- Age
- Etag
- Location
- Proxy-Authenticate
- Retry-After
- Server
- Set-Cookie
- Vary
- WWW-Authenticate
John Chuang
Status Codes
-
1xx: Informational
2xx: Success
3xx: Redirection
4xx: Client error
5xx: 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 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=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
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en”>
…
</html>
12
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
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)
- …
John Chuang
14
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 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 TCP?
Source: Douglas Comer
John Chuang
17
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 (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 Chuang
19
IP Telephony (VoIP)
IP telephone
Media gateway
controller
Media gateway
Signaling gateway
John Chuang
Source: Douglas Comer
20
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
John Chuang
21
Source: Douglas Comer
Example
SIP
Session
John Chuang
Source: Douglas Comer
22
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)
- …
John Chuang
23
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
(ns1.berkeley.edu)
(1)
(2)
(3)
Client
(client.ischool.berkeley.edu)
John Chuang
Server
(www.publisher.com)
25
DNS Query
Root Name Server
(f.root-servers.net)
Local Name Server
(ns1.berkeley.edu)
(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
Next Time: Overlays
Build your own networks at the
application layer
John Chuang
28