您当时的方位:主页 > manbet百科

MTU是什么? 最大传输单元简称MTU

2015-05-26  codeforacause.net
  • 简述如下
  • MTU(Maximum Transmission Unit,最大传输单元)是指一种通讯协议的某一层上面所能经过的最大数据包巨细(以字节为单位)。最大传输单元这个参数一般与通讯接口有关(网络接口卡、串口等)。

 

 

由于协议数据单元的包头和包尾的长度是固定的,MTU越大,则一个协议数据单元的承载的有用数据就越长,通讯功率也越高。MTU越大,传送相同的用户数据所需的数据包个数也越低。

 

MTU也不是越大越好,由于MTU越大, 传送一个数据包的推迟也越大;而且MTU越大,数据包中 bit位发作过错的概率也越大。

 

MTU越大,通讯功率越高而传输推迟增大,所以要权衡通讯功率和传输推迟挑选适宜的MTU。

 

以以太网传送IPv4报文为例。MTU表明的长度包括IP包头的长度,假如IP层以上的协议层发送的数据报文的长度超过了MTU,则在发送者的IP层将对数据报文进行分片,在接收者的IP层对接收到的分片进行重组。

 

这儿举一个详细的比如阐明IP包分片的原理。以太网的MTU值是1500 bytes,假定发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则该报文在增加20 bytes的IP包头后IP包的总长度是 3028 bytes,由于3028 > 1500,所以该数据报文将被分片,分片进程如下:

 

1. 首要核算最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes。

 

2. 然后把3028 bytes依照1480 bytes的长度分片,即将分为3片,3028= 1480+1480+68。

 

3. 最终发送者将为3个分片别离增加IP包头,组成3个IP包后再发送,3个IP包的长度别离为1500 bytes、1500 bytes和 88 bytes。

 

从以上分片比如能够看出榜首、二个分片包组成的IP包的长度都等于MTU即1500 bytes。

 

在网络通讯中,需求尽量防止发作分片和重组,由于分片重组对网络功能影响较大。数据包发送时挑选适宜的MTU巨细对进步通讯功能很有必要。MTU巨细的挑选有协议洽谈办法,经过全途径的MTU发现机制,找到整条途径的最小MTU(也便是途径MTU),然后报文发送式小于等于途径MTU,这就防止了数据传输进程中发生分片,然后进步数据转发功能。MTU的协议发现机制由于安全等方面的原因,并不能总是收效,这时候就需求依据网络的特性挑选合理的MTU。假如在报文传送进程中分片是不可防止的,那么要想办法让重组尽量在终端进行,防止在转发途径中进行。

 


 勘探你的网络环境的MTU合理值

 

1.按win+r组合键——运转——输入cmd后回车。

2.在呈现的“指令提示符”窗口中输入“ping -l 1472 -f www.baidu.com”然后回车。

勘探你的网络环境的MTU合理值

解说:

ping:建议一个勘探恳求; 

-l(L的小写):约束勘探包巨细; 

1472:包巨细为1472字节; 

-f:制止路由器拆分数据包 

www.baidu.com:设百度为勘探方针

 

“需求拆分数据包可是设置 DF”或是“Packer needs to be fragmented but DF set.”的提示,那就阐明数据包巨细超过了网络限制的MTU巨细。

 

 

怎么修正本机的MTU

 

修正办法如下:

 

Windows平台下

 

1、运转regedit

 

2、翻开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

 

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)。

 

填写前请先把基数设为十进制。 设置好后,需求重启机器才干收效。

 

Windows 7(XP、Vista未实测)

 

1、运用管理员权限运转cmd

 

2、运用netsh interface ipv4 show subinterfaces指令看看MTU以及本地衔接称号。

 

3、运用netsh interface ipv4 set subinterface "本地衔接" mtu=1000 store=persistent

 

(注:这儿的衔接名是你运用上面指令看到的MTU值对应的这个衔接名,他在右边显现。)

 

附:1、此办法不必重启;2、如是ipv6就将上面的ipv4改成ipv6

 

Linux下可运用如下指令修正 需求root权限

 

ifconfig网卡MTU值

 

如 ifconfig eth0 mtu 1460

 

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协议(Dial Up/Modem):576字节

 

Point-to-Point:4470字节

 

假如在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的巨细都小于或许等于链路层的MTU值。当同一网络上的主机相互进行通讯时,该网络的MTU对通讯两边非常重要。但当主机间要经过许多网络才干通讯时,对通讯两边最重要的是通讯途径中最小的MTU,由于在通讯途径上不同网络的链路层MTU不同。通讯途径中最小的MTU被称为途径MTU。