数据报分段格式

有一数据报长1300B,传送该数据报网络的MTU为620B,试写出每个分段的格式?
---------------------------------------------------------------

数据报分为三段,第一、二段的大小等于MTU,第三段就是剩余的长度。
过程是先将第一段传送,因为第二段仍然大于MTU,重复分段过程,
然后发送第三段。
下面我们给出一个定义:

FO - 段偏移

IHL - Internet包头长度

DF - 不分段标记

MF - 多段标记

TL - 总长度

OFO - 原段偏移

OIHL - 原Internet包头长度

OMF - 原多段标记

OTL - 原总长度

NFB - 段数

MTU - 最大传输单元

过程:

IF TL <= MTU THEN 将此数据报提交给下一处理阶段

ELSE IF DF = 1 THEN 抛弃数据报

ELSE 产生第一段:

(1) 复制源internet包头;

(2) OIHL <- IHL;OTL <- TL;OFO <- FO;OMF <- MF;

(3) NFB <- (MTU-IHL*4)/8;

(4) 附加第一个NFB*8个数据字节;

(5) 校正包头:MF <- 1;TL <- (IHL4)+(NFB8);重新计算校验码;

(6) 提交数据段到下一个数据报处理阶段;

产生第二个段:

(7) 有选择地复制internet头;

(8) 附加剩余数据;

(9) 校正包头:IHL <- (((OIHL*4)-(未复制的选项长度))+3)/4;

TL <- OTL - NFB*8 - (OIHL-IHL)*4);

FO <- OFO + NFB;MF <- OMF;重新计算校验码;

(10) 将此段提交分段检测;结束。

除了第三段外,前两段都达到了MTU的大小。

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus