计算机网络(第七版) 谢希仁编著
5-13 一个UDP用户数据报的数据字段为8192字节。在链路层要使用以太网来传送。试问应当划分为几个IP数据报片?说明每一个IP数据报片的数据字段长度和片偏移字段的值。
解答:UDP的首部为8个字节,TCP的首部为20个字节。
IP数据报最常用的首部长度是20字节。在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。
当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层所规定的MTU值。例如,最常用的以太网就规定其MTU值是1500字节。
若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
片偏移是IP数据报首部的固定部分中的字段。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
UDP用户数据报的长度=8192+8=8200B,以太网MTU值是1500字节。若IP首部20B,则IP数据报的数据部分最多只能有1480B。8200=1480×5+800,因此划分的数据报片共6个。
数据字段的长度:前5个是1480字节,最后一个是800字节。
第1个数据报片的片偏移字节是0。
第2个数据报片的片偏移字节是1480B。
第3个数据报片的片偏移字节是1480×2=2960B。
第4个数据报片的片偏移字节是1480×3=4440B。
第5个数据报片的片偏移字节是1480×4=5920B。
第6个数据报片的片偏移字节是1480×5=7400B。
把以上得出的片偏移字节数除以8,就得出片偏移字段中应当写入的数值。
因此最后的答案,片偏移字段的值分别是:0,185,370,555,740,和925(字节数除以8)。
欢迎评论,共同进步!!