转贴自very资源网:http://board.verycd.com/t463463.html

最近看到有些帖子说“XP SP2每秒只允许10个人连接你的电脑”之类的误导性言论,深深感到“门外汉教门外汉,越教越瓜”……

正确的说法是:XP SP2只允许同时存在10个TCP半开连接。

1、什么是TCP半开连接?
所谓半开TCP连接,简单地说就是发送了TCP连接请求,但还没有得到对方应答的状态(实际上要复杂些),也就是连接尚未完全建立起来,双方还无法进行通信交互的状态。

2、XP限制了TCP连接数量吗?
XP SP2没有限制TCP连接数量。

3、半开连接数量限制对上传、下载速率有什么影响吗?
几乎没有影响。
半开连接数限制充其量仅会在连接时引入一点时延(从几毫秒到几百毫秒)而已。而数据交互是在已经建立的TCP连接上传输的,传输速率与半开连接数量无关。更何况P2P协议本身还有排队、请求数据等,这些机制引入的时延都远远大于半开连接限制所带来的时延(例如,你连接了数百个对端,但是传输数据的却只有其中的几十个而已,其中大部分都处于等待或闲置状态)。因此,半开连接数限制对上传、下载速率几乎没有影响。

4、TCP半开连接数量设置为多少比较合适?
不超过50为宜。没有必要设置得太大。
因为每一个半开连接都会系统(包括路由器、防火墙、操作系统等)引入额外的开销,过多的半开连接数只会导致系统资源紧张、不稳定甚至崩溃,却不能带来传输速率在实质上的提高。例如,在P2P网络中,一个黑客可以通过散布虚假资源信息,引导大量客户端在短时间内试图与某个被攻击者建立连接,如果半开连接数设置过大,将导致系统崩溃(路由器梗死、防火墙瘫痪或者操作系统崩溃等)。还有其它很多DDoS攻击手段。限制TCP半开连接数,可以有效地防止DDoS攻击。

5、如何知道当前的传输速率?
用任务管理器的网络选项卡或者防火墙查看网卡实际传输了多少数据才是最准确的,下载软件显示的值有可能是虚假的。

最后,希望大家不要迷信TCP半开连接数量会明显提高传输速率的谣言。
实际传输速率=同时连接的数量×有效连接(源)占的比例x对端上传通道平均上传速率x平均传输时间÷连接持续时间。

PS:看到有人说修改半开连接数是为了提高下载软件的下载速度, 哪么...........如下

数据交互是在已经完全建立的连接上进行的,半开连接数本来就和传输速率无关。
你家网速快,大可以试试看改回10会不会影响你的传输速率。——这才是最重要的!

至于其他理由,欧美用户带宽普遍比国内宽,却很少见他们谈论破解半开连接数的;国内关于半开连接数的破解教程,大多出自于垃圾下载软件给自己打广告,教用户如何使用那些软件内置的破解选项;最后,微软在软件界、网络界摸爬滚打了几十年、拥有无数研究院,这点常识性的东西不可能会犯错误的,如果因此造成其操作系统性能低下、流失用户、减少利润,那是不可能的,那只是国内用户们太容易受骗上当罢了。

找源只有两种方式:一种是通过P2P服务器查询(不论是eMule、BT还是迅雷的服务器),另一种是通过分布式用户交换(eMule的Kad、BT的DHT)。半开连接是在找到了源之后,对源发起连接,但连接还未完全建立的状态。源的数量于半开连接数完全没有关系。