본문 바로가기

[IP] IP fragmentation, reassembly

by mugglim 2022. 7. 18.

* 참고) L4는 Transport Layer, L3는 Network Layer, L2는 Data Link Layer을 의미합니다.

Maximum Transmission Unit(MTU) [byte]

MTU는 Data Link Layer(L2)에서 최대로 전송 가능한 프레임의 크기이며 단위는 바이트이다. L2에 해당하는 프로토콜(d, Wi-Fi 등)은 각자의 MTU를 가지고 있다. (예) Ethernet의 MTU는 1500, Wi-Fi는 약 2300)

IP fragmentation

IP 단편화(IP fragmentation)는 L3의 패킷이 L2의 MTU를 초과하는 경우, MTU의 크기를 단위로 패킷을 분할하는 행위이다. 예를 들어, 4000 Byte의 패킷을 1500 MTU에 맞게 단편화하면 3개의 독립적인 패킷으로 분할된다.

IP Reassembly

IP 재조립(IP Reassembly)는 IP 단편화를 통해 분할 된 패킷을 하나의 패킷으로 다시 합치는 과정을 의미한다. 패킷을 다시 재조립하기 위해서는 IP 헤더의 Fragmentation Flag, Fragment Identifier, Fragmentation Offset을 활용한다.

  • Fragmentation Flag(3bit)
    • First Bit(예약된 비트, 항상 0) : 0
    • Second Bit(단편화 여부) : 0 or 1
    • Third Bit(단편화된 패킷이 더 있는지) : 0 or 1
  • Fragmentation Offset(13bit)
    • MTU 단위로 패킷을 나눌 때, 기존 패킷의 Offset
  • Fragment Identifier(16bit)
    • 단편화된 패킷은 유니크한 ID값을 동일하게 가진다.

만약 L3에서 패킷이 유실된다면?

아래의 상황을 가정해보자.

  • IP 단편화를 하여 하나의 패킷이 3개의 독립적인 패킷으로 분할되었다.
  • 두 번째 패킷이 유실되었다.
  • L4의 프로토콜은 TCP이다.

이 상황에서 수신자의 L3에서는 모든 패킷이 도착하지 않아 reassembly 되지 않는다. 그래서 상위 레이어인 L4로 패킷이 전송되지 못한다. 이러면 송신자의 송신 버퍼에서 피드백을 받지 못해서 Timeout이 발생한다. 결국 송신자의 L4에서 패킷이 재전송된다. 즉, 패킷의 유실을 탐지하고 재전송을 하는 주체는 L4이다.

Ref.

본 글은 KOCW 컴퓨터네트워크(한양대학교 이석복 교수님) 강의를 참고하여 작성하였습니다. 잘못된 내용이 있으면 자유롭게 댓글로 달아주시길 바랍니다.

댓글