MTU为什么会不等于1500?

一、MTU简介

MTU的产生:以太网最初对报文长度没有限制,网络层最大可以接收65535个字节,但是以太网对于长报文无法可靠地传输,而且丢失后重传也会占用大量的网络资源,而将报文限制在一定的长度,以太网可以将报文大概率传输到目的地,于是就有了MTU。

MTU定义:Maximum Transmission Unit,即最大传输单元,以太网的数据链路层对网络层数据包的长度会有一个限制,其最大值默认是1500字节,链路层的这个特性称为MTU,由硬件网卡设置,是 数据链路层对网络层 的硬性限制。

这个地方可以稍微记一下,题主曾经面试的时候,有被问过MTU是在TCP/IP那一层做的限制?
答:数据链路层,在硬件网卡上设置

MTU表示网络层必须将发给网卡API的包 <= 1500byte,否则调用失败, 这个1500字节数据长度是针对网络层的,不包含链路层的头部和尾部。

简单理解:MTU其实就是在每一个节点的管控值,只要是大于这个值的数据帧,要么选择分片,要么直接丢弃。就像红绿灯的时间不能设置过长和过短一样。

每个节点都有一个MTU值,正常传输的情况如下:

当发送一个MTU=1700的包时,如果此时的IP包DF=1(表示不可以分片),则这个1700的包会直接被丢弃。

那么问题来了?

二、为什么MTU会出现大于1600导致客户业务丢包的情况呢?

CHATGPT给出的答案,以供大家参考学习

MTU(Maximum Transmission Unit)是指在网络通信中,数据链路层可以传输的最大数据包大小。通常情况下,以太网的MTU为1500字节。然而,MTU的值可能会因为以下几个原因而不等于1500:

1. 网络设备限制:某些网络设备(如路由器、交换机)可能会对MTU进行限制,以适应特定的网络环境或协议要求。这些设备可能会将MTU设置为小于或大于1500字节的值。

2. VLAN标签:在虚拟局域网(VLAN)中,数据包可能会被添加额外的VLAN标签头,这会增加数据包的大小。因此,MTU可能会被设置为小于1500字节,以适应VLAN标签的添加。

3. 隧道协议:在使用隧道协议(如IPSec、GRE)进行网络通信时,数据包会被封装在额外的协议头中,这也会增加数据包的大小。因此,MTU可能会被设置为小于1500字节,以适应隧道协议的封装。

4. 网络拥塞:在网络拥塞的情况下,为了减少传输延迟和丢包率,可以降低MTU的值。通过减小数据包的大小,可以提高传输效率和可靠性。

5. 特定应用需求:某些特定的应用程序可能对MTU有特殊的要求,需要设置不同于标准的MTU值。

小小总结下:大家有不同意见,可以在评论区敲出来哦

数据包在网络中传输的路径是:服务端-网络设备-客户端
第一:客户本身的业务,应用程序对MTU有特殊的要求
第二:网络协议如:VLAN、IPsecVPN、GRF等协议给数据包添加额外的数据包头
第三:网络设备节点:路由器、交换机对MTU进行限制,为了让数据包适应特定的网络环境

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值