본문 바로가기

cs

PDU 네트워크 데이터 단위 세그먼트? 패킷? 패킷 생성원리

 

OSI7계층을 보면 위처럼 각각의 단계로 구분할 수 있습니다. 

이를 dod모델로보면 4계층으로 구분이 되는데 

이때 상위 계층에서 하위 계층으로 데이터를 전달할때 붙이는 제어 정보를 PDU(프로토콜 데이터 단위)라고 합니다.

 

PDU는 계층에 따라 단위의 명칭이 달라지는데 

7계층인 사용자단 즉 Application 계층에서 사용하는 pdu는 (stream) data 이다 

L4) 전송계층에서는 segment

L3) ip가 있는 network계층에서는 패킷

L2) 랜카드가있는 데이터링크 단계에서는 Frame이라고 합니다

 

이때 이 pdu들이 어떻게 변환 되는지 알아 보겠습니다.

1.Application단계에서 다음단계인 Tcp/ip 단계로 데이터를 넘길때는 Socket을 통해서 넘겨야 하는데 Socket의 본질은 File입니다.

2.따라서 파일을 작성할때 data가 직렬로 연속된 1차원적인 비트 스트림 형태로 저장 됩니다. 

3.해당 Stream 데이터가 tcp로 넘어가게 되면 해당 Stream 데이터를 일정한 길이로 분해합니다. 이를 세그먼트화(segmentation)라고 합니다.  이때 분해 할수 있는 최대 크기를 지칭하는게 MSS(Maximum Segment Size)입니다

4.이때 MSS는 네트워크 계층의 PDU인 Packet의 최대크기인 MTU(Maximum transmission unit)를 기반으로 만들어 집니다. 

-특별한 이유가 없으면  MTU는1500byte 로 정해짐(MSS는 MTU보다 작음)  이는 1.5MB 파일을 인터넷을 통해 전송하면 대략 1000개 이상의 패킷이 되어서 전송됨 

5. 패킷이 전송될때 패킷의 구조는 간단하게는 Header와 Payload로 구분되는데 Header는 ip와 tcp 헤더가 붙은상태이다 이때 헤더는 순차적으로 붙게된다 (3계층 4계층 5계층 순으로 붙음) 이때 패킷의 크기는 1500byte이며(MTU) Header의 크기는 각각 20 바이트 Payload의 크기는 1460byte가 된다(이때 Header의 20byte는 새롭게 생성되서 추가된다)

-Header에는 payload의 데이터들이 어디로 가야할지에 대한 정보들이 들어있다 

 

6.이때 전송되는 패킷이 데이터링크, 하드웨어 단계로 넘어가게되면 Frame으로 incapsulation됩니다.

 

-한줄정리

세그먼트는 택배의 내용물 이를 포장해 집어넣는 것을 인캡슐레이션 패킷은 택배 패킷의 헤더는 송장 payload는 내용물(세그먼트가 페이로드가 됨) 택배가 트럭에 들어가면 (incapsulation) 프레임이 된다.

 

참고:https://www.youtube.com/watch?v=Bz-K-DPfioE 널널한 개발자tv