当我们从一个路由器发送数据包到网络层上的另一个路由器,并且数据包大小大于路由器的MTU(最大可传输单元)时,我们必须对数据包进行分段。我的问题是:假设我们需要在最后一个片段中添加填充位,那么我们在哪里添加填充位(在LSB或MSB中)以及目标路由器如何区分包位或填充位?网络层局域网
Q
网络层局域网
1
A
回答
0
您不需要添加任何填充位。所有比特将沿着路线推进,直到完整帧被发送。
2
我要你之前要考虑以下几点:在由数据链路协议强加IP数据克的最大尺寸
- 限制。
- IP是在路由器和主机上实现的最高层协议。
- 重新组装原始数据块只能在目标主机上完成。这需要网络核心中存在的路由器需要完成的额外工作。
这里数据包的初始长度是2400字节,需要按照1000字节的MTU限制进行分片。
只有13位可用于片段偏移量,偏移量为8个字节的倍数。这就是为什么第一个和第二个片段中的数据字段的大小为976字节(它是可以被8整除的最大数字,小于1000 - 20字节)。这使得总大小为996字节的第一和第二片段。最后一个片段包含剩余的428个字节的有效负载(总共有448个字节)。
偏移量可以计算为0; 976/8 = 122和1952/8 = 244。
当这些片段到达目标主机时,需要重新组装。主机为此任务使用标识,标志和碎片偏移量。为了确定哪些片段属于哪个数据块,主机使用源地址,目标地址和标识来唯一标识它们。 偏移值和更多片段位用于确定是否所有片段都已到达。
对您的问题的回答
只有非最后一个片段需要将有效负载划分为8的倍数。使用偏移量除以8的原因有助于主机识别下一个片段的起始地址。如果遇到最后一个片段,主机不需要下一个片段的地址。因此,在最后一个片段的情况下,不需要担心有效载荷是8的倍数。主机检查更多片段标志以标识最后一个片段。
有点附加信息:网络层不负责保证数据库的交付。如果遇到一个或多个碎片尚未到达,那么它只是丢弃整个数据块。在网络层以上工作的传输层将负责处理这个事情,如果它使用TCP,请求源重新传输数据。
参考文献:Computer Networking-A Top Down Approach,James F. Kurose,Keith W.Ross(第五版)
相关问题
- 1. Raspberry PI多局域网网络连接
- 2. 网络:传输层和网络层
- 3. 无线上网的无线局域网访问局域网
- 4. 具有局域网故障保护的网络体系结构
- 5. 没有广播的局域网上的网络发现
- 6. 在本地网络局域网上处理错误
- 7. 德尔福,数据库局域网和网络
- 8. Java - 列出局域网上的所有网络打印机
- 9. 将局域网与家庭网络合并
- 10. 网络流量操纵(虚拟局域网)
- 11. 限制网络套接字到局域网
- 12. php - 检查文件是否存在于网络/局域网
- 13. 使用XAMPP通过局域网访问网络服务器
- 14. 通过局域网访问本地网络应用程序
- 15. 局域网唤醒(WoL) - 通过网络启动计算机
- 16. 从其他局域网访问网络摄像机
- 17. arp从局域网到广域网
- 18. 部署/局域网
- 19. 错误局域网
- 20. thorugh局域网LAN
- 21. 贝叶斯网络多层
- 22. 如何听L3网络层?
- 23. 单层神经网络
- 24. 是否可以扫描局域网的局域网?
- 25. Wordpress网络和子域上的网站
- 26. 广域网中的Android网络
- 27. 设置网站在iis 7.5在局域网上访问兰局域网
- 28. 网络层(通过计算机网络,的Tanenbaum)
- 29. 跨网络的域登录
- 30. 从局域网访问ASP.NET网站
这些位应该不相关,因为每个包都指定了特定的帧大小。因此,对于网络层以上的任何实际上有意义的东西,附加位都是可见的。 – arkascha
如果最后一帧不是8的倍数比我们增加填充位和其他侧面路由器的数据是8的倍数,并且它如何计算最后一帧的实际大小 – PDP
如上所述:它明确指定在包内。采取网络嗅探器,几个包裹,并自己看看。 – arkascha