半开连接数

半开连接数

目录导航

简介

  所谓半开TCP连接,简单地说就是发送了TCP连接请求,但还没有得到对方应答 图片的状态(实际上要复杂些),也就是连接尚未完全建立起来,双方还无法进行通信交互的状态。半开连接数限制充其量仅会在连接时引入一点时延(从几毫秒到几百毫秒)而已。而数据交互是在已经建立的TCP连接上传输的,传输速率与半开连接数量无关。更何况P2P协议本身还有排队、请求数据等,这些机制引入的时延都远远大于半开连接限制所带来的时延(例如,你连接了数百个对端,但是传输数据的却只有其中的几十个而已,其中大部分都处于等待或闲置状态)。因此,半开连接数限制对上传、 下载速率几乎没有影响。
  

原理

  因为每一个半开连接都会使系统(包括 路由器、防火墙、操作系统等)引入额外的开销,过多的半开连接数只会导致系统资源紧张、不稳定甚至崩溃,却不能带来传输速率在实质上的提高。例如,在P2P网络中,一个黑客可以通过散布虚假资源信息,引导大量客户端在短时间内试图与某个被攻击者建立连接,如果半开连接数设置过大,将导致 系统崩溃(路由器梗死、防火墙瘫痪或者操作系统崩溃等)。还有其它很多 DDoS攻击手段。限制TCP半开连接数,可以有效地防止DDoS攻击。TCP半开连接是指发送了TCP连接请求,等待对方应答的状态,此时连接并没有完全建立起来,双方还无法进行通信交互的状态,此时就称为半连接。由于一个完整的TCP连接需要经过 三次握手才能完成,这里把三次握手之前的连接都称之为半连接。
  

后记

  为了便于理解,我们把一次完整的TCP连接比作汽车通过一座大桥,在通过大桥之前的行程都称之为TCP半开连接。TCP半开连接数就是大桥的车道,由于这个这个半连接数量如果设置过大,不仅耗费大量系统资源,而且还可能会遭受很多DDoS攻击。因此,出于安全考虑,默认XPSP2(包括 SP3)只允许同时存在10个TCP半开连接,也就是说这个大桥只有10个车道,破解就是通过修改 tcpip.sys,拓宽这个大桥,使之拥有更多的车道,也就是增加TCP半开连接数。这样如果同时需要过桥的汽车较多,过桥 等待的时间就更短了(注意:不是在桥上通行花费时间,是等待上桥的时间),破解半开连接数的意义也仅此而已。不过并非大桥越宽越好,大桥宽度要和实际车流量匹配,比如,只要设计50车道就足够车流顺畅通过,设计成100车道就是浪费了。一般来说,在2M、4M宽带条件下,TCP半开连接数只要设置为256左右即可。
  

知识延伸——TCP

  TCP:Transmission Control Protocol 传输控制协议 图片TCP是一种 面向连接(连接导向)的、可靠的、基于 字节流的 运输层(Transport layer) 通信协议,由IETF的RFC 793说明(specified)。在简化的 计算机网络 OSI模型中,它完成第四层 传输层所指定的功能,UDP是同一层内另一个重要的 传输协议。
  tcp作用
  在 因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上, 应用层之下的运输层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。   应用层向TCP层发送用于网间传输的、用8位字节表示的 数据流,然后TCP把数据流分割成适当长度的 报文段(通常受该计算机连接的网络的 数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生 丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个 校验和函数来检验数据是否有错误;在发送和接收时都要计算和校验。   首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和 捎带确认机制。   在 流量控制上,采用 滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。   在 拥塞控制上,采用广受好评的 TCP拥塞控制算法(也称AIMD算法),该算法主要包括三个主要部分:1,加性增、乘性减;2, 慢启动;3,对超时事件做出反应。

相关百科
返回顶部
产品求购 求购