昨天晚上开始,就登陆不上博客后台了,一直响应提示超时,然后又试了另外一个用zblog的网站,只有几百个帖子,数据库有些小,可以登陆,于是就猜想, 可能是空间有些问题;第二天问空间商时,空间商说并没有对服务器环境估出改动,这样看来可以排除服务器的问题,难道是升级zblog的问题?但是另外一个 zblog站登陆是正常的。考虑要么是zblog配置有问题,要么就是本地的登陆环境出现了问题。
zblog的配置参数大多数在c_option.asp中,下载了一个全新版本的zblog1.8最新版,然后用新的c_option.asp替换空间上 的c_option.asp,登陆了一下,可以登陆;看来是这个文件的问题了,对应新、老的c_option.asp,主要内容大多数相同,不同的只是一 些参数,因此就猜想,可能是某些参数影响了登陆时的任务量。因为zblog1.8最新版本把“更新缓存”功能给合成到很多操作中了,提高了自动执行的能 力,优化了操作步骤,但这样一来,必然会在这些操作步骤中增加了任务量,并且,我还安装了静态页面生成的插件。
上述是一方面现象,还有一个情况,也值得引起我的注意,并且可以在不同于上述中更换c_option.asp方法的基础上,解决了登陆超时的问题,那就是修改数据传输包“MTU”值。
大致测试方法和这里说的基本一样,这次的调整方法,基本和上次的方法一致。
MTU是Maximum Transmission Unit的缩写。
意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络 速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
如何检测网关的MTU?
在本机打开dos窗口,执行:
ping -f -l 1452 192.168.1.1
其中192.168.1.1是网关IP地址,1452是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包 长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。
C:\Documents and Settings\Administrator>ping -f -l 1452 192.168.1.1
Pinging 192.168.1.1 with 1452 bytes of da
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=1ms TTL=64
结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网速!
找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492!
附注:我设置为1452+28=1480后,还是会出现有些网站打不开、远程桌面无法通过域名登陆的问题(通过ip可以正常远程桌面登陆),而把MTU设置为1452后,反而这些问题都迎刃而解了,并且,此时,登陆zlbog后台正常、使用域名登陆远程桌面正常。
一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。
如何修改本机的MTU?修改方法如下:
(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)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口: 如图3: 填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。
实践、重启、测试,最后得出最佳的网络状态,探索无极限,努力,终会有好结果。
测试步骤
1. 拨号上网,并打开“开始”菜单→“程序→附件→命令提示符”
2. 输入命令“ping –l 14xx –f www.163.com”,这里我们解释一下命令参数的含义
* –l 14xx参数:发送一个定长数据包,14xx是要测试的包大小,如前所述,ADSL的MTU一般在1450与1492之间,第3步中将每次更换一次该值
* –f 参数:通知操作系统不能私自更改该数据包大小
* www.163.com:任意一台Internet上的主机,也可使用其它主机名或IP地址
3. 观察反馈结果并判断ISP的MTU值(请注意图中标黄框部分)
1) 第一次发送测试包,包长1450
如图1,提示数据包过大,需要分包,因此判断该数值(1450)大于ISP的MTU,应降低包大小
2) 第二次发送测试包,包长1440
如图2,数据包大小降为1440,提示应为数据包过大,因此判断该值(1440)仍大于ISP的MTU,还应继续降低
3) 第三次发送测试包,包长1430
如图3,数据包大小降为1430,提示该数据包可以正常传输,因此判断ISP的MTU值在1440~1430之间
4) 第四次发送测试包,包长1435
如图4,数据包大小升为1435,提示仍然可以正常传输,因此判断MTU数值在1440~1435之间
5) 第五次发送测试包,包长1438
如图5,数据包大小升为1438,提示可正常传输,因此判断MTU数值在1440~1438之间
6) 第六次发送数据包,包长1439
如图6,数据包大小升为1439,提示因数据包过大无法传输,因此,判断出该ISP的MTU值为1438
4. 计算本地电脑的MTU值
上面得到的MTU值不能直接用于本地设置上,还应在此基础上加上28(包头大小),因此最终的MTU数值为1466
5. 修改本机MTU值
修改本机默认的MTU值可以通过注册表来进行,但更直观稳妥的方法是使用一些系统优化软件,如“超级兔子”或“Windows优化大师”等,本例使用 “超级兔子 V6.25”进行演示。如图7是进入魔法设置网络设置标签的画面,首先选中“使用最大传输单元”前面的勾,然后再从后面的数据栏中输入计算出的MTU值 (1466)后点击确定并重启电脑即可。
总结
如上所述,整个过程可能看起来挺烦琐,但思路十分简单,而且效果不错。笔者的电脑设置了MTU值后,浏览器打开页面的速度较未设置前提高了15%,效果还是很明显的。但此法只适用于PPPOE的拨号ADSL,对于光纤接入或ISDN接入的宽带网络不适用此法