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

IP分片如何分片?如何组装?三位标志分别是哪三位?

时间:2016-07-21 20:04:39      阅读:2098      评论:0      收藏:0      [点我收藏+]

标签:ip分片如何分片?如何组装?三位标志分别是哪三位?

 分片

       当数据报的长度超过了MTU(最大传出单元),IP层就要对数据报分片。

       对于发送端发送的每份IP数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时被复制到每个片中。标志字段用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。片偏移字段指的是该片偏移原始数据报开始处的位置。另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。最后,标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。相反把数据报丢弃并发送一个ICMP差错报文给起始端。          

      

组装

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

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


三位标志

       第一个比特保留为以后用;第二个比特是“不分片”比特,若为1,IP将不对数据报进行分片,若无法将此数据报通过任何可用网络转发,则丢弃,并发送一个ICMP差错报文给起始端,若为0, 则在需要时将数据报分片;第三个比特是“更多分片”比特,为1,表示后面还有更多的分片,为0,则表示是最后的分片。

IP分片如何分片?如何组装?三位标志分别是哪三位?

标签:ip分片如何分片?如何组装?三位标志分别是哪三位?

原文地址:http://frankenstein.blog.51cto.com/10918184/1828488

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