目录
简略
什么是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)
但是,帧 (Frame) 太大会发生什麽事?
传输需耗损大量的 缓衝区 (buffer) 大小
传输媒介可能被某一传送端独佔,造成堵塞
…
因此,数据链路 (Data-Link) 规范了 帧 (Frame) 的大小上限,
也就是 — — 最大传输单元 (Maximum Transmission Unit, MTU),
如果没有这些缺点, MTU 当然越大越好啦!
最大传输单元 (MTU)
不同的 数据链路层,有不同的 MTU。
如:
以太网路 (Ethernet) 的 1500 个位元组,
IEEE 802.3/802.2 的 1492 个位元组,
光纤分散式数据介面 (FDDI) 的 4352 个位元组…。
以 以太网路 (Etherner) 为例:
一个 以太网路 帧(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) 进行重组: