
정답
단편화된 데이터그램 수: 2개, Total length 합: 840, 헤더 정보: (1) TL=500, ID=456, MF=1, FO=0 / (2) TL=340, ID=456, MF=0, FO=60
출제 의도
IPv4 단편화에서 MTU와 헤더 길이를 고려해 각 단편의 데이터 크기와 개수를 결정하고, MF 플래그와 fragment offset(8바이트 단위)을 올바르게 설정하며, 단편화 후 전체 전송 바이트 합이 헤더 중복으로 증가함을 이해하는지를 평가한다.
풀이 과정
(가)에서 원래 데이터그램의 Total length는 820바이트이고, IPv4 헤더 길이는 20바이트이므로 데이터(payload) 길이는 \(820-20=800\)바이트이다.
MTU가 500바이트이므로 단편 하나의 Total length는 500을 넘을 수 없다. 따라서 단편 하나에 실릴 수 있는 최대 데이터 길이는 \(500-20=480\)바이트이고, 마지막 단편이 아닌 경우 데이터 길이는 8바이트의 배수여야 하는데 \(480\)은 8의 배수이다.
$$ \text{payload}=800,\quad \text{max payload per fragment}=480 $$
따라서 첫 단편에 480바이트를 싣고 남는 데이터는 \(800-480=320\)바이트이므로, 두 번째(마지막) 단편에 320바이트를 싣는다. 단편 개수는 2개이다.
$$ \text{fragment payloads}=480,\ 320 $$
각 단편의 Total length는 헤더 20바이트를 더해 각각 \(20+480=500\), \(20+320=340\)이다. 이들의 합은 \(500+340=840\)이다.
$$ \sum \text{Total length}=500+340=840 $$
식별자(Identification)는 모든 단편에서 동일하게 456이다. MF는 마지막 단편이 아니면 1, 마지막 단편이면 0이다. Fragment offset은 ‘원본 데이터에서 해당 단편 데이터가 시작하는 위치’를 8바이트 단위로 나타내므로, 첫 단편은 0이고 두 번째 단편은 \(480/8=60\)이다.
$$ \text{FO}_1=0,\quad \text{FO}_2=\frac{480}{8}=60 $$
(가) 형식으로 단편 헤더 정보를 정리하면 다음과 같다.
$$ \begin{array}{c|c|c|c|c} \text{단편} & \text{Total length} & \text{Identification} & \text{MF} & \text{Fragment offset}\\ \hline 1 & 500 & 456 & 1 & 0\\ 2 & 340 & 456 & 0 & 60 \end{array} $$
<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>