1、流量为什么会分片?
在60年代数据交换是依靠电路交换技术的,根本没有分片一说,比如传统电话。但是由于电路交换的双方要独占链路,利用率低,直到出现了分组交换的概念,将数据分割成小包后才实现了链路共享。
既然要分割,就得首先确定一个包的大小。最初是128字节作为一个单位,后来发展到了1500字节作为最大传输单位了,即MTU为1500。
刨去20字节的头部,当传输的数据块超过1480字节时,网络层就不得不把它分片,封装成多个网络包。
2、接收方靠什么重组分片?
包里面包含了一个“Morefragments = 0” 的Flag,表示它是最后一个分片,这样接收方就可以开始重组分片了。
包含“Morefragments = 1” 的Flag,因此接收方知道后续还有更多的分片,所以先缓存不着急重组。