为啥统信修改mtu有什么影响网卡mtu值,能保存但不生效?

一、jumbo frames 相关1、什么是 jumbo framesJumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bytes大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;Jumbo frame 在full-duplex 的Ethernet网络上运行;Jumbo frame定义了一个“link negotiation”协议,来和对端的设备协商,是否对端设备支持使用Jumbo frames;标准的以太网IP报文大小是:1500 bytes,不包含以太网头和FCS的18 bytes(6+6+2+4),如果包含以太网头和FCS,则为1518 bytes;Jumbo frame 一般指的是二层封装三层IP报文的值大于9000bytes的报文。Jumbo frames的提出背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 802.3 Working Group的同意,但是大多数设备厂商都已经支持。2、使用 jumbo frames 的优点在数据传输时,由于IEEE的规定最大的帧规定为1,500比特(主机在早期的半双功网络中),所以需要数传输需要经过 数据的切要 --- 传输 ---数据组合 的过程。而使用的最大帧越小,传输包的量就越大,计算量相应会多,而产生的后果是:增加主机的计算量,消耗CPU资源;影响网络传输的速度。而使用大帧优点自然也不言而喻 ———— 降低CPU计算量、加快数据传输。二、修改MTU值上面啰嗦了一大堆,修改帧大小实际需要的操作就是修改MTU(Maximum Transmission Unit)值,即修改最大传输单元。修改方法如下:1、ifconfig命令修改ifconfig ${Interface} mtu ${SIZE} upifconfig eth1 mtu 9000这个是最通用的方法,对所有的linux 发行版本都有效。缺点就是重启后失效,需要在开机项中加载。2、修改配置文件CentOS / RHEL / Fedora Linux 下# vi /etc/sysconfig/network-scripts/ifcfg-eth0#增加如下内容MTU="9000"#保存后重启网卡生效# service network restart#启用IPv6地址的,修改IPv6 mtu的参数为IPV6_MTU="1280"Debian / Ubuntu Linux 下# vi /etc/network/interfaces#增加如下值mtu 9000#保存后,重启网络生效# /etc/init.d/networking restart三、为什么MTU最大值为9000字节从理论上计算,4 bytes的CRC最大支持12000 bytes大小的字节,超过了就没有办法检查了。另外还有其他一些协议如NFS等的限制。最后需要注意的是,在经过交换网络设备时,仅仅修改主机端的MTU值是不行的,还需要交换网络设备上开启jumbo frames功能。四、MTU测试使用ping命令,-l 指定包大小,-f 选项为通知操作系统不能私自更改该数据包大小。使用英文操作系统时的提示为:Packet needs to be fragmented but DF set .另外的,部分Linux系统还可以通过如下方式查看、修改MTU值。查看:设置:echo "1460" >
MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度。设置多大的MTU值取决于你的上网方式,不同的上网方式支持不同的MTU,下面列出了一些上网方式的MTU值:EtherNet(一般上网方式,默认值):1500PPPoE/ADSL:1492Dial Up/Modem:576在 本机打开dos窗口,执行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是网关IP地址,1472是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现: Packet needs to be fragmented but DF set. 表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包 长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。修改方法如下:Windows平台下1、运行regedit2、打开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces3、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:A、确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19;B、用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;C、如果IPAddress的键值与A中的IP相同,即192.168.0.19,则该子项就是要找的网卡。4、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“DWORD 值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口,填入MTU的值(一般为十进制的1480)。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。Windows 7(XP、Vista未实测)1、使用管理员权限运行cmd2、使用netsh interface ipv4 show subinterfaces命令看看MTU以及本地连接名称。3、使用netsh interface ipv4 set subinterface “本地连接 2” mtu=1000 store=persistent(注:这里的连接名是你使用上面命令看到的MTU值对应的这个连接名,他在右边显示。)附:1、此方法不用重启;2、如是ipv6就将上面的ipv4改成ipv6Linux下可使用如下命令修改 需要root权限ifconfig网卡MTU值如 ifconfig eth0 mtu 1460MaxMTU是最大的TCP/IP传输单元,在TCP/IP协议中,将要传输的数据分成较小的组进行传输,每个组的 大小为576字节。Windows默认的字节为1500,这是以太网的分组标准。ADSL使用的 PPPoE略小于这个数值,一般为1492。而某些网站采用的MaxMTU大于1492,所以,可能导致某些网页不能访问。修改Windows默认的 MaxMTU可以解决这个问题。不论是 PC机上安装的PPPoE软件或者是内置在Modem的 PPPoE软件,在使用中都有可能遇到这个问题。 如果使用路由器出现此种情况, 请在防火墙配置 => 基本设定 里, 将MTU改为手工, 设置为 1492 即可. 那如何确定路由器从ISP获得的 MTU 为 1500, 请见附件圈出的位置.网络中一些常见链路层协议MTU的缺省数值如下:FDDI协议:4352字节以太网(Ethernet)协议:1500字节PPPoE(ADSL)协议:1492字节X.25协议(Dial Up/Modem):576字节Point-to-Point:4470字节如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的大小都小于或者等于链路层的MTU值。当同一网络上的主机互相进行通信时,该网络的MTU对通信双方非常重要。但当主机间要通过很多网络才能通信时,对通信双方最重要的是通信路径中最小的MTU,因为在通信路径上不同网络的链路层MTU不同。通信路径中最小的MTU被称为路径MTU。
分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐

我要回帖

更多关于 电信光猫mtu设置最佳性能 的文章

 

随机推荐