mtu
数据链路层:用于俩个设备(同一种数据链路节点)之间进行传递
一、认识以太网
以太网的帧格式:
认识MTU:
- MTU,最大传输单元,相当于发快递时对包裹尺寸的限制,是由物理层产生的限制,通常与通信接口有关(网卡接口卡)
- 以太网帧中数据最小长度时46,ARP数据报的长度不够46字节,要在后面补填充为
- 以太网帧中的数据最大时1500,称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
- 如果以太网中传输的数据包长度大于MTU,则要对其进行分片
MTU对ip协议的影响:
由于数据链路层MTU的限制,对于较大的IP数据包要进行分包
- 将较大的IP包分为多个小包,并给每个小包打上标签
- 每个小包的IP协议头的16位标识(id)都是相同的
- 每个小包IP协议头的三位标志字段中,第一位保留,第二位置0,表示允许切片,第三位表示结束标志(最后一个小包置1,其余的小包置0)
- 到达对端将这些小包按顺序重组,拼装在一起返回给传输层
- 一但这些小包中任意一个丢失,接受端重组就会失败,但是IP层不负载重传(IP协议无连接,不可靠)
MTU对UDP的影响:
一旦UDP携带的数据超过1472(1500-20(IP首部)-8(UDP首部)),那么UDP数据就会在网络层被分成多个IP数据报
MTU对TCP的影响:
- TCP的一个数据报也不可能无限大,还是受制于MTU,TCP单个数据报的最大消息长度,称为MSS
- TCP在建立连接的过程中,双方会进行MSS协商
- 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度受限于数据链路层的MTU)
- 双方在发送SYN的时候会在TCP的头部写入字节能支持的MSS值
- 然后双方得知对方的MSS值之后,选择较小的作为最终MSS
- MMS的值就在TCP首部的40字节变长选项中(kind=2)
MTU和MSS的关系
MTU:最大传输单元,由不同的数据链路层对应物理层产生的(硬件规定),以太网的MTU=1500
MSS:最大分节大小,为TCP数据包每次传输的最大数据分段大小
MSS的取值受限于MTU