Application layer
Conceptual, implementation aspects of network application protocols
Client-server paradigm
Peer-to-peer paradigm
Transport-layer service models
Server
Always on host
Permanent IP address
Data centers for scaling
Clients
Communicate with server
May be intermittently connected
May have dynamic IP addresses
Do not communicate directly with each other
P2P architecture
No always on server
Arbitrary end systems directly communicatee
Peers request and provide service
“Self scalability”
new peers bring new service capacity, as well as new service demands
새로운 peer가 늘어나면 전송 속도가 빨라짐
Peers are intermittently connected and change IP address
Process communicating
Process : program running within a host
Within same host, inter-process communication (defined by OS)
client process initiates communication
server process waits to be contacted
Sockets
Process sends/receives messages to/from its socket
Socket analogous to door
Addressing processes
To receive messages, process must have identifier
Host → 32-bit IP address (IPv4)
identifier = (IP address, port number)
example port numbers :
HTTP server : 80
Mail server : 25
To send HTTP message to http://gaia.cs.umass.edu web server :
IP address : 128.119.245.12
port number : 80
App-layer protocol defines
Types of messages exchanged
e.g. Request, response
Message syntax
What field in messages & how fields are delineated
Message semantics :
Meaning of information in fields
Rules
When and how processes send & respond to message
Open protocols :
Defined in RFCs
e.g. HTTP, SMTP
Proprietary protocols :
e.g. Skype
Characteristics of Applications
Data Integrity
100% 신뢰할 수 있는 데이터 전송 - e.g. file transfer, web transactions
데이터 손실의 관용(tolerant) - e.g. voice, video application
Timing
효율적으로 사용하기 위한 낮은 지연시간 - e.g. Internet telephony, interactive games
Throughput
효율적으로 사용하기 위한 최소 전송량(throughput)
사용자가 얻을 어떠한 전송량(whatever throughput)
Security
암호화(Encryption), 데이터 무결성(data integrity)
TCP(Transmission Control Protocol) service :
신뢰있는 전송, Reliable transport : 전송 중 데이터의 손실이 없게끔 함
흐름 제어, Flow control : Receiver가 데이터를 받을 때 수용하지 못하고 버려지는 상황을 없게 함
혼잡 제어, Congestion control : 라우터의 queue에서 오래 대기를 하지 않게 하거나 데이터가 버려지지 않게 함
연결지향, Connection-oriented : source가 destination으로 보낼 때 destination이 받을 수 있는 상태인지 확인하고 보냄
Does not porvide : timing, minimum throughput guarantee, security
UDP(User Datagram Protocol) service :
비신뢰성, Unreliable
Does not provide : reliability, flow control, congestion control, timing, throughput guarantee, security, or connection setup
Network 기반 application들의 상호작용 모델은 크게, client-server model과 peer-to-peer model이 있다. 이 두 모델의 차이점을 두 모델의 차이점을 두 문장 내외로 기술하시오.
서버가 컨텐츠를 가지고 있고 클라이언트에게 주는 방식
서버가 컨텐츠를 가지고 있지만 엔드시스템인 사용자에게도 컨텐츠가 복제되어있음. 그렇기 때문에 사용자가 다른 사용자에게 컨텐츠를 제공할 수 있음