全部产品
Search
文档中心

云服务器 ECS:网络最大传输单元(MTU)

更新时间:Jul 15, 2026

网络最大传输单元MTU(Maximum Transmission Unit)是指在特定网络协议下,通过网络能够传输的最大数据包大小。在网络传输中,当遇到大包传输效率低或频繁发生分片重组问题的场景时,可能需要调整MTU以确保数据包能更高效、无损地通过网络中的路由器和链路层限制,从而提升网络传输速度和稳定性。

MTU的分类

根据不同的网络层和应用场景,MTU有几种不同的分类,包括:

  • 链路层MTU

    链路层能够传输的最大数据载荷(Payload)的大小。在以太网中,MTU通常为1500字节,不包含以太网头部。标准以太网帧大小 (1518字节)= 目的MAC地址(6字节) + 源MAC地址(6字节) + 类型/长度字段(2字节) + 数据载荷(1500字节) + 帧校验序列(4字节)。

  • IP MTU

    网络层可以处理的最大数据包的大小,包括IP头部和数据负载,不包括以太网帧的头部和尾部。在阿里云环境中,当我们提到MTU,通常指的是IP MTU。

    如果考虑到IP头部和TCP头部的最小尺寸(可能会因为选项的存在而更长),IP MTU (1500字节)= IP头部(20字节)+ TCP头部(20字节)+ 数据载荷(1460字节)。

  • 巨型帧MTU

    巨型帧(Jumbo Frames)是一些厂商提出的概念,它将标准以太网帧的大小扩展到了9K字节。巨型帧包括二层以太帧头及CRC部分,而IP MTU通常不包括这些部分。合理使用巨型帧可以减少网络中数据包的数量,提高网络效率。阿里云支持8500字节的巨型帧,详细信息,请参见巨型帧(Jumbo Frames)

  • 路径最大传输单元PMTU

    路径最大传输单元PMTU(Path Maximum Transmission Unit)是指在两个网络节点之间,不包括分片的情况下,能够传输的最大数据包大小。这个路径包括了从源节点到目的节点之间的所有网络设备和链路,如路由器、交换机和通信链路。

    路径最大传输单元发现PMTUD(Path MTU Discovery)是一种TCP/IP协议栈功能,用于动态发现路径上允许的最大传输单元PMTU,以避免数据包在传输过程中被分片。详细信息,请参见路径MTU发现机制(PMTUD)

影响MTU大小的因素

MTU的大小可以由多种因素决定,包括:

  • 网络设备:不同网络设备如路由器、交换机在设计时会规定其支持的最大的MTU值,这是由硬件能力决定的。如果网络中的某个设备的MTU小于其他设备,那么整个网络通信过程中的MTU大小将被该设备所限制。

  • 网络类型:不同类型的网络连接,如以太网、无线网络等,对MTU的要求也不尽相同。例如,无线网络的MTU往往较小,因为无线信号传输的稳定性相对较差,较大的MTU容易导致数据包的丢失和重传。

  • 传输介质:不同类型的网络介质(如双绞线、光纤、无线等)可能有不同的MTU限制。

  • 网络协议:不同的网络协议可能会对MTU有不同的要求,例如,以太网的标准MTU大小是1500字节。

  • 应用需求:某些特定应用可能对MTU有特殊要求,这也会间接影响整体网络的MTU。

MTU对网络性能的影响

正确地设置MTU对于网络通信的性能和效率至关重要,通常体现在:

  • 分片与重组

    当一个数据包从一个网络传到另一个具有不同MTU值的网络时,如果原始数据包的大小超过目的网络的MTU限制,数据包就需要被分割成多个小的数据包(分片)。这些分片在到达目的地后需要重新组装起来(重组)。这个过程会增加网络延迟,降低传输效率,并可能增加网络设备的处理负担,因为分片和重组都需要额外的计算资源。

  • 传输效率降低

    由于分片和重组带来的额外开销,数据包在需要通过MTU较小的链路时,可能会导致整体的网络传输速率下降。此外,分片还可能导致某些协议或应用的性能问题,例如TCP的重传机制可能会因分片丢失而被不当触发,进一步降低效率。

  • 网络拥塞

    如果MTU设置得过小,会导致数据被分割为过多的小分片进行传输,增加了网络拥塞的可能性。而较大的MTU可以减少分组的数量,降低了网络的拥塞程度,提高了网络的吞吐量。

为了优化网络性能,通常建议将网络路径中的所有环节的MTU设置为一致,且尽可能地大,但又不超过路径中任何一环节的MTU限制。这样可以减少分片和重组的需求,提高传输效率。对于特定的应用场景,如视频会议、大文件传输等高带宽需求的应用,适当调整MTU大小可以提升传输效率和质量。

查看ECS网络接口的MTU

MTU限定了网卡一次最多传输数据的字节数。当前所有ECS实例都默认支持1500 MTU(网络接口遵循以太网标准封装和传输数据)。如果您的ECS实例支持并开启了巨型帧(Jumbo Frames),则支持8500的MTU。您可以远程连接实例,通过操作系统命令查看目前网卡的MTU的值。

查看Windows实例的MTU

示例操作系统:Windows Server 2022。

示例实例规格族:ecs.g8i.large。

  1. 远程连接ECS实例。

    具体操作,请参见使用Workbench登录Windows实例

  2. 打开命令提示符或Windows PowerShell工具。

  3. 执行以下命令,查看当前网络接口的MTU。

    netsh interface ipv4 show subinterfaces

    开启巨型帧之前

    可以看到主网卡以太网和辅助弹性网卡以太网2的MTU均为默认支持的1500:

    C:\Windows\system32>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   输入字节      输出字节  接口
    ------  ---------------  ----------  ----------  -------------
    4294967295            1          0           0  Loopback Pseudo-Interface 1
          1500            1   15133287     1860371  以太网
          1500            1       1519        3234  以太网 2

    开启巨型帧之后

    可以看到主网卡以太网和辅助弹性网卡以太网2的MTU均变成8500:

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   输入字节      输出字节  接口
    ------  ---------------  ---------  ---------  -------------
    4294967295                1          0          0  Loopback Pseudo-Interface 1
      8500                1      75314    1062294  以太网
      8500                1    2386860     631043  以太网 2

查看Linux实例的MTU

示例操作系统:Alibaba Cloud Linux 3.2。

示例实例规格族:ecs.g8i.large。

  1. 远程连接ECS实例。

    具体操作,请参见使用Workbench登录Linux实例

  2. 执行以下命令,查看当前网络接口的MTU。

    ip a
    开启巨型帧之前

    可以看到主网卡eth0和辅助弹性网卡eth1的MTU均为默认支持的1500:

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:14:4d:09 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.17.0.139/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359999sec preferred_lft 315359999sec
        inet6 fe80::216:3eff:fe14:4d09/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:3f:f1:43 brd ff:ff:ff:ff:ff:ff
        altname enp0s7
        altname ens7
        inet 172.17.0.138/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359999sec preferred_lft 315359999sec
        inet6 fe80::24c1:8e90:7d8a:fc43/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    开启巨型帧之后

    可以看到主网卡eth0和辅助弹性网卡eth1的MTU均为8500:

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:14:4d:09 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.17.0.139/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359996sec preferred_lft 315359996sec
        inet6 fe80::216:3eff:fe14:4d09/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:3f:f1:43 brd ff:ff:ff:ff:ff:ff
        altname enp0s7
        altname ens7
        inet 172.17.0.138/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359996sec preferred_lft 315359996sec
        inet6 fe80::24c1:8e90:7d8a:fc43/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

使用ping命令手动探测PMTU

作为手动测试方式,您也可以通过ping命令,手动探测PMTU。详细方法如下:

警告

进行此类测试可能会影响网络通信,请在非高峰时段进行。

  • 测试方法:通过发送一个包含“不分片”标志的数据包,并逐渐增加数据包的大小,直到收到“需要分片但设置了不分片标志”的ICMP错误消息,表明前一个大小就是PMTU减去IP头部(20字节)和ICMP头部(8字节)的大小。

  • 测试命令:执行以下命令,测试网络链路上的MTU大小。

    ping -c 1 -M do -s [包大小] 目标地址

    命令中各参数的含义如下:

    • -c 1:表示只发送一个数据包。

    • -M do:表示设置DF(Don't Fragment)不分片标志。

    • -s [包大小]:指定数据包的大小(ICMP的PDU),初始值可以从一个常见的值开始(例如1472)。

      说明

      ping 使用的是 ICMP 协议,ICMP 的下层协议是 IP 协议。ICMP 的 IP 数据包 = IP 头部(20 字节)+ ICMP 头部(8 字节)+ ICMP 的 PDU,所以 -s 1472 表示整个 IP 数据包的长度等于 20+8+1472 = 1500 字节。

  • 测试示例:以下示例演示了使用 ping 命令探测从巨型帧实例到普通实例之间的 PMTU。

    • 本示例使用的两端主机 MTU 信息如下:

      FROM:172.17.0.127 ,为方便测试对比,启用ECS巨型帧,MTU为8500字节。关于启用巨型帧,请参见开启/关闭巨型帧

      TO:172.17.0.128 MTU为1500。

    • 测试:执行以下命令,尝试发送8472字节的数据包(不包括IP和ICMP头部大小)。

      ping -c 1 -M do -s 8472 172.17.0.128

    • 测试结果:收到了一个ICMP错误消息,显示"Frag needed and DF set(mtu=1500)",表示数据包因为超过了MTU(1500字节)而需要分片,但是由于DF标志位被设置,数据包不能被网络路径上的转发设备分片,因此被丢弃。

      [root@          ~]# ping -c 1 -M do -s 8472 172.17.0.128
      PING 172.17.0.128 (172.17.0.128) 8472(8500) bytes of data.
      From 172.17.0.253 icmp_seq=1 Frag needed and DF set (mtu = 1500)
      
      --- 172.17.0.128 ping statistics ---
      1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

手动修改网络接口的MTU

在阿里云上,一些通信场景或网络产品(例如VPN网关、流量镜像)对ECS发出的数据包大小有着更加严格的要求,需要您主动缩小数据包尺寸,以保证网络连通性或更好的用户体验。您需要修改ECS网络接口的MTU值,以满足这些产品的要求。

警告
  • 在修改MTU之前,请确保了解降低或提高MTU可能对网络性能产生的影响。不恰当的MTU值可能导致某些类型的数据包需要分片,从而影响网络效率。

    • Linux操作系统的MTU会通过DHCP服务器自动获取,如果您没有主动禁用DHCP或者不是在VPN网关等隧道场景中,一般情况下无需手动修改网卡MTU。

    • 如果您是在巨型帧等特定场景下,请参考相关的最佳实践来解决,而不是手动修改MTU。关于巨型帧,请参见开启/关闭巨型帧

  • 修改ECS网卡MTU时,注意不要超过ECS实例支持的MTU上限(开启巨型帧时为8500,关闭或不支持巨型帧时为1500),否则可能导致网络不通。

在本示例中,我们演示不同操作系统下手动修改ECS网卡MTU到1399字节。

Windows实例

示例操作系统:Windows Server 2022。

  1. 远程连接Windows实例。

    具体操作,请参见使用Workbench登录Windows实例

  2. 打开命令提示符或Windows PowerShell工具。

  3. 执行以下命令,查看以太网网卡的MTU。

    netsh interface ipv4 show subinterfaces

    返回信息如下所示,表示以太网网卡当前的MTU值为1500。

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   输入字节      输出字节  接口
    ------  ---------------  ----------  ----------  -------------
    4294967295                1          0           0  Loopback Pseudo-Interface 1
          1500                1   76093074     3922261  以太网
          1500                1        943        3068  以太网 2

    netsh interface ipv4 show subinterfaces命令详情

    您可以执行以下命令,查看接口信息查询命令参数详情

    netsh interface ipv4 show subinterfaces ?

    参数解释如下:

    C:\Users\Administrator>netsh interface ipv4 show interfaces ?
    
    用法: show interfaces [[interface=]<string>] [[rr=]<integer>]
            [[level=]normal|verbose] [[store=]active|persistent]
    
    参数:
    
          标记            值
          interface - 接口名称或索引。
          rr        - 刷新接口统计数据的速率(以秒计)。
          level     - 下列其中一个值:
                      normal: 每个接口显示一行。当没有给定接口时, 此为默认值。
                      verbose: 显示有关每个接口的额外信息。当给定接口时,
                               此为默认值。
          store     - 下列其中一个值:
                      active: 显示堆栈中的接口(默认)。
                      persistent: 显示永久接口。
    
    说明: 显示有关所有接口的信息, 或者如果指定接口, 显示
          有关指定接口的信息。
  4. 执行以下命令,设置以太网网络接口的MTU为1399,且设置永久生效。

    netsh interface ipv4 set subinterface "以太网" mtu=1399 store=persistent

    返回“确定”表示命令执行成功。如果返回有错误信息,根据错误信息提示修改即可。

    再次查看以太网网卡的MTU,可以看到变更已经生效。

    C:\Users\Administrator>netsh interface ipv4 show subinterfaces
    
       MTU  MediaSenseState   输入字节  输出字节  接口
    ------  ---------------  ---------  ---------  -------------
    4294967295                1          0          0  Loopback Pseudo-Interface 1
          1399                1   76123457    4064932  以太网
          1500                1       1099       3556  以太网 2

    netsh interface ipv4 set subinterface命令详情

    您可以执行以下命令查看修改子接口命令配置参数详情:

    netsh interface ipv4 set subinterface ?

    参数解释如下:

    C:\Users\Administrator>netsh interface ipv4 set subinterface  ?
    
    用法: set subinterface [interface=]<string> [[mtu=]<integer>]
            [[subinterface=]<string>] [[store=]active|persistent]
    
    参数:
    
           标记            值
           interface  - 接口名称或索引。
           mtu        - 子接口的 MTU。默认值为链接的自然 MTU。
           subinterface - 子接口 LUID。只有包含多个子接口的接口要求此选项。
           store      - 下列其中一个值:
                        active: 设置仅持续到下次启动之前。
                        persistent: 永远保持设置。
    
    说明: 修改子接口配置参数。
    
    示例:
    
           set subinterface "1" mtu=1500 store=active

Linux实例

示例操作系统:Alibaba Cloud Linux 3.2。

ip 命令临时修改
重要

此方式为临时修改网卡接口的MTU值,如果重启网络服务或重启实例,修改会失效。

  1. 远程连接Linux实例。

    具体操作,请参见使用Workbench登录Linux实例

  2. 执行以下命令,查看当前网卡的MTU。

    ip a

    可以看到,当前实例主网卡eth0和辅助弹性网卡eth1的MTU均为1500。

    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  3. 执行以下命令,临时修改网络接口eth1的MTU为1399。

    sudo ip link set dev eth1 mtu 1399

    再次查看网卡信息,可以看到eth1的MTU已经变为1399:

    [root@xxx ~]# sudo ip link set dev eth1 mtu 1399
    [root@xxx ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:de:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359127sec preferred_lft 315359127sec
        inet6 fe80::216:3eff:fede:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1399 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359127sec preferred_lft 315359127sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
编辑网络配置文件(永久生效)
重要
  • 您可以通过编辑网络配置文件的方式修改网络接口的MTU,并且重启网络接口服务或者重启实例,使修改永久生效。

  • 不同Linux发行版及版本不同,网络配置文件不同,本文以RHEL/CentOS系的Alibaba Cloud Linux 3.2为例说明具体配置。

  • 如果您绑定了辅助弹性网卡(如eth1),且需要修改辅助弹性网卡的MTU,请您确保辅助弹性网卡已经正确配置。具体操作,请参见配置辅助弹性网卡

  1. 远程连接Linux实例。

    具体操作,请参见使用Workbench登录Linux实例

  2. 执行以下命令,查看当前网卡的MTU。

    ip a

    可以看到,当前实例主网卡eth0和辅助弹性网卡eth1的MTU均为1500。

    [root@ ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359332sec preferred_lft 315359332sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  3. 执行以下命令,查看网络接口的配置文件信息。

    ls /etc/sysconfig/network-scripts

    以下为当前实例的网络接口eth0和eth1的主网络配置文件

    [root@xxx ~]# cd /etc/sysconfig/network-scripts/
    [root@xxx network-scripts]# ls -l
    total 8
    -rw-r--r-- 1 root root 170 Sep 19 10:11 ifcfg-eth0
    -rw-r--r-- 1 root root 179 Sep 19 10:43 ifcfg-eth1
  4. 执行以下命令,禁用cloud-init的网络配置功能。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    添加如下配置项:

    network: {config: disabled}
  5. 执行以下命令,编辑eth1的网络配置文件,增加MTU配置。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

    编辑后的文件内容示例(需在文件末尾增加 MTU=1399):

    # Created by cloud-init on instance boot automatically, do not edit.
    #
    BOOTPROTO=dhcp
    DEVICE=eth1
    HWADDR=00:16:3e:37:eb:bf
    METRIC=200
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=no
    MTU=1399
  6. 执行以下命令,重启网络服务,使配置生效。

    sudo systemctl restart NetworkManager

    执行成功后,再次查看网络接口信息,可以看到当前网络接口eth1的MTU值已经是1399:

    [root@xxx network-scripts]# sudo systemctl restart NetworkManager
    [root@xxx network-scripts]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0e:de:c3 brd ff:ff:ff:ff:ff:ff
        altname enp1s3
        inet 172.17.0.127/24 brd 172.17.0.255 scope global dynamic noprefixroute eth0
           valid_lft 315359946sec preferred_lft 315359946sec
        inet6 fe80::216:3eff:fe0e:dec3/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1399 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:37:eb:bf brd ff:ff:ff:ff:ff:ff
        altname enp1s5
        inet 172.17.0.122/24 brd 172.17.0.255 scope global dynamic noprefixroute eth1
           valid_lft 315359946sec preferred_lft 315359946sec
        inet6 fe80::216:3eff:fe37:ebbf/64 scope link noprefixroute
           valid_lft forever preferred_lft forever

实际应用中MTU的限制

ECS互访链路MTU限制

支持巨型帧(Jumbo Frames)的ECS实例作为源主机时,目的主机在不同通信场景下的链路最大MTU限制如下表所示:

目的主机

允许的最大MTU

“同VPC内” 或 “同region对等连接的VPC内” 开启巨型帧的ECS实例

8500

“同VPC内” 或 “同region对等连接的VPC内” 未开启巨型帧的ECS实例

1500

“通过CEN实现互通的VPC内”任意ECS实例

“通过高速通道连接的线下IDC内”的主机

“通过EIP、PIP访问”的外部主机

更多信息,请参见VPC对等连接VPC连接

云网络产品MTU限制

当您处于以下场景时,需要关注网络产品自身的MTU限制:

  • 在阿里云网络内,链路默认支持1500 MTU,对于不支持巨型帧的ECS实例通信时,需要关注VPN网关等网络组件自身的MTU限制。

  • 在使用非TCP协议(UDP、ICMP)访问特定网络产品时,需要注意不同网络产品自身的MTU限制。

当前阿里云云产品普遍不支持巨型帧,部分网络产品的最大MTU限制如下表所示:

网络产品

支持的最大MTU

说明

NAT网关

1500

负载均衡(包括ALB、NLB、CLB)

ALB和CLB不支持分片报文的转发,因此使用UDP/ICMP进行通信时,需要严格控制源ECS实例发出的数据包的整包大小不超过1500。

云服务(OSS,RDS等)

由于流量会经过负载均衡产品,需注意负载均衡产品的限制。

全球加速

云防火墙

私网连接PrivateLink

VPN网关

1399

更多信息,请参见IPsec-VPN连接中MTU配置说明

如何合理设置MTU

优化MTU的设置可以提高网络效率和性能,减少分片和重组数据包的需求,从而降低网络延迟和提高吞吐量。以下是一些关于MTU设置的最佳实践:

  • 确定合理的MTU

  • 启用和适配PMTUD:确保操作系统或网络设备支持并启用PMTUD,这样可以通过动态的方式发现和适应网络路径上允许的PMTU,应用程序通过适配感知并响应ICMP消息,对数据包进行处理(缩小数据包长度),避免分片。详细信息,请参见PMTUD工作原理

  • 考虑网络设备的限制:确保路由器、交换机等网络设备的MTU设置与操作系统的MTU设置一致,以避免数据包在传输过程中被分片或丢弃。

  • 适应特定应用:某些应用程序或协议有其推荐的MTU大小。VoIP、视频会议等实时应用可能从较小的MTU中受益,减少延迟和提高包传输效率。

  • 定期监测网络性能:应定期监视网络性能和MTU大小的变化,以便及时调整以适应网络条件的变化,包括但不限于网络吞吐量测试、延迟测试以及特定应用性能的评估。