计网02——MTU(数据链路层)

404 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

image-20211008205855364

认识MTU:

  • 数据链路层MTU,最大传输单元 ,是物理层产生的**数据传输最大容量限制**,通常与通信接口有关。
  • 以太网帧中数据最小长度是46字节最大长度是1500,称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU。
  • 如果数据包的长度不够46字节,要在后面要填充,数据包长度大于MTU,则要对其进行分包

MTU对IP协议的影响:

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

  • 将较大的IP包分为多个小包,并给每个小包打上标签,每个小包16位的IP协议头是相同的,小包IP协议头三位标志字段中,第一位保留,第二位置DF=0,表示允许切片,第三位表示结束标志MF=0表示结束,MF=1表示未结束。
  • 数据到达对端将这些小包按顺序重组,拼装在一起返回给传输层,若这些小包中任意一个丢失,接受端重组就会失败,但是IP层不会重传(IP协议无连接,不可靠)

MTU对UDP协议的影响:

一旦UDP携带的数据超过1472(1500-20(IP首部) - 8(UDP首部) ),那么UDP数据就会在网络层被分成多个IP数据报

MTU对TCP协议的影响:

  • MSSTCP的一个数据报受制于MTUTCP单个数据报的最大长度,称为MSS
  • TCP在建立连接的过程中,双方会进行MSS协商,双方在发送SYN的时候会在TCP的头部写入字节能支持的MSS值,双方得知对方的MSS值之后,选择较小的作为最终MSS
  • MSS的值就在TCP首部的40字节变长选项中(kind=2)
  • 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度受限于数据链路层的MTU)

MTU和MSS的关系

MTU:数据链路层的最大传输单元,以太网的MTU=1500

MSS:TCP单个数据报的最大长度

MSS的取值受限于MTU