Internet连接性能优化策略

Internet连接性能优化策略
Internet连接性能优化策略

Internet连接性能优化策略

优化Internet连接的速度是一个热门话题。正因为热门,所以不可避免地滋生出许多误解和真假难辨的传闻。所以,在优化Internet 连接之前,详细了解每一步操作可能导致的后果十分重要。本文的目标是澄清一些基本概念,解释各个配置选项的具体含义,并介绍几种富有特色的优化工具。

一、如何度量连接的速度

人们把Internet叫做信息高速公路。两者的差别在于,在Internet上没有人限制你的速度--实际上,速度是Internet高速公路真正的价值所在。那么,在Internet上,速度用什么标准来度量呢?许多人相信每秒的字节数量是速度的最终标准,其实不然,问题没有这么简单。

影响Internet连接速度的两个最直接的因素是带宽和延迟时间。也许你在了解系统内存体系结构的过程中,已经无数次听到这两个术语。带宽这个概念,想必大家已经了解;但通信延迟时间这个概念,虽然被提到的次数相对较少,却同样重要。实际上,即使你有了很高的带宽,连接的延迟时间仍可能把高速公路变成羊肠小道。

在Internet上,数据传输之前先被分割成包。当数据包到达目的地,接收方再以正确的次序把数据包重新装配起来。所谓延迟就是一个数据包到达目的地需要的时间;另外,当你发出对某个目标的请求,目标系统在应答时返回一些数据包,延迟这一概念也可用来描述这一过程所需要的时间。最理想的组合当然是高带宽、低延迟:数据

包能够以最快的速度到达,且有充裕的带宽支持;反之,低带宽、高延迟则属于最差的组合。

许多通过卫星建立的连接会出现高带宽、高延迟的情形,例如,虽然带宽高达768Kbps,如果你点击网页上的链接或发送一个命令,收到应答数据可能需要一秒以上。由于延迟时间太长,对于许多联机游戏来说,基于卫星的连接几乎无法使用,因为联机游戏要求延迟时间小于半秒或更少。当然,也有的应用对延迟时间的要求不高,例如email。

网络延迟与许多因素有关,最重要的是发送方和接收方之间的路由器,它们对连接的质量有着重要的影响。卫星连接之所以比光缆连接慢,就是因为数据必须通过轨道上的卫星中转。Cable和DSL线路的延迟一般要小得多,但最终还是要由线路的具体情况决定。

二、硬件

虽然许多用户用上了宽带,但用拨号连接上网的人仍占大多数。为简单计,我假定读者使用的拨号Modem不是多年以前的产品--如果你的Modem不符合V.90或V.92规范,强烈建议你马上升级。

从浏览器(或其他客户程序)到另一端的服务器之间,有一系列中介连接。第一个就是计算机和Modem之间的连接。打开Modem的属性对话框,可以看到一个设置最大端口速度的选项,这个最大连接速度不是Modem连接电话线的速度,而是数据通过COM端口的速度。许多时候,这个值的默认设置较低,把这个速度改成115200能够略微提高一点速度,这是因为降低了数据在COM端口缓冲区的停留时间,在

一定程度上降低延迟时间。

没有必要把Modem的最大端口速度设置成115200以上(而且基于16550a UART的串行口不允许超过115200),因为通过电话线传送数据的压缩率不太可能出现超过3:1的情形。说到数据压缩,过去人们相信压缩和解压缩的时间开销会带来一定的延迟,但是对于现在还在使用的机器来说这点开销应该算不上什么,不会给Internet连接的延迟时间带来任何不利影响。

宽带连接的情况有所不同。宽带连接要用到宽带Modem,宽带Modem或者连接DSL线路,或者是电缆调制解调器(Cable Modem);可能直接通过USB端口接入PC,也可能通过网卡转接。如果用路由器、Hub或服务器之类的设施实现Internet连接共享,这些设施都会带来额外的处理负担,从而影响速度。

在宽带环境中,网卡是影响网络吞吐量的重要因素之一。不同厂商的产品,甚至同一厂商不同型号的产品,都可能存在显著差异。例如,我的台式机用的是杂牌网卡,笔记本用IBM 10/100 EtherJet CardBus网卡(带56K的Modem),两台机器都运行XP,笔记本的综合性能不如台式机。用这两台机器访问同一个服务器,笔记本的下载速度可达450Kbps,台式机的下载速度是300Kbps,相信导致这种差异的决定因素就在于网卡。

和其他硬件设备一样,对于网卡,一分价钱一分货的道理同样适用。杂牌网卡往往只实现最基本的功能,缺乏名牌产品的智能优化能力,驱动程序也缺乏灵活的定制能力。如果你的网卡属于那种连名字

也很少听说的OEM产品,换一块网卡,你会有惊奇的发现。对于宽带Modem,品牌的也一样重要。

对于优化网络连接,人们谈论得最多的还是调整TCP/IP配置。下面我们就来看看这方面的内容。

三、最大传输单元

从Windows 95包含TCP/IP的第一天起,人们慢慢了解到它默认的TCP/IP配置并非针对广域网优化。Windows 95包含的TCP/IP原先是为LAN提供的,因为当时Internet还远远没有获得现在这么广泛的应用,因此以LAN为中心的默认配置保留了一段相当长的时间。其中,最为人们注意的TCP/IP配置选项是MTU,即Maximum Transmission Unit,或"最大传输单元"

。(在Windows中,MTU和其他TCP/IP配置选项都保存在注册表中。) MTU选项描述了允许的最大TCP数据包大小,单位是字节。对于LAN,默认的MTU大小是1500字节;但在Internet上,默认的MTU 大小是576字节。为什么会有这种差别呢?一般而言,LAN具有高速、流畅的特点,延迟小,为充分发挥LAN的效能,MTU可以稍微大一点。Internet的情况恰好相反--至少对于拨号用户来说如此。因此,对于Internet,应当采用较小的数据包。

本文后面介绍的几种优化工具都允许用户修改MTU选项。通常推荐的MTU配置是:对于拨号用户,设置成576;对于使用PPPoE的DSL 用户,设置成1400;对于其他用户,设置成1500。

不过,修改MTU到底能够在多大程度上改进连接的速度,这可没

有统一的标准,部分的原因在于有许多其他因素用户经常无法控制或考虑到--ISP的服务质量、Modem的品牌、IP/TCP协议的版本,等等,而且修改MTU的效果还会受到其他配置选项的影响,例如TCP接收窗口的大小。

所有本文讨论的网络配置选项,包括MTU和其他参数,都不能随意修改。除非你对自己很有信心,否则最好用工具软件,不要手工修改注册表。一些工具软件能够备份原始配置数据,跟踪修改过程,一旦发现修改有误,你就可以方便地恢复。

四、接收窗口大小

接收窗口大小即Receive Window Size,它决定了接收信息的机器在收到多少数据后发送ACK数据包。所谓ACK数据包,它是对收到数据的一种确认,相当于说"我已经成功接收数据"。如果在一定的时间之内没有返回ACK数据包,则那些未经确认的数据将被重新传输。如果我们增加TCP接收窗口的大小,就可以减少发送ACK数据包的数量,减少网络延迟和占用的带宽。

另一方面,扩大TCP接收窗口也可能带来负面影响。较大的接收窗口意味着,如果ACK数据包没有及时发回给服务器,则需要重新传输的数据也较多。但是,只有当网络传输的错误很多,或者你使用拨号网络,才有必要考虑这个问题。为减小这种不利影响,办法之一是启用TCP/IP协议的SACK,即Selective Acknowledgement(有选择地确认)。SACK使得服务器只重新传输出错的数据包,而不是重新传输自从最后一个ACK之后的所有数据。(还有一个类似的选项,称为RFC

1323 Timestamp,它使得每一个数据包带有一个时标,但是,时标本身也会带来较大的开销,抵消了很大一部分扩大TCP接收窗口所带来的优势,因此一般不用)。

默认的TCP接收窗口在Windows 95/98和NT中是8K,在Windows Me/2000/XP中是16K,大多数Linux的默认配置在32-64K之间。如果你使用拨号连接,16K应该是你可以采用的上限;但对于宽带连接,16K是理想接收窗口大小的下限。对于大多数宽带用户,最好试验一下32K到64K之间的配置,看看有什么结果。

五、其他TCP/IP配置

TTL即Time To Live,直译为"存活时间",表示在丢弃一个数据包之前它可以通过多少跃点(Hop),默认的上界是32。如果传入到路由器的数据包TTL值大于32,许多路由器会把TTL重新设置成32。把TTL值设置得高一些没有害处,但如果你的ISP的路由器直接把TTL改回32,设置得高也就没有任何意义。一些优化网络连接的工具建议把TTL设置成128--虽然高达128的TTL值本身没有害处,但却没有办法保证设置如此之高的TTL之后,这个值可以被原封不动地保留和传递。

Black Hole Detect(黑洞探测)也是一个对客户端影响不大的选项。黑洞探测机制有点复杂:找出是否有路由器没有传递数据包里面的一个关键信息标记--具体地说,是"Don't Fragment"(不要分段)标记。如果设置了Don't Fragment标记,数据包就不会被路由器上的网关分段。除非你要访问老式的网络,这个选项没有什么用,实际

上,启用这个选项会浪费一定的带宽。Black Hole Detect选项默认是关闭的,建议不要去改动它。

MaxConnectionsPerServer选项对Web浏览有好处。HTTP 1.1规范规定,一个客户机同一时刻最多只能建立两个到同一服务器的连接。修改MaxConnectionsPerServer选项可以升高这个值--推荐的上限是4。这是一个推荐高质量宽带用户修改的选项,不过要注意的是,一些服务器为了遵守规范要求和避免连接资源不足,可能限制了同一客户的连接数量不得超过二个。

为什么增加MaxConnectionsPerServer值会有好处呢?主要的原因在于,当我们打开一个页面时,浏览器会建立一个连接下载HTML 文件,建立第二个连接下载图片。如果页面包含了大量的图片,浏览器会每次一个顺序下载这些图片,即使网络连接的速度很快也不一定能够充分利用。增加MaxConnectionsPerServer值也就增加了允许打开的连接数量,增加了允许同时下载的图片数量,提高了装入整个页面的效率(当然,这有一个前提,也就是服务器能够接受来自同一客户机的二个以上的连接)。如果没有什么特别的原因,这个选项值得一改,对于速度较快的连接来说尤其如此。

DNS缓冲能够加速大多数基于TCP的操作。DNS是Domain Name Server,即域名服务器,提供域名与IP地址的转换服务。当浏览器连接指定名称的服务器时,就要执行一个DNS查找操作,把服务器名称转换成IP地址。DNS查找有时是一个很耗费时间的操作,特别是有些ISP提供的DNS服务器本来就比较慢。由于域名与IP地址的对

应关系很少改变,所以可以用本地缓冲DNS地址的办法来提高速度。Windows有一个HOSTS文件(在Windows的\system32\drivers\etc 目录下)提供了IP地址和域名的简单映射,一些有经验的用户通过手工修改HOSTS文件提高DNS查找速度,但我们也可以通过工具自动完成,有些网络代理软件和Internet连接共享软件也具有这方面的功能。

Windows 2000和XP增加了一个"QoS数据包计划程序"。这是一个默认安装的TCP/IP组件,用来控制网络服务的传输速率和服务质量。除非你的应用程序特别依赖于QoS,例如远程医疗诊断之类的实时应用,否则它的作用不是很大,关闭该组件可以减小一些网络开销。

相关文档
最新文档