IP 단편화
From IT위키
- 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 : 현재 위치
- [+] : 추가 단편의 유무