조각화란?
- 큰 IP 패킷들이 작은 MTU(Maximum Transmission Unit, 보통 1500Byte)를 갖는 링크를 통하여 전송되려면 여러 개의 작은 패킷으로 쪼개어 조각화 되어 전송돼야 한다.
- 즉, 목적지까지 패킷을 전달하는 과정에 통과하는 각 라우터마다 전송에 적합한 프레임으로 변환이 필요
- 일단 조각화되면, 최종 목적지에 도달할 때까지 재조립되지 않는 것이 일반적
- IPv4에서는 발신지 뿐만 아니라 중간 라우터에서도 IP 조각화가 가능
- IPv6에서는 IP 단편화가 발신지에서만 가능
- 재조립은 최종 수신지에서
- Header(20Byte)값을 뺀 Data값을 조각화한다.
- MTU도 Header를 뺀다(MTU에도 Header가 붙기 때문)
- identification(id)값은 모두 같음
- Offset = 데이터크기 / 8
ex)
첫 번째 단편 - 0 / 8 = 0
두 번째 단편 - 3,280 / 8 = 410
세 번째 단편 - 6,560 / 8 = 810
마지막 단편 - 9,840 / 8 = 1230
조각화 과정
MTU가 1500이고 보낼 패킷이 2000이기에 보낼 수 없다.
그래서 조각화를 해야 한다.
MTU를 거르고 Ethernet을 붙인다. 그래서 1514크기의 프레임이 wireshark에 많이 잡힌다.
ICMP는 마지막 조각에만 붙는다
4
는IPv4
5
는HLEN
로 20Byte
05 dc
는1500
12 ab
는id
2
0 00
은00100000
00000000
로 3비트 flag가001
로 마지막 단편이 아니란 뜻
80
은Time To Live
01
은 상위 프로토콜로ICMP
를 뜻함
00 00
는CheckSum
c0 a8 0a 0a
는 출발지 주소
c0 a8 14 14
는 목적지 주소
<출처>
"네트워크 기초(개정판)".따라하면서 배우는 IT.https://www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi (2023.03.13)
내용정리는 제 입맛에 맞게 바꿨습니다.