题目 假设主机A与路由器R1连接,R1又与另一个路 由器R2连接R2与主机B连接.假定一个要发给主机B的TCP消息被传递给主机A的IP代码,其中包含了900个字节的数据和20个字节的TCP头.**请写出在三条链路上传输的每个数据包中IP头部的total length,identification dF,Mf和fragment offset字段。*假定线路a21链路可以支持的最大增长为1024字节,其中包含14字节的针头列入R1-R2可以支持的,最长帧长为512字节,其中包含8字节的帧头 链路R2-B可以支持的最大帧长为512字节,其中包含12字节的帧头
首先了解各部分作用
total length:数据和头的总长度
identification:主要 用来指明归属哪个数据报,尤其指在一个数据报中拥有多个分片的话,这多个分片都有相同的identification
DF:代表是否分段
MF:表示是否还在分段
fragment offset:代表数据偏移位置,除了最后一个分段外,之前的所有分段都是8字节的倍数
TCP:先统一当成IP协议的数据
~~~~
一共传输920个字节(900数据加上20TCP头部)
因为在IP层进行封装一次,IP数据报的报头是20字节
所以在数据链路层要传输的数据是940字节
940+14=954<1024所以可以直接传输。
(14帧头是数据链路层的,total length在IP层)
A-R1 total…为940;id…为x;DF,MF,fra…均为零
其中x看题目,确保各分片数据报统一即可
~~~~
R1-R2链路上,一次最多只能传输512-8=504
个字节,所以需要分片
又因为分片数据需要是8的字节倍数,fra…是数据偏移
所以504-20=484;
选做大八倍数480
R1-R2第一个数据传送:total…为500(480+20ip头);id…为x;DF为0;MF为1;fra…为0
~
由于已经发送了480个,还剩440
440+20<504,可以直接发送
R1-R2第二个数据传送:total…为460;id…为x;DF为0;MF为0;fra…为60(480/8数据报偏移位置)
~~~
R2-B就不写了