2024年1月15日发(作者:)
MTU(最大传输单元)-电脑资料
MTU
最大传输单元(MaximumTransmissionUnit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位),
MTU分二层MTU和三层MTU,二层MTU不能改变,三层MTU可以改。
Router#shipintf0/0
FastEthernet0/0isup,lineprotocolisup
Internetaddressis10.1.1.1/24
Broadcastaddressis255.255.255.255
Addressdeterminedbysetupcommand
MTUis1500bytes#三层MTU
Router#shintf0/0
FastEthernet0/0isadministrativelydown,lineprotocolisdown
HardwareisAmdFE,addressisc800.17d4.0000(biac800.17d4.0000)
MTU1500bytes,BW100000Kbit,DLY100usec#二层MTU
因特网协议允许IP分片,这样就可以将数据包分成足够小的片段以通过那些最大传输单元小于该数据包原始大小的链路了。这一分片过程发生在网络层(OSI模型的第三层),第四层为传输层,传输层是OSI模型中最重要的一层,这里是根据窗口控制传输,而非MTU。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理
的最大尺寸将较长的数据包进行强制分割。例如,以太网无法接收大于1500字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组,该过程即被称为排序。它使用的是将分组发送到链路上的网络接口的最大传输单元的值。原始分组的分片都被加上了标记,这样目的主机的TCP层就能将分组重组成原始的数据包了。
在因特网协议中,一条因特网传输路径的“路径最大传输单元”被定义为从源地址到目的地址所经过“路径”上的所有IP跳的最大传输单元的最小值。或者从另外一个角度来看,就是无需进一步分片就能穿过这条“路径”的传输单元的最大值。
RFC1191描述了“路径最大传输单元发现方法”,这是一种确定两个IP主机之间路径最大传输单元的技术,其目的是为了避免IP分片。在这项技术中,源地址将数据报的DF(Don'tFragment,不要分片)位置位,再逐渐增大发送的数据报的大小——路径上任何需要将分组进行分片的设备都会将这种数据报丢弃并返回一个“数据报过大”的ICMP响应到源地址——这样,源主机就“学习”到了不用进行分片就能通过这条路径的最大的最大传输单元了。
对于时下大多数使用以太网的局域网来说,最大传输单元的值是1500字节。但是像PPPoE这样的系统会减小这个数值,这就使得在使用最大传输单元发现方法时可能会产生这样的结果:一些处于配置不当的防火墙之后的站点变得不可达了。对于这种情况,还是可能找到变通的方法的,但这取决于你控制的是网络的哪一部分。这些方法包括改变用来在防火墙一端建立TCP连接的第一个分组的MSS(MaximumSegmentSize,最大分段大小)。
对于一些支持老版本以太网协议的IBM系统(例如XSeries),可能只有在把最大传输单元设为1492之后才能在当下常见的局域网上进行运作。
普通媒体的MTU表
如何检测网关的MTU
在本机打开dos窗口,执行:ping-f-l1472192.168.0.1其中192.168.0.1是网关IP地址,1472是数据包的长度,
如何修改本机的MTU
修改方法如下:
Windows平台下
1、运行regedit
2、打开:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces
3、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)。
填写前请先把基数设为十进制。设置好后,需要重启机器才能生效。
Windows7(XP、Vista未实测)
2、使用netshinterfaceipv4showsubinterfaces命令看看MTU以及本地连接名称。
3、使用netshinterfaceipv4setsubinterface"本地连接"mtu=1000store=persistent
(注:这里的连接名是你使用上面命令看到的MTU值对应的这个连接名,他在右边显示。)
附:1、此方法不用重启;2、如是ipv6就将上面的ipv4改成ipv6
Linux下可使用如下命令修改需要root权限
ifconfig网卡MTU值
如ifconfigeth0mtu1460
MaxMTU是最大的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协议(DialUp/Modem):576字节
Point-to-Point:4470字节
如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的大小都小于或者等于链路层的MTU值。当同一网络上的主机互相进行通信时,该网络的MTU对通信双方非常重要。但当主机间要通过很多网络才能通信时,对通信双方最重要的是通信路径中最小的MTU,因为在通信路径上不同网络的链路层MTU不同。通信路径中最小的MTU被称为路径MTU。


发布评论