预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

如何检测和设置路由器MTU值如何检测和设置路由器MTU值意思是网络上传送的最大数据包。MTU的单位是字节。大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。如何检测网关的MTU?最大传输单元MTU(MaximumTransmissionUnit)是指一种通信协议的某一层上面所能通过的最大数据报大小,单位是字节。合理设置路由器和本机的MTU值,可以优化上网速度。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。网站访问异常、发送带有附件的邮件失败这些都有可能和MTU的设置有关。不同的网络接入方式MTU值不相同,一些典型的MTU值:超通道6553516Mb/s信息令牌环(IBM)179144Mb/s令牌环(IEEE802.5)4464FDDI4352EtherNet(以太网)1500PPPoE(ADSL)IEEE802.3/802.21492Dial-upX.25576点对点(低时延)296两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的`MTU。重要的不是两台主机所在网络的MTU的值,而是两台通信主机路径中的最小MTU,它被称作路径MTU。TCP/IP协议涉及到四层:链路层,网络层,传输层,应用层。以太网(Ethernet)的数据帧在链路层,以太网的物理特性决定了数据帧的长度MTU(MaximumTransmissionUnit)为1500;IP包在网络层,IP包的首部占用20字节,MTU为1500-20=1480;TCP或UDP包在传输层,UDP包的首部占用8字节,MTU为1480-8=1472;TCP或UDP中的数据(Data)在应用层,Data最大长度为1472。数据帧{IP包{TCP或UDP包{Data}}}MTU对UDP编程很重要,当UDP包中的数据多于MTU(1472)时,发送方的IP层需要分片fragmentation进行传输,接收方IP层则需要进行数据包重组,由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃。在普通的局域网环境下,UDP的数据最大为1472字节最好(避免分片重组)。但在网络编程中,Internet中的路由器可能有设置成不同的值(小于默认值),Internet上的标准MTU值为576,所以Internet的UDP编程时数据长度最好在576-20-8=548字节以内。在本机打开dos窗口,执行:ping-f-l1452192.168.1.1其中192.168.1.1是网关IP地址,1452是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。如果出现:PacketneedstobefragmentedbutDFset.PacketneedstobefragmentedbutDFset.PacketneedstobefragmentedbutDFset.PacketneedstobefragmentedbutDFset.表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包长度加上数据包头28字节,就得到MTU的值。如果检测到网关的MTU值是1500,不需要修改。如果网关有防火墙ping不通,可以试试直接把MTU设为1400。C:DocumentsandSettingsAdministrator>ping-f-l1452192.168.1.1Pinging192.168.1.1with1452bytesofdata:Replyfrom192.168.1.1:bytes=1452time=5msTTL=64Replyfrom192.168.1.1:bytes=1452time=5msTTL=64Replyfrom192.168.1.1:bytes=1452time=5msTTL=64Replyfrom192.168.1.1:bytes=1452time=1msTTL=64结果出现了回应了!这表示这一个MTU值是可行的!不过,强烈建议找出可行的最大MTU值!这样一来,在设定的时候,才可以达到最佳的网速!找出MTU值:利用上面这个方法找到的数值还不是MTU喔!由于一些封包上面的问题,上面这个值再加上28才是我们所需要的MTU值!所以,在上面的例子中,我们所需要的MTU值是1464+28=1492!附注:我设置为1452