分片是网络层的一个重要函数。这是一种网关将较大的数据包分解或分成称为片段的较小数据包的技术。然后将每个片段作为单独的内部数据包发送。每个片段都有单独的头部和尾部。
有时,碎片化的数据报在遇到处理较小碎片的网络时也会碎片化。因此,数据报在到达最终目的地之前可能会被分段多次。碎片化的逆向过程是困难的。片段的重组通常由目标主机完成,因为每个片段都变成了一个独立的数据报。
例如碎片可以参考的参考:破碎实施例
重组有两种不同的策略,或者我们可以说重组片段:透明碎片和非透明碎片。
- 透明碎片:
这种分段是由一个网络完成的,它对数据包将通过的所有其他后续网络透明。每当一个大数据包到达网关时,它会将数据包分解成更小的片段,如下图网关 G1 将数据包分解成更小的片段。
在此之后,每个片段将寻址到相同的出口网关。网络的现有网关重组或重组所有分片示例如上图所示为出口网关,网络 1 的 G2 在将 G1 创建的所有分片传递给网络 2 之前将其重组。因此,后续网络不知道发生了分片。 ATM 网络使用这种类型的策略。这些网络使用特殊的硬件来提供透明的数据包分段。
透明度策略有一些缺点如下:
- 在网络中重组片段的出口片段必须知道它何时接收到所有片段。
- 有些分片选择不同的网关退出,导致性能不佳。
- 它在重复分片和重组大数据包时增加了相当大的开销。
- 非透明碎片:
这种分段由一个网络完成,对于数据包通过的后续网络是不透明的。被一个网络的网关分片的数据包不会被同一网络的出口网关重新组合,如下图所示。一旦数据包被分段,每个片段都被视为原始数据包。数据包的所有片段都通过出口网关,这些片段的重组在目标主机上完成。
非透明分片的缺点如下:
- 每个主机都具有重新组装片段的能力。
- 当一个数据包被分片时,分片应该以这样的方式编号,以便可以重建原始数据流。
- 由于每个片段必须有自己的标头,因此总开销会因碎片而增加。