分享

有关“半开连接数”的那些事儿 – 迅雷阳台

 ynhnzp 2011-09-22

有关“半开连接数”的那些事儿

引子

  至少在3年以前,包括迅雷在内的很多下载软件都提供了“修改(破解)操作系统‘TCP半开连接’数量限制(简称“半开连接数”)”的功能,但是有部分用户并没有正确的理解这玩意儿。

 

什么是“TCP半开连接”及“限制”?

  所谓“TCP半开连接”,简单的说就是发起了TCP连接请求,但尚处于建立连接阶段,双方还无法进行互相通信的状态。

  那么“TCP半开连接数量限制”就是指,限制连接发起者最多同时存在“TCP半开连接”的数量。

  在Windows XP SP2中,微软首次引入了半开连接数限制,限制数量:10。限制包括了后续的XP SP3、Windows 2003、Windows Vista 、Vista SP1。

【但是微软在Windows 7、Vista SP2、Windows 2008中没有启用半开连接限制】

 

为什么要修改“TCP半开连接”限制,这样的限制会导致什么?

一、连接多资源的效率降低

  如果我们将上面“建立连接阶段”比喻为正在食堂打饭的顾客,就容易理解多了。

1、TCP半开连接被限制为10,就相当于这座食堂有10个窗口可以同时打饭。

2、系统有大量,远超过10个建立TCP连接的请求,就相当于这座食堂有很多顾客光顾,却不得不排队等着前面那10位顾客打饭。

  显而易见的,TCP半开连接数限制导致建立TCP连接的效率降低了。套用到下载工具上,由于迅雷下载时可能存在大量需要通过TCP连接进行下载的候选资源,因此就导致连接多资源的效率降低了。

二、当某程序占满区区10个半开连接后,将影响其他应用程序发起TCP连接请求

  假设发起连接请求的是都是同一个程序(比如“迅雷”),这时其他程序(比如“浏览器”)的发起连接请求也得排队,由于排队的耗时。就出现了使用迅雷下载时,打不开网页或打开变慢的情况。

 

微软为什么限制“TCP半开连接”数量?

  按照伊文的理解,限制“TCP半开连接”数量的原因,是微软为了防范类似“冲击波病毒”爆发时。受感染的机器发起成百上千的连接,攻击其他计算机的情况。

  但是前文中提到“微软在Windows 7、Vista SP2、Windows 2008中没有启用半开连接限制”,但仍保留了限制机制。可能是因为微软决定在正常情况中无必要限制半开连接数量,当情况变化(例如类似病毒爆发)微软可能会重新开启半开连接数限制。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多