Network-1-Application Layer
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
- within same host, tow processes communicate using
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
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 bothIP adderss
andport 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
Internet transport protocols services
- TCP service
reliable transport
between sending and receiving processflow control
: sender won’t overwhelm receiverconnection-oriented
: setup required between client and server processescongestion control
: throttle sender when network overloadeddoes not provide
: timing, minimum throughput guarantee, security
- UDP service
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