分享

Modem终级优化详解

 uqt123 2009-10-09

这恐怕是虫虫们上网时抱怨得最多的了。的确,在这56K的Modem便榨尽了电话线路带宽的时代,网络还不是那样的可爱。但电脑发烧友的标准是什么?就是用尽种种匪夷所思的方法,让各个电脑部件发挥出绝对极限的性能来!笔者不敢妄称发烧友,但平时对自己那只“猫”太过“溺爱”,也就收集并摸索了一些优化提速的方法,今天便在这里献丑了。

 也许有的朋友会问了:现在不是有许多Modem加速软件吗?我自己点点鼠标不就搞定了,你小子献什么宝,想骗稿费啊!?非也,所谓加速软件,大多给你一个“Optimum”选项,点一下后,便对你说优化完毕,请重启动云云,偶有给出各种注册表参数供你特别修改的,也言之不详,更勿论最佳化设置了。而那“optimum”项,不过是把各种参数调成作者认为最佳或是一般情况下有效的数值。如果你以前从未用过其它的类似软件甚至操作系统还是Win 95(下文会解释)的话,那么恭喜了,你可以获得10%~40%的提速;但如此之后,你再用其它一些加速软件,效果就绝对是微乎其微乃至于零,这便是许多网友为何对某些声名赫赫的加速软件破口大骂的原因。但是否“猫”速就难以更上一层楼呢?当然不是,你还没有针对自己的具体使用环境做出特别优化呢——这便是笔者今天要讲解的主题。

 TCP/IP协议工作原理

 中国的虫虫们基本上用的都是拨号上网,这便需要对微软为之特别制定的TCP/IP协议的工作原理有一定了解:当你拨号上网后,成为Internet中的一台主机(host),便可以同其它主机互相传递信息。一台主机向外发送信息,首先要把信息分成很小的数据包(packet),经过路由器(router)送到ISP服务器,再通过ISP的出口线路,也要经过路由器,传到接收主机中。

 注册表修改

 这里是对注册表几个数据的键值进行修改。

 MaxMTU(MaximumTransfer Unit):最大传输单位,即上文所说的数据包(packet)。这是对Modem速度影响最大的参数。数据在两台主机之间传接,首先在发送主机、接受主机中找出最小的MaxMTU设定,并以之为标准分割被传输数据。请注意:数据包的大小并不等于你实际发送的数据的大小,每个数据? 含的有效数据(MSS)=MaxMTU值-8个字节(保留)-20个字节(IP报头信息)-8个字节(ICMP返回数据,即路由器要求重组数据返回的信息)。所以从理论上设想,单个数据包越大,实际传输中的无用数据所占比重就越小。但在传输过程中,一旦数据包大于途经路由器的极限,路由器便会要求对数据包中的数据分组重装,从而使传输时间加倍。在Win95中,MaxMTU的默认值为1500,这是以太网的标准,这个值明显大于现今路由器的极限,只要对方主机的设置再有一点不恰当,你便慢慢“磨”吧。在Win98中有所改善,MaxMTU的默认值是576(这也是几乎所有Modem加速软件的推荐值),然而这也不能保证绝对的安全,没准你家的电话线路一出来第一个路由器便小于它呢。所以,我们开始具体修改,从而得到一个精确的最佳值。

 我用的是NetScanTools,这绝对是网友们必不可少的上网利器,只要看看ZD NET、TUCOWS、DOWNLOAD对它的评价……咳咳,闲话少说,切入正题。进入NetScanTools的主界面,在上面的活动菜单中选中“Ping”,点击“setup”,把“Time BetweenPackets”(数据包发送间隔)设为200,“PacketTimeout”(数据包超时处理)设为5000(ms),“Packet Timetolive”(数据包存活时间,即经过路由器的最大数量)设为64,“NumberofPacketSent”(发送数据包数量),“Base PacketLengthin”(传送数据包基本大小,注意:在这里实际传送的数值还要加上8个字节的保留信息)设为56,点击OK退出来。把“Target HostnameorIP”(接收主机)改成你最常去的网址(域名、IP地址均可)。保证处于连网状态,击“Ping”。下面的状态栏会给你五个数据包的传送状态,由于此时间每个数据包的大小为56+8=64个字节,很小,Type栏都是Type0,即没有数据丢失。逐步调高“Base PacketLegthin”,一般每次递增几十个字节即可,直至有数据有丢失,即某个数据包状态栏中是一排*号。把“Base PacketLegthin”逐渐减小,一步步接近上次的值,每次递减数越小越好,直至数据包再次无丢失。此时的“Base PacketLegthin”就是各节点的路由器的极限值。

 注:由于所选接收主机是你最常去的站点,不可能代表你上网浏览的所有情况,所以可能在连上其他一些站点时速率骤降,这时就需要酌情调整MaxMTU值。

 MSS(MaximumSegmentSize):信息段最大长度,即每个数据包中有效的数据量,其基本计算上文已有叙述。这是最令笔者哭笑不得的参数:在Internet上无论是公布的各种资料还是以MTUspeed为首的各种Modem优化工具,都认为MSS=MTU-40个字节,以至于这已成了各种优化工具的默认设置,根本没有你修改的余地!其实从上文的计算方法我们可以看出,关键就在保留字节上。在早期发布的权威资料来看,每个数据包中至少应有12个字节的保留区域,这样加上20个字节的IP报头信息和8个字节的ICMP返回数据,正好是等于40。这也就是被笔者称为第一代Modem优化工具的理论依据了。但为了网络的高效率传输,我们完全可以适当调小保留区域的长度,笔者的推荐值是8个字节,当然,如果你的Modem可以稳定地工作在更小的值下,在下也只有羡慕的份了。

 注册表位置:在HKEY_LOCAL_MACHINE\System\Curr-entControlSet\Services\Class\NetTrans\0000下建立字符串值“MaxMSS”,并为其赋值。

 DefaultRcvWindows:主机数据接受缓存区。当主机接受一定量的数据包,填满缓冲区后,便按照TCP/IP协议对缓冲区中的数据进行检验,如有错误,则需要传送主机再将整个缓冲区的内容重传一次。很明显,如果缓冲区太大,一个数据包的错误便能导致两台主机时间的大量浪费,尤其对于国内恶劣的线路状况来说,尤为可怕。但一味地调低此值,不仅会占用宝贵的网络带宽,也会令整个系统疲于奔命,无谓地做检验与接受的工作,对CPU与内存不很理想的用户更是雪上加霜。那么怎样才是Default RevWindow的最佳值呢?从实际使用情况来看,一秒钟接受一次最为理想。所以计算方法如下:

 1.先算出你的Modem在无压缩情况(不考虑传输图片、文本等非紧凑文件)下的数据传输率。比如说笔者的全向56K就应当是56kbit/s/8=7kbytes/s=7168bytes/s。

 2.用每秒数据传输率除以你的每个数据包的真实传输量(MSS),结果舍掉(不是四舍五入)小数点后数字,得到一个整数。

 3.用这个整数乘以单个数据包的真实传输量,得到的就是比较精确的Default RcvWindow值。

 注:由于现在电话线路的局限,56KModem的传输速率根本不可能达到7k/s,笔者的“一秒接收一次”虽只是一种理想化的传输模型,但在实际应用中的效果却比较好(尽管此时是几秒钟一次接收)。

 TTL(TimeToLive):数据包存活时间,即最大途经路由器数量。从笔者的使用情况来看,该值对网路传输稳定性并没有太大的影响,也就是说它并不是一个硬性规定的参数。笔者平时游览的一些站点,途经的路由器少的也有一两百,多则上过三百,但注册表里也仅仅设成64个节点而已。从减轻爱“猫”负担的角度来说,该值不必调太大,64~128之间是比较理想的选择。

 NameSrvQueryTimeout:域名解析请求超时处理。域名与我们有关最直接的关系,这也是最令网虫们受益的东东了。有时候我们键入域名后,会返回“HTTP NotFound”之类的信息,可这明明是不久前才连上过的网站呀!这是因为域名服务器太繁忙,收到你的域名解析请求后来不及处理或反馈,你得不到目标网站的IP地址,自然也就不能连上去。通过修改Name SrvQueryTimeout,我们可以适当增大等待域名解析反馈的时间。Windows默认值是750(ms),真是太、太、太太吝啬了,笔者认为比较理想的值是5000(ms)。(注意了,最大值不能超过65535)

 注:如果你使用了NetLighteing之类的域名本地解析软件或自己在Windows目录下的hosts.sam文件中加入了域名与IP地址的对照表,那么本项设置无效。

 PMTUAUTODiscover:自动网络路径中路由器的MaxMTU值。

 PMTUBlackHoleDetect:检测数据传输路径中是否存在需要对数据包分组重装而不返回发送主机相应ICMP信息的路由器。

 由于前四项参数的优化,此二项可设为关闭。

 这些参数(除了RcvWindows)都可以通过MTUspeed轻松设置,笔者也就不给出注册表中的具体位置了。

 其它优化

 1.用文本编辑器打开Windows目录下的System.ini文件,找到“386enh”栏,在其下加入com?buffer=1024(?是Modem与计算机连接的并行口号)。

 2.打开[我的电脑]→[控制面板]→[调制解调器]→[属性]→[连接],进入[端口设置],把接收缓冲区与传输缓冲区都调为最大,点击确定退出来。进入高级设置,选上“请求连接”(可提高上网的稳定性。但如果选上后断线频繁,请放弃此项)。选择使用“流控制”,即使用“XON/XOFF”或“RTS/CTS”协议控制计算机与Modem之间的数据流,再点击“硬件RTS/CTS”(你的Modem必须支持V.42 MNP协议)。在“附加设置”中加上s10=80(从载波掉到断线需8秒),可减小断线的几率。

 好了,这些几乎已是静态优化Modem所能做到的极限了。大家如有兴趣,可以“妹儿”来与我切磋。

 效能测试

 经过上面一番“捣腾”,朋友们最关心的大概就是最终的实际效果了吧,笔者这里给出了一些离线浏览与下载工具优化前后传输速率的比较,但由于网络传输的复杂性,这些数据最多也只能代表普遍的使用情况,仅能供大家聊作参考。笔者的机器配置:P166、32M、Pwin98、IE5、全向56K。

下载对比

  NatAnts2.55 NetVampire3.2 GetRight3.34 优化前 优化后 优化前 优化后 优化前 优化后 Winzip7.0SR(922K) 5.1k/s 5.4k/s 5.2k/s 5.4k/s 4.8k/s 5k/s Thebat!1.33(1380k) 4.9k/s 5.5k/s 5.1k/s 5.3k/s 4.9k/s 5.1k/s Winamp2.22(632k) 5.3k/s 5.7/ks 5.4k/s 5.5k/s 5k/s 5.3k/s    
注:以上所有软件皆自金蜘蛛软件下载中心(http://www.)下载。

离线浏览对比

 OfflineExplorer WebZip2.75 TeleportPro1.29 优化前 优化后 优化前 优化后 优化前 优化后 首都在线 6.5k/s 7.2k/s 6.4k/s 6.7k/s 6.6k/s 6.8k/s 黄金书屋 6.2k/s 6.5k/s 6.1k/s 6.6k/s 6.4k/s 6.9k/s 电脑爱好者 5.9k/s 6.3k/s 6.1k/s 6.3k/s 6.2k/s 6.5k/s    
注:由于条件所限,笔者不可能把这些站点的所有内容完全拉下来,所以每个站点只是以5分钟下载的数据量进行计算,若有疏漏之处,请大家见谅!

       对MODEM的忧化  

  1)对于拨号用户而言学会使用at命令来手工优化Modem是必备的  

  熟悉调制解调器AT命令的用户还可以通过AT命令配置调制解调器,方法是打开“开始”---“程序”---“附件”---“通讯”---“超级终端”---“Hyperterminl”,程序会弹出一个操作界面,在该界面中单击“取消”按钮,不做新建连接,接着输入如下命令:

  ATS11= 50T&C0&K3&Y0&W0 各命令的含义如下:

  S11=50表示音频持续和间隔时间设为最小值 50毫秒

  T 表示选用音频拔号方式

  &C0 表示假定数据载波一直存在

  &K3 表示使用RTS/CTS硬件流控

  &Y0 表示加电时调出用户方案0

  &W0 表示保存动态设置为用户方案0。

  2)设置好调制解调器的端口参数    

  为了能尽可能地挖掘调制解调器的工作潜力,我们还必须通过设置来让调制解调器工作在最佳状态,根据所购买或附送的MODEM的说明书来对调制解调器进行端口的参数设置。  

  3)及时对调制解调器软件进行升级 

  为了使调制解调器发挥最大的功效,进行相应软件的升级也是必不可少的。用户可以通过Windows Socket Update程序来提升拨号网络系统版本,它更新了Windows9X的TCP、UDP、ICMP、IP等端口的驱动程序,提供了Windows下新的FTP、Telnet、Winipcfg等实用程序可提高上网速度并可防止IE在浏览页面时的默认页面是微软推出的补丁程序。另外要注意更新调制解调器的驱动程序,新的驱动程序往往纠正了原来驱动程序可能存在的一些错误,并且能够提高调制解调器的通信质量。  

  4)屏蔽调制解调器的侦错模式  

  由于侦错模式需要花费一定的时间来对线路进行检测和优化调整,从而会延长拨号的时间。对于线路稳定、通信质量良好的地区,我们用户完全可以屏蔽这项功能。在“调制解调器”设置对话框的“连接”选项卡中,单击“高级”按钮,在“附加设置”文本框中键入“%C0”以关闭调制解调器的侦错模式,提高其速度。但该选项要求必须使用原厂商的 Modem驱动程序,否则修改值无效。 

  5)通过Modem来调整好线路状态 

  如果电话线路质量不好,经常断线,也会严重影响浏览速度。其解决办法是:单击“开始→设置→控制面板→调制解调器”,从Modem中选择“属性/连接页面/高级选项”,在附加设置中填入“S10=50”和“S25=200”,其中前者可以强制Modem在载波暂时丢失时保持5秒钟的连接状态,而后者则可以强制Modem在DTR(Data Terminal Ready,数据终端就绪)信号瞬时无效时保持2秒的连接状态,从而可以避免线路传输质量不良时 Modem发生断线故障。  

  6)通过修改注册表来优化Modem 

  要想让Modem全面彻底地工作在最佳状态,单纯通过系统设置来设置参数是远远不够的,因为微软并没有将Windows的拨号网络做最优化设置,它的网络参数缺省值是针对以太网来设定的,数据包、接收窗口等的大小都不太适合拨号上网方式,导致调制解调器不能发挥自己最大的潜能。所以我们还能够发掘这一部分的潜力为我们的网络再加速!因此,通过在注册表中重新优化设置,可以获得更好的访问速度。这种提速不仅对浏览网络有用,同时还影响到下载、收发邮件等操作,因为它是从充分利用硬件资源的角度入手,具体操作步骤如下:

  首先在Window9x的桌面中选择开始按钮,并用鼠标单击运行命令,在弹出的对话框中填入regedit(注册表编辑器)命令,单击确定后在注册表编辑器中依次展开以下键值: “/HKEY_ LOCAL_ MACHINE/Enum/Root/Net/000?”,并找到包含DeviceDesc字串,其值为“拨号网络适配器”的键,进入其子键bindings,记下其中的串值MSTCP 00?。接着再依次展开键值“/HKEY_ LOCAL_ MACHINE/Enum/NetWork/MSTCP/000?”(?为上面找到的MSTCP 00?中的最后一个数字),同时找到Driver字串,记下其值NetTrans 00?。然后在键值“/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/NetTrans/000?”中(?为上面找到的NetTrans 00?中的最后一个数字)增加串值:MaxMTU=576 (Window9X 缺省值为1500字节,最大值为65535字节),其中MaxMTU指的是最大的 TCP/IP 传输单元。应用程序把要传输的数据分割为较小的分组进行传输,标准的分组大小应为576字节。如果MaxMTU大于576,传输时则需要重组分组,减低了传输效率。Window9X的缺省 值为1500,这是以太网上的标准的分组大小,如果不是通过以太网再接入INTERNET,则应改为576。  

  同样地在键值“/HKEY_ LOCAL_ MACHINE/System/CurrentControlSet/Services/Vxd/MSTCP”中增加以下串值: DefaultRcvWindow=5120 (Window9X缺省值为8192字节,最大值为65535字节),DefaultTTL=255 (Window9X缺省值为32,最大值为255),NameSrvQueryTimeout=3000(Window9X缺省值为750毫秒,最大值为65535毫秒)。   

  最后,有许多MODEM优化软件可以使用,如果你觉得手工优化太麻烦,可以利用它们,一般也能得到不错的效果。当然,还有一种方法就掏腰包买个性能超群的MODEM!功能不断完善是所有网络产品发展的方向,调制解调器囊括路由器、交换机、防火墙等功能已成为必然。所以买个好的MODEM也就事半功倍了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多