zoukankan      html  css  js  c++  java
  • Linux下修改MTU(最大传输单元)

    MTU(最大传输单元)说明:

    1 概述

    最大传输单元(Maximum Transmission Unit)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。
    我们在使用互联网时进行的各种网络操作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节,超过此大小的数据包就会将多余的部分拆分再单独传输
    MTU的设置不是一个值天下通用,所以需要我们合理设置特殊场景的MTU 。

    2 MTU值的合理性原则

    1. 本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间 。
    2. 本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥 。

    因此所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。


    Linux下修改MTU(最大传输单元):

    1 查看本地网卡的MTU参数

    使用ifconfig命令即可查看本地特定网卡的MTU参数,如下图所示,MTU参数值为65520。

    2 测试本地网卡MTU是否大于网络MTU

    使用类似如下命令,可测试本地网卡MTU是否大于网络MTU。

    ping -s 65492 -M do 192.168.10.22
    

    通过上述命令,发送大小包大小是65492(+28)=65520字节,禁止路由器拆分数据包。 至于(+28)字节,是因为8字节的“ICMP回显示请求和回显应答报文格式长度”,以及20字节的“IP首部”。

    对于测试的结果,其含义如下。

    1. 如果正常回复,说明数据包大小不超过网络允许最大MTU;
    2. 如果没正常回复,说明数据包大小超过了网络限定的MTU大小,需要减小探测包大小再次尝试。

    3 修改MTU

    3.1 临时修改

    可以通过类似如下命令,临时修改本地特定网卡的MTU,但修改后重启将失效。

    # 将ib0网卡的MTU参数修改为65520
    ifconfig ib0 mtu 65520
    

    3.2 永久修改

    可以通过类似如下命令,永久修改本地特定网卡的MTU,但是修改后需要重启网卡生效。

    1. 通过vim /etc/sysconfig/network-scripts/ifcfg-ib0命令,打开网卡参数文件,并添加MTU=65520条目;
    2. 通过service network restart命令,重启网卡服务使参数生效。

    参考资料:

    1. 《Linux 查看与修改mtu值》
      https://blog.csdn.net/jctian000/article/details/87858470
  • 相关阅读:
    Vue 导出excel 自适应宽度
    .Net 5.0 项目数据库连接字符串
    .Net 5.0 从api下载文件到本地
    Oracle for 循环输出(游标提取)
    找到多个与名为“Home”的控制器匹配的类型
    让tomcat使用指定JDK
    .NetCore 3 单文件发布详解
    CentOS7 常用命令大全
    阿里云ECS CentOS 7.8 安装图形化桌面GNOME
    用命令禁用本地连接
  • 原文地址:https://www.cnblogs.com/autopenguin/p/15429434.html
Copyright © 2011-2022 走看看