네트워크

계층별 데이터 단위

개발정리 2024. 10. 10. 10:58

깊이 있는 이해를 위해 계층별 데이터 단위를 외워야한다.

 

 

 

크롬 브라우저가 인터넷으로 정보를 송수신하기 위해 소켓 인터페이스를 이용해 송수신 할 것이다. 이 때 데이터 단위를 따져보면 L1~L2 수준에서 구분하는 단위가 Frame 이다.

 

 

더불어 L3 IP 수준에서 논하는 단위는 Packet, L4 TCP에서 논하는 단위는 Segment이다. 여기까지는 OS 단이고, User mode application 단에서 socket 의 단위는 Stream 이다. 


Stream의 특징으로는 시작은 있지만 끝이 언제인지 정의되어 있지 않다. 이는 어플리케이션 수준에서 정하기 때문이다. 데이터를 송수신하는 운영체제 입장에서 Stream은 연속적으로 이어진 크기를 정확히 알 수 없는 큰 데이터이다. 

 

 

...

 

 

소켓이라는 인터페이스가 있으면 Stream을 wirte 하는데, 이 때 문제는 IP 계층이다. 데이터의 단위가 정해져 있으며 최대 크기가 MTU 약 1500 byte 이다. 뿐만 아니라 TCP 단에서도 Segment 단위의 크기는 MSS (Maximum Segment Size) 1460byte이다. 

 

 

만약 Stream의 크기가 4MB이라면 Segment나 Packet이 가질 수 있는 최대 크기를 넘어간다. 이 경우 Stream을 잘라서 분할한다. 소켓에서 TCP로 타고 내려가는 지점에서 Segment화가 되는데 이를 Segmentation 즉 분할이 일어난다.

 

 

다시 말해 Stream이라는 연속적인 데이터를 MSS 단위로 자른다. 그리고 MTU 사이즈에 맞춰 인터넷 환경에 유통한다. 

 

 

...

 

연관지어 외우자

 

소켓 + 스트림 

TCP + 세그먼트 + MSS + 1460 byte

IP + 페킷 + MTU + 1500 byte

L1 / L2 + 프레임

 

스트림을 데이터 단위라 보기는 어렵다. 적어도 세그먼트는 되어야 하며, 스트림은 데이터 큰 덩어리 그 자체이다. 

'네트워크' 카테고리의 다른 글

IPv4 Header 형식  (1) 2024.10.14
TCP/IP 송수신 구조  (1) 2024.10.12
패킷의 생성, 전달, 소멸 과정  (1) 2024.10.10
인캡슐레이션(Encapsulation)과 디캡슐레이션(Decapsulation)  (0) 2024.10.10
L3 패킷(Packet) 이란  (0) 2024.10.10