IP数据报的分片和组装-创新互联

一、IP数据报的格式

专注于为中小企业提供成都做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业滨州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

IP数据报的分片和组装

  IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。

  (1)对于IPv4 ,4位版本字段是4。

  (2)4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节, 也就是不带任何选项的IP首部,4位能表示的大值是15,也就是说首部长度大是60字节。

  (3)8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、大呑吐量、大可靠性、最小成本),还有一个位总是0。

  (4)16位总长度是整个数据报(包括IP首部和IP层payload)的字节数。

  (5)每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。

  (5)3位标志和13位片偏移用于分片。

  (6)TTL(Time to live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。

   (7)协议字段指示上层协议是TCP、UDP、ICMP还是IGMP。

  (8)校验和,只校验IP首部,数据的校验由更高层协议负责。

  (9)IPv4的IP地址长度为32位。

二、分片

  当要发送的IP数据报的长度超出了大传输单位MTU,且允许分片时,就会进行IP分片。

     一个未分片的数据报的分片信息字段全为0,即多个分片标志位为0,并且片偏移量为0。分片一个数据报,需执行以下几个步骤:
  1.检查DF标志位,查明是否允许分片。如果设置了该位,则数据报将被丢弃,并将一个ICMP错误返回给源端。
  2.基于MTU值,把数据字段分成两个部分或者多个部分。除了最后的数据部分外,所有新建数据选项的长度必须为8个字节的倍数。
  3.每个数据部分被放入一个IP数据报。这些数据报的报文头略微修改了原来的报文头。
  4.除了最后的数据报分片外,所有分片都设置了多个分片标志位。
  5.每个分片中的片偏移量字段设为这个数据部分在原来数据报中所占的位置,这个位置相对于原来未分片数据报中的开头处。
  6.如果在原来的数据报中包括了选项,则选项类型字节的高位字节决定了这个信息是被复制到所有分片数据报,还是只复制到第一个数据报。
  7.设置新数据报的报文头字段及总长度字段。
  8.重新计算报文头部校验和字段。
  此时,这些分片数据报中的每个数据报如一个完整IP数据报一样被转发。IP独立地处理每个数据报分片。数据报分片能够通过不同的路由器到达目的。如果它们通过那些规定了更小的MTU网络,则还能够进一步对它们进行分片。

三、组装

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

四、三位标志

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:IP数据报的分片和组装-创新互联
标题URL:http://pwwzsj.com/article/eoiii.html