【TCP/IP】MTU学习笔记

本文详细介绍了MTU(最大传输单元)的概念,它在网络OSI模型中的位置,以及其在网络传输中的作用。MTU限制了数据链路层的有效载荷大小,过大可能导致分片或丢包。1500通常作为以太网的MTU值,是考虑到传输效率和时间的平衡。在不同协议如PPPoE下,MTU值可能需要调整以避免额外的分包开销。理解并适当地设置MTU有助于优化网络性能,避免数据传输问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是MTU

Maximum Transmission Unit,缩写MTU,中文名是:最大传输单元。


二、属于OSI哪一层

MTU属于OSI-7层网络协议模型中的数据链路层协议


三、有什么用

MTU限制的是数据链路层的payload,也就是上层协议的大小,例如IP,ICMP等。

举一个最简单的场景,你在家用自己的笔记本上网,用的是路由器,路由器连接电信网络,然后访问了www.baidu.com,从你的笔记本出发的一个以太网数据帧总共经过了以下路径:

笔记本 -> 路由器 -> 电信机房 -> 服务器

其中,每个节点都有一个MTU值,如下:

笔记本(1500) -> 路由器(1500) -> 电信机房 -> 服务器(1500)

假设现在我把笔记本的MTU最大值设置成了1700,然后发送了一个超大的ip数据包(2000),这时候在以外网传输的时候会被拆成2个包,一个1700,一个300,然后加上头信息进行传输。

笔记本(1700) -> 路由器(1500) -> 电信机房 -> 服务器(1500)

路由器接收到了一个1700的帧,发现大于自己设置的最大值:1500,如果IP包DF标志位为1,也就是不允许分包,那么路由器直接就把这个包丢弃了,根本就不会到达电信机房,也就到不了服务器了,所以,到这里我们就会发现,MTU其实就是在每一个节点的管控值,只要是大于这个值的数据帧,要么选择分片,要么直接丢弃。


四、为什么是1500

其实一个标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验和FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500,那么,1518这个值又是从哪里来的呢?


假设以太网数据帧的大小和IP数据包的大小一致,IP数据包大小是:65535。加上以太网帧的头和尾,一个以太网帧的大小为:65535+14+4=65553,看起来似乎很完美,发送方也不需要拆包,接收方也不需要重组。

那么假设我们现在的带宽是:100Mbps,因为以太网帧是传输中的最小可识别单元,再往下就是0101所对应的光信号了,所以我们的一条带宽同时只能发送一个以太网帧。如果同时发送多个,那么对端就无法重组成一个以太网帧了,在100Mbps的带宽中(假设中间没有损耗),我们计算一下发送这一帧需要的时间:

( 65553 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值