我们知道网络中数据都是按照数据包来发送的,那么包的大小显然不能是无限大的,总是需要一个限度。所以当数据包长度过长的时候,就需要将其分段,变成比较小的几个部分,再进行重组,恢复为原来包的大小。这个过程就是数据包的分段和重组。
首先包的长度受到哪些条件的限制呢?第一是硬件条件,也就是路由器缓冲区的大小不能无限大。第二是协议规定的,因为包越长,包里面数据的错误率就越高,当包长到一定长度的时候错误率会很高,从而重发的几率加大,这是不合算的。第三就是公平性,太长的包占据太长的发送时间,这对于其他数据包是不公平的。所以才要分段。
分段邮两种:透明分段和不透明分段。
透明分段原则是:当包遇到了通不过的子网的时候,在进入之前由路由器按照子网的MTU(最大传输单元)进行分段,前面的分段对于后面的网络透明,离开子网的时候重组经过分段的包。
透明分段中,所有小包必须经过同一个子网的出境端口,因为所有的包在任何一个子网分段,在这个子网出境的时候都需要重组。在下一个子网如果还需要分段,那么就在子网进入前分段,在离开子网时重组。所以出口网关必须知道何时才能确定接受度到全部小包,并且在离开的时候进行重组。但是缺点就是不断的分段重组会增大网络网关的开销。
不透明分段:在任何中间网关都不进行重组,必要的时候只进行分段,仅仅在目标主机进行重组。
对于不透明分段,它不用进行频繁的重组,但是对于目标主机的要求就更多了,必须具备重组的能力。
重组的目的是将若干的小包还原成原始的长包。重组的方法一般是按照树形结构编号,这个编号是分段的时候所指定的。
以上就是网路的分段与重组,这个是网络层的一个重要功能,其他的功能可以看一下文章: