Layer : 개념을 나눠 둔 것. 이 안에 여러 protocol이 있다.
이름 | 프로토콜 |
---|---|
Application | Process |
Transportation | TCP/UDP |
Network | IP |
Link | Wifi, LTE, Ethernet |
Physical |
하위 층은 상위 층에 서비스를 제공하게 된다.
ex) T → A : Inegrity, 속도
Application layer은 프로세스간의 통신을 주관한다.
프로세스 간 메시지를 주고 받는 용도인 Socket으로 연결 → IP address와 Port number이 이용된다.
Data Integrity → 얘만 제공해주고 나머지는 App이 하게 된다.
데이터의 신뢰성을 보장함
Throughput
1초에 n양이 도달해야하는 정도
Timing
packet이 적어도 어느 시간에 도달하도록
영상 송출 같은데서 중요한 문제
app | application layer protocol | underlying transport protocol |
---|---|---|
SMTP | tcp | |
remote terminal access | telnet | tcp |
web | HTTP | tcp |
file transfer | FTP | tcp |
streaming | HTTP, RTP | tcp or udp |
internet telephony | SIP, RTP | tcp or udp |
hypertext transfer protocol
→ 이전에 Transport 층에서 TCP가 필요
프로세스 간의 통신 방식
연결시 : Three-way handshaking
socket → bind → listen → accept 과정으로 client와 연결됨
→ 이후 client로 부터 connect 요청이 올 때까지 block 된다.
→ read, write을 반복하고 client가 close 요청을 하면 server도 close한다.
Multiplexing : 여러 프로세스에서 생성된 socket을 transport layer에서 segment로 묶어서 이동시킴
Demultiplexing : segment를 받아서 application으로 올려줄 때 분리해서 Socket으로 올려줌. 이때 어떤 Socket일지를 정하게 된다.
Demultiplexing 방법
헤더에 맨 앞에 number들로 한다.
UDP : source port #, destination port # 두 가지
→ length, checksum 까지 네가지로 에러 체크까지 해준다.
TCP : destination IP & port #, Source IP & port # 네 가지
→ 각 client마다 소켓을 관리한다.