【网络】什么是MTU|MTU 优化|最大传输单元

本文详细介绍了网络中的最大传输单元MTU,包括其定义、IP分段、Path MTU Discovery技术以及在网络编程中MTU对TCP、UDP传输的影响。MTU决定了数据帧的最大内容大小,过大的数据需要分片传输,可能导致效率降低或丢包。优化配置MTU值可以提高传输效率,避免IP分片。同时讨论了TCP的Nagle算法和TCP_CORK选项对小数据包传输的影响,指出在实时性要求高的应用中,可能需要禁用Nagle算法以提高响应速度。

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

目录

最大传输单元MTU

最大传输单元 (MTU)

IP 分段(IP Fragmentation)

Path MTU Discovery

关于网络编程中MTU、TCP、UDP优化配置的一些总结

TCP,UDP数据包的大小以及MTU


简略

什么是MTU

MTU:Maximum Transmission Unit,最大传输单元MTU。

以太网为例:

TCP/IP协议:链路层,网络层,传输层,应用层。   
其中以太网(Ethernet)的数据帧在链路层   

IP包在网络层   TCP或UDP包在传输层   TCP或UDP中的数据(Data)在应用层   
它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}  

以太网MTU 就是IP包{TCP或UDP包{Data}}的size的上限,所以我们的data 一旦达到一定的值使得IP包size超过MTU ,发送端就需要分包。接收端就需要组包。

发送方IP层就需要将数据包分成若干片,而接收方IP层就需要进行数据报的重组。更严重的是,如果使用UDP协议,当IP层组包发生错误,那么包就会被丢弃。接收方无法重组数据报,将导致丢弃整个IP数据报。

可以通过增加MTU值来增加数据的传输效率。

1、MTU(Maximum Transmission Unit) 大小指的是一个以太帧(Ethernet Frame)能携带的最大数据部分(payload)的大小, 当MTU值设置为9000 Bytes的时候也叫做巨型帧(Jumbo Frame)

2、一般情况下网卡的MTU大小是1500(最大可配置到9000),可以通过增加MTU值来增加数据的传输效率,MTU的增加即每帧(Frame)传输的数据量就会更大。

3、网络中的所有节点必须同时增大MTU,网络中小MTU的节点遇到上家发来的大于MTU的Frame(且没有切分标记),则直接丢弃。

最大传输单元MTU

原文:最大傳輸單元 (Maximum Transmission Unit, MTU) - NotFalse 技術客

比较好的简介结构:https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-mtu/

(Maximum Transmission Unit, MTU)

封装 与 拆装 一文,提及了 区段 (Segment)、资料包 (Datagram)、帧 (Frame)、封包 (Packet) 的概念。应用层的资料,经由逐层的 封装 (Encapsulation),最后成为 数据链路层 (Data-Link Layer) 的 帧 (Frame) 并传送。encapsulation

但是,帧 (Frame) 太大会发生什麽事?

 

传输需耗损大量的 缓衝区 (buffer) 大小
传输媒介可能被某一传送端独佔,造成堵塞

因此,数据链路 (Data-Link) 规范了 帧 (Frame) 的大小上限,
也就是 — — 最大传输单元 (Maximum Transmission Unit, MTU),
如果没有这些缺点, MTU 当然越大越好啦!


最大传输单元 (MTU)


不同的 数据链路层,有不同的 MTU。
如:
以太网路 (Ethernet) 的 1500 个位元组,
IEEE 802.3/802.2 的 1492 个位元组,
光纤分散式数据介面 (FDDI) 的 4352 个位元组…。
以 以太网路 (Etherner) 为例:Ethernet-frame-format
一个 以太网路 帧(Frame),最大的长度为 1518 位元组 (octet),
去掉表头与尾端数据后,载荷的最大资料长度则为 1500 octet,
且资料最小长度需为 46 octet,不足的话就用 填充位元 (padding) 填满至 46 为止。


 
使用指令:

netstat -i

可显示系统网路介面信息(含 MTU)

IP 分段
(IP Fragmentation)

 
网络层的 IPv4 与 IPv6,
其封包大小上限,分别为 65535 与 65575 位元组 (octet),
并提供较大的封包选项 — — 巨型封包 (jumbograms)。
远远超出了许多数据链路层的 帧大小(MTU)!
IP 分段 (IP Fragmentation) 即是其中一种解法:

IP 会将封包切割成多个较小的 (小于 MTU) 片段 (fragment),使其能透过数据链路层传输 ,
目的端接收完所有片段后,再将片段 (fragment) 进行重组。

 分段 (fragmentation),可能由传输路径中的任何一台路由器来做 (含来源主机),
且被分段的封包 — — 片段 (fragment) 可能经由不同路由方式,
只要最终达到相同的目的地即可。
(IPv6 只有来源端可以做分段)
将 IP 数据包 (IP Datagram) 分段的主机或路由器,
会复制必要栏位到各个片段中,
并更改 标志、片段偏移量、(封包)总长度,与重新计算各个分段的检验和。
(IP 检验和,不含虚拟表头)
最后,目的端接收完所有片段后,再将片段 (fragment) 进行重组:

IP Datagram 格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值