✅ IPv4의 조각화란?
IPv4 주소의 조각화(fragmentation)는 데이터그램 패킷을 작은 조각으로 분할하는 과정을 말합니다. 조각화는 패킷이 전송 경로에서 통과하는 네트워크 링크의 최대 전송 단위(MTU, Maximum Transmission Unit)보다 큰 경우에 발생합니다. 일반적인 최대 전송 단위(MTU)는 1500Byte라고 합니다.
즉, 목적지까지 패킷을 전달하는 과정에 통과하는 각 라우터마다 전송에 적합한 프레임 사이즈로 변환이 필요하기 때문에 조각화가 이루어집니다.
조각화된 패킷은 목적지에 도달하기 전에 경로상의 네트워크 장치들을 통과하며 다시 조립됩니다. 이 과정에서 패킷의 일부가 손실되거나 지연될 수 있으며, 조각화 및 재조립에 따른 오버헤드가 발생할 수 있습니다.
일단 조각화가되면, 최종 목적지에 도달할 때까지 재조립되지 않는 것이 일반적이며, IPv4에서는 발시지 뿐만 아니라 중간 라우터에서도 IP 조각화가 가능합니다.
- 조각화 예시
보내려는 전체 데이터가 11,980 Byte이고 MTU가 3300Byte일 때 전체 데이터를 위의 그림과 같이 쪼개는 것을 조각화라고 합니다.
이때 각 fragement는 IPv4 프로토콜의 크기인 20Byte만큼 포함해야 하기 때문에 순수하게 Data로 보낼 수 있는 크기는 MTU가 3300일 때, 3280의 크기만큼 보낼 수 있습니다.
MF : 다음 데이터가 있다는 것을 알리는 수
Offset : 다음 데이터가 시작하는 위치를 알리는 수
✅ 조각화의 과정
위와 같인 순수한 데이터가 2000이고, MTU가 1500일 때 패킷을 작성하면 크기가 커서 Ethernet 프로토콜이 붙을 수 없습니다. 이때 조각화가 진행됩니다.
MTU가 걸러지는 시점은 IPv4 프로토콜이 붙은 후 입니다. Data가 1480과 520으로 나눠진 이유는 1480에 IPv4의 프로토콜의 크기인 20Byte가 붙어야 하기 때문입니다.
✅ 조각화 문제
보내려는 데이터 크기 : 2379
MTU : 980
위와 같을 때 조각화는 어떻게 이루어지는가?
🏷️이미지 출처 및 참고한 사이트
Uploaded by N2T