找回密码
 立即加入
搜索

查看: 1484|回复: 1

[转帖]Internet连接性能优化全攻略

[复制链接]
舒跑 发表于 2004-5-14 20:38:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。

您需要 登录 才可以下载或查看,没有账号?立即加入

×
<>一、如何度量连接的速度9 `; A7 p7 ]0 [7 l$ j/ M
  人们把Internet叫做信息高速公路。两者的差别在于,在Internet上没有人限制你的速度——实际上,速度是Internet高速公路真正的价值所在。那么,在Internet上,速度用什么标准来度量呢?许多人相信每秒的字节数量是速度的最终标准,其实不然,问题没有这么简单。
* v' C( w* ]6 L6 [4 ~
! ]! z7 `9 n: b' k) j. _* J- E9 E( T7 M, I* }" K, v8 C; T4 f' f
  影响Internet连接速度的两个最直接的因素是带宽和延迟时间。也许你在了解系统内存体系结构的过程中,已经无数次听到这两个术语。带宽这个概念,想必大家已经了解;但通信延迟时间这个概念,虽然被提到的次数相对较少,却同样重要。实际上,即使你有了很高的带宽,连接的延迟时间仍可能把高速公路变成羊肠小道。 4 a+ \5 L) i2 T
) Z9 d! S5 r; `; b% K" M* P! B6 u

. B/ j' i4 C2 _5 \' [, B' }  在Internet上,数据传输之前先被分割成包。当数据包到达目的地,接收方再以正确的次序把数据包重新装配起来。所谓延迟就是一个数据包到达目的地需要的时间;另外,当你发出对某个目标的请求,目标系统在应答时返回一些数据包,延迟这一概念也可用来描述这一过程所需要的时间。最理想的组合当然是高带宽、低延迟:数据包能够以最快的速度到达,且有充裕的带宽支持;反之,低带宽、高延迟则属于最差的组合。
: T7 ^0 W. }8 k0 x2 m  {( T& e8 h  L' ~" O

; ~! f0 I4 X) }  许多通过卫星建立的连接会出现高带宽、高延迟的情形,例如,虽然带宽高达768Kbps,如果你点击网页上的链接或发送一个命令,收到应答数据可能需要一秒以上。由于延迟时间太长,对于许多联机游戏来说,基于卫星的连接几乎无法使用,因为联机游戏要求延迟时间小于半秒或更少。当然,也有的应用对延迟时间的要求不高,例如email。
9 R- V. L6 A' z: V$ v0 O2 D" }( ]+ c0 S, T! O
! x+ s+ C( E( b* W
  网络延迟与许多因素有关,最重要的是发送方和接收方之间的路由器,它们对连接的质量有着重要的影响。卫星连接之所以比光缆连接慢,就是因为数据必须通过轨道上的卫星中转。Cable和DSL线路的延迟一般要小得多,但最终还是要由线路的具体情况决定。
% S6 I4 B8 `$ ~& t. A. d! `# l# @+ L$ p
二、硬件
) n0 }6 W$ a! q5 y# `/ H' f4 Y  C: ~
  虽然许多用户用上了宽带,但用拨号连接上网的人仍占大多数。为简单计,我假定读者使用的拨号Modem不是多年以前的产品——如果你的Modem不符合V.90或V.92规范,强烈建议你马上升级。
  J( s3 l: b& w0 r
/ G  @" {/ C: u
' t$ i9 R# P& i  从浏览器(或其他客户程序)到另一端的服务器之间,有一系列中介连接。第一个就是计算机和Modem之间的连接。打开Modem的属性对话框,可以看到一个设置最大端口速度的选项,这个最大连接速度不是Modem连接电话线的速度,而是数据通过COM端口的速度。许多时候,这个值的默认设置较低,把这个速度改成115200能够略微提高一点速度,这是因为降低了数据在COM端口缓冲区的停留时间,在一定程度上降低延迟时间。
! N# S' p* \! m1 J4 ?
: a% U) h# W7 }" Z  [
$ z1 k) H9 e- n4 m( m: ?/ D$ Y/ ]  没有必要把Modem的最大端口速度设置成115200以上(而且基于16550a UART的串行口不允许超过115200),因为通过电话线传送数据的压缩率不太可能出现超过3:1的情形。说到数据压缩,过去人们相信压缩和解压缩的时间开销会带来一定的延迟,但是对于现在还在使用的机器来说这点开销应该算不上什么,不会给Internet连接的延迟时间带来任何不利影响。 ; \) b2 [8 ], @' L: g' a$ u: T! v

8 T$ T9 J4 E1 Z+ H% g7 s  S
6 C& l" |$ ]+ \* {  宽带连接的情况有所不同。宽带连接要用到宽带Modem,宽带Modem或者连接DSL线路,或者是电缆调制解调器(Cable Modem);可能直接通过USB端口接入PC,也可能通过网卡转接。如果用路由器、Hub或服务器之类的设施实现Internet连接共享,这些设施都会带来额外的处理负担,从而影响速度。
, A7 e5 p& x' E& Q- I# H/ @' @3 q5 y  a6 P' {0 I

8 h7 D' F$ O  E4 D& Q: @; ?  在宽带环境中,网卡是影响网络吞吐量的重要因素之一。不同厂商的产品,甚至同一厂商不同型号的产品,都可能存在显著差异。例如,我的台式机用的是杂牌网卡,笔记本用IBM 10/100 EtherJet CardBus网卡(带56K的Modem),两台机器都运行XP,笔记本的综合性能不如台式机。用这两台机器访问同一个服务器,笔记本的下载速度可达450Kbps,台式机的下载速度是300Kbps,相信导致这种差异的决定因素就在于网卡。
: Z6 \7 J5 ~& V) _: }, I
+ l, h" X% q: R1 C; X) z, y, c! z' |2 ?
  和其他硬件设备一样,对于网卡,一分价钱一分货的道理同样适用。杂牌网卡往往只实现最基本的功能,缺乏名牌产品的智能优化能力,驱动程序也缺乏灵活的定制能力。如果你的网卡属于那种连名字也很少听说的OEM产品,换一块网卡,你会有惊奇的发现。对于宽带Modem,品牌的也一样重要。 2 D2 w/ t! F# r' y
3 U# C, u: e; _7 O; v
4 f$ z0 _% b6 ~  L2 S
  对于优化网络连接,人们谈论得最多的还是调整TCP/IP配置。下面我们就来看看这方面的内容。# z( c3 [- J1 g5 M! U
三、最大传输单元
6 [5 z, R4 W( ]5 J5 q+ L' A! ~
8 |1 ^! Q, R. z0 c* w2 d  从Windows 95包含TCP/IP的第一天起,人们慢慢了解到它默认的TCP/IP配置并非针对广域网优化。Windows 95包含的TCP/IP原先是为LAN提供的,因为当时Internet还远远没有获得现在这么广泛的应用,因此以LAN为中心的默认配置保留了一段相当长的时间。其中,最为人们注意的TCP/IP配置选项是MTU,即Maximum Transmission Unit,或“最大传输单元”。(在Windows中,MTU和其他TCP/IP配置选项都保存在注册表中。) 1 ~8 n1 _, o' U# f0 M9 E! ~
& Q. N. f6 _1 j4 _+ \, d

* ~; K7 Y7 {7 e; D/ @! i  MTU选项描述了允许的最大TCP数据包大小,单位是字节。对于LAN,默认的MTU大小是1500字节;但在Internet上,默认的MTU大小是576字节。为什么会有这种差别呢?一般而言,LAN具有高速、流畅的特点,延迟小,为充分发挥LAN的效能,MTU可以稍微大一点。Internet的情况恰好相反——至少对于拨号用户来说如此。因此,对于Internet,应当采用较小的数据包。 ; f3 i' X" e, J8 ]# l

8 o' Q. L% a+ i4 y$ n( g$ m. r9 g6 I6 V1 ~, P1 M" G* G! `0 Y
  本文后面介绍的几种优化工具都允许用户修改MTU选项。通常推荐的MTU配置是:对于拨号用户,设置成576;对于使用PPPoE的DSL用户,设置成1400;对于其他用户,设置成1500。 ; j0 a* e1 \$ i. f1 E3 u! [5 E
* P$ D" M3 W7 I% ]$ N
! G! }" ]( d' D
  不过,修改MTU到底能够在多大程度上改进连接的速度,这可没有统一的标准,部分的原因在于有许多其他因素用户经常无法控制或考虑到——ISP的服务质量、Modem的品牌、IP/TCP协议的版本,等等,而且修改MTU的效果还会受到其他配置选项的影响,例如TCP接收窗口的大小。
: |+ Q7 m& J3 N( `" `- ~$ u9 t9 {  {$ Z& G; J8 S

) a/ b$ w" s, |* k- x  所有本文讨论的网络配置选项,包括MTU和其他参数,都不能随意修改。除非你对自己很有信心,否则最好用工具软件,不要手工修改注册表。一些工具软件能够备份原始配置数据,跟踪修改过程,一旦发现修改有误,你就可以方便地恢复。$ o& f( ~! p1 V! N2 _4 Q' p

' H9 h0 Z8 f; F' }9 Z四、接收窗口大小
/ j# G7 U  i6 u
4 w& ^$ ]' t* Z. L2 B7 t
6 r0 q; c5 U/ k0 b, L, s. h& n. Q% u8 ~  接收窗口大小即Receive Window Size,它决定了接收信息的机器在收到多少数据后发送ACK数据包。所谓ACK数据包,它是对收到数据的一种确认,相当于说“我已经成功接收数据”。如果在一定的时间之内没有返回ACK数据包,则那些未经确认的数据将被重新传输。如果我们增加TCP接收窗口的大小,就可以减少发送ACK数据包的数量,减少网络延迟和占用的带宽。
9 I0 e' _2 b% P1 K% k2 d( t9 H& k: Z; ^) s  C

. ^4 s7 ]% y( w/ M  Z  另一方面,扩大TCP接收窗口也可能带来负面影响。较大的接收窗口意味着,如果ACK数据包没有及时发回给服务器,则需要重新传输的数据也较多。但是,只有当网络传输的错误很多,或者你使用拨号网络,才有必要考虑这个问题。为减小这种不利影响,办法之一是启用TCP/IP协议的SACK,即Selective Acknowledgement(有选择地确认)。SACK使得服务器只重新传输出错的数据包,而不是重新传输自从最后一个ACK之后的所有数据。(还有一个类似的选项,称为RFC 1323 Timestamp,它使得每一个数据包带有一个时标,但是,时标本身也会带来较大的开销,抵消了很大一部分扩大TCP接收窗口所带来的优势,因此一般不用)。
3 m5 ~4 c$ t# N# Z! J: ?2 c; r# x. T# n2 v( q' ^
3 s7 p- h2 p. A2 E
  默认的TCP接收窗口在Windows 95/98和NT中是8K,在Windows Me/2000/XP中是16K,大多数Linux的默认配置在32-64K之间。如果你使用拨号连接,16K应该是你可以采用的上限;但对于宽带连接,16K是理想接收窗口大小的下限。对于大多数宽带用户,最好试验一下32K到64K之间的配置,看看有什么结果。
; |# W! Q& b  t, g. ?* |五、其他TCP/IP配置4 B) F; |/ w7 t% G( F$ f5 l
5 [. ?  l/ h; t
( P& W: H4 N5 ?3 j6 S; }
  TTL即Time To Live,直译为“存活时间”,表示在丢弃一个数据包之前它可以通过多少跃点(Hop),默认的上界是32。如果传入到路由器的数据包TTL值大于32,许多路由器会把TTL重新设置成32。把TTL值设置得高一些没有害处,但如果你的ISP的路由器直接把TTL改回32,设置得高也就没有任何意义。一些优化网络连接的工具建议把TTL设置成128——虽然高达128的TTL值本身没有害处,但却没有办法保证设置如此之高的TTL之后,这个值可以被原封不动地保留和传递。 & M# O% T- H+ E; ]/ U: a0 r' P

2 j+ Z2 |3 x$ ^( Q2 h
# C, n# j0 n6 k, K8 J  Black Hole Detect(黑洞探测)也是一个对客户端影响不大的选项。黑洞探测机制有点复杂:找出是否有路由器没有传递数据包里面的一个关键信息标记——具体地说,是“Don't Fragment”(不要分段)标记。如果设置了Don't Fragment标记,数据包就不会被路由器上的网关分段。除非你要访问老式的网络,这个选项没有什么用,实际上,启用这个选项会浪费一定的带宽。Black Hole Detect选项默认是关闭的,建议不要去改动它。 + D6 E+ Q& C7 O2 r+ t

+ {! o( c/ O* B6 ]3 I6 X  H& h; J1 j+ N( E  g0 S! z* ?# X
  MaxConnectionsPerServer选项对Web浏览有好处。HTTP 1.1规范规定,一个客户机同一时刻最多只能建立两个到同一服务器的连接。修改MaxConnectionsPerServer选项可以升高这个值——推荐的上限是4。这是一个推荐高质量宽带用户修改的选项,不过要注意的是,一些服务器为了遵守规范要求和避免连接资源不足,可能限制了同一客户的连接数量不得超过二个。 ' O) p  r& W% p! n; O& I7 k
8 [6 i+ u" I! p' R( ~9 ^) U1 ^

6 d6 ^. K- @0 r" N4 s1 x& z4 |5 Z" Z2 @7 `  为什么增加MaxConnectionsPerServer值会有好处呢?主要的原因在于,当我们打开一个页面时,浏览器会建立一个连接下载HTML文件,建立第二个连接下载图片。如果页面包含了大量的图片,浏览器会每次一个顺序下载这些图片,即使网络连接的速度很快也不一定能够充分利用。增加MaxConnectionsPerServer值也就增加了允许打开的连接数量,增加了允许同时下载的图片数量,提高了装入整个页面的效率(当然,这有一个前提,也就是服务器能够接受来自同一客户机的二个以上的连接)。如果没有什么特别的原因,这个选项值得一改,对于速度较快的连接来说尤其如此。
- ?2 G* O% ?+ k8 y
8 i0 ]  ~  n- y  }# w! ~, o7 V" J0 J% _+ i
  DNS缓冲能够加速大多数基于TCP的操作。DNS是Domain Name Server,即域名服务器,提供域名与IP地址的转换服务。当浏览器连接指定名称的服务器时,就要执行一个DNS查找操作,把服务器名称转换成IP地址。DNS查找有时是一个很耗费时间的操作,特别是有些ISP提供的DNS服务器本来就比较慢。由于域名与IP地址的对应关系很少改变,所以可以用本地缓冲DNS地址的办法来提高速度。Windows有一个HOSTS文件(在Windows的\system32\drivers\etc目录下)提供了IP地址和域名的简单映射,一些有经验的用户通过手工修改HOSTS文件提高DNS查找速度,但我们也可以通过工具自动完成,有些网络代理软件和Internet连接共享软件也具有这方面的功能。 1 f; E+ ?- `* {. a( F# k4 `

4 r  c, q5 v9 q0 S
" P) b7 s4 Y( V/ ?  S! R  Windows 2000和XP增加了一个“QoS数据包计划程序”。这是一个默认安装的TCP/IP组件,用来控制网络服务的传输速率和服务质量。除非你的应用程序特别依赖于QoS,例如远程医疗诊断之类的实时应用,否则它的作用不是很大,关闭该组件可以减小一些网络开销。 $ f- S# a0 w' V' Z4 o% u, F6 x( ?
六、工具软件
, _) t  |: p4 R/ E; i# u- ^1 T" g) @  X1 O& {7 X$ i* E- E
( C  ~# @4 [! u/ E* E
  为了了解优化Internet连接的软件工具,我花不少时间浏览各大下载网站和试验优化效果。不得不指出的是,许多工具不值得一试,原因就在于它们实在太简单,毫无特色。很多工具只提供了一个编辑MTU和接收窗口大小等选项的窗口界面。大部分工具没有提供优化之前和优化之后的测试机制,无法了解参数调整之后连接性能到底是提升还是下降,有的甚至只是一个加上了安装程序的.REG文件! % |8 V! v& K# q% V' d

$ M; U* Y6 j  f( v& A+ Z- {) e. A" O/ x: J3 E1 t, I, A
  经过优化之后,网络连接性能确实有所改善。例如,调整了接收窗口大小之后,本人台式机的最大下载速度从大约430Kbps提高到了520Kbps。优化网络连接的工作量显然与所用的工具有关:我认为使用TweakMASTER之类的工具比较简单,而使用CableNut之类的工具则比较繁琐。除非特别指出,下面说明的工具适合于所有的Windows版本(9x/2000/XP)。因为有部分工具不支持XP,所以下面的各个图形都在Windows 2K下截取。 </P># o, E- T. x- S+ I4 }
<>注:转自VERY。COM论坛。
: s: s* X+ H7 |* ^( q% C</P>
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
醉凡尘 发表于 2004-5-14 23:29:49 | 显示全部楼层
<>技术帖我肯定顶,而且见一张盗一张,哈哈!</P>
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|龙江曦月 ( 闽ICP备05009150号-1 )闽公安网备35060202000316

GMT+8, 2025-5-25 07:43 , Processed in 0.072684 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表