问:正在使用Windows 7,是否需要修改系统的TCP半开连接数来提升下载速度?
答:在这里,我可以明白无误地告诉大家,那只是白费工夫,毫无意义。为什么呢?让我一一道来。
1)什么是TCP半开连接?
TCP连接是互联网中常用的一种连接方式。它在传递数据的时候,需要接收到对方返回“收到”的应答信息,这样才会继续发送。因为这样的特点,它可以更安全可靠地传递消息,成为很多互联网程序的首选通讯方式。而TCP半开连接,就是已经发送了连接请求,但是仍旧没有得到对方“收到”的通讯状态。通俗地说,也就是双方连接尚未完全建立起来,无法进行通讯交互的状态。也就是说,TCP半开连接并不能进行互相通讯,本身也并没有数据传递的概念。
2)Windows限制的是TCP半开连接数而不是连接数。
从Windows XP SP2时代起,微软引进TCP半开连接数限制,并且将数值定在了10。也就是说,同一时间内,TCP半开连接数的总数量不能超过10。一时间,各种奇怪的言论在互联网上开始传播,大体上说微软限制了Windows的TCP连接数。这还了得?限制了TCP连接数,等于变相限制了可运行网络程序的线程数量。谣言本身利用用户对深层次基础概念的不了解混淆了TCP半开连接和TCP连接,造成了大家的恐慌。
3)微软为什么会限制TCP半开连接数?
微软工程师有这样的设置,自有他的原因:Windows XP时代,是网络世界发展最快的时代。但那个时候人们对网络安全认识不够、重视不足,导致各种安全问题层出不穷。一个典型的问题就是蠕虫病毒。一些老的计算机用户应该记得在七八年前,蠕虫病毒发作是多么的可怕。它们会不断地向外发出连接申请,瞬间就能消耗掉大量的系统资源和网络资源。结果就是当前计算机操作无响应,同网络的计算机网速被严重破坏。为了防止这种被称为SYN的洪水攻击,微软在Windows XP SP2中正式引入TCP半开连接数,限制系统同时向外申请的连接最高数量,以达到保护系统和网络资源的目的。
4)限制TCP半开连接数,究竟会对我们的下载产生多大的影响?
我就用乘坐火车的例子来做比喻吧:最高下载速度就像是火车的最大乘客数量,TCP连接数就是乘坐火车的乘客,而TCP半开连接数,则是我们乘坐火车前的检票口。同时开启5个和同时开启10个检票口的检票速度显然不一样,后者明显要快一些,但是一列火车能够乘坐的乘客数量是有限的,不论你开启多少检票口,这列火车的座位都是一定的,并不会因为你开启了10个检票口,火车的座位就会增加。用另外一个形象的比喻来说,TCP半开连接数就是汽车的百公里加速时间,它仅仅跟加速有关,无论如何是影响不了汽车的最高时速的。半开连接数不能决定下载速度的快慢,只在一定程度上影响达到下载速度峰值的时间长短。
5)我们需要修改半开连接数吗?
对于Windows XP,一些用户会出现开启P2P软件后无法打开网页,甚至聊天软件断线的情况。这是因为打开网页和使用聊天软件也需要发起连接请求,如果有限的连接请求已经全部被下载软件占用,自然就会出现上述情况。合理的做法是适当修改TCP半开连接数(我认为30~50是一个比较合适的范围),同时限定P2P下载软件的全局最大连接数(小于系统设定的TCP半开连接数)以及上传和下载速度,这样既能保证安全,又可以体验到下载的乐趣。
对于Windows Vista和Windows 7用户,则没有这样的顾虑了。因为微软从代码级别上取消了TCP半开连接数的限制。那些仍旧在论坛上兴风作浪,号称可以破解Windows Vista SP2和Windows 7半开连接数的补丁,实质上只是个笑话而已。
行文到此,建议:对于网络上传递的所谓高手信息,在不能完全判断真假之前,不要轻易地完全相信。更不要轻易安装那些会修改系统底层的软件,其带来的后果是不可预测的。