码迷,mamicode.com
首页 > 其他好文 > 详细

数据报的分片与组装

时间:2016-07-23 21:40:20      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:数据报分片、组装

1、IP数据报格式

技术分享


2、MTU

MTU(最大传输单元):帧格式中的数据字段的最大长度。


3、分片

1)分片的条件

数据报长度超过网络所允许的最大传输单元MTU时,必须把过长的数据报进行分片后才能在网络上传输。

2)如何分片

对于发送端发送的每份IP数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时被复制到每个片中。标志字段用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。片偏移字段指的是该片偏移原始数据报开始处的位置。另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。

最后,标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。

当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。这样,当数据报的这些片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。


4、组装

为了重新组合这些数据报分片,接收主机在第一个分片到达时分配一个存储缓冲区。这个主机还将启动一个计时器。当数据报的后续分片到达时,数据被复制到缓冲区存储器中片偏移量字段指出的位置。当所有分片都到达时,完整的未分片的原始数据包就被恢复了。处理如同未分片数据报一样继续进行。


5、三位标志

标志字段中的最高位目前没有意义

标志字段中的最低位记为MF(More Fragment),MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。

标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。


本文出自 “LOVEMERIGHT” 博客,请务必保留此出处http://lovemeright.blog.51cto.com/10808587/1828973

数据报的分片与组装

标签:数据报分片、组装

原文地址:http://lovemeright.blog.51cto.com/10808587/1828973

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!