quartz/content/notes/17-app-layer.md
2022-10-17 12:13:03 +13:00

3.8 KiB

title aliases tags
17-app-layer
cosc203
lecture

Client-server vs peer to peer

  • social network
  • email
  • multi player games
  • video streaming
  • P2P file sharing
  • voice over IP e.g., skype
  • remote ogin

Principles

  • run of different end systems
  • communicate over network
  • no need to run application specific software on netwrk-core devices

client-server

sercer

  • provide services to clients
  • always on
  • often in data centers, for scaling
  • needs to powerful
    • multiple client requesting info at the same time
    • have specialzed software

client

  • request services by contacting and communicating with server
  • may be intermittently connected
  • do not communicate directly with each other

peer 2 peer

  • no alwasy on server
  • decentralize resource on a network
  • end systems are both client and servers
  • end systems communcatae directly
  • take advantage of distrivuted shared resources (bandwidth, CPU storage)
  • operate in dynamic environment with frequent join and leave
  • e.g., bitTorrent, blockchain

communication

  • process: network application running with a host
    • client proces and server process
    • processes in different hosts communicate by exhanging messages
  • process must have identifiers
    • ip address to differentiate processes in different hosts
      • IPv4: 10.96.35.21 • IPv6: fe80::44b:184c:7ebb:6524
    • port number to differentiate processes in same host
      • HTTP server (80), mail server (25)

functions of application protocols

protocols define:

  • types of messages
    • e.e.g, request, response
  • message syntax
    • what fields in messages and how field are delineated
  • semantics
    • meaning on information in fields
  • communcation rules
    • when and how proceses send and response to messages

WEB http

  • client server model
    • browser requests, recieves and displays web objects
    • server sends objects in response to requests
  • HTTP
    • communcation betwen browsers and servers
  • https
    • extensioin of http that uses transport layer security for security

methods

  • get, head, post, put (request to store a webpage), delete, link (connect two existing resources), unlink

web cache

  • store data to be used later
  • makes loading faster
  • browser sends all request to cache
    • if object is not in cache, the cache requests from the server
    • files are stored as representation (a snapshot)
    • files expire after their time to live is finished
  • we need to check if cache is up to date
    • conditional get: If-modified-since:
    • if up to date then: HTTP/1.0 304 Not Modified

Email

three components

  • user agents
    • software to compose, read, reply etc email
    • handle local mailboxes
    • e.g., outlook, thunderbird
  • mail servers
    • mailbox contains emails for user
    • each box has a unique address
    • localpart@domain
    • message queue of outgoing to send messages
  • protocols
    • SMTP to send (simple mail transfer protocol)
      • send from user agent to mail server and between mail servers
      • simple ascii protocol
    • POP (post office protocol)
      • fetch email from mail server
      • simple but limited
      • delete and keep mode (delete from server of keep)
    • IMAP (internet mail access protocol)
      • more functions
      • e.g., check email header before downloading, partially download email
      • allow users to organize mails on server
    • MIME (multi prpose internet mail extensions)
      • supplementary protocol to allow non-ASCII dat to be send through emails
      • WAN connect LANS together
  • email format
    • envelope
      • contains address of sender and reciever
      • used by smtp to transport email
    • message
      • header
        • defines sender, reciever, subject etc
      • body
        • contains actial information
    • email spoofing can make the addresses in header and in envelope different

DNS

  • ip adresses are hard to remember
  • need to map betwen host name and ip address

Socket programming