Chapter 2: Application Layer - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Chapter 2: Application Layer

Description:

conceptual, implementation aspects of network application protocols ... congestion control: throttle sender when network overloaded ... – PowerPoint PPT presentation

Number of Views:15
Avg rating:3.0/5.0
Slides: 26
Provided by: jimku73
Learn more at: https://www.cs.uml.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter 2: Application Layer


1
Chapter 2 Application Layer
  • Our goals
  • conceptual, implementation aspects of network
    application protocols
  • transport-layer service models
  • client-server paradigm
  • peer-to-peer paradigm
  • learn about protocols by examining popular
    application-level protocols
  • HTTP
  • FTP
  • SMTP / POP3 / IMAP
  • DNS
  • programming network applications
  • socket API

2
Applications and application-layer protocols
  • Application communicating, distributed processes
  • e.g., e-mail, Web, P2P file sharing, instant
    messaging
  • running in end systems (hosts)
  • exchange messages to implement application
  • Application-layer protocols
  • one piece of an app
  • define messages exchanged by apps and actions
    taken
  • use communication services provided by lower
    layer protocols (TCP, UDP)

3
Network applications some jargon
  • Process program running within a host.
  • within same host, two processes communicate using
    interprocess communication (IPC).
  • processes running in different hosts communicate
    with an application-layer protocol
  • user agent software process, interfacing with
    user above and network below.
  • implements application-level protocol
  • Web browser
  • E-mail mail reader
  • streaming audio/video media player

4
Client-server paradigm
  • Typical network app has two pieces client and
    server
  • Client
  • initiates contact with server (speaks first)
  • typically requests service from server,
  • Web client implemented in browser e-mail in
    mail reader
  • Server
  • provides requested service to client
  • e.g., Web server sends requested Web page, mail
    server delivers e-mail

5
Processes communicating across network
  • API Application Programming Interface
  • defines interface between application and
    transport layers
  • socket Internet API
  • two processes communicate by sending data into
    socket, reading data out of socket
  • Q how does a process identify the other
    process with which it wants to communicate?
  • IP address of host running other process
  • port number - allows receiving host to
    determine to which local process the message
    should be delivered

lots more on this later.
6
What transport service does an app need?
  • Data loss
  • some apps (e.g., audio) can tolerate some loss
  • other apps (e.g., file transfer, telnet) require
    100 reliable data transfer
  • Bandwidth
  • some apps (e.g., multimedia) require minimum
    amount of bandwidth to be effective
  • other apps (elastic apps) make use of whatever
    bandwidth they get
  • Timing
  • some apps (e.g., Internet telephony, interactive
    games) require low delay to be effective

7
Transport service requirements of common apps
Time Sensitive no no no yes, 100s msec yes,
few secs yes, 100s msec yes and no
Application file transfer e-mail Web
documents real-time audio/video stored
audio/video interactive games instant messaging
Bandwidth elastic elastic elastic audio
5kbps-1Mbps video10kbps-5Mbps same as above few
kbps up elastic
Data loss no loss no loss no loss loss-tolerant
loss-tolerant loss-tolerant no loss
8
Internet transport protocols services
  • UDP service
  • connectionless no connection setup between
    sending and receiving process
  • does not provide reliability, flow control,
    congestion control, timing, or bandwidth
    guarantee
  • Q why bother? Why is there a UDP?
  • TCP service
  • connection-oriented setup required between
    client and server processes
  • reliable transport between sending and receiving
    process
  • flow control sender wont overwhelm receiver
  • congestion control throttle sender when network
    overloaded
  • does not providing timing, minimum bandwidth
    guarantees

9
Internet apps application, transport protocols
Application layer protocol SMTP RFC
2821 Telnet RFC 854 HTTP RFC 2616 FTP RFC
959 proprietary (e.g. RealNetworks) proprietary (
e.g., Dialpad)
Underlying transport protocol TCP TCP TCP TCP TCP
or UDP typically UDP
Application e-mail remote terminal access Web
file transfer streaming multimedia Internet
telephony
10
Web and HTTP
  • First some jargon
  • Web page consists of objects
  • Object can be HTML file, JPEG image, Java applet,
    audio file,
  • Web page consists of base HTML-file which
    includes several referenced objects
  • Each object is addressable by a URL (universal
    resource locator)
  • Example URL

11
HTTP overview
  • HTTP hypertext transfer protocol
  • Webs application layer protocol
  • client/server model
  • client browser that requests, receives,
    displays Web objects
  • server Web server sends objects in response to
    requests
  • HTTP 1.0 RFC 1945
  • HTTP 1.1 RFC 2068

HTTP request
PC running Explorer
HTTP response
HTTP request
Server running Apache Web server
HTTP response
Mac running Navigator
12
HTTP overview (continued)
  • HTTP is stateless
  • server maintains no information about past client
    requests
  • Uses TCP
  • client initiates TCP connection (creates socket)
    to server, port 80
  • server accepts TCP connection from client
  • HTTP messages (application-layer protocol
    messages) exchanged between browser (HTTP client)
    and Web server (HTTP server)
  • TCP connection closed

aside
  • Protocols that maintain state are complex!
  • past history (state) must be maintained
  • if server/client crashes, their views of state
    may be inconsistent, must be reconciled

13
HTTP Example
(contains text, references to 10 jpeg images)
  • Suppose user enters URL www.someSchool.edu/someDep
    artment/home.index
  • 1a. HTTP client initiates TCP connection to HTTP
    server (process) at www.someSchool.edu on port 80

1b. HTTP server at host www.someSchool.edu
waiting for TCP connection at port 80. accepts
connection, notifying client
2. HTTP client sends HTTP request message
(containing URL) into TCP connection socket.
3. HTTP server receives request message, forms
response message containing requested object, and
sends message into its socket
time
14
HTTP Example (cont.)
4. HTTP server closes TCP connection.
  • 5. HTTP client receives response message
    containing html file, displays html. Parsing
    html file, finds 10 referenced jpeg objects

time
6. Steps 1-5 repeated for each of 10 jpeg objects
15
Non-persistent, persistent connections
  • Persistent
  • default for HTTP/1.1
  • on same TCP connection server, parses request,
    responds, parses new request, ...
  • client sends requests for all referenced objects
    as soon as it receives base HTML.
  • fewer RTTs, less slow start.
  • Non-persistent
  • HTTP/1.0 server parses request, responds, closes
    TCP connection
  • 2 RTTs to fetch object
  • TCP connection
  • object request/transfer
  • each transfer suffers from TCPs initially slow
    sending rate
  • many browsers open multiple parallel connections

16
Response time modeling
  • Definition of RRT time to send a small packet to
    travel from client to server and back.
  • Response time
  • one RTT to initiate TCP connection
  • one RTT for HTTP request and first few bytes of
    HTTP response to return
  • file transmission time
  • total 2RTTtransmit time

17
HTTP request message
  • two types of HTTP messages request, response
  • HTTP request message
  • ASCII (human-readable format)

request line (GET, POST, HEAD commands)
GET /somedir/page.html HTTP/1.1 Host
www.someschool.edu User-agent
Mozilla/4.0 Connection close Accept-languagefr
(extra carriage return, line feed)
header lines
Carriage return, line feed indicates end of
message
18
HTTP request message general format
19
HTTP response message
status line (protocol status code status phrase)
HTTP/1.1 200 OK Connection close Date Thu, 06
Aug 1998 120015 GMT Server Apache/1.3.0
(Unix) Last-Modified Mon, 22 Jun 1998 ...
Content-Length 6821 Content-Type text/html
data data data data data ...
header lines
data, e.g., requested HTML file
20
HTTP response status codes
In first line in server-gtclient response
message. A few sample codes
  • 200 OK
  • request succeeded, requested object later in this
    message
  • 301 Moved Permanently
  • requested object moved, new location specified
    later in this message (Location)
  • 400 Bad Request
  • request message not understood by server
  • 404 Not Found
  • requested document not found on this server
  • 505 HTTP Version Not Supported

21
Trying out HTTP (client side) for yourself
  • 1. Telnet to your favorite Web server

Opens TCP connection to port 80 (default HTTP
server port) at www.eurecom.fr. Anything typed in
sent to port 80 at www.eurecom.fr
telnet www.eurecom.fr 80
  • 2. Type in a GET HTTP request

By typing this in (hit carriage return twice),
you send this minimal (but complete) GET request
to HTTP server
GET /ross/index.html HTTP/1.0
3. Look at response message sent by HTTP server!
22
User-server interaction authorization
  • Authorization control access to server content
  • authorization credentials typically name,
    password
  • stateless client must present authorization in
    each request
  • authorization header line in each request
  • if no authorization header, server refuses
    access, sends
  • WWW authenticate
  • header line in response

server
client
usual http request msg
401 authorization req. WWW authenticate
23
Cookies keeping state
client
server
  • server-generated , server-remembered ,
    client-stored ,
  • server sends cookie to client in response msg
  • Set-cookie 1678453
  • client presents cookie in later requests
  • cookie 1678453

usual http request msg
usual http response Set-cookie
cookie- spectific action
2 weeks later
cookie- spectific action
24
Cookies (continued)
aside
  • Cookies and privacy
  • cookies permit sites to learn a lot about you
  • you may supply name and e-mail to sites
  • search engines use redirection cookies to
    learn yet more
  • advertising companies obtain info across sites
  • What cookies can bring
  • authorization
  • user preferences
  • shopping carts
  • recommendations
  • user session state (Web e-mail)

25
Conditional GET client-side caching
server
client
  • Goal dont send object if client has up-to-date
    cached version
  • client specify date of cached copy in HTTP
    request
  • If-modified-since ltdategt
  • server response contains no object if cached
    copy is up-to-date
  • HTTP/1.0 304 Not Modified

HTTP request msg If-modified-since ltdategt
object not modified
HTTP request msg If-modified-since ltdategt
object modified
HTTP response HTTP/1.0 200 OK ltdatagt
Write a Comment
User Comments (0)
About PowerShow.com