Tcp连接的处理方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及互联网领域,具体而言,涉及一种TCP连接的处理方法、装置及系统。
【背景技术】
[0002]SYN FLOOD攻击是DDoS分布式拒绝服务攻击中非常重要的一种手段。其拥有发动方法简单且效果明显等特点,能够快速消耗服务器的性能,导致服务器的服务不可用。
[0003]SYN FLOOD攻击利用了在建立TCP连接时的三次握手处理过程的协议脆弱的缺陷,发送大量伪造的TCP连接请求,使服务器维持大量的半开连接,从而使被攻击服务器的资源耗尽,影响正常连接的建立。
[0004]在正常的通过TCP建立连接的处理过程当中,服务器在每收到一个SYN同步包之后,会在内核协议栈中创建一个连接表项,等待该连接后续的报文并做进一步处理。攻击者往往通过伪造源IP,向服务器发起大量SYN同步包,每个SYN同步包都会使服务器创建一个处于SYN_RECV半连接状态的连接表项,由于没有后续的ACK报文,服务器无法完成TCP的三次握手,因此这些连接就会在一段时间内一直保持在SYN_RECV半连接状态。当处于半连接状态的连接数量达到一定程度之后,由于服务器为了维护一个非常庞大的半连接列表而消耗非常多的资源,因此,服务器对于正常连接的处理速度就变得很慢,甚至无法建立。
[0005]目前,在现有技术中常规的用于应对SYNFLOOD攻击的防护方法,包括基于SYNC00KIE验证的方式,在防护设备或者防护模块收到SYN同步包后,并不将SYN同步包交给服务器,而是先确认发送SYN同步包的源IP客户端是否能够通过三次握手建立正常的连接,然后再把该IP的报文转发给服务器。其具体的处理方式,一种是先回应SYN C00KIE,等后续的ACK验证通过之后,把该源IP加白名单并把当前连接断掉,由客户端重新发起连接,由于已经加了白名单,该IP后续的报文会被转发到服务器;另一种是做TCP代理,等SYN C00KIE验证通过之后,由防护设备向服务器作为客户端向服务器发起一个新的连接,并把客户端的请求通过该连接转到服务器。
[0006]上述现有的防护方法存在如下两个弊端:
[0007]1、在通过ACK验证之后利用白名单的方式,将使通过验证的正常的客户端连接中断并且需要客户端重新向服务器发起连接和请求,增大了响应时间,影响客户体验。
[0008]2、通过TCP代理的方式,防护设备需要同时维护大量处于连接状态中的连接信息,并且还需要对TCP连接进行转发,在对防护性能造成影响,也会增加响应延迟。
[0009]针对上述由于在对客户端发送的TCP连接进行验证后需要重新建立连接,导致的防护性能低、连接响应延迟的问题,目前尚未提出有效的解决方案。
【发明内容】
[0010]本发明实施例提供了一种TCP连接的处理方法、装置及系统,以至少解决由于在对客户端发送的TCP连接进行验证后需要重新建立连接,导致的防护性能低、连接响应延迟的技术问题。
[0011]根据本发明实施例的一个方面,提供了一种TCP连接的处理系统,包括:防护设备,通过互联网与客户端建立通讯连接,用于接收客户端发送的用于与服务器端建立TCP连接的连接报文,并判断接收到的连接报文的报文类型,其中,当连接报文的报文类型为应答报文时,利用连接校验信息对应答报文进行校验,当应答报文校验通过时,将应答报文转发至服务器端设置的连接设备;连接设备,设置于服务器端,分别与客户端和防护设备建立通讯连接,用于接收防护设备转发的用于与服务器端建立TCP连接的连接报文,并判断接收到的连接报文的报文类型,其中,当连接报文的报文类型为应答报文时,按照预先设置的校验规则对应答报文进行校验,当应答报文校验通过时,利用应答报文与发送应答报文的客户端建立TCP连接。
[0012]根据本发明实施例的另一方面,还提供了一种TCP连接的处理方法,应用于防护设备,包括:接收客户端发送的用于与服务器端建立TCP连接的连接报文;判断接收到的连接报文的报文类型,其中,连接报文的报文类型至少包括:同步报文和应答报文;当连接报文的报文类型为应答报文时,利用连接校验信息对应答报文进行校验,其中,连接校验信息根据同步报文生成;当应答报文校验通过时,将应答报文转发至服务器端。
[0013]进一步地,当连接报文的报文类型为同步报文时,在判断接收到的连接报文的报文类型之后,方法还包括:统计在预先设置的预定时间内,接收到同步报文的报文数量;判断报文数量是否大于等于预先设置的阈值;当报文数量大于或等于阈值时,根据同步报文生成连接校验信息;当报文数量小于阈值时,将同步报文转发至服务器端。
[0014]进一步地,在当应答报文校验通过之后,方法还包括:获取发送应答报文的客户端的第一客户端地址;将第一客户端地址保存至预先创建的客户端地址表。
[0015]进一步地,在利用连接校验信息对应答报文进行校验之后,方法还包括:当应答报文校验未通过时,获取发送应答报文的客户端的第二客户端地址;将第二客户端地址与客户端地址表进行匹配;当第二客户端地址与客户端地址表中的地址匹配时,将应答报文转发至服务器端;当第二客户端地址与客户端地址表中的地址不匹配时,丢弃应答报文。
[0016]根据本发明实施例的另一方面,还提供了一种TCP连接的处理装置,包括:应用于防护设备,包括:第一接收模块,用于接收客户端发送的用于与服务器端建立TCP连接的连接报文;第一判断模块,用于判断接收到的连接报文的报文类型,其中,连接报文的报文类型至少包括:同步报文和应答报文;第一校验模块,用于当连接报文的报文类型为应答报文时,利用连接校验信息对应答报文进行校验,其中,连接校验信息根据同步报文生成;第一转发模块,用于当应答报文校验通过时,将应答报文转发至服务器端。
[0017]进一步地,装置还包括:统计模块,用于统计在预先设置的预定时间内,接收到同步报文的报文数量;第二判断模块,用于判断报文数量是否大于等于预先设置的阈值;生成模块,用于当报文数量大于或等于阈值时,根据同步报文生成连接校验信息;第二转发模块,用于当报文数量小于阈值时,将同步报文转发至服务器端。
[0018]进一步地,装置还包括:第一获取模块,用于获取发送应答报文的客户端的第一客户端地址;存储模块,用于将第一客户端地址保存至预先创建的客户端地址表。
[0019]进一步地,装置还包括:第二获取模块,用于当应答报文校验未通过时,获取发送应答报文的客户端的第二客户端地址;匹配模块,用于将第二客户端地址与客户端地址表进行匹配;第三转发模块,用于当第二客户端地址与客户端地址表中的地址匹配时,将应答报文转发至服务器端;丢弃模块,用于当第二客户端地址与客户端地址表中的地址不匹配时,丢弃应答报文。
[0020]根据本发明实施例的另一方面,还提供了一种TCP连接的处理方法,应用于服务器端,包括:接收防护设备转发的用于与服务器端建立TCP连接的连接报文;判断接收到的连接报文的报文类型,其中,连接报文的报文类型至少包括:同步报文和应答报文;当连接报文的报文类型为应答报文时,按照预先设置的校验规则对应答报文进行校验;当应答报文校验通过时,利用应答报文与发送应答报文的客户端建立TCP连接。
[0021]根据本发明实施例的另一方面,还提供了一种TCP连接的处理装置,包括:应用于服务器端,包括:第二接收模块,用于接收防护设备转发的用于与服务器端建立TCP连接的连接报文;第三判断模块,用于判断接收到的连接报文的报文类型,其中,连接报文的报文类型至少包括:同步报文和应答报文;第二校验模块,用于当连接报文的报文类型为应答报文时,按照预先设置的校验规则对应答报文进行校验;第一连接模块,用于当应答报文校验通过时,利用应答报文与发送应答报文的客户端建立TCP连接。
[0022]在本发明实施例中,采用接收客户端发送的用于与服务器端建立TCP连接的连接报文;判断接收到的连接报文的报文类型,其中,连接报文的报文类型至少包括:同步报文和应答报文;当连接报文的报文类型为应答报文时,利用连接校验信息对应答报文进行校验,其中,连接校验信息根据同步报文生成;当应答报文校验通过时,将应答报文转发至服务器端的方式,达到了对SYN FLOOD攻击进行防护的目的,从而实现了提升对SYN FLOOD攻击进行防护的防护性能的技术效果,进而解决了由于在对客户端发送的TCP连接进行验证后需要重新建立连接,导致的防护性能低、连接响应延迟的技术问题。
【附图说明】
[0023]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0024]图1是根据本申请实施例的