SlideShare a Scribd company logo
1 of 76
THE APPLICATION LAYER
A closer look at network structure

   network edge: applications and
    hosts
   network core:
     routers
     network of networks
   access networks, physical
    media: communication links
The network edge
run application programs e.g. Web, email at “edge of
  network”




                                    3
Network Application Architecture


   Client Server

   P2P

   Hybrid
Client-server architecture

            server:
                always-on host

                permanent IP address

                server farms for scaling

             clients:

                communicate with server

                may be intermittently
                 connected
                may have dynamic IP
                 addresses
                do not communicate directly
                 with each other
                                           5
Pure P2P architecture

   no always-on server
   arbitrary end systems
    directly communicate
   peers are intermittently
    connected and change IP
    addresses
   example: Gnutella

Highly scalable but difficult
  to manage
                                        2: Application Layer   6
Hybrid of client-server and P2P

Skype
     Internet telephony app
     Finding address of remote party: centralized server(s)

     Client-client connection is direct (not through server)

   Instant messaging
     Chatting between two users is P2P
     Presence detection/location centralized:
         User registers its IP address with central server when it
          comes online
         User contacts central server to find IP addresses of buddies

                                 2: Application Layer
Creating a network app
Write programs that
                                        application
    run on different end systems        transport
                                          network
      and communicate over a             data link
                                          physical

      network.
    e.g., Web: Web server software
      communicates with browser
      software
 little software written for devices

  in network core                                 application
                                                                application
                                                                 transport
                                                   transport      network
    network core devices do not run                network      data link
                                                   data link      physical
      user application code                         physical


    application on end systems
      allows for rapid app
Processes communicating

Process: program running within a host.
 within same host, two processes communicate using inter-process

  communication (defined by OS).
 processes in different hosts communicate by exchanging messages

 Note: applications with P2P architectures have client processes &

  server processes


       Client process: process that
         initiates communication
       Server process: process that
         waits to be contacted
Sockets
   process sends/receives messages to/from its socket
   socket analogous to door
     sending process shoves message out door
     sending process relies on transport infrastructure on other
      side of door which brings message to socket at receiving
      process

 Socket is an interface between application layer and transport layer within a host : it
  is referred as Application Programming Interface (API):
 Application developer can only control (on transport layer side)
         (1) choice of transport protocol (TCP or UDP);
         (2) ability to fix a few parameters such as max buffer and max segment size

                                                                                            10
Sockets
  host or                                     host or
  server                                      server



                 controlled by
                 app developer
 process                                     process


     socket                                      socket

TCP with                                    TCP with
 buffers,                        Internet    buffers,
variables                                   variables




              controlled
                by OS
                                                          11
Sockets

Steps followed by client to establish the connection:
1. Create a socket
2. Connect the socket to the address of the server
3. Send/Receive data
4. Close the socket


Steps followed by server to establish the connection:
1. Create a socket
2. Bind the socket to the port number known to all clients
3. Listen for the connection request
4. Accept connection request
5. Send/Receive data
Addressing processes

   to receive messages, process must have identifier
   host device has unique32-bit IP address

   Q: does IP address of host on which process runs suffice for
    identifying the process?
       Answer: NO, many processes can be running on same host

   identifier includes both IP address and port numbers associated with
    process on host.
   Example port numbers:
       HTTP server: 80
       Mail server: 25
App-layer protocol defines

   Types of messages exchanged,    Public-domain protocols:
                                       defined in RFCs
       e.g., request, response
                                       allows for interoperability
   Message syntax:                    e.g., HTTP, SMTP
       what fields in messages &      Proprietary protocols:
        how fields are delineated      e.g., KaZaA
   Message semantics
       meaning of information in
        fields
   Rules for when and how
    processes send & respond to
    messages
Transport service requirements of common
                     applications
         Application       Data loss          Bandwidth      Time Sensitive

          file transfer      no loss              elastic           no
                 e-mail      no loss              elastic           no
     Web documents           no loss              elastic           no
real-time audio/video     loss-tolerant   audio: 5kbps-1Mbps yes, 100’s msec
                                          video:10kbps-5Mbps
  stored audio/video      loss-tolerant      same as above    yes, few secs
   interactive games      loss-tolerant        few kbps up   yes, 100’s msec
  instant messaging          no loss              elastic      yes and no
Internet transport protocols services

TCP service:                      UDP service:
 connection-oriented: setup
                                   unreliable data transfer
  required between client and       between sending and
  server processes                  receiving process
 reliable transport between
                                   does not provide:
  sending and receiving process     connection setup,
 flow control: sender won’t        reliability, flow control,
  overwhelm receiver                congestion control,
 congestion control: throttle      timing, or bandwidth
  sender when network               guarantee
  overloaded
 does not provide: timing,       Q: why bother? Why is there
  minimum bandwidth guarantees      a UDP?
Internet apps: application, transport protocols

                            Application              Underlying
           Application      layer protocol           transport protocol

                   e-mail   SMTP [RFC 2821]          TCP
remote terminal access      Telnet [RFC 854]         TCP
                    Web     HTTP [RFC 2616]          TCP
            file transfer   FTP [RFC 959]            TCP
  streaming multimedia      proprietary              TCP or UDP
                            (e.g. RealNetworks)
     Internet telephony     proprietary
                            (e.g., Vonage,Dialpad)   typically UDP
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
   Example URL:
           www.someschool.edu/someDept/pic.gif


              host name              path name
HTTP overview

HTTP: hypertext transfer
                                            HT
  protocol                                    TP
                                                 req
                               PC running HT         ues
 Web’s application layer                   TP            t
                                Explorer       res
                                                   pon
  protocol                                             se

 client/server model
                                                     u est
                                                   eq
   client: browser that                      TT
                                                Pr
                                                        pon
                                                            se Server
                                             H      res         running
    requests, receives,                        HT
                                                 TP           Apache Web
                                                                 server
    “displays” Web objects
   server: Web server sends    Mac running
    objects in response to       Navigator

    requests
HTTP overview (continued)

                                         HTTP is “stateless”
Uses TCP:
                                          server maintains no
 client initiates TCP connection
                                           information about past
  (creates socket) to server, port
                                           client requests
  80
                                                                      aside
 server accepts TCP connection
                                     Protocols that maintain “state” are
  from client                           complex!
                                      past history (state) must be maintained
 HTTP messages (application-
                                      if server/client crashes, their views of
  layer protocol messages)              “state” may be inconsistent, must be
  exchanged between browser             reconciled

  (HTTP client) and Web server
  (HTTP server)
 TCP connection closed
HTTP connections

Nonpersistent HTTP
 At most one object is sent over a TCP connection.

 HTTP/1.0 uses nonpersistent HTTP




Persistent HTTP
 Multiple objects can be sent over single TCP connection

  between client and server.
 HTTP/1.1 uses persistent connections in default mode
Nonpersistent HTTP
Suppose user enters URL                                        (contains text,
  www.someSchool.edu/someDepartment/home.index                references to 10
   1a. HTTP client initiates TCP                                jpeg images)
      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
        2. HTTP client sends HTTP              client
           request message (containing
           URL) into TCP connection         3. HTTP server receives request
           socket. Message indicates that      message, forms response
           client wants object                 message containing requested
           someDepartment/home.index           object, and sends message into
 time                                          its socket
Nonpersistent HTTP (cont.)




                                               4. HTTP server closes TCP
     5. HTTP client receives response
time                                              connection.
        message containing html file,
        displays html. Parsing html file,
        finds 10 referenced jpeg objects


        6. Steps 1-5 repeated for each of 10
            jpeg objects
Non-Persistent HTTP: Response time

Definition of RTT: time to send a small
  packet to travel from client to server
  and back.
Response time:                             initiate TCP
   one RTT to initiate TCP connection     connection
                                                    RTT
   one RTT for HTTP request and first
                                                request
    few bytes of HTTP response to return        file
   file transmission time                                          time to
                                                    RTT
                                                                    transmit
total = 2RTT+transmit time                                          file
                                                  file
                                                  received


                                                          time   time

                                                                        24
Persistent HTTP
Persistent HTTP
 server leaves connection open after sending response

 subsequent HTTP messages between same client/server sent

  over open connection
 Persistent without pipelining:
 • client issues new request only when previous response has been
   received
 • one RTT for each referenced object
 Persistent with pipelining:
  default in HTTP/1.1
  client sends requests as soon as it encounters a referenced object
  as little as one RTT for all the referenced objects
HTTP message: general format

two types of HTTP messages: request, response
HTTP request message

     HTTP request message:
       ASCII (human-readable format)




  request line
 (GET, POST,          GET /somedir/page.html HTTP/1.1
HEAD commands)        Host: www.someschool.edu
                      User-agent: Mozilla/4.0
              header Connection: close
                lines Accept-language:fr

  Carriage return,    (extra carriage return, line feed)
     line feed
   indicates end
    of message
HTTP response message

  status line
   (protocol
                        HTTP/1.1 200 OK
 status code
                        Connection close
status phrase)
                        Date: Thu, 06 Aug 1998 12:00:15 GMT
                        Server: Apache/1.3.0 (Unix)
              header    Last-Modified: Mon, 22 Jun 1998 …...
                lines   Content-Length: 6821
                        Content-Type: text/html

data, e.g.,             data data data data data ...
requested
HTML file
Method types


                                       HTTP/1.1
HTTP/1.0                                  GET, POST, HEAD
   GET                                   PUT
   POST                                    uploads file in entity body to
   HEAD                                     path specified in URL field
     asks server to leave requested      DELETE
      object out of response                deletes file specified in the URL
                                             field
HTTP response status codes
In first line in server->client 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
Internet Directory Service:
                  DNS: Domain Name System

People: many identifiers:          Domain Name System:
       SSN, name, passport #         distributed database implemented
                                       in hierarchy of many name servers
   Internet hosts, routers:
                                      application-layer protocol host,
     IP address (32 bit) - used       routers, name servers to
      for addressing datagrams         communicate to resolve names
                                       (address/name translation)
     “name”, e.g.,
                                         note: core Internet function,
      www.yahoo.com - used                implemented as application-
      by humans                           layer protocol
Q: map between IP addresses               complexity at network’s “edge”
  and name ?
DNS

DNS services                      Why not centralize DNS?
 Hostname to IP address           single point of failure

  translation                      traffic volume
 Host aliasing
                                   distant centralized database
       Canonical and alias        maintenance
        names
   Mail server aliasing
                                  doesn’t scale!
   Load distribution
       Replicated Web servers:
        set of IP addresses for
        one canonical name
Distributed, Hierarchical Database

                             Root DNS Servers



    com DNS servers          org DNS servers          edu DNS servers


                                 pbs.org            poly.edu   umass.edu
yahoo.com   amazon.com
                                 DNS servers        DNS serversDNS servers
DNS servers DNS servers

Client wants IP for www.amazon.com; 1st approx:
   Client queries a root server to find com DNS server
   Client queries com DNS server to get amazon.com DNS server
   Client queries amazon.com DNS server to get IP address for
    www.amazon.com,
                                                                         33
DNS: Root name servers

   contacted by local name server that can not resolve name
   root name server:
      contacts authoritative name server if name mapping not known

      gets mapping

      returns mapping to local name server
                                   a Verisign, Dulles, VA
                                   c Cogent, Herndon, VA (also Los Angeles)
                                   d U Maryland College Park, MD       k RIPE London (also Amsterdam,
                                   g US DoD Vienna, VA                 Frankfurt)
                                   h ARL Aberdeen, MD                  i Autonomica, Stockholm (plus 3
                                   j Verisign, ( 11 locations)                         other locations)
                                                                                          m WIDE Tokyo
    e NASA Mt View, CA
    f Internet Software C. Palo Alto,
    CA (and 17 other locations)

                                                                                                          13 root name servers
                                                                                                           worldwide
        b USC-ISI Marina del Rey, CA
        l ICANN Los Angeles, CA



                                                                                             34
TLD and Authoritative Servers

   Top-level domain (TLD) servers: responsible for com, org,
    net, edu, etc, and all top-level country domains uk, fr, ca, jp.
     Network solutions maintains servers for com TLD

     Educause for edu TLD

   Authoritative DNS servers: organization’s DNS servers,
    providing authoritative hostname to IP mappings for
    organization’s servers (e.g., Web and mail).
     Can be maintained by organization or service provider
Local Name Server

   Does not strictly belong to hierarchy
   Each ISP (residential ISP, company, university) has one.
     Also called “default name server”

   When a host makes a DNS query, query is sent to its local
    DNS server
       Acts as a proxy, forwards query into hierarchy.
Example
                                                      root DNS server
Host at cis.poly.edu wants IP
  address for gaia.cs.umass.edu
                                                2
                                                      3
                                                              TLD DNS server
                                                          4

                                                          5

                                   local DNS server
                                    dns.poly.edu
                                                          7      6
                                           1    8

                                                          authoritative DNS server
                                                           dns.cs.umass.edu
                                    requesting host
                                    cis.poly.edu
                                                37
                                                              gaia.cs.umass.edu
Recursive queries
                                                    root DNS server
recursive query:
 puts burden of name
  resolution on contacted                     2                    3
  name server
 heavy load?                                       7      6

iterated query:                                                        TLD DNS server
 contacted server replies with
  name of server to contact       local DNS server
 “I don’t know this name, but     dns.poly.edu                5       4
  ask this server”
                                         1    8

                                                        authoritative DNS server
                                                         dns.cs.umass.edu
                                  requesting host
                                  cis.poly.edu
                                                           gaia.cs.umass.edu
DNS: caching and updating records
   once (any) name server learns mapping, it caches mapping
     cache entries timeout (disappear) after some time
     TLD servers typically cached in local name servers
         Thus    root name servers not often visited
   update/notify mechanisms under design by IETF
     RFC 2136
       http://www.ietf.org/html.charters/dnsind-charter.html
DNS records

DNS: distributed db storing resource records (RR)

                RR format: (name, value, type, ttl)

Type=A                                 Type=CNAME
    name is hostname                    name is alias name for some
    value is IP address                  “canonical” (the real) name
                                          www.ibm.com is really
Type=NS                                     servereast.backup2.ibm.com
 name is domain (e.g. foo.com)            value is canonical name
 value is hostname of
  authoritative name server for this
  domain                               Type=MX
                                         value is name of mailserver
                                          associated with name
DNS protocol, messages

DNS protocol : query and reply messages, both with same message format

   msg header
    identification: 16 bit # for query,
     reply to query uses same #
    flags:
           query or reply
           recursion desired
           recursion available
           reply is authoritative




                                                  41
DNS protocol, messages

    Name, type fields
         for a query

      RRs in response
              to query

           records for
 authoritative servers

    additional “helpful”
info that may be used
Inserting records into DNS

   Example: just created startup “Network Utopia”
   Register name networkuptopia.com at a registrar (e.g., Network
    Solutions)
     Need to provide registrar with names and IP addresses of your
       authoritative name server (primary and secondary)
     Registrar inserts two RRs into the com TLD server:


       (networkutopia.com, dns1.networkutopia.com, NS)
       (dns1.networkutopia.com, 212.212.212.1, A)

   Put in authoritative server Type A record for www.networkuptopia.com
    and Type MX record for networkutopia.com
   How do people get the IP address of your Web site?
For students to do

 Cookies
 Web Caching
User-server state: cookies
                              Example:
Many major Web sites use
                                   Susan access Internet always
  cookies
                                    from same PC
Four components:                   She visits a specific e-
  1) cookie header line of          commerce site for first time
    HTTP response message          When initial HTTP requests
                                    arrives at site, site creates a
  2) cookie header line in          unique ID and creates an entry
    HTTP request message            in backend database for ID
                                    Set-cookie : 1678453 included
  3) cookie file kept on
                                    in http response message which
    user’s host, managed by         browser saves in special cookie-
    user’s browser                  file and sends it with every
                                    request.
  4) back-end database at
    Web site
Cookies: keeping “state” (cont.)
                     client                             server

     Cookie file              usual http request msg                      en
                                                           server       da try i
                                                                          tab n b
                               usual http response +     creates ID          as ac
                                                                               e
  ebay: 8734                                                                       k en
                              Set-cookie: 1678          1678 for user                     d

     Cookie file
                              usual http request msg
 amazon: 1678                    cookie: 1678             cookie-               ss
 ebay: 8734                                               specific       acce
                          usual http response msg          action




                                                                                ss
one week later:




                                                                             ce
                                                                            ac
     Cookie file              usual http request msg
                                                          cookie-
 amazon: 1678
                                cookie: 1678
                                                          spectific
 ebay: 8734                   usual http response msg      action
Cookies (continued)

What cookies can bring:
 authorization
                                                                           aside
 shopping carts                                   Cookies and privacy:
                                                    cookies permit sites to learn a lot
 recommendations
                                                      about you
 user session state (Web e-                        you may supply name and e-mail to
                                                      sites
  mail)

 How to keep “state”:
  Protocol endpoints: maintain state at sender/receiver over
   multiple transactions
  cookies: http messages carry state
Web caches (proxy server)
    Goal: satisfy client request without involving origin server
   user sets browser: Web
    accesses via cache                                                                     origin
                                                                                           server
   browser sends all HTTP
                                                     HT                Proxy
    requests to cache                                   TP
                                                            req       server        que
                                                                                        st
                                                  HT            ues              re
                                            client TP                         TP       ons
                                                                                           e
      object in cache: cache                           res
                                                            pon
                                                                     t     HT
                                                                                  res
                                                                                      p
                                                                 se           TP
       returns object                                                      HT
                                                                st
                                                             ue
                                                         eq
      else cache requests                             Pr        on
                                                                    se
                                                    TT         p
                                                   H       res
       object from origin                            HTT
                                                         P

       server, then returns                   client
       object to client                                                                    origin
                                                                                           server
More about Web caching

   Cache acts as both client and   Why Web caching?
    server                           Reduce response time for
   Typically cache is installed      client request.
    by ISP (university, company,     Reduce traffic on an
    residential ISP)                  institution’s access link.
                                     Internet dense with caches:

                                      enables “poor” content
                                      providers to effectively
                                      deliver content (but so does
                                      P2P file sharing)
Caching example

Assumptions
                                                                                  origin
   average object size = 100,000 bits                                          servers
   avg. request rate from institution’s
                                                            public
    browsers to origin servers = 15/sec                    Internet
   delay from institutional router to any
    origin server and back to router = 2 sec
Consequences                                                      1.5 Mbps
                                                                  access link
   utilization on LAN = 15%
                                               institutional
   utilization on access link = 100%            network
                                                                      10 Mbps LAN
   total delay = Internet delay + access
    delay + LAN delay
    = 2 sec + minutes + milliseconds
Caching example (cont)


Possible solution                                                       origin
                                                                      servers
 increase bandwidth of access
                                                  public
  link to, say, 10 Mbps                          Internet

Consequences
 utilization on LAN = 15%
                                                        10 Mbps
 utilization on access link = 15%                      access link
 Total delay = Internet delay +     institutional
                                       network
  access delay + LAN delay                                  10 Mbps LAN

   = 2 sec + msecs + msecs
 often a costly upgrade
Caching example (cont)

Install cache
 suppose hit rate is .4
                                                                      origin
                                                                    servers
Consequence
                                                public
 40% requests will be satisfied
                                               Internet
   almost immediately
 60% requests satisfied by
   origin server
                                                      1.5 Mbps
 utilization of access link
                                                      access link
   reduced to 60%, resulting in    institutional
   negligible delays (say 10         network
                                                          10 Mbps LAN
   msec)
 total avg delay = Internet
   delay + access delay + LAN
   delay = .6*(2.01) secs + .                               institutional
   4*milliseconds < 1.4 secs                                   cache
Conditional GET
                                       cache                        server

                                                HTTP request msg
   Goal: don’t send object if cache           If-modified-since:
    has up-to-date cached version                    <date>
                                                                      object
                                                                       not
   cache: specify date of cached                                    modified
    copy in HTTP request                         HTTP response
                                                  HTTP/1.0
     If-modified-since: <date>                304 Not Modified
   server: response contains no
    object if cached copy is up-to-             HTTP request msg
    date:                                      If-modified-since:
    HTTP/1.0 304 Not Modified                        <date>            object
                                                                      modified
                                                 HTTP response
                                                HTTP/1.0 200 OK
                                                    <data>
Electronic Mail
                                                                       outgoing
Three major components:                                           message queue
   user agents                                        user         user mailbox
   mail servers                                      agent
   simple mail transfer protocol: SMTP       mail
                                                                          user
                                             server
                                                                         agent
                                                        SMTP
User Agent                                                       mail
   a.k.a. “mail reader”                                        server      user
                                           SMTP                            agent
   composing, editing, reading mail
    messages                                            SMTP
                                                                          user
   e.g., Eudora, Outlook, elm, Netscape      mail
                                             server                      agent
    Messenger
   outgoing, incoming messages stored                   user
    on server                                           agent
                                               user
                                              agent
Electronic Mail: mail servers
                                               user
Mail Servers                                  agent
                                      mail
 mailbox contains incoming                                       user
                                     server
                                                                 agent
  messages for user                             SMTP
                                                         mail
 message queue of outgoing (to
                                                        server      user
  be sent) mail messages           SMTP                            agent

 SMTP protocol between mail
                                                SMTP
  servers to send email messages      mail                        user
                                     server                      agent
   client: sending mail server
   “server”: receiving mail                     user
                                                agent
    server                             user
                                      agent
Electronic Mail: SMTP [RFC 2821]
   uses TCP to reliably transfer email message from client to
    server, port 25
   direct transfer: sending server to receiving server
   three phases of transfer
     handshaking (greeting)
     transfer of messages

     closure
   command/response interaction
     commands: ASCII text
     response: status code and phrase
   messages must be in 7-bit ASCII
Sample SMTP interaction


S:   220 hamburger.edu
C:   HELO crepes.fr
S:   250 Hello crepes.fr, pleased to meet you
C:   MAIL FROM: <alice@crepes.fr>
S:   250 alice@crepes.fr... Sender ok
C:   RCPT TO: <bob@hamburger.edu>
S:   250 bob@hamburger.edu ... Recipient ok
C:   DATA
S:   354 Enter mail, end with "." on a line by itself
C:   Do you like ketchup?
C:   How about pickles?
C:   .
S:   250 Message accepted for delivery
C:   QUIT
S:   221 hamburger.edu closing connection
SMTP: final words


   SMTP uses persistent
    connections
   SMTP requires message
    (header & body) to be in 7-bit
    ASCII
   SMTP server uses
    CRLF.CRLF to determine end
    of message
Mail message format

SMTP: protocol for exchanging
  email msgs                            header
                                                 blank
RFC 822: standard for text                        line
  message format:
   header lines, e.g.,
                                         body
     To:

     From:

     Subject:

     different from SMTP commands!

   body
     the “message”, ASCII characters
       only
Message format: multimedia extensions
   MIME(multi purpose internet mail extensions): multimedia
    mail extension, RFC 2045, 2056
   additional lines in msg header declare MIME content type
                              From: alice@crepes.fr
        MIME version          To: bob@hamburger.edu
                              Subject: Picture of yummy crepe.
         method used          MIME-Version: 1.0
       to encode data         Content-Transfer-Encoding: base64
                              Content-Type: image/jpeg
     multimedia data
      type, subtype,          base64 encoded data .....
parameter declaration         .........................
                              ......base64 encoded data
        encoded data
Scenario: Alice sends message to Bob

1) Alice uses UA to compose message        4) SMTP client sends Alice’s
   and “to” bob@someschool.edu                message over the TCP
2) Alice’s UA sends message to her            connection
   mail server; message placed in          5) Bob’s mail server places the
   message queue                              message in Bob’s mailbox
3) Client side of SMTP opens TCP           6) Bob invokes his user agent to
   connection with Bob’s mail server          read message




           1                                     mail
                         mail
                                                server            user
           user         server
                  2                                              agent
          agent           3                                6
                                       4           5
Mail access protocols

                     SMTP             SMTP                 access
                                                                       user
              user                                         protocol
                                                                      agent
             agent

                      sender’s mail      receiver’s mail
                         server              server


   SMTP: delivery/storage to receiver’s server
   Mail access protocol: retrieval from server
     POP: Post Office Protocol [RFC 1939]

        authorization (agent <-->server) and download
     IMAP: Internet Mail Access Protocol [RFC 1730]

        more features (more complex)
        manipulation of stored msgs on server
     HTTP: Hotmail , Yahoo! Mail, etc.
POP3 protocol
                                          S:   +OK POP3 server ready
authorization phase                       C:   user bob
   client commands:                      S:   +OK
                                          C:   pass hungry
     user: declare username
                                          S:   +OK user successfully logged   on
     pass: password
                                         C:   list
   server responses                     S:   1 498
     +OK                                S:   2 912
                                         S:   .
     -ERR
                                         C:   retr 1
transaction phase, client:               S:   <message 1 contents>
                                         S:   .
   list: list message numbers           C:   dele 1
   retr: retrieve message by number     C:   retr 2
                                         S:   <message 1 contents>
   dele: delete                         S:   .
   quit                                 C:   dele 2
                                         C:   quit
                                         S:   +OK POP3 server signing off
POP3 (more) and IMAP

More about POP3                  IMAP
 Previous example uses           Keep all messages in one

  “download and delete” mode.      place: the server
 Bob cannot re-read e-mail if    Allows user to organize

  he changes client                messages in folders
 “Download-and-keep”: copies     IMAP keeps user state across

  of messages on different         sessions:
  clients                             names of folders and
 POP3 is stateless across             mappings between
  sessions                             message IDs and folder
                                       name
FTP: the file transfer protocol
2: Application
    Layer




                                       FTP                    file transfer
                                                FTP                            FTP
                                       user     client                        server
                                    interface
                         user
                        at host                  local file                            remote file
                                                 system                                system


                      transfer file to/from remote host
                      client/server model
                        client: side that initiates transfer (either to/from remote)

                        server: remote host

                      ftp: RFC 959
                      ftp server: port 21

                                                                       65
FTP: separate control, data connections
2: Application
    Layer


                                                                    TCP control connection
                    FTP client contacts FTP server at                     port 21
                     port 21, specifying TCP as
                     transport protocol
                                                                    TCP data connection
                    Client obtains authorization over     FTP            port 20             FTP
                     control connection                    client                            server
                    Client browses remote directory       Ì Server opens another TCP
                     by sending commands over
                                                             data connection to transfer
                     control connection.
                                                             another file.
                    When server receives file transfer    Ì Control connection: “out of
                     command, server opens 2nd TCP           band”
                     connection (for file) to client       Ì FTP server maintains “state”:
                    After transferring one file, server     current directory, earlier
                     closes data connection.                 authentication

                                                                    66
FTP commands, responses
2: Application
    Layer




                 Sample commands:                      Sample return codes
                    sent as ASCII text over control      status code and phrase (as in
                     channel                               HTTP)
                    USER username                        331 Username OK,
                    PASS password                         password required
                                                          125 data connection
                    LIST return list of file in
                                                           already open; transfer
                     current directory
                                                           starting
                    RETR filename retrieves              425 Can’t open data
                     (gets) file                           connection
                    STOR filename stores (puts)          452 Error writing file
                     file onto remote host


                                                               67
P2P file sharing
2: Application
    Layer




                 Example
                                                 Alice chooses one of the
                                                  peers, Bob.
                  Alice runs P2P client
                                                 File is copied from Bob’s
                   application on her
                   notebook computer              PC to Alice’s notebook:
                                                  HTTP
                  Intermittently connects to
                                                 While Alice downloads,
                   Internet; gets new IP
                   address for each               other users uploading from
                   connection                     Alice.
                                                 Alice’s peer is both a Web
                  Asks for “Hey Jude”
                                                  client and a transient Web
                  Application displays other
                                                  server.
                   peers that have copy of
                   Hey Jude.                    All peers are servers = highly
                                                  scalable!
                                                         68
P2P: centralized directory

                                                                                 Bob
  original “Napster” design            centralized
                                    directory server
  1) when peer connects, it                                1
     informs central server:                                                   peers
                                                           1
        IP address
        content
                                                           1            3
  2) Alice queries for “Hey                       2    1
     Jude”
  3) Alice requests file from Bob

                                                               Alice




                                                               2: Application Layer    69
P2P: problems with centralized directory
2: Application
    Layer




                    Single point of failure   file transfer is
                    Performance bottleneck    decentralized, but
                                               locating content is highly
                    Copyright infringement
                                                centralized




                                                   70
Query flooding: Gnutella
2: Application
    Layer




                    fully distributed        overlay network: graph
                        no central server     edge between peer X and Y
                    public domain protocol     if there’s a TCP connection
                    many Gnutella clients     all active peers and edges

                     implementing protocol      is overlay net
                                               Edge is not a physical link

                                               Given peer will typically

                                                be connected with < 10
                                                overlay neighbors




                                                    71
Gnutella: protocol
                                                                        File transfer:
72
                                                                        HTTP
     Query message
     sent over existing TCP
     connections                                                        Query
                                                                        QueryHit
     peers forward
     Query message                     y                                Qu
                                  u er                                     ery
                                                 t
                              Q
                                            y  Hi
      QueryHit
                                       u er
     sent over                     Q
     reverse                      Query
     path
                              QueryHit

       Scalability:            Qu
                                 er
       limited scope                       y
       flooding

                                                 2: Application Layer
Exploiting heterogeneity: KaZaA

     Each peer is either a group
      leader or assigned to a
      group leader.
         TCP connection between peer
          and its group leader.
         TCP connections between
          some pairs of group leaders.
     Group leader tracks the
      content in all its children.
                                         o r d in a r y p e e r

                                         g r o u p - le a d e r p e e r

                                         n e ig h o r in g r e la tio n s h ip s
                                              in o v e r la y n e tw o r k




                                                           2: Application Layer    73
KaZaA: Querying
74


        Each file has a hash and a descriptor
        Client sends keyword query to its group leader
        Group leader responds with matches:
          For   each match: metadata, hash, IP address
        If group leader forwards query to other group
         leaders, they respond with matches
        Client then selects files for downloading
          HTTP  requests using hash as identifier sent to peers
           holding desired file

                                   2: Application Layer
KaZaA tricks
75


        Limitations on simultaneous uploads
        Request queuing
        Incentive priorities
        Parallel downloading




                              2: Application Layer
Multimedia

   Introduction to Audio
   Audio Compression
   Streaming Audio
   Internet Radio
   Voice over IP
   Introduction to Video
   Video Compression
   Video on Demand
   The MBone – The Multicast Backbone

More Related Content

What's hot

Application Layer and Protocols
Application Layer and ProtocolsApplication Layer and Protocols
Application Layer and ProtocolsRubal Sagwal
 
Application layer protocol
Application layer protocolApplication layer protocol
Application layer protocolDr. Amitava Nag
 
CCNA 1 Routing and Switching v5.0 Chapter 10
CCNA 1 Routing and Switching v5.0 Chapter 10CCNA 1 Routing and Switching v5.0 Chapter 10
CCNA 1 Routing and Switching v5.0 Chapter 10Nil Menon
 
Ajp notes-chapter-04
Ajp notes-chapter-04Ajp notes-chapter-04
Ajp notes-chapter-04Ankit Dubey
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocolsbhavanatmithun
 
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and ProtocolsNetwork Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and ProtocolsAbdelkhalik Mosa
 
Jaimin chp-7 - application layer- 2011 batch
Jaimin   chp-7 - application layer- 2011 batchJaimin   chp-7 - application layer- 2011 batch
Jaimin chp-7 - application layer- 2011 batchJaimin Jani
 
Chapter 2 : Application Layer
Chapter 2 : Application LayerChapter 2 : Application Layer
Chapter 2 : Application LayerAmin Omi
 
Application layer
Application layerApplication layer
Application layerFarah Hunny
 
Chapter 2 - Computer Networking a top-down Approach 7th
Chapter 2 - Computer Networking a top-down Approach 7thChapter 2 - Computer Networking a top-down Approach 7th
Chapter 2 - Computer Networking a top-down Approach 7thAndy Juan Sarango Veliz
 
Application layer
Application layerApplication layer
Application layerreshmadayma
 
protocol architecture
 protocol architecture protocol architecture
protocol architectureSrinivasa Rao
 
Application layer
Application layerApplication layer
Application layerAnithaRaj31
 
Application layer in network system
Application layer in network systemApplication layer in network system
Application layer in network systemSalauddin Rubel
 
p2p project report
p2p project reportp2p project report
p2p project reportYuming Guo
 

What's hot (20)

Application Layer and Protocols
Application Layer and ProtocolsApplication Layer and Protocols
Application Layer and Protocols
 
Application layer protocol
Application layer protocolApplication layer protocol
Application layer protocol
 
20CS2008 Computer Networks
20CS2008 Computer Networks 20CS2008 Computer Networks
20CS2008 Computer Networks
 
CCNA 1 Routing and Switching v5.0 Chapter 10
CCNA 1 Routing and Switching v5.0 Chapter 10CCNA 1 Routing and Switching v5.0 Chapter 10
CCNA 1 Routing and Switching v5.0 Chapter 10
 
Application layer
Application layerApplication layer
Application layer
 
Ajp notes-chapter-04
Ajp notes-chapter-04Ajp notes-chapter-04
Ajp notes-chapter-04
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocols
 
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and ProtocolsNetwork Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
 
Jaimin chp-7 - application layer- 2011 batch
Jaimin   chp-7 - application layer- 2011 batchJaimin   chp-7 - application layer- 2011 batch
Jaimin chp-7 - application layer- 2011 batch
 
Chapter 2 : Application Layer
Chapter 2 : Application LayerChapter 2 : Application Layer
Chapter 2 : Application Layer
 
Application layer
Application layerApplication layer
Application layer
 
Application layer protocols
Application layer protocolsApplication layer protocols
Application layer protocols
 
Chapter 2 - Computer Networking a top-down Approach 7th
Chapter 2 - Computer Networking a top-down Approach 7thChapter 2 - Computer Networking a top-down Approach 7th
Chapter 2 - Computer Networking a top-down Approach 7th
 
Application layer
Application layerApplication layer
Application layer
 
Web server
Web serverWeb server
Web server
 
protocol architecture
 protocol architecture protocol architecture
protocol architecture
 
Application layer
Application layerApplication layer
Application layer
 
20CS2008 Computer Networks
20CS2008 Computer Networks 20CS2008 Computer Networks
20CS2008 Computer Networks
 
Application layer in network system
Application layer in network systemApplication layer in network system
Application layer in network system
 
p2p project report
p2p project reportp2p project report
p2p project report
 

Similar to App layer

Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2Raga Yustia
 
applicationapplicationapplicationapplication.ppt
applicationapplicationapplicationapplication.pptapplicationapplicationapplicationapplication.ppt
applicationapplicationapplicationapplication.pptDEEPAK948083
 
Chapter2 l2 modified_um
Chapter2 l2 modified_umChapter2 l2 modified_um
Chapter2 l2 modified_umSajid Baloch
 
02_Chapter_2_V6_LV.pptx
02_Chapter_2_V6_LV.pptx02_Chapter_2_V6_LV.pptx
02_Chapter_2_V6_LV.pptxALI2H
 
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptx
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptxCS3001_Computer_Networks_Chapter_2_v8.1(1).pptx
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptxfarhanali32014
 
Computer network network edge and network
Computer network network edge and networkComputer network network edge and network
Computer network network edge and networkrjnavallasca
 
Lecture-2012-2-Application Layer-Introduction.ppt
Lecture-2012-2-Application Layer-Introduction.pptLecture-2012-2-Application Layer-Introduction.ppt
Lecture-2012-2-Application Layer-Introduction.pptRashmin Tanna
 
2. application layer
2. application layer2. application layer
2. application layerTageleBerihun
 
Ch2 application layer Network
Ch2 application layer NetworkCh2 application layer Network
Ch2 application layer Networkcairo university
 

Similar to App layer (20)

Chapter2 Application
Chapter2 ApplicationChapter2 Application
Chapter2 Application
 
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
Materi Perkuliahan Jaringan Komputer Teknik Informatika Chapter 2
 
applicationapplicationapplicationapplication.ppt
applicationapplicationapplicationapplication.pptapplicationapplicationapplicationapplication.ppt
applicationapplicationapplicationapplication.ppt
 
Chapter2 l2 modified_um
Chapter2 l2 modified_umChapter2 l2 modified_um
Chapter2 l2 modified_um
 
02_Chapter_2_V6_LV.pptx
02_Chapter_2_V6_LV.pptx02_Chapter_2_V6_LV.pptx
02_Chapter_2_V6_LV.pptx
 
Chapter2_L2.ppt
Chapter2_L2.pptChapter2_L2.ppt
Chapter2_L2.ppt
 
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptx
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptxCS3001_Computer_Networks_Chapter_2_v8.1(1).pptx
CS3001_Computer_Networks_Chapter_2_v8.1(1).pptx
 
Chapter_2_v8.3.pptx
Chapter_2_v8.3.pptxChapter_2_v8.3.pptx
Chapter_2_v8.3.pptx
 
Computer network network edge and network
Computer network network edge and networkComputer network network edge and network
Computer network network edge and network
 
Chapter_2_v8.1.pptx
Chapter_2_v8.1.pptxChapter_2_v8.1.pptx
Chapter_2_v8.1.pptx
 
3rd edition chapter1
3rd edition chapter13rd edition chapter1
3rd edition chapter1
 
Chapter1 sept 8_05[one.]
Chapter1 sept 8_05[one.]Chapter1 sept 8_05[one.]
Chapter1 sept 8_05[one.]
 
Networking recap
Networking recapNetworking recap
Networking recap
 
Np unit1
Np unit1Np unit1
Np unit1
 
Lecture-2012-2-Application Layer-Introduction.ppt
Lecture-2012-2-Application Layer-Introduction.pptLecture-2012-2-Application Layer-Introduction.ppt
Lecture-2012-2-Application Layer-Introduction.ppt
 
2. application layer
2. application layer2. application layer
2. application layer
 
Ch2 application layer Network
Ch2 application layer NetworkCh2 application layer Network
Ch2 application layer Network
 
Week2 lec3-bscs1
Week2 lec3-bscs1Week2 lec3-bscs1
Week2 lec3-bscs1
 
CN UNIT V.pptx
CN UNIT V.pptxCN UNIT V.pptx
CN UNIT V.pptx
 
Http Vs Https .
Http Vs Https . Http Vs Https .
Http Vs Https .
 

Recently uploaded

INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsRommel Regala
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxJanEmmanBrigoli
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 

Recently uploaded (20)

INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World Politics
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 

App layer

  • 2. A closer look at network structure  network edge: applications and hosts  network core:  routers  network of networks  access networks, physical media: communication links
  • 3. The network edge run application programs e.g. Web, email at “edge of network” 3
  • 4. Network Application Architecture  Client Server  P2P  Hybrid
  • 5. Client-server architecture server:  always-on host  permanent IP address  server farms for scaling  clients:  communicate with server  may be intermittently connected  may have dynamic IP addresses  do not communicate directly with each other 5
  • 6. Pure P2P architecture  no always-on server  arbitrary end systems directly communicate  peers are intermittently connected and change IP addresses  example: Gnutella Highly scalable but difficult to manage 2: Application Layer 6
  • 7. Hybrid of client-server and P2P Skype  Internet telephony app  Finding address of remote party: centralized server(s)  Client-client connection is direct (not through server)  Instant messaging  Chatting between two users is P2P  Presence detection/location centralized:  User registers its IP address with central server when it comes online  User contacts central server to find IP addresses of buddies 2: Application Layer
  • 8. Creating a network app Write programs that application  run on different end systems transport network and communicate over a data link physical network.  e.g., Web: Web server software communicates with browser software  little software written for devices in network core application application transport transport network  network core devices do not run network data link data link physical user application code physical  application on end systems allows for rapid app
  • 9. Processes communicating Process: program running within a host.  within same host, two processes communicate using inter-process communication (defined by OS).  processes in different hosts communicate by exchanging messages  Note: applications with P2P architectures have client processes & server processes Client process: process that initiates communication Server process: process that waits to be contacted
  • 10. Sockets  process sends/receives messages to/from its socket  socket analogous to door  sending process shoves message out door  sending process relies on transport infrastructure on other side of door which brings message to socket at receiving process  Socket is an interface between application layer and transport layer within a host : it is referred as Application Programming Interface (API):  Application developer can only control (on transport layer side) (1) choice of transport protocol (TCP or UDP); (2) ability to fix a few parameters such as max buffer and max segment size 10
  • 11. Sockets host or host or server server controlled by app developer process process socket socket TCP with TCP with buffers, Internet buffers, variables variables controlled by OS 11
  • 12. Sockets Steps followed by client to establish the connection: 1. Create a socket 2. Connect the socket to the address of the server 3. Send/Receive data 4. Close the socket Steps followed by server to establish the connection: 1. Create a socket 2. Bind the socket to the port number known to all clients 3. Listen for the connection request 4. Accept connection request 5. Send/Receive data
  • 13. Addressing processes  to receive messages, process must have identifier  host device has unique32-bit IP address  Q: does IP address of host on which process runs suffice for identifying the process?  Answer: NO, many processes can be running on same host  identifier includes both IP address and port numbers associated with process on host.  Example port numbers:  HTTP server: 80  Mail server: 25
  • 14. App-layer protocol defines  Types of messages exchanged, Public-domain protocols:  defined in RFCs  e.g., request, response  allows for interoperability  Message syntax:  e.g., HTTP, SMTP  what fields in messages &  Proprietary protocols: how fields are delineated  e.g., KaZaA  Message semantics  meaning of information in fields  Rules for when and how processes send & respond to messages
  • 15. Transport service requirements of common applications Application Data loss Bandwidth Time Sensitive file transfer no loss elastic no e-mail no loss elastic no Web documents no loss elastic no real-time audio/video loss-tolerant audio: 5kbps-1Mbps yes, 100’s msec video:10kbps-5Mbps stored audio/video loss-tolerant same as above yes, few secs interactive games loss-tolerant few kbps up yes, 100’s msec instant messaging no loss elastic yes and no
  • 16. Internet transport protocols services TCP service: UDP service:  connection-oriented: setup  unreliable data transfer required between client and between sending and server processes receiving process  reliable transport between  does not provide: sending and receiving process connection setup,  flow control: sender won’t reliability, flow control, overwhelm receiver congestion control,  congestion control: throttle timing, or bandwidth sender when network guarantee overloaded  does not provide: timing, Q: why bother? Why is there minimum bandwidth guarantees a UDP?
  • 17. Internet apps: application, transport protocols Application Underlying Application layer protocol transport protocol e-mail SMTP [RFC 2821] TCP remote terminal access Telnet [RFC 854] TCP Web HTTP [RFC 2616] TCP file transfer FTP [RFC 959] TCP streaming multimedia proprietary TCP or UDP (e.g. RealNetworks) Internet telephony proprietary (e.g., Vonage,Dialpad) typically UDP
  • 18. 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  Example URL: www.someschool.edu/someDept/pic.gif host name path name
  • 19. HTTP overview HTTP: hypertext transfer HT protocol TP req PC running HT ues  Web’s application layer TP t Explorer res pon protocol se  client/server model u est eq  client: browser that TT Pr pon se Server H res running requests, receives, HT TP Apache Web server “displays” Web objects  server: Web server sends Mac running objects in response to Navigator requests
  • 20. HTTP overview (continued) HTTP is “stateless” Uses TCP:  server maintains no  client initiates TCP connection information about past (creates socket) to server, port client requests 80 aside  server accepts TCP connection Protocols that maintain “state” are from client complex!  past history (state) must be maintained  HTTP messages (application-  if server/client crashes, their views of layer protocol messages) “state” may be inconsistent, must be exchanged between browser reconciled (HTTP client) and Web server (HTTP server)  TCP connection closed
  • 21. HTTP connections Nonpersistent HTTP  At most one object is sent over a TCP connection.  HTTP/1.0 uses nonpersistent HTTP Persistent HTTP  Multiple objects can be sent over single TCP connection between client and server.  HTTP/1.1 uses persistent connections in default mode
  • 22. Nonpersistent HTTP Suppose user enters URL (contains text, www.someSchool.edu/someDepartment/home.index references to 10 1a. HTTP client initiates TCP jpeg images) 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 2. HTTP client sends HTTP client request message (containing URL) into TCP connection 3. HTTP server receives request socket. Message indicates that message, forms response client wants object message containing requested someDepartment/home.index object, and sends message into time its socket
  • 23. Nonpersistent HTTP (cont.) 4. HTTP server closes TCP 5. HTTP client receives response time connection. message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects
  • 24. Non-Persistent HTTP: Response time Definition of RTT: time to send a small packet to travel from client to server and back. Response time: initiate TCP  one RTT to initiate TCP connection connection RTT  one RTT for HTTP request and first request few bytes of HTTP response to return file  file transmission time time to RTT transmit total = 2RTT+transmit time file file received time time 24
  • 25. Persistent HTTP Persistent HTTP  server leaves connection open after sending response  subsequent HTTP messages between same client/server sent over open connection Persistent without pipelining: • client issues new request only when previous response has been received • one RTT for each referenced object Persistent with pipelining:  default in HTTP/1.1  client sends requests as soon as it encounters a referenced object  as little as one RTT for all the referenced objects
  • 26. HTTP message: general format two types of HTTP messages: request, response
  • 27. HTTP request message  HTTP request message:  ASCII (human-readable format) request line (GET, POST, GET /somedir/page.html HTTP/1.1 HEAD commands) Host: www.someschool.edu User-agent: Mozilla/4.0 header Connection: close lines Accept-language:fr Carriage return, (extra carriage return, line feed) line feed indicates end of message
  • 28. HTTP response message status line (protocol HTTP/1.1 200 OK status code Connection close status phrase) Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) header Last-Modified: Mon, 22 Jun 1998 …... lines Content-Length: 6821 Content-Type: text/html data, e.g., data data data data data ... requested HTML file
  • 29. Method types HTTP/1.1 HTTP/1.0  GET, POST, HEAD  GET  PUT  POST  uploads file in entity body to  HEAD path specified in URL field  asks server to leave requested  DELETE object out of response  deletes file specified in the URL field
  • 30. HTTP response status codes In first line in server->client 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
  • 31. Internet Directory Service: DNS: Domain Name System People: many identifiers: Domain Name System:  SSN, name, passport #  distributed database implemented in hierarchy of many name servers  Internet hosts, routers:  application-layer protocol host,  IP address (32 bit) - used routers, name servers to for addressing datagrams communicate to resolve names (address/name translation)  “name”, e.g.,  note: core Internet function, www.yahoo.com - used implemented as application- by humans layer protocol Q: map between IP addresses  complexity at network’s “edge” and name ?
  • 32. DNS DNS services Why not centralize DNS?  Hostname to IP address  single point of failure translation  traffic volume  Host aliasing  distant centralized database  Canonical and alias  maintenance names  Mail server aliasing doesn’t scale!  Load distribution  Replicated Web servers: set of IP addresses for one canonical name
  • 33. Distributed, Hierarchical Database Root DNS Servers com DNS servers org DNS servers edu DNS servers pbs.org poly.edu umass.edu yahoo.com amazon.com DNS servers DNS serversDNS servers DNS servers DNS servers Client wants IP for www.amazon.com; 1st approx:  Client queries a root server to find com DNS server  Client queries com DNS server to get amazon.com DNS server  Client queries amazon.com DNS server to get IP address for www.amazon.com, 33
  • 34. DNS: Root name servers  contacted by local name server that can not resolve name  root name server:  contacts authoritative name server if name mapping not known  gets mapping  returns mapping to local name server a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD k RIPE London (also Amsterdam, g US DoD Vienna, VA Frankfurt) h ARL Aberdeen, MD i Autonomica, Stockholm (plus 3 j Verisign, ( 11 locations) other locations) m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) 13 root name servers worldwide b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 34
  • 35. TLD and Authoritative Servers  Top-level domain (TLD) servers: responsible for com, org, net, edu, etc, and all top-level country domains uk, fr, ca, jp.  Network solutions maintains servers for com TLD  Educause for edu TLD  Authoritative DNS servers: organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web and mail).  Can be maintained by organization or service provider
  • 36. Local Name Server  Does not strictly belong to hierarchy  Each ISP (residential ISP, company, university) has one.  Also called “default name server”  When a host makes a DNS query, query is sent to its local DNS server  Acts as a proxy, forwards query into hierarchy.
  • 37. Example root DNS server Host at cis.poly.edu wants IP address for gaia.cs.umass.edu 2 3 TLD DNS server 4 5 local DNS server dns.poly.edu 7 6 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu 37 gaia.cs.umass.edu
  • 38. Recursive queries root DNS server recursive query:  puts burden of name resolution on contacted 2 3 name server  heavy load? 7 6 iterated query: TLD DNS server  contacted server replies with name of server to contact local DNS server  “I don’t know this name, but dns.poly.edu 5 4 ask this server” 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu
  • 39. DNS: caching and updating records  once (any) name server learns mapping, it caches mapping  cache entries timeout (disappear) after some time  TLD servers typically cached in local name servers  Thus root name servers not often visited  update/notify mechanisms under design by IETF  RFC 2136  http://www.ietf.org/html.charters/dnsind-charter.html
  • 40. DNS records DNS: distributed db storing resource records (RR) RR format: (name, value, type, ttl) Type=A Type=CNAME  name is hostname  name is alias name for some  value is IP address “canonical” (the real) name www.ibm.com is really Type=NS servereast.backup2.ibm.com  name is domain (e.g. foo.com)  value is canonical name  value is hostname of authoritative name server for this domain Type=MX  value is name of mailserver associated with name
  • 41. DNS protocol, messages DNS protocol : query and reply messages, both with same message format msg header  identification: 16 bit # for query, reply to query uses same #  flags:  query or reply  recursion desired  recursion available  reply is authoritative 41
  • 42. DNS protocol, messages Name, type fields for a query RRs in response to query records for authoritative servers additional “helpful” info that may be used
  • 43. Inserting records into DNS  Example: just created startup “Network Utopia”  Register name networkuptopia.com at a registrar (e.g., Network Solutions)  Need to provide registrar with names and IP addresses of your authoritative name server (primary and secondary)  Registrar inserts two RRs into the com TLD server:  (networkutopia.com, dns1.networkutopia.com, NS)  (dns1.networkutopia.com, 212.212.212.1, A)  Put in authoritative server Type A record for www.networkuptopia.com and Type MX record for networkutopia.com  How do people get the IP address of your Web site?
  • 44. For students to do Cookies Web Caching
  • 45. User-server state: cookies Example: Many major Web sites use  Susan access Internet always cookies from same PC Four components:  She visits a specific e- 1) cookie header line of commerce site for first time HTTP response message  When initial HTTP requests arrives at site, site creates a 2) cookie header line in unique ID and creates an entry HTTP request message in backend database for ID  Set-cookie : 1678453 included 3) cookie file kept on in http response message which user’s host, managed by browser saves in special cookie- user’s browser file and sends it with every request. 4) back-end database at Web site
  • 46. Cookies: keeping “state” (cont.) client server Cookie file usual http request msg en server da try i tab n b usual http response + creates ID as ac e ebay: 8734 k en Set-cookie: 1678 1678 for user d Cookie file usual http request msg amazon: 1678 cookie: 1678 cookie- ss ebay: 8734 specific acce usual http response msg action ss one week later: ce ac Cookie file usual http request msg cookie- amazon: 1678 cookie: 1678 spectific ebay: 8734 usual http response msg action
  • 47. Cookies (continued) What cookies can bring:  authorization aside  shopping carts Cookies and privacy:  cookies permit sites to learn a lot  recommendations about you  user session state (Web e-  you may supply name and e-mail to sites mail) How to keep “state”:  Protocol endpoints: maintain state at sender/receiver over multiple transactions  cookies: http messages carry state
  • 48. Web caches (proxy server) Goal: satisfy client request without involving origin server  user sets browser: Web accesses via cache origin server  browser sends all HTTP HT Proxy requests to cache TP req server que st HT ues re client TP TP ons e  object in cache: cache res pon t HT res p se TP returns object HT st ue eq  else cache requests Pr on se TT p H res object from origin HTT P server, then returns client object to client origin server
  • 49. More about Web caching  Cache acts as both client and Why Web caching? server  Reduce response time for  Typically cache is installed client request. by ISP (university, company,  Reduce traffic on an residential ISP) institution’s access link.  Internet dense with caches: enables “poor” content providers to effectively deliver content (but so does P2P file sharing)
  • 50. Caching example Assumptions origin  average object size = 100,000 bits servers  avg. request rate from institution’s public browsers to origin servers = 15/sec Internet  delay from institutional router to any origin server and back to router = 2 sec Consequences 1.5 Mbps access link  utilization on LAN = 15% institutional  utilization on access link = 100% network 10 Mbps LAN  total delay = Internet delay + access delay + LAN delay  = 2 sec + minutes + milliseconds
  • 51. Caching example (cont) Possible solution origin servers  increase bandwidth of access public link to, say, 10 Mbps Internet Consequences  utilization on LAN = 15% 10 Mbps  utilization on access link = 15% access link  Total delay = Internet delay + institutional network access delay + LAN delay 10 Mbps LAN  = 2 sec + msecs + msecs  often a costly upgrade
  • 52. Caching example (cont) Install cache  suppose hit rate is .4 origin servers Consequence public  40% requests will be satisfied Internet almost immediately  60% requests satisfied by origin server 1.5 Mbps  utilization of access link access link reduced to 60%, resulting in institutional negligible delays (say 10 network 10 Mbps LAN msec)  total avg delay = Internet delay + access delay + LAN delay = .6*(2.01) secs + . institutional 4*milliseconds < 1.4 secs cache
  • 53. Conditional GET cache server HTTP request msg  Goal: don’t send object if cache If-modified-since: has up-to-date cached version <date> object not  cache: specify date of cached modified copy in HTTP request HTTP response HTTP/1.0  If-modified-since: <date> 304 Not Modified  server: response contains no object if cached copy is up-to- HTTP request msg date: If-modified-since: HTTP/1.0 304 Not Modified <date> object modified HTTP response HTTP/1.0 200 OK <data>
  • 54. Electronic Mail outgoing Three major components: message queue  user agents user user mailbox  mail servers agent  simple mail transfer protocol: SMTP mail user server agent SMTP User Agent mail  a.k.a. “mail reader” server user SMTP agent  composing, editing, reading mail messages SMTP user  e.g., Eudora, Outlook, elm, Netscape mail server agent Messenger  outgoing, incoming messages stored user on server agent user agent
  • 55. Electronic Mail: mail servers user Mail Servers agent mail  mailbox contains incoming user server agent messages for user SMTP mail  message queue of outgoing (to server user be sent) mail messages SMTP agent  SMTP protocol between mail SMTP servers to send email messages mail user server agent  client: sending mail server  “server”: receiving mail user agent server user agent
  • 56. Electronic Mail: SMTP [RFC 2821]  uses TCP to reliably transfer email message from client to server, port 25  direct transfer: sending server to receiving server  three phases of transfer  handshaking (greeting)  transfer of messages  closure  command/response interaction  commands: ASCII text  response: status code and phrase  messages must be in 7-bit ASCII
  • 57. Sample SMTP interaction S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection
  • 58. SMTP: final words  SMTP uses persistent connections  SMTP requires message (header & body) to be in 7-bit ASCII  SMTP server uses CRLF.CRLF to determine end of message
  • 59. Mail message format SMTP: protocol for exchanging email msgs header blank RFC 822: standard for text line message format:  header lines, e.g., body  To:  From:  Subject:  different from SMTP commands!  body  the “message”, ASCII characters only
  • 60. Message format: multimedia extensions  MIME(multi purpose internet mail extensions): multimedia mail extension, RFC 2045, 2056  additional lines in msg header declare MIME content type From: alice@crepes.fr MIME version To: bob@hamburger.edu Subject: Picture of yummy crepe. method used MIME-Version: 1.0 to encode data Content-Transfer-Encoding: base64 Content-Type: image/jpeg multimedia data type, subtype, base64 encoded data ..... parameter declaration ......................... ......base64 encoded data encoded data
  • 61. Scenario: Alice sends message to Bob 1) Alice uses UA to compose message 4) SMTP client sends Alice’s and “to” bob@someschool.edu message over the TCP 2) Alice’s UA sends message to her connection mail server; message placed in 5) Bob’s mail server places the message queue message in Bob’s mailbox 3) Client side of SMTP opens TCP 6) Bob invokes his user agent to connection with Bob’s mail server read message 1 mail mail server user user server 2 agent agent 3 6 4 5
  • 62. Mail access protocols SMTP SMTP access user user protocol agent agent sender’s mail receiver’s mail server server  SMTP: delivery/storage to receiver’s server  Mail access protocol: retrieval from server  POP: Post Office Protocol [RFC 1939]  authorization (agent <-->server) and download  IMAP: Internet Mail Access Protocol [RFC 1730]  more features (more complex)  manipulation of stored msgs on server  HTTP: Hotmail , Yahoo! Mail, etc.
  • 63. POP3 protocol S: +OK POP3 server ready authorization phase C: user bob  client commands: S: +OK C: pass hungry  user: declare username S: +OK user successfully logged on  pass: password C: list  server responses S: 1 498  +OK S: 2 912 S: .  -ERR C: retr 1 transaction phase, client: S: <message 1 contents> S: .  list: list message numbers C: dele 1  retr: retrieve message by number C: retr 2 S: <message 1 contents>  dele: delete S: .  quit C: dele 2 C: quit S: +OK POP3 server signing off
  • 64. POP3 (more) and IMAP More about POP3 IMAP  Previous example uses  Keep all messages in one “download and delete” mode. place: the server  Bob cannot re-read e-mail if  Allows user to organize he changes client messages in folders  “Download-and-keep”: copies  IMAP keeps user state across of messages on different sessions: clients  names of folders and  POP3 is stateless across mappings between sessions message IDs and folder name
  • 65. FTP: the file transfer protocol 2: Application Layer FTP file transfer FTP FTP user client server interface user at host local file remote file system system  transfer file to/from remote host  client/server model  client: side that initiates transfer (either to/from remote)  server: remote host  ftp: RFC 959  ftp server: port 21 65
  • 66. FTP: separate control, data connections 2: Application Layer TCP control connection  FTP client contacts FTP server at port 21 port 21, specifying TCP as transport protocol TCP data connection  Client obtains authorization over FTP port 20 FTP control connection client server  Client browses remote directory Ì Server opens another TCP by sending commands over data connection to transfer control connection. another file.  When server receives file transfer Ì Control connection: “out of command, server opens 2nd TCP band” connection (for file) to client Ì FTP server maintains “state”:  After transferring one file, server current directory, earlier closes data connection. authentication 66
  • 67. FTP commands, responses 2: Application Layer Sample commands: Sample return codes  sent as ASCII text over control  status code and phrase (as in channel HTTP)  USER username  331 Username OK,  PASS password password required  125 data connection  LIST return list of file in already open; transfer current directory starting  RETR filename retrieves  425 Can’t open data (gets) file connection  STOR filename stores (puts)  452 Error writing file file onto remote host 67
  • 68. P2P file sharing 2: Application Layer Example  Alice chooses one of the peers, Bob.  Alice runs P2P client  File is copied from Bob’s application on her notebook computer PC to Alice’s notebook: HTTP  Intermittently connects to  While Alice downloads, Internet; gets new IP address for each other users uploading from connection Alice.  Alice’s peer is both a Web  Asks for “Hey Jude” client and a transient Web  Application displays other server. peers that have copy of Hey Jude. All peers are servers = highly scalable! 68
  • 69. P2P: centralized directory Bob original “Napster” design centralized directory server 1) when peer connects, it 1 informs central server: peers 1  IP address  content 1 3 2) Alice queries for “Hey 2 1 Jude” 3) Alice requests file from Bob Alice 2: Application Layer 69
  • 70. P2P: problems with centralized directory 2: Application Layer  Single point of failure file transfer is  Performance bottleneck decentralized, but locating content is highly  Copyright infringement centralized 70
  • 71. Query flooding: Gnutella 2: Application Layer  fully distributed overlay network: graph  no central server  edge between peer X and Y  public domain protocol if there’s a TCP connection  many Gnutella clients  all active peers and edges implementing protocol is overlay net  Edge is not a physical link  Given peer will typically be connected with < 10 overlay neighbors 71
  • 72. Gnutella: protocol File transfer: 72 HTTP Query message sent over existing TCP connections Query QueryHit peers forward Query message y Qu u er ery t Q y Hi QueryHit u er sent over Q reverse Query path QueryHit Scalability: Qu er limited scope y flooding 2: Application Layer
  • 73. Exploiting heterogeneity: KaZaA  Each peer is either a group leader or assigned to a group leader.  TCP connection between peer and its group leader.  TCP connections between some pairs of group leaders.  Group leader tracks the content in all its children. o r d in a r y p e e r g r o u p - le a d e r p e e r n e ig h o r in g r e la tio n s h ip s in o v e r la y n e tw o r k 2: Application Layer 73
  • 74. KaZaA: Querying 74  Each file has a hash and a descriptor  Client sends keyword query to its group leader  Group leader responds with matches:  For each match: metadata, hash, IP address  If group leader forwards query to other group leaders, they respond with matches  Client then selects files for downloading  HTTP requests using hash as identifier sent to peers holding desired file 2: Application Layer
  • 75. KaZaA tricks 75  Limitations on simultaneous uploads  Request queuing  Incentive priorities  Parallel downloading 2: Application Layer
  • 76. Multimedia  Introduction to Audio  Audio Compression  Streaming Audio  Internet Radio  Voice over IP  Introduction to Video  Video Compression  Video on Demand  The MBone – The Multicast Backbone