关于数据分片与分段
链路层要求数据帧的长度最大值为 1500 字节,该特性被称为 MTU,即最大传输单元。当 IP 层的数据报大于 MTU 时,IP 层就需要进行分片,就是把数据报分成若干片,使每一片都小于 MTU。
但是,对于采用 TCP 作为传输协议的数据而言,在 IP 层是不会分片的,因为 TCP 层有一个分段的特性 —— MSS,最大分段大小。为了达到最佳传输效能,TCP 在建立连接时会协商双方的 MSS 值,这个值通常是 1460(MTU1500 - IP包头20 - TCP包头20),对于大于 1460 的数据,当到达 TCP 层时便分段了,因此 IP 层就不用分片了。
而 UDP 则会产生 IP 分片,因为没有类似于 TCP 的分段特性。
分片发生在网络层,分段发生在传输层。