论文部分内容阅读
从Windows XP时代开始,酷爱下载的同学安装完系统都要做一件事:破解系统作出限制的TCP半开连接数。即使到了Windows 7时代,这个仍然是很多同学雷打不动的铁律。不过,很多热衷于破解的同学却不知道什么是TCP半开连接数,又为什么要进行破解,破解了能带来什么好处?今天就一起来揭开这些谜团。
正本溯源:通上大桥前的限制
TCP半开连接是指发送了TCP连接请求,等待对方应答的状态,此时连接并没有完全建立起来,双方还无法进行通信交互的状态,此时就称为半连接。由于一个完整的TCP连接需要经过三次握手才能完成,这里把三次握手之前的连接都称之为半连接(见图1)。
为了便于理解,我们把一次完整的TCP连接比作汽车通过一座大桥,在通过大桥之前的行程都称之为TCP半开连接。TCP半开连接数就是大桥的车道,由于这个这个半连接数量如果设置过大,不仅耗费大量系统资源,而且还可能会遭受很多DDoS攻击。因此,出于安全考虑,默认XP SP2(包括SP3)只允许同时存在10个TCP半开连接,也就是说这个大桥只有10个车道,破解就是通过修改tcpip.sys,拓宽这个大桥,使之拥有更多的车道,也就是增加TCP半开连接数。这样如果同时需要过桥的汽车较多,过桥等待的时间就更短了(注意:不是在桥上通行花费时间,是等待上桥的时间),破解半开连接数的意义也仅此而已。
不过并非大桥越宽越好,大桥宽度要和实际车流量匹配,比如,只要设计50车道就足够车流顺畅通过,设计成100车道就是浪费了。一般来说,在2M、4M宽带条件下,TCP半开连接数只要设置为256左右即可。
分清概念,系统半开连接和软件连接数
经过上面的介绍,大家已经了解系统TCP半开连接数的含义,对于P2P下载软件来说,提高了系统的半开连接数后,软件就可以同时发起更多的连接(当然这个数值必须小于系统半开连接数,否则会导致EventID 4226事件警告出现)。修改系统半开连接数后,软件就可以同时发起更多的连接,找到更多的源进行连接下载。比如,对于迅雷,如果将系统TCP半开连接数设置为256,那么迅雷全局最大连接数就要小于256,这个数值可以在迅雷控制面板窗口中进行设置(见图2)。
江湖传言,一一破解
TCP半开连接只是数据成功传输之前的“假连接”,对于实际数据传输并没有实际的影响。不过,现在网上却流传很多关于tcpip.sys的传言。来看看这些传言有没有事实依据。
传言1:半开连接越多越好,修改后会明显提速
如上所述,半开连接只是数据成功传输之前的“假连接”,此时并没有建立成功的TCP连接,因此对于数据实际传输是没有任何影响的。这里要分清半连接和TCP连接的不同含义,半开连接是系统允许同时发起连接的数量,TCP连接则是指完成握手后建立的数据传输,后者才是真正和下载速度相关的。XP系统并没有限制成功连接的TCP数量。套用前面比喻就是,微软只是控制同时过桥的汽车,但是对通过大桥的汽车数量并没有限制。半开连接如果过多,反而造成系统负担过重,影响软件下载。
小提示:
为什么对下载速度没有实质提高,还要对半开连接数进行破解?同时开启网络任务较多时,由于系统限制了半开连接数,会导致网络断流假象的出现。破解后,可加快网络连接速度,缩短同时连接时的延迟时间(从几毫秒到几百毫秒)。
传言2:全世界人民都在破解半开
对于P2P软件来说,下载速度快慢只和源的多少、宽带本身上传/下载速率相关。因此对于宽带速率较高的用户,比如欧美用户大多使用100M的光纤宽带,此时破解TCP半开连接数就没什么意义。因为在这种高带宽条件下,系统允许发起半开连接数下就已经可以达到下载极限值了。也就是说大桥设计通行速度已经很高了,汽车到了桥头就直接飞奔而上,根本不需要等待排队上桥,因此高带宽用户无需进行TCP破解。
传言3:Windows 7也需要破解半开限制
还在Beta版的时候,有人就发布号称“地球第一款破解Windows 7 Tcpip.sys半开连接数限制的补丁”。实际上,从Windows Server 2008和Vista SP2开始,Windows中的TCP半开连接数限制就被禁用了,因此在Windows 7无需再进行任何的破解操作。对技术感兴趣朋友,可以使用kernel debugger(核心调试器)查看。具体操作请参考http://bbs.pcbeta.com/thread-527318-1-1.html的介绍。
正本溯源:通上大桥前的限制
TCP半开连接是指发送了TCP连接请求,等待对方应答的状态,此时连接并没有完全建立起来,双方还无法进行通信交互的状态,此时就称为半连接。由于一个完整的TCP连接需要经过三次握手才能完成,这里把三次握手之前的连接都称之为半连接(见图1)。
为了便于理解,我们把一次完整的TCP连接比作汽车通过一座大桥,在通过大桥之前的行程都称之为TCP半开连接。TCP半开连接数就是大桥的车道,由于这个这个半连接数量如果设置过大,不仅耗费大量系统资源,而且还可能会遭受很多DDoS攻击。因此,出于安全考虑,默认XP SP2(包括SP3)只允许同时存在10个TCP半开连接,也就是说这个大桥只有10个车道,破解就是通过修改tcpip.sys,拓宽这个大桥,使之拥有更多的车道,也就是增加TCP半开连接数。这样如果同时需要过桥的汽车较多,过桥等待的时间就更短了(注意:不是在桥上通行花费时间,是等待上桥的时间),破解半开连接数的意义也仅此而已。
不过并非大桥越宽越好,大桥宽度要和实际车流量匹配,比如,只要设计50车道就足够车流顺畅通过,设计成100车道就是浪费了。一般来说,在2M、4M宽带条件下,TCP半开连接数只要设置为256左右即可。
分清概念,系统半开连接和软件连接数
经过上面的介绍,大家已经了解系统TCP半开连接数的含义,对于P2P下载软件来说,提高了系统的半开连接数后,软件就可以同时发起更多的连接(当然这个数值必须小于系统半开连接数,否则会导致EventID 4226事件警告出现)。修改系统半开连接数后,软件就可以同时发起更多的连接,找到更多的源进行连接下载。比如,对于迅雷,如果将系统TCP半开连接数设置为256,那么迅雷全局最大连接数就要小于256,这个数值可以在迅雷控制面板窗口中进行设置(见图2)。
江湖传言,一一破解
TCP半开连接只是数据成功传输之前的“假连接”,对于实际数据传输并没有实际的影响。不过,现在网上却流传很多关于tcpip.sys的传言。来看看这些传言有没有事实依据。
传言1:半开连接越多越好,修改后会明显提速
如上所述,半开连接只是数据成功传输之前的“假连接”,此时并没有建立成功的TCP连接,因此对于数据实际传输是没有任何影响的。这里要分清半连接和TCP连接的不同含义,半开连接是系统允许同时发起连接的数量,TCP连接则是指完成握手后建立的数据传输,后者才是真正和下载速度相关的。XP系统并没有限制成功连接的TCP数量。套用前面比喻就是,微软只是控制同时过桥的汽车,但是对通过大桥的汽车数量并没有限制。半开连接如果过多,反而造成系统负担过重,影响软件下载。
小提示:
为什么对下载速度没有实质提高,还要对半开连接数进行破解?同时开启网络任务较多时,由于系统限制了半开连接数,会导致网络断流假象的出现。破解后,可加快网络连接速度,缩短同时连接时的延迟时间(从几毫秒到几百毫秒)。
传言2:全世界人民都在破解半开
对于P2P软件来说,下载速度快慢只和源的多少、宽带本身上传/下载速率相关。因此对于宽带速率较高的用户,比如欧美用户大多使用100M的光纤宽带,此时破解TCP半开连接数就没什么意义。因为在这种高带宽条件下,系统允许发起半开连接数下就已经可以达到下载极限值了。也就是说大桥设计通行速度已经很高了,汽车到了桥头就直接飞奔而上,根本不需要等待排队上桥,因此高带宽用户无需进行TCP破解。
传言3:Windows 7也需要破解半开限制
还在Beta版的时候,有人就发布号称“地球第一款破解Windows 7 Tcpip.sys半开连接数限制的补丁”。实际上,从Windows Server 2008和Vista SP2开始,Windows中的TCP半开连接数限制就被禁用了,因此在Windows 7无需再进行任何的破解操作。对技术感兴趣朋友,可以使用kernel debugger(核心调试器)查看。具体操作请参考http://bbs.pcbeta.com/thread-527318-1-1.html的介绍。