本文主要是介绍IP数据报如何分段到达目的之后如何重组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当数据报经过N个不同类型的网络后会因其MTU不足够大 而无法将整个数据报传过去。所以将数据报分段 到达目的之后重组。我想知道 这些IP数据报是根据什么分成段 到达目的之后又依据什么将零散的段重组呢。(传闻是有几个标志标识了哪个地方是IP首部或TCP首部这些的。 )
ip数据包包头内部有一个16位的标识来区分每一个ip数据包,同时3位的标志位中有一位来表示“更多分片”, 也就是说这一位置位的时候表示该ip包被分片了并且当前这一片还不是最后一片,如果是最后一片的话就是置0的。 还有一个13位的偏移字段表示当前ip包(如果是分片)在原包中所处的偏移位置。对了,分片的每个ip包的长度字段表示的是当前分片的长度。 因此有了上面这些信息就可以在最后一片到达目的主机的时候能够将所有的分片进行重组。ip分片的时候是与上层协议(TCP)不相关的。 流程如下:ip包在途经MTU比较小的路线的时候会将ip包进行分片,理论上除了最后一片外前面的所有分片都是将送往的链路的MTU大小, 然后每一个分片的ip标识以及源目的ip等都相同,但除了最后一个分片外标志位中的“更多分片”字段位被置为1,并且偏移字段和长度字段也被填写为适当的值。 当分片到达目的主机后再根据上面的这些信息进行重组。
这篇关于IP数据报如何分段到达目的之后如何重组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!