2140709
Computer Networks
Unit-2
Application Layer
Prof. Maulik D. Trivedi
   9998265805
   maulik.trivedi@darshan.ac.in
  Network Applications
  ▪ A Network application is an application running on one host and provides a
    communication to another application running on a different host.
  ▪ A network application development is writing programs that run on different
    end systems and communicate with each other over the network.
  ▪ In the Web application there are two different programs that communicate
    with each other:
         ✔ Browser program running in the user's host.
         ✔ Web server program running in the Web server host.
                              Host                                     Host
Unit: 2 - Application Layer                        2      Darshan Institute of Engineering & Technology
  Network Applications - Examples
  ▪ Email
  ▪ Web
  ▪ Remote Login
  ▪ P2P File Sharing
  ▪ Multi-user Network Games
  ▪ Streaming Stored Video
    (YouTube)
  ▪ Voice Over IP (Skype)
  ▪ Real-time Video Conference
  ▪ Social Networking
Unit: 2 - Application Layer      3   Darshan Institute of Engineering & Technology
  Network Application Architecture
  1. Client-Server architecture
  2. P2P (Peer to Peer) architecture
Unit: 2 - Application Layer            4   Darshan Institute of Engineering & Technology
  1. Client-Server Architecture
                                                Server:
                              Client
                                                    ✔ Its always-on host.
                                                    ✔ It has a fixed IP address.
                                                    ✔ Large cluster of host – Data Centers.
                                                    ✔ E.g. Web Server
                                                Client:
                                                    ✔ It communicate with server.
                                                    ✔ Its not like continuously connected.
                                                    ✔ May have dynamic IP addresses.
                                                    ✔ Do not communicate directly with
                                                      each other.
                                                    ✔ E.g. PCs, Mobiles
                                       Server
Unit: 2 - Application Layer                         5      Darshan Institute of Engineering & Technology
  2. P2P Architecture
                                      ▪ Peers (end systems) directly
                               Peer     communicate.
                                      ▪ Get peers request service from
                                        other peers, provide service to
                                        other peers.
                                           ✔ Self Scalability – New peers
                                             bring new service capacity, as
                                             well as new service demands.
                                      ▪ Peers      are alternatingly
                                        connected and change IP
     Peer                               addresses.
                                           ✔ Complex management
                              Peer
Unit: 2 - Application Layer            6       Darshan Institute of Engineering & Technology
  Process Communicating
  ▪ What is Process?
  ▪ A process is an instance of a program running in a computer.
  ▪ We can say that process is program under execution.
  ▪ Within same host, two processes communicate                   using     inter-process
    communication (IPC).
  ▪ Process in different hosts communicate by exchanging messages.
  ▪ Client process: A process that initiates communication.
  ▪ Server process: A process that waits to be contacted.
                                                   Process
                          Process                  P2
                          P1
Unit: 2 - Application Layer                  7      Darshan Institute of Engineering & Technology
  Socket
  ▪ A process sends messages into, and receives messages from; the
    network through a software interface called a socket.
  ▪ A process is similar to a house and its socket is similar to its door.
         ✔ Sending process passes message out door.
         ✔ Sending process relies on transport infrastructure on other side of door to
           deliver message to socket at receiving process.
       Process
                              application                  application
                               proce        socke            proce              controlled by
                                 ss         t                  ss               app developer
                              transport                     transport
                              network                       network              controlled
                                                               link
                                                                                 by OS
                                 link       Internet
       Socket                 physical                      physical
Unit: 2 - Application Layer                            8   Darshan Institute of Engineering & Technology
  Transport Services to Applications
  ▪ Recall that a socket is the interface
    between the application process
    and the transport layer protocol.           Reliable Data
                                                                           Throughput
                                                  Transfer
  ▪ For develop an application, choose
    available transport layer protocol.
  ▪ Pick the protocol with the services
    that best match the needs of your
    application.                                   Timing                     Security
  ▪ Example: Choose either Train or
    Airplane transport for travel
    between two cities.
  ▪ Classify  services        with   four
    parameters.
Unit: 2 - Application Layer                 9        Darshan Institute of Engineering & Technology
  Transport Services to Applications
  ▪ Reliable Data Transfer
  ✔ Many applications (e.g., email, file                               Blur image
    transfer, financial applications) require
    100% reliable data transfer
  ✔ Required guarantee that data sent by
    one end of application is delivered
    correctly and completely to the other
    end of application.
  ✔ This guaranteed data delivery service is
    called Reliable Data Transfer.
  ✔ When it will fail to deliver reliable data
    transfer, it is acceptable for loss-
    tolerant applications.
  ✔ Loss-tolerant    Applications     (e.g.,
    audio/video) can tolerate some loss.
Unit: 2 - Application Layer                      10   Darshan Institute of Engineering & Technology
  Transport Services to Applications
  ▪ Throughput
        ✔ some apps (e.g., multimedia) require at least amount of throughput to be
          “effective”
        ✔ Bandwidth sensitive application, specific throughput required.
        ✔ Elastic application can use of as much, or as little, throughput as happens to
          be available.
  ▪ Timing
        ✔ some apps (e.g., Internet telephony, interactive games) require low delay to
          be “effective”
  ▪ Security
        ✔ In the sending host, encrypt all data transmitted by the sending process.
        ✔ In the receiving host, decrypt the data before delivering the data to the
          receiving process.
Unit: 2 - Application Layer                     11      Darshan Institute of Engineering & Technology
  Internet Transport Protocols Services
  ▪ TCP Service:                      ▪ UDP Services:
  ✔ Connection-Oriented: A setup      ✔ Connectionless: No connection
    required between client and         before two processes start to
    server processes                    communicate.
  ✔ Reliable data transfer between    ✔ Unreliable data transfer between
    sending and receiving process
    without error and proper order      sending and receiving process
  ✔ Congestion control: To control    ✔ It does not provide congestion
    sender     when       network       control.
    overloaded                        ✔ It Does not provide. Reliability,
  ✔ It does not provide, Timing, at     flow    control,     throughput
    least throughput guarantee (not     guarantee, security.
    preferred      in     real-time
    application)
Unit: 2 - Application Layer           12     Darshan Institute of Engineering & Technology
  Internet Applications
  ▪ Popular internet applications with their application layer and their
    underlying transport protocol.
                                Application-Layer        Underlying Transport
       Applications                                      Protocol (Service)
                                Protocol
       Email                    SMTP                     TCP
       Remote Terminal          Telnet                   TCP
       Access
       Web                      HTTP                     TCP
       File Transfer            FTP                      TCP
       Streaming Media          HTTP(YouTube), RTP       TCP or UDP
       Internet Telephony       SIP, RTP(Skype)          Typically UDP
                                                                     No loss, Elastic
                Loss-tolerant                                         Bandwidth
Unit: 2 - Application Layer                   13     Darshan Institute of Engineering & Technology
WEB & HTTP
  Web
  ▪ Early 1990, Internet was used only by
    researchers, academics, and university
    students.
  ▪ New application WWW arrived in 1994
    by Tim Berners-Lee.
  ▪ World Wide Web - is an information
    where documents and other web
    resources are identified by URL,
    interlinked by hypertext links, and can
    be accessed via the Internet.
  ▪ On demand available, What they want,
    When they want it.
  ▪ Unlike TV and Radio.
  ▪ Navigate through Websites.
                                                                                         15
Unit: 2 - Application Layer            15     Darshan Institute of Engineering & Technology
  Web and HTTP
  ▪ Web page consists of objects.
  ▪ Object can be HTML file, JPEG image, Java applet, audio file etc.…
  ▪ Web page consists of base HTML-file which includes several
    referenced objects.
                              Web Page (e.g Total five objects)
  ▪ each object is addressable by a Uniform Resource Locator (URL),
    like;
          www.someschool.edu/someDept/
          pic.gif
                 host name                 path name
Unit: 2 - Application Layer                     16     Darshan Institute of Engineering & Technology
  HTTP
  ▪ HyperText Transfer Protocol – Application layer protocol
  ▪ it is implemented in two programs.
         1.    Client Program
         2.    Server Program
   ▪     Exchanging HTTP message each others.
   ▪     HTTP defines the structure of   these messages and how web
                                       HTTP
         client – web server exchange Request
                                      messages.
                           HTTP
                         Response
Unit: 2 - Application Layer           17    Darshan Institute of Engineering & Technology
  HTTP – Cont…
  ▪ HTTP
         ✔ Hyper-Text Transfer Protocol
         ✔ It is Application layer protocol
                                                                 HT
         ✔ Client: A browser that requests,                        TP
                                                                       req
                                                   PC                      ues
           receives, (using HTTP protocol)                       HT           t
                                              (Web Browser)         TP
           and “displays” Web objects.                                 res
                                                                           pon
                                                                               se
         ✔ E.g. PC, Mobile
                                                                               t
         ✔ Server: Web server sends (using                               u  es
                                                                      req
           HTTP protocol) objects in                              TP             nse Server
                                                                HT            po (Apache Web
                                                                           es
           response to requests.                                        Pr
                                                                      T              Server)
                                                                   HT
         ✔ E.g. Apache Web Server
                                                      Mobile
                                                   (Web Browser)
Unit: 2 - Application Layer                   18        Darshan Institute of Engineering & Technology
  HTTP - Cont...
  ▪ A client initiates TCP connection (creates socket) to server using
    port 80.
  ▪ A server accepts TCP connection from client.
  ▪ HTTP messages (application-layer protocol messages) exchanged
    between browser (HTTP client) and Web server (HTTP server).
  ▪ HTTP is “stateless protocol”, server maintains no information
    about past client requests.
  ▪ HTTP connection types are:
         1.    Non-persistent HTTP
         2.    Persistent HTTP
Unit: 2 - Application Layer          19     Darshan Institute of Engineering & Technology
NON-PERSISTENT HTTP &
PERSISTENT HTTP CONNECTION
  Non-persistent & Persistent Connection
  ▪ In Client-Server communication, Client
    making a series of requests to server,
    Server responding to each of the
    requests.
  ▪ Series of requests may be made back
    to back or periodically at regular time
    interval.
  ▪ So, Application developer need to
    make an important decision;
        ✔ Should each request/response pair be
          sent over a separate TCP connection.
        ✔ OR should all of the requests and
             corresponding responses be sent over
             same TCP connection?
                                                                                               21
Unit: 2 - Application Layer                   21    Darshan Institute of Engineering & Technology
  1. Non-persistent HTTP
  ▪ A non-persistent connection is closed after the server sends the
    requested object to the client.
  ▪ The connection is used exactly for one request and one response.
  ▪ For downloading           multiple   objects      it     required           multiple
    connections.
  ▪ Non-persistent connections are the default mode for HTTP/1.0.
  ▪ Example:
  ▪ Transferring a webpage from server to client, webpage consists of
    a base HTML file and 10 JPEG images.
  ▪ Total 11 object are reside on server.
Unit: 2 - Application Layer               22       Darshan Institute of Engineering & Technology
  1. Non-persistent HTTP – Cont.…
       URL: www.someSchool.edu/someDepartment/home.index
   1a. HTTP client initiates TCP connection to
       HTTP server (process) at                        1b. HTTP server at host
       www.someSchool.edu on port 80                       www.someSchool.edu waiting for TCP
                                                           connection at port 80. “accepts”
    2. HTTP client sends HTTP request                      connection, notifying client
       message (containing URL) into TCP                    3. HTTP server receives request
       connection socket. Message indicates                    message, forms response message
       that client wants object                                containing requested object, and
       someDepartment/home.index                               sends message into its socket
                                                            4. HTTP server closes TCP connection.
     5. HTTP client receives response message
        containing html file, displays html. Parsing
        html file, finds 10 referenced jpeg objects
     6. Steps 1-5 repeated for each of 10
        jpeg objects                                                                                    Time
Unit: 2 - Application Layer                            23         Darshan Institute of Engineering & Technology
  1. Non-persistent HTTP: Response time
  ▪ RTT(round-trip time): A time
    for a small packet to travel              initiate TCP
    from client to server and vice            connection
                                                       RTT
    versa.
                                                    request
  ▪ HTTP response time:                             file
         ✔ one RTT to initiate TCP                                                      time to
                                                       RTT                              transmit
           connection.                                                                  file
         ✔ one RTT for HTTP request and               file
                                                      receive
           first few bytes of HTTP response           d
           to return.
                                                              time                 time
         ✔ File transmission time
 Non-persistent HTTP response time = 2RTT + file transmission time
Unit: 2 - Application Layer                    24        Darshan Institute of Engineering & Technology
  2. Persistent HTTP
  ▪ Server leaves the TCP connection open after sending responses.
  ▪ Subsequent HTTP messages between same client and server sent
    over open connection.
  ▪ The server closes the connection only when it is not used for a
    certain configurable amount of time.
  ▪ It requires as little as one round-trip time (RTT) for all the
    referenced objects.
  ▪ With persistent connections, the performance is improved by
    20%.
  ▪ Persistent connections are the default mode for HTTP/1.1.
Unit: 2 - Application Layer          25     Darshan Institute of Engineering & Technology
  HTTP Message Format
  ▪ Two types:
         1.    Request Message
         2.    Response Message
Unit: 2 - Application Layer       26   Darshan Institute of Engineering & Technology
  1. HTTP Request Message
  ▪ It is in ASCII format which means that human-readable format.
  ▪ HTTP request message consist three part:
         1.    Request line
         2.    Header line
         3.    Carriage return                                   carriage return character
                                                                   line-feed character
   request line
   (GET, POST,                     GET /index.html HTTP/1.1\r\n
   HEAD commands)                  Host: www-net.cs.umass.edu\r\n
                                   User-Agent: Firefox/3.6.10\r\n
                                   Accept: text/html,application/xhtml+xml\r\
                         header       n
                           lines   Accept-Language: en-us,en;q=0.5\r\n
                                   Accept-Encoding: gzip,deflate\r\n
  carriage return                  Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
  (line feed at start              Keep-Alive: 115\r\n
                                   Connection: keep-alive\r\n
  of line indicates                \r\n
  end of header lines)
Unit: 2 - Application Layer                     27    Darshan Institute of Engineering & Technology
  1. HTTP Request Message - Format
  ▪ The request line has three fields: Method field, URL field, and
    HTTP version field.
  ▪ The method field can take on several different values, including
    GET, POST, HEAD, PUT, and DELETE.
  ▪ In above message, browser is requesting the object
    /somedir/page.html and version is self-explanatory; browser
    implements version HTTP/1.1.
  ▪ The header line Host: www-net.cs.umass.edu specifies the host on
    which the object resides.
  ▪ User agent indicate browser name and version.
Unit: 2 - Application Layer         28     Darshan Institute of Engineering & Technology
  2. HTTP Response Message
  ▪ HTTP response message consist of three part:
         1.    Status line
         2.    Header line
         3.    Data (Entity body)
  status line
                              HTTP/1.1 200 OK\r\n
  (protocol                   Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
  status code                 Server: Apache/2.0.52 (CentOS)\r\n
  status phrase)              Last-Modified: Tue, 30 Oct 2007 17:00:02
                                 GMT\r\n
                header        ETag: "17dc6-a5c-bf716880"\r\n
                  lines       Accept-Ranges: bytes\r\n
                              Content-Length: 2652\r\n
                              Keep-Alive: timeout=10, max=100\r\n
                              Connection: Keep-Alive\r\n
                              Content-Type: text/html; charset=ISO-8859-1\
   data, e.g.,                   r\n
   requested                  \r\n
   HTML file                  data data data data data ...
Unit: 2 - Application Layer                     29    Darshan Institute of Engineering & Technology
  2. HTTP Response Message - Format
  ▪ The status line has three fields: protocol version field, status code and
    corresponding status message.
  ▪ In below example, the status line indicates that the server is using
    HTTP/1.1 and that everything is OK.
           HTTP/1.1 200 OK\r\n
           Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
           Server: Apache/2.0.52 (CentOS)\r\n
           Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n
           ETag: "17dc6-a5c-bf716880"\r\n
           Accept-Ranges: bytes\r\n
           Content-Length: 2652\r\n
           Keep-Alive: timeout=10, max=100\r\n
           Connection: Keep-Alive\r\n
           Content-Type: text/html; charset=ISO-8859-1\r\n \r\n
           data data data data data ...
           Date: header
           Content-Type:
           Server:
           Last-Modified:
           Content-Length:
                     headerline indicates
                              header
                               header
                                header
                                 line line the
                                       indicates
                                        line
                                         line   timethat
                                            indicates
                                              indicatesand  date
                                                         that
                                                           the
                                                            the
                                                             thethewhen
                                                                 number
                                                                  time   the
                                                                    message
                                                                     object
                                                                        and
                                                                          ofinHTTP
                                                                             bytes
                                                                              date
                                                                               was
                                                                               the
           response
           generated
           when
           in
           entity   was
              the the  byiscreated
                  object
                  bodyobject
                           being
                            an
                             HTML   and
                                Apache
                                wassent.
                                    text.sent
                                          Webby
                                     created   or the
                                                   lastserver.
                                               server.  modified.
Unit: 2 - Application Layer                     30      Darshan Institute of Engineering & Technology
  HTTP Response Status Codes
  ▪ A status code appears in 1st line in server-to-client response
    message.
  ▪ Some 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
               ▪ Requested http version not support
Unit: 2 - Application Layer                           31     Darshan Institute of Engineering & Technology
  User-Server interactions: Cookie
  ▪ A small text file that is stored in the user's computer either temporarily for that
    session only or permanently on the hard disk.
  ▪ Cookies provide a way for the Web site to recognize you and keep track of your
    preferences.
  ▪ The cookie technology has four components:
         1.     A cookie header line in the HTTP response message
         2.     A cookie header line in the HTTP request message
         3.     A cookie file kept on the user’s end system and managed by the user’s browser
         4.     A back-end database at the Web site
                                    • Use of Cookies
                                      • Authorization
                                      • Recommendations
                                      • Shopping carts
                                      • User session state (Web, Email)
Unit: 2 - Application Layer                             32         Darshan Institute of Engineering & Technology
  Cookies - Example
               client                                          server
              ebay 8734       usual http request msg        server
             cookie file                                  creates ID
                              usual http response
                               set-cookie: 1678          1678 for user     create backend
              ebay 8734                                                      entry database
              amazon 1678
                              usual http request msg
                                  cookie: 1678             cookie-        access
                                                           specific
                              usual http response msg       action
one week later:
                                                                         access
             ebay 8734        usual http request msg
             amazon 1678          cookie: 1678             cookie-
                                                           specific
                              usual http response msg       action
Unit: 2 - Application Layer                         33   Darshan Institute of Engineering & Technology
  Web Caches (Proxy Server)
  ▪ It satisfies HTTP requests on the behalf of an origin Web server.
  ▪ The Web cache has its own disk storage and keeps copies of
    recently requested objects in this storage.
                                       HT            proxy
                                         TP                       ue st
                                            r   equ serve     req
                              clien HTTP           est
                                                       r HTTP
                                                                  p o nse
                                          res                  es r       origin
                                 t            pon              TP
                                                  se         HT                server
                                                   t
                                               ues
                                           req         se
                                       T P         o n
                                     HT      res
                                                 p
                                          TP
                                       HT
                               clien                                          origin
                                  t                                           server
Unit: 2 - Application Layer                                 34        Darshan Institute of Engineering & Technology
  Web Caches (Proxy Server) – Cont...
  ▪ A user’s browser can be configured so, user’s HTTP requests are
    first directed to the Web Cache.
  ▪ A browser sends all HTTP requests to cache.
  ▪ As an example, suppose a browser is requesting the object
    http://www.someschool.edu/campus.gif
  ▪ Object in cache returns to client browser.
  ▪ Otherwise cache requests object from origin server, then returns
    object to client browser.
  ▪ Reduce response time for client request.
  ▪ Reduce traffic on an institution’s access link.
  ▪ Internet dense with caches: Insufficiency for content providers to
    effectively deliver content.
Unit: 2 - Application Layer          35     Darshan Institute of Engineering & Technology
  Web Caches (Proxy Server) – Example
  ▪ Example: Institutional Network
    and Internet
  ▪ Reduce response time for client
    request.
  ▪ Reduce traffic on an institution’s
    access link.
  ▪ Internet dense with caches:
    Insufficiency for content providers
    to effectively deliver content.
Unit: 2 - Application Layer           36   Darshan Institute of Engineering & Technology
  FTP (File Transfer Protocol)
  ▪ File Transfer Protocol (FTP) is the commonly used protocol for
    exchanging files over the Network or Internet. Example: Filezilla
  ▪ FTP uses the Internet's TCP/IP protocols to enable data transfer.
  ▪ FTP uses client-server architecture.
  ▪ FTP promotes sharing of files via remote computers with reliable
    and efficient data transfer.
                              FTP user        FTP          File transfer               FTP
                              interface      client                                   server
           User or
            Host
                                Local file system                             Remote file system
Unit: 2 - Application Layer                           37        Darshan Institute of Engineering & Technology
  FTP (File Transfer Protocol) – Cont…
  ▪ FTP client connect FTP server at port 21 using TCP.
  ▪ FTP uses two parallel TCP connections to transfer a file,
   1.    Control Connection: Used for sending control information between two hosts.
   2.    Data Connection: To send a file.
  ▪ Control Information like user identification, password, commands to change
    remote directory, commands to “put” and “get” files
  ▪ Client will browses remote file directory, sends commands over control
    connection.
  ▪ FTP server maintains “state” about user like current directory, earlier
    authentication.
Unit: 2 - Application Layer                   38      Darshan Institute of Engineering & Technology
  Electronic Mail (Email)
  ▪ Email is an asynchronous communication medium in which people send and
    read messages as convenient for them.
  ▪ Modern Email has many powerful features like:
         ✔ A messages with attachments
         ✔ Hyperlinks
         ✔ HTML-formatted text
         ✔ Embedded photos
  ▪ Email is fast, easy to distribute, and inexpensive.
  ▪ High level view of Internet mail system and its key components.
         1.    User agents
         2.    Mail servers
         3.    Simple Mail Transfer Protocol (SMTP)
Unit: 2 - Application Layer                      39       Darshan Institute of Engineering & Technology
  Email - Cont…
  User Agent                                                        user
  ▪    User agents allow users to read, reply to,                   agent
       forward, save, and compose messages.
                                                            mail                             user
  ▪    E.g. Microsoft Outlook and Apple Mail.              server                           agent
  Mail servers:
  ▪    A mailbox contains incoming messages
                                                                      SMTP          mail         user
       for user.                                                                   server       agent
  ▪    A message queue of outgoing (to be             SMTP
       sent) mail messages.
  SMTP                                                                 SMTP                   user
                                                                                              agent
                                                            mail
  ▪    It is a principal application layer protocol        server
       between mail servers to send email                               user
       messages.                                                       agent
         ✔ client: sending mail to server
                                                              user
         ✔ server: receiving mail from       other           agent
           different mail server                                                            Outgoing
                                                                                            message queue
                                                                                         user mailbox
Unit: 2 - Application Layer                           40       Darshan Institute of Engineering & Technology
  SMTP
  ▪ Simple Mail Transfer Protocol used in sending and receiving e-
    mail.
  ▪ It use TCP to reliably transfer email message from client to server
    using port 25.
  ▪ It restricts the body (not just the headers) of all mail messages to
    simple 7-bit ASCII.
  ▪ SMTP does not use intermediate mail servers for sending mail.
  ▪ If receiving end mail server is down, the message remains in
    sending end mail server and waits for a new attempt.
Unit: 2 - Application Layer            41    Darshan Institute of Engineering & Technology
  SMTP - Example
  1.     Alice uses user agent to compose     4. SMTP client sends Alice’s
         message to                           message over the TCP connection.
         computer@darshan.ac.in               5. Bob’s mail server places the
  2. Alice’s1)user
              2)Alice
              3) Alice’s
               4)Client
                   5)
                   SMTPuses
                      Bob’s
                    agent  user
                             user
                          side  agent
                           client
                             mail
                               of
                           sends  agent
                                  sends
                                  SMTP sends
                                   server
                                  messagetoplaces
                                             compose
                                               message
                                         Alice’s
                                         opens    TCP   message
                                                  messagetoinover
                                                             her
                                                    theconnection
                                                        message
                                                  message        mail
                                                                   tomailbox.
                                                                  the
                                                                  in
                                                              Bob’s
                      6) Bob invokes his user agent to read message
                                                                     with
                                                                     Bob’s
                                                                       TCP
                 server;
                      computer@darshan.ac.in
     to her mail server;   message    placed
                           messageBob’s       inserver
                                       connection
                                         mail
                                    placed       message
                                           mailbox
                                              6.            queue.
                                                  Bob invokes   his user agent to
     in message queue.                            read message.
  3.     Client side of SMTP opens TCP
         connection with Bob’s mail server.
Unit: 2 - Application Layer                   42   Darshan Institute of Engineering & Technology
  Mail Access Protocols (POP3 and IMAP)
  ▪ POP3
         ✔ Post Office Protocol – Version 3
  ▪ IMAP
         ✔ Internet Mail Access Protocol
  ▪ A mail access protocol, such as POP3, is used to transfer mail from
    the recipient’s mail server to the recipient’s user agent.
Unit: 2 - Application Layer                   43   Darshan Institute of Engineering & Technology
  POP3 – Post Office Version 3
  ▪ POP3 is an extremely simple mail access protocol.
  ▪ With the TCP connection established, POP3 progresses through
    three phases: authorization, transaction and update.
  ▪ In authorization, the user agent sends a username and a password
    to authenticate the user.
  ▪ In transaction, the user agent retrieves messages, mark messages
    for deletion, remove deletion marks and obtain mail statistics.
  ▪ In update, after the quit command by client, ending the POP3
    session; the mail server deletes marked messages.
  ▪ POP3 is designed to delete mail on the server as soon as the user
    has downloaded it.
Unit: 2 - Application Layer          44     Darshan Institute of Engineering & Technology
  IMAP - Internet Mail Access Protocol
  ▪ To keeps all messages in one place: at server
  ▪ The recipient can then move and organize the message into a
    new, user-created folder, read the message, delete the message,
    move messages from one folder to another and so on.
  ▪ To allow users to search remote folders for messages matching
    specific criteria.
  ▪ Also permit a user agent to obtain components of messages,
    When low-bandwidth connection between the user agent and its
    mail server.
  ▪ In this case, user not to download all of the messages in its
    mailbox, particularly avoiding long messages like an audio or video
    clip.
Unit: 2 - Application Layer           45     Darshan Institute of Engineering & Technology
  DNS - Domain Name System
         Alphabetic name remember         IP Address
         by human
  ▪ It is an internet service that translates domain names into IP
    addresses.
  ▪ It is application-layer protocol. DNS service must translate the
    domain name into the corresponding IP address.
  ▪ In DNS system, If one DNS server doesn't know how to translate a
    particular domain name, it asks another one, and so on, until the
    correct IP address is returned.
Unit: 2 - Application Layer          46      Darshan Institute of Engineering & Technology
  DNS - Example
  ▪ DNS client wants to determine the IP address for the hostname
    www.amazon.com
  ▪ The client first contacts one of the root servers, which returns IP addresses for
    TLD servers - top-level domain .com.
  ▪ Then contacts TLD servers, which returns the IP address of an authoritative
    server for www.amazon.com
  ▪ Finally, contacts one of the authoritative servers for www.amazon.com, which
    returns the IP address for the hostname www.amazon.com.
Unit: 2 - Application Layer                  47      Darshan Institute of Engineering & Technology
  DNS: A distributed - hierarchical database
  ▪ Root DNS Servers – Total 13
Unit: 2 - Application Layer       48   Darshan Institute of Engineering & Technology
  DNS – Cont…
  ▪ Top-level domain (TLD) servers:
         ✔ It is responsible for com, org, net, edu, aero, jobs, museums, and all top-
           level country domains, e.g.: uk, fr, ca, jp
         ✔ Network Solutions maintains servers for .com TLD
         ✔ Education for .edu TLD
  ▪ Authoritative DNS servers:
         ✔ To organization’s own DNS servers, providing authoritative hostname to IP
           mappings for organization’s named hosts.
         ✔ It can be maintained by organization or service provider.
  ▪ Local DNS name servers:
         ✔ It does not strictly belong to hierarchy
         ✔ when host makes DNS query, query is sent to its local DNS server.
               ▪ It acts as proxy, forwards query into hierarchy.
Unit: 2 - Application Layer                        49      Darshan Institute of Engineering & Technology
  DNS - Example
Unit: 2 - Application Layer   50   Darshan Institute of Engineering & Technology
  DNS name resolution example
                                                         root DNS server
  ▪ Iterated query:
  ▪ A host at cis.poly.edu wants IP
                                                     2
    address for gaia.cs.umass.edu                         3
                                                                   TLD DNS server
                                                              4
                                  local DNS server
                                      dns.poly.edu
                                                              7        6
                                              1      8
                                                               authoritative DNS server
                                                                 dns.cs.umass.edu
                                  requesting host
                                      cis.poly.edu
                                                                    gaia.cs.umass.edu
Unit: 2 - Application Layer              51          Darshan Institute of Engineering & Technology
  DNS name resolution example
                                                         root DNS server
  ▪ Recursive query:
  ▪ A host at cis.poly.edu wants IP
                                                     2                      3
    address for gaia.cs.umass.edu                         7
                                                                    6
                                                                                    TLD DNS
                                                                                    server
                                  local DNS server
                                      dns.poly.edu                      5       4
                                              1      8
                                                               authoritative DNS server
                                                                 dns.cs.umass.edu
                                  requesting host
                                      cis.poly.edu
                                                                    gaia.cs.umass.edu
Unit: 2 - Application Layer              52          Darshan Institute of Engineering & Technology
  DNS – Cont...
  ▪ Distributed database design is more preferred over centralized design to
    implement DNS in the Internet.
  ▪ A single point of failure: If the DNS server crashes then the entire
    Internet will not stop.
  ▪ Traffic volume: With millions of device and users accessing its services
    from whole globe at the same time.
  ▪ A Single DNS Server cannot handle huge DNS traffic but with distributed
    system its distributed and reduce overload on server.
  ▪ Distant centralized database: A single DNS server cannot be “close to” all
    the querying clients.
  ▪ If it is in New York City, then all queries from Australia must travel to the
    other side of the globe, perhaps over slow and congested links cause
    significant delays.
  ▪ Maintenance: To keep records for all Internet hosts. it would have to be
    updated frequently to account for every new host.
Unit: 2 - Application Layer                53      Darshan Institute of Engineering & Technology
  Socket Programming
  ▪ Socket is interface between application and network.
         ✔ An application creates a socket.
         ✔ Two type of socket:
               1. TCP Socket – Reliable Transmission
               2. UDP Socket – Unreliable Transmission
  ▪ Once configured the application can pass data to the socket for
    transmission and receive data from the socket (transmitted
    through the network by some other host).
                              application                   application
                               proce        socke             proce              controlled by
                                 ss         t                   ss               app developer
                              transport                      transport
                              network                        network              controlled
                                                                link
                                                                                  by OS
                                 link       Internet
                              physical                       physical
Unit: 2 - Application Layer                            54   Darshan Institute of Engineering & Technology
  Type of Socket
  ▪ SOCK_STREAM                       ▪ SOCK_DGRAM
     ✔ E.g. TCP                          ✔ E.g. UDP
     ✔ Reliable delivery                 ✔ Unreliable delivery
     ✔ In-order guaranteed               ✔ No order guarantees
     ✔ Connection-oriented               ✔ Connection-less
     ✔ Bidirectional                     ✔ Unidirectional
           App                                                              D1
                                             App
      3 2                                  3 2
          1                                                                   D2
                    socket    Dest.            1    socket
                                                                       D3
Unit: 2 - Application Layer           55      Darshan Institute of Engineering & Technology
  Outline - Summary
  ▪ Principles of Computer Applications
         ✔ Browser, Web Server, Email, P2P Applications etc…
  ▪ Application Layer (TCP – UDP Services)
  ▪ Web (Web Pages – Objects like html, jpeg, mp3, etc…)
  ▪ HTTP (TCP connection, port-80, persistent & non-persistent conn.),
    Request & Response Message format, Cookies, Web caches, FTP,
    Port-21
  ▪ E-mail (User agent, Mail Server, SMTP port - 25), POP3, IMAP
  ▪ DNS (Domain names to IP Address), hierarchy structure
  ▪ Socket programming with TCP and UDP (TCP – Sock_Stream, UDP
    – Sock_DGram)
Unit: 2 - Application Layer                   56      Darshan Institute of Engineering & Technology
THANK YOU