Tcp数据包处理方法及装置的制造方法

文档序号:9455867阅读:586来源:国知局
Tcp数据包处理方法及装置的制造方法
【技术领域】
[0001]本申请涉及网络安全技术领域,特别是涉及一种传输控制协议(Transmiss1nControl Protocol,简称TCP)数据包处理方法及装置。
【背景技术】
[0002]随着网络技术的发展,针对互联网的各种攻击行为层出不穷,其中分布式拒绝服务(DDoS, Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动拒绝服务(DoS, Denial of Service)攻击,从而成倍地提高拒绝服务攻击的威力。实践中常见的DDoS攻击包括:Rst Flood攻击、HttpFlood攻击、DNS Query Flood攻击、ack flood攻击、fin flood攻击等等。上述的这些TCPFlood攻击可以瞬间消耗服务器大量资源,造成大量的半连接被占用,使得正常的用户无法访问服务器。同时也存在一些发送大量数据包以堵塞带宽为目的的行为,有些TCP数据包在没有建立过正常的三次握手前,就被送到服务端,我们可以很明显地认为这些数据包是非法的,并且是人为构造出来的。

【发明内容】

[0003]本申请实施例解决的问题是如何简单有效地对不符合正常的TCP连接建立过程的异常TCP数据包进行地检测和过滤。
[0004]为解决上述问题,本申请实施例提供了一种TCP数据包处理方法,所述方法包括:
[0005]提取待处理的TCP数据包的会话特征;
[0006]根据所提取的待处理的TCP数据包的会话特征查找会话列表中所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话状态的信息;
[0007]根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
[0008]可选地,所述会话特征包括源端口和源IP地址。
[0009]可选地,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
[0010]可选地,所述根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理,包括以下至少任一项:
[0011]当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
[0012]当所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
[0013]当所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态由所述第三状态转换为第二状态。
[0014]可选地,所述方法还包括:当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
[0015]可选地,所述方法还包括:在预设时间对所述会话列表中存储的TCP会话进行处理。
[0016]可选地,在预设时间对所述会话列表中存储的TCP会话进行处理,包括:
[0017]在预设时间获取所述会话列表中TCP会话的状态;
[0018]当所述TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第二状态;
[0019]当TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
[0020]本申请实施例还提供了一种TCP数据包处理装置,包括:
[0021]提取单元,提取待处理的TCP数据包的会话特征;
[0022]获取单元,适于根据所述提取单元所提取的所述待处理的TCP数据包的会话特征查找会话列表,获取所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态;
[0023]第一处理单元,适于根据所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
[0024]可选地,所述会话特征包括源端口和源IP地址。
[0025]可选地,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
[0026]可选地,所述第一处理单元包括:
[0027]第一判断子单元,适于当所述获取单元获取的所述待处理的TCP数据包所属TCP会话的状态为所述第一状态时,判断所述待处理的TCP数据包是否为SYN数据包和SYN_ACK数据包;
[0028]第一透传子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包;
[0029]第一转换子单元,适于所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
[0030]第二透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
[0031]第三透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包;
[0032]第三转换子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,将所述待处理的TCP数据包所属TCP会话的状态转换为第二状态。
[0033]可选地,所述第一处理单元还包括:丢弃子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
[0034]可选地,所述装置还包括:第二处理单元,适于在预设时间对所述会话列表中的TCP会话进行处理。
[0035]可选地,所述第二处理单元包括:
[0036]获取子单元,适于在预设时间获取所述会话列表中TCP会话的状态;
[0037]第四转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态;
[0038]第五转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
[0039]与现有技术相比,本申请的技术方案具有以下的优点:
[0040]上述的技术方案,由于根据所接收的待处理的TCP数据包所属TCP会话的状态,对所接收的待处理的TCP数据包进行丢弃或者透传操作,因此,可以对不符合正常的TCP连接建立过程的异常TCP数据包进行有效地检测和过滤,使得数据的传输更加安全、可靠。
[0041]进一步地,由于通过源端口和源IP地址的二元组信息来查找待处理的TCP数据包所属TCP会话的状态,可以有效提高查询的效率,从而可以提高待处理的TCP数据包处理的效率,且占用资源较少。
[0042]进一步地,由于当待处理的TCP数据包所在TCP会话的会话为第一状态时,对于所接收的SYN数据包和SYN_ACK数据包进行透传,不仅可以对自客户端的未建立三次握手的大部分TCP数据包进行有效地检测和过滤同时,对服务器发起的TCP会话的三次握手过程不造成干扰),适用范围广泛。
[0043]进一步地,由于在预设时间内对于会话列表中所记录的TCP会话的状态进行转换,将长时间不更新的TCP会
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1