IP 단편화

From CS Wiki
Revision as of 06:40, 17 January 2020 by 211.179.41.247 (talk) (→‎tcpdump 상의 데이터그램)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
IP Fragmentation
  • 패킷을 전송하고자 하는데 패킷의 크기가 MTU(Maximum Transmission Unit)을 초과하면 한번에 전송할 수 없다.
  • 패킷을 MTU 이하의 조각으로 분할하는 것을 단편화(Fragmentation), 분할된 조각을 단편(Fragment)이라고 한다.

단편화 예시[edit | edit source]

  • 4000바이트의 패킷을 전송하려고 하는데 MTU가 1500이다.
  • 패킷은 아래와 같이 분할된다.
순서 페이로드 헤더 More Flag offset
1 1480 20 1 0
2 1480 20 1 185
3 1020 20 0 370
  • 해설
    • 패킷이 4000바이트라면 페이로드 3980바이트, 헤더 20바이트이다.
    • 각 단편 모두 헤더를 가져야 하므로 최대 1480바이트로 분할될 수 있다.
    • 즉 1480, 1480, 1020 으로 분할된다.
    • 첫번째, 두번째 단편은 뒤에 이어질 단편이 있으므로 more flag가 1이다.
    • offset은 8바이트 단위로 표시된다. 1480 / 8 = 185, 2960 / 8 = 370


tcpdump 상의 데이터그램[edit | edit source]

  • 단편화된 데이터그램을 dump할 경우 아래와 같은 형태로 보인다.
id:size@offset[+]
ex) 41421:4000@8000+
  • id : 원본 IP 데이터그램
  • size : 단편화 크기
  • offset : 현재 위치
  • [+] : 추가 단편의 유무

같이 보기[edit | edit source]