计算机网络(第十四弹) --- 最大传输单元 MTU 对 IP / TCP / UDP 协议的影响是什么?

最大传输单元 - MTU 相当于发快递时对包裹尺寸的规定, 此限制是不同的数据链路对应的物理层产生的限制; 如果一个数据包从以太网路由到拨号链路上, 若数据包的长度大于拨号链路的 MTU, 就需要对数据包进行分片; 不同的数据链路层标准的 MTU 是不同的.

♛ MTU 对 IP 协议的影响

  由于数据链路层对 MTU 的限制, 对于较大的 IP 数据包需要进行分包:

将较大的 IP 包分成多个小包, 并给每个小包打上标签;

每个小包的 IP 协议头的 16 位标识 id 都是相同的; 其中 3 位标志字段中第二位置为 0, 表示允许分片; 第三位来表示结束标记(1 代表当前是最后一个小包, 0 则不是);

到达对端时再将这些小包按照顺序重组, 拼装到一起后返回给传输层;

一旦这些小包中的任意一个小包丢失, 接收端的重组就会失败, 但是 IP 层不会负责重新传输数据.


♛♛ MTU 对 UDP 协议的影响

一旦 UDP 携带的数据超过一定量, 就会在网络分成多个 IP 数据段;

多个 IP 数据段有任意一个丢失都会引起接收端网络层重组失败, 这就意味着如果 UDP 数据报在网络层被分片, 整个数据被丢失的概率就大大增加了.


♛♛♛ MTU 对 TCP 协议的影响

TCP 的数据报也不是无线大的, 也是受限于 MTU; TCP 的单个数据报的最大消息长度称之为 MSS;

扫描二维码关注公众号,回复: 15786189 查看本文章

TCP 在建立连接时双方会进行 MSS 协商; 最理想的情况下 MSS 的值正好是在 IP 不会被分片处理的最大长度, 这个长度仍然受限于数据链路层的 MTU;

双方在发送握手信号 SYN 时会在 TCP 的首部写入自己能够支持的 MSS 值, 然后双方得知对应的 MSS 值后选择较小的作为最终 MSS (其值就是在 TCP 首部的 40 字节变长选项中).

猜你喜欢

转载自blog.csdn.net/Onion_521257/article/details/129698072