问答题 一个10000B的应用层数据需要发送,传输层使用UDP传输。如果要在以太网中传送。试问:
1)在网络层分为几个数据片?
2)指出每一个数据片的长度和偏移值。
3)在以太网上传输的总字节数是多少?
【正确答案】
【答案解析】[答案要点]
解答此题首先需要知道用户数据在各个层是怎么封装的,要加上多少封装数据?这些都是要求考生要背下来的。
1)应用层数据传到传输层,需要加上UDP报头8B;接着传输到网络层需要加上IP数据报首部20B,此时IP数据报的长度为10028B。(重点)此刻网络层将会检测此IP数据报的长度加上数据链路层的首尾部是否大于1518B。很明显此时远远大于,故需要在网络层进行分片。假设需要分N个数据片,则N=[10008÷(1518-18-20)]=7。
2)每个完整的IP数据报片的数据部分的长度为(1518-18-20)B=1480B,也就是第1片到第6片的数据片长度为1480B,第7片的数据报长度为(10008-1480×6)B=1128B。偏移字段值见表。
偏移字段值
0 1480 2960 4440 5920 7400 8880
0 185 370 555 740 925 1110
3)分片的过程如下:将10008B看成是IP数据报的数据部分,每一个分片都会加上20B的IP数据报首部以及18B的数据链路层首尾部,故以太网上传输的总字节数是[10008+(18+20)×7]B=10274B。
注:传输层的首部只有第一个分片才有,其他分片都是没有传输层首部的。