Application architectures

  • possible structure of applications
    • client-server
    • peer-to-peer (P2P)

Client-server architecture

  • server
    • always-on host
    • permanent IP address
    • data centers for scaling
  • clients
    • communicate with server
    • do not communicate directly with each other
    • may be intermittently(on and off) connect
    • may have dynamic IP addresses

P2P architecture

  • no always-on server
  • arbitrary end systems directly communicate
  • peers request service from other peers, provide service in return to ohter peers
    • self scalability - new peers bring new service capacity, as well as new service demands
  • peers are intermittently connected and change IP address
    • complex management

Processes communicating

  • process: program running within a host

    • within same host, tow processes communicate using inter-process communication (defined by OS)
    • processes in different hosts communicate by exchanging messages
  • clients, servers

    • client process: process that initiates communication

    • server process: process that waits to be contacted

      aside: applications with P2P architectures have client processes & server processes

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 to deliver message to socket at receiving process
스크린샷 2021-08-04 오후 2 48 00

Addressing processes

  • to receive messages, process must have identifier
  • host device has unique 32-bit IP address
  • Q: does IP address of host on which process runs suffice for identifying th process?
    • A: no, many processes can be running on same host
  • identifier include both IP adderss and port numbers
  • example port numbers:
    • HTTP server: 80
    • mail server: 25
  • to send HTTP message to www.naver.com web server
    • IP address: 121.33.223.11
    • port number: 80

What transport service does an app need?

  • data integrity
    • some apps (e.g., file transfer, web transactions) require 100% reliable data transfer
    • other apps (e.g., audio) can tolerate some loss
  • timing
    • some apps (e.g., Internet telephony, interactive games) require lo delay to be “effective”
  • throughput
    • some apps (e.g., multimedia) require minimum amount of throughtput to be “effective”
    • other apps (“elastic apps”) make use of whatever throughtput they get

Transport service requirements: common apps

스크린샷 2021-08-04 오후 3 21 17

Internet transport protocols services

  • TCP service
    • reliable transport between sending and receiving process
    • flow control: sender won’t overwhelm receiver
    • connection-oriented: setup required between client and server processes
    • congestion control: throttle sender when network overloaded
    • does not provide: timing, minimum throughput guarantee, security
  • UDP service
    • unreliable data transfer between sending and reveiving process
    • does not provide: reliability, flow control, congestiong control, timing, throughput guarantee, security, or connection setup

      Internet apps: application, transport protocols

스크린샷 2021-08-04 오후 3 33 28

Application layer protocol defines

  • types of messages exchanged
    • e.g., request, response
  • message syntax
    • what fields in messages & how fields are delineated
  • message semantics
    • meaning of information in fields
  • rules for when and how processes send & responsd to messages

참조

  • 컴퓨터 네트워크 이미정 교수님 강의
  • Computer Networking: A Top-Down Approach Featuring the Internet