CN105207977A - Tcp数据包处理方法及装置 - Google Patents
Tcp数据包处理方法及装置 Download PDFInfo
- Publication number
- CN105207977A CN105207977A CN201410290087.0A CN201410290087A CN105207977A CN 105207977 A CN105207977 A CN 105207977A CN 201410290087 A CN201410290087 A CN 201410290087A CN 105207977 A CN105207977 A CN 105207977A
- Authority
- CN
- China
- Prior art keywords
- state
- tcp
- session
- data bag
- tcp data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
一种TCP数据包处理方法及装置,所述方法包括:提取待处理的TCP数据包的会话特征;根据所提取的待处理的TCP数据包的会话特征查找会话列表中所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括所述会话特征和TCP会话的状态的信息;根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应地处理。上述的技术方案可以对不符合正常的TCP连接建立过程的异常TCP数据包进行有效地检测和过滤,使得数据的传输更加安全、可靠。
Description
技术领域
本申请涉及网络安全技术领域,特别是涉及一种传输控制协议(TransmissionControlProtocol,简称TCP)数据包处理方法及装置。
背景技术
随着网络技术的发展,针对互联网的各种攻击行为层出不穷,其中分布式拒绝服务(DDoS,DistributedDenialofService)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动拒绝服务(DoS,DenialofService)攻击,从而成倍地提高拒绝服务攻击的威力。实践中常见的DDoS攻击包括:RstFlood攻击、HttpFlood攻击、DNSQueryFlood攻击、ackflood攻击、finflood攻击等等。上述的这些TCPFlood攻击可以瞬间消耗服务器大量资源,造成大量的半连接被占用,使得正常的用户无法访问服务器。同时也存在一些发送大量数据包以堵塞带宽为目的的行为,有些TCP数据包在没有建立过正常的三次握手前,就被送到服务端,我们可以很明显地认为这些数据包是非法的,并且是人为构造出来的。
发明内容
本申请实施例解决的问题是如何简单有效地对不符合正常的TCP连接建立过程的异常TCP数据包进行地检测和过滤。
为解决上述问题,本申请实施例提供了一种TCP数据包处理方法,所述方法包括:
提取待处理的TCP数据包的会话特征;
根据所提取的待处理的TCP数据包的会话特征查找会话列表中所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话状态的信息;
根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
可选地,所述会话特征包括源端口和源IP地址。
可选地,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
可选地,所述根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理,包括以下至少任一项:
当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
当所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
当所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态由所述第三状态转换为第二状态。
可选地,所述方法还包括:当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
可选地,所述方法还包括:在预设时间对所述会话列表中存储的TCP会话进行处理。
可选地,在预设时间对所述会话列表中存储的TCP会话进行处理,包括:
在预设时间获取所述会话列表中TCP会话的状态;
当所述TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态;
当TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
本申请实施例还提供了一种TCP数据包处理装置,包括:
提取单元,提取待处理的TCP数据包的会话特征;
获取单元,适于根据所述提取单元所提取的所述待处理的TCP数据包的会话特征查找会话列表,获取所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态;
第一处理单元,适于根据所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
可选地,所述会话特征包括源端口和源IP地址。
可选地,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
可选地,所述第一处理单元包括:
第一判断子单元,适于当所述获取单元获取的所述待处理的TCP数据包所属TCP会话的状态为所述第一状态时,判断所述待处理的TCP数据包是否为SYN数据包和SYN_ACK数据包;
第一透传子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包;
第一转换子单元,适于所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
第二透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
第三透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包;
第三转换子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,将所述待处理的TCP数据包所属TCP会话的状态转换为第二状态。
可选地,所述第一处理单元还包括:丢弃子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
可选地,所述装置还包括:第二处理单元,适于在预设时间对所述会话列表中的TCP会话进行处理。
可选地,所述第二处理单元包括:
获取子单元,适于在预设时间获取所述会话列表中TCP会话的状态;
第四转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态;
第五转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
与现有技术相比,本申请的技术方案具有以下的优点:
上述的技术方案,由于根据所接收的待处理的TCP数据包所属TCP会话的状态,对所接收的待处理的TCP数据包进行丢弃或者透传操作,因此,可以对不符合正常的TCP连接建立过程的异常TCP数据包进行有效地检测和过滤,使得数据的传输更加安全、可靠。
进一步地,由于通过源端口和源IP地址的二元组信息来查找待处理的TCP数据包所属TCP会话的状态,可以有效提高查询的效率,从而可以提高待处理的TCP数据包处理的效率,且占用资源较少。
进一步地,由于当待处理的TCP数据包所在TCP会话的会话为第一状态时,对于所接收的SYN数据包和SYN_ACK数据包进行透传,不仅可以对自客户端的未建立三次握手的大部分TCP数据包进行有效地检测和过滤同时,对服务器发起的TCP会话的三次握手过程不造成干扰),适用范围广泛。
进一步地,由于在预设时间内对于会话列表中所记录的TCP会话的状态进行转换,将长时间不更新的TCP会话从所述会话列表中进行删除,可以有效减少内存的占用率,节省资源,可以提高TCP会话查找的效率,从而可以提高待处理的TCP数据包处理的效率。
附图说明
图1是本申请实施例中的一种TCP数据包处理方法的流程图;
图2是本申请实施例中的另一种TCP数据包处理方法的流程图;
图3示出了本申请实施例中的TCP数据包处理方法中的在预设时间对所述会话列表中存储的TCP会话进行处理的流程图;
图4是本申请实施例中的一种TCP数据包处理装置的结构示意图;
图5是本申请实施例中的TCP数据包处理装置中的第一处理单元的结构示意图;
图6是本申请实施例中的TCP数据包处理装置中的第二处理单元的结构示意图。
具体实施方式
为解决现有技术中存在的上述问题,本申请实施例根据会话列表中所记录的待处理的TCP数据包所属TCP会话的状态,对所接收的待处理的TCP数据包进行透传或者丢弃,可以对不符合正常的TCP连接建立过程的异常TCP数据包进行有效地检测和过滤,简单高效。
为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图对本申请的具体实施例做详细的说明。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
图1示出了本申请实施例中的一种TCP数据包处理方法的流程图。如图1所示的TCP数据包处理方法,包括:
步骤S11:提取所述待处理的TCP数据包的会话特征。
在具体实施中,待处理的TCP数据包的会话特征可以为TCP会话的二元组信息,包括源端口、源网络间互联协议(InternetProtocol,简称IP)地址。
在具体实施中,待处理的TCP数据包的会话特征也可以为TCP会话的五元组信息,包括源端口、源IP地址、目的端口、目的IP地址和协议号。
步骤S12:根据所提取的待处理的TCP数据包的会话特征查找会话列表中所述待处理的TCP数据包所属TCP会话的状态。
在具体实施中,会话列表中可以包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态。通过TCP会话的会话特征可以确定会话列表中相应的TCP会话,从所述会话列表中所存储TCP会话的信息中可以获取TCP会话的状态。
步骤S13:根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应地处理。
在具体实施中,所述TCP会话的状态可以包括第一状态、第二状态和第三状态。其中:
所述第一状态可以为TCP会话的初始状态,TCP会话的初始状态为尚未建立TCP连接的TCP会话的状态,因此,在所述会话列表中将查询不到相应的记录。
所述第二状态为正在进行数据传输的TCP会话的状态,即已经建立TCP连接,且在预设时间内不断接收到新的待处理的TCP数据包的TCP会话的状态。
所述第三状态为处于第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
在具体实施中,通过TCP会话的状态可以确定所接收的待处理的TCP数据包是否为异常的TCP数据包,从而可以采取相应的措施。例如,可以透传或者丢弃所述待处理的TCP数据包。
图2示出了本申请实施例中的另一种TCP数据包处理方法的流程图。如图2所示的TCP数据包处理方法,包括:
步骤S21:提取所述待处理的TCP数据包的会话特征。
在具体实施中,待处理的TCP数据包的会话特征可以为TCP会话的二元组信息,包括源端口、源IP地址。
步骤S22:根据所提取的待处理的TCP数据包的会话特征,查找会话列表中所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态。
在具体实施中,在网络访问中,对于IP地址固定的服务器,其所提供的网络服务也固定。因此,在提供网络服务的服务器确定的情况下,客户端(用户)的源端口和源IP地址也固定。因此,可以采用包括源IP地址和源端口的二元组信息作为会话特征来记录和查找相应的TCP会话,获取TCP会话的状态。采用源IP地址和源端口的二元组信息对于相应的TCP会话进行记录和查找,一方面,由于会话列表中所存储的的TCP会话信息的会话特征中仅包括了源端口和源IP地址信息,因此,可以节省存储空间,提高资源利用率;另一方面,也可以提高TCP会话查找的速度,从而可以有效提高待处理的TCP数据包处理的效率。
步骤S23:当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态,否则,丢弃所述待处理的TCP数据包。
在正常状况下,TCP会话的创建必须要经历的三次握手过程,包括:
第一次握手:客户端发送位码为syn=1,随机产生seq的数据包到服务器,服务端由SYN=1知道,客户端要求建立联机;
第二次握手:服务器收到请求后要确认联机信息,向客户端发送acknumber=seq+1,syn=1,ack=1,随机产生seq的数据包;
第三次握手:客户端收到后检查acknumber是否正确,即第一次发送的seqnumber+1,以及位码ack是否为1,若正确,客户端会再发送acknumber=(服务器的seq+1),ack=1,服务器收到后确认seq值与ack=1则连接建立成功,完成上述的三次握手,客户端与服务器开始传送数据。
由此可知,TCP会话创建的三次握手过程必然会有SYN和SYN_ACK数据包的发送和接收。因此,想要确定TCP会话是否有前述的建立连接的过程,只要判断所述TCP会话是否有SYN数据包和SYN_ACK数据包通过即可。
在具体实施中,当所接收的TCP会话所处的TCP会话的状态为所述第一状态,即初始状态时,TCP会话尚未被握手数据包(握手报文)激活,因此,可以进一步通过所接收的待处理的TCP数据包是否为握手数据包,来判断所接收的待处理的TCP数据包是否符合TCP连接创建的正常过程。当所接收的待处理的TCP数据包为握手数据包时,则表明所述TCP会话符合TCP连接创建的正常流程,因此,可以透传所述待处理的TCP数据包。同时,由于接收到握手报文后,相应的TCP会话即创建,在会话列表中,所述待处理的TCP数据包所属TCP会话的状态可以转换为所述第二状态。
在具体实施中,当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且判断所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,则可以判断所述待处理的TCP数据包的发送不符合TCP会话的正常创建过程。因此,可以判断所述待处理的TCP数据包为异常数据包而将其丢弃。
在具体实施中,所述握手数据包可以包括SYN数据包和SYN_ACK数据包。由于在TCP会话建立连接的三次握手过程中,必然有SYN数据包和SYN_ACK数据包的发送和接收。握手数据包为SYN数据包和SYN_ACK数据包时,可以包括两种情形,一种是所述握手数据包所属的TCP会话是由客户端发起,而另一种情形则是所述握手数据包所属的TCP会话是由客户端发起。因此,通过判断握手数据包是否为SYN数据包和SYN_ACK数据包,本申请实施例中的TCP数据包处理方法不仅可以适用于客户端发起的TCP会话中待处理的TCP数据包的处理,而且也可以适用于服务器端发起的TCP会话中待处理的TCP数据包的处理,适用范围广泛。
步骤S24:当所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包。
在具体实施中,当所接收的待处理的TCP数据包所述TCP会话的状态为第二状态时,则所述待处理的TCP数据包所属TCP会话正在处于数据传输的状态,因此,可以确定所接收待处理的TCP数据包为正常的待处理的TCP数据包,可以透传。
同时,由于一直有新的待处理的TCP数据包发送过来,所述TCP会话一直处于数据传输的状态,因此,在会话列表中,所述TCP所属TCP会话的状态可以维持在第二状态。
步骤S25:当所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态。
在具体实施中,当所接收的待处理的TCP数据包所述TCP会话的状态为第三状态时,所述待处理的TCP数据包所属TCP会话在预设时间内一直未接收到新的待处理的TCP数据包而处于会话停滞的状态。而当接收的待处理的TCP数据包属于处于第三状态的TCP会话时,所述TCP会话又重新进入数据传输的状态。因此,可以将所述待处理的TCP数据包所属TCP会话的状态由处于会话停滞的第三状态转换成为正在进行数据传输的第二状态。同时,可以透传所述待处理的TCP数据包。
在具体实施中,可以将所有经过透传的TCP数据包所属TCP会话记录在会话列表中。为了提高待处理的TCP数据包处理的效率和节省存储空间,可以设定一预设时间对会话列表中所存储的TCP会话进行相应地处理,以将长时间未更新的TCP会话从会话列表中删除。
图3示出了本申请实施例中的TCP数据包处理方法中的在预设时间对所述会话列表中存储的TCP会话进行处理的流程图。如图3所示,在预设时间对所述会话列表中存储的TCP会话进行处理,可以包括:
步骤S31:在预设时间获取所述会话列表中TCP会话的状态。
在具体实施中,对于所有透传的待处理的TCP数据包所属的TCP会话都可以通过二元组信息,即源端口和源IP地址记录在会话列表中,且所述会话列表中还可以包括TCP会话的状态的信息。因此,通过遍历会话列表,可以获取所有的TCP会话的状态。
在具体实施中,所述预设时间可以根据实际的需要进行确定。例如,可以通过服务器所提供的服务进行确定。
步骤S32:当所述TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态。
在具体实施中,由于在预设时间内所述TCP会话的状态为所述第二状态时,表明所述TCP会话在经过数次TCP数据包的交互后,在预设时间内一直未收到新的TCP会话,处于会话停滞的状态,因此,可以将所述TCP会话的状态由第二状态转换成为第三状态。
步骤S33:当TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
在具体实施中,由于在预设时间内所述TCP会话的状态为所述第三状态时,表明所述TCP会话在预设时间内仍然一直未收到新的TCP会话,处于会话停滞的状态,因此,可以将所述TCP会话的状态由第二状态转换成为第一状态,也即是将所述TCP会话从会话列表中删除。
通过上述的处理,可以将常年不更新TCP会话从会话列表中删除,因此,可以提高会话列表的利用率,从而可以提高待处理的TCP数据包处理的效率。
图4示出了本申请实施例中的一种TCP数据包处理装置,包括提取单元41、获取单元42和第一处理单元43,获取单元42分别与提取单元41和第一处理单元43相连接。其中:
提取单元41,适于提取所述待处理的TCP数据包的会话特征。
在具体实施中,提取单元41所提取的待处理的TCP数据包的会话特征可以为源IP地址和源端口。
获取单元42,适于根据所述提取单元41所提取的所述待处理的TCP数据包的会话特征查找会话列表,获取所述待处理的TCP数据包所属TCP会话的状态。
在具体实施中,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态的信息。
在具体实施中,获取单元42所获取的会话列表中的所述TCP会话的状态可以第一状态、第二状态和第三状态。其中:
所述第一状态可以为TCP会话的初始状态,TCP会话的初始状态可以为尚未建立TCP连接的TCP会话的状态,因此,在所述会话列表中将查询不到相应的记录。
所述第二状态可以为正在进行数据传输的TCP会话的状态,即已经建立TCP连接,且在预设时间内不断接收到新的待处理的TCP数据包的TCP会话的状态。
所述第三状态可以为处于所述第二状态的TCP会话在预设时间内未接收到新的TCP数据包而转换得到的TCP会话的状态。
第一处理单元43,适于根据所述获取单元42所获取的所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应地处理。
图5示出了本申请实施例中的第一处理单元的结构示意图。如图5所示的第一处理单元,可以包括第一判断子单元51、第一透传子单元52、第一转换子单元53、第二透传子单元54、第三透传子单元55、第三转换子单元56,第一判断子单元51分别与第一透传子单元52和第一转换子单元53相连接。其中,
第一判断子单元51,适于当所述获取单元获取的所述待处理的TCP数据包所属TCP会话的状态为所述第一状态时,判断所述待处理的TCP数据包是否为SYN数据包和SYN_ACK数据包。
第一透传子单元52,适于当第一判断子单元51判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包。
第一转换子单元53,适于第一判断子单元51判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,将所述待处理的TCP数据包所属TCP会话的状态由所述第一状态转换为所述第二状态。
第二透传子单元54,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包。
第三透传子单元55,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包。
第三转换子单元56,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,将所述待处理的TCP数据包所属TCP会话的状态由所述第三状态转换为第二状态。
在具体实施中,所述第一处理单元还可以包括:丢弃子单元57。丢弃子单元57与第一判断子单元51相连接,适于当第一判断子单元51判断所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
在具体实施中,为了对于会话列表中所存储的TCP会话进行管理,将长时间处于会话停滞状态的TCP会话从会话列表中删除,以节省存储空间,从而提高TCP数据包处理的效率,本申请实施例中的TCP数据包处理装置还可以包括:第二处理单元,适于在预设时间对所述会话列表中的TCP会话进行处理。
图6示出了本申请实施例中的一种TCP数据包处理装置中的第二处理单元的结构示意图。如图6所示的第二处理单元可以包括获取子单元61、第四转换子单元62和第五转换子单元63,获取子单元61分别与第四转换子单元62和第五转换子单元63相连接。其中:
获取子单元61,适于在预设时间获取所述会话列表中TCP会话的状态。
第四转换子单元62,适于当所述获取子单元61所获取的TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态。
第五转换子单元63,适于当所述获取子单元61所获取的TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
本申请实施例中的TCP数据包处理装置,由于根据所接收的待处理的TCP数据包所属TCP会话的状态,对所接收的待处理的TCP数据包进行丢弃或者透传操作,因此,可以对不符合正常的TCP连接建立过程的异常TCP数据包进行有效地检测和过滤使得数据的传输更加安全、可靠。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例的方法及系统做了详细的介绍,本申请并不限于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种TCP数据包处理方法,其特征在于,包括:
提取待处理的TCP数据包的会话特征;
根据所提取的待处理的TCP数据包的会话特征查找会话列表中所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话状态的信息;
根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
2.根据权利要求1所述的TCP数据包处理方法,其特征在于,所述会话特征包括源端口和源IP地址。
3.根据权利要求1或2所述的TCP数据包处理方法,其特征在于,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
4.根据权利要求3所述的TCP数据包处理方法,其特征在于,所述根据所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理,包括以下至少任一项:
当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
当所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
当所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包,并将所述待处理的TCP数据包所属TCP会话的状态由所述第三状态转换为第二状态。
5.根据权利要求4所述的TCP数据包处理方法,其特征在于,还包括:当所述待处理的TCP数据包所属TCP会话的状态为所述第一状态,且所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
6.根据权利要求1所述的TCP数据包处理方法,其特征在于,还包括:在预设时间对所述会话列表中存储的TCP会话进行处理。
7.根据权利要求6所述的TCP数据包处理方法,其特征在于,在预设时间对所述会话列表中存储的TCP会话进行处理,包括:
在预设时间获取所述会话列表中TCP会话的状态;
当所述TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态;
当TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
8.一种TCP数据包处理装置,其特征在于,包括:
提取单元,提取待处理的TCP数据包的会话特征;
获取单元,适于根据所述提取单元所提取的所述待处理的TCP数据包的会话特征查找会话列表,获取所述待处理的TCP数据包所属TCP会话的状态,所述会话列表中包括TCP数据包的会话特征和TCP数据包所属TCP会话的状态;
第一处理单元,适于根据所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态,对所述待处理的TCP数据包进行相应处理。
9.根据权利要求8所述的TCP数据包处理装置,其特征在于,所述会话特征包括源端口和源IP地址。
10.根据权利要求8或9所述的TCP数据包处理装置,其特征在于,所述TCP会话的状态包括第一状态、第二状态和第三状态,所述第一状态包括TCP会话的初始状态,所述第二状态包括正在进行数据传输的TCP会话的状态,所述第三状态包括处于所述第二状态的TCP会话在预设时间内未接收到新的待处理的TCP数据包而转换得到的TCP会话的状态。
11.根据权利要求10所述的TCP数据包处理装置,其特征在于,所述第一处理单元包括:
第一判断子单元,适于当所述获取单元获取的所述待处理的TCP数据包所属TCP会话的状态为所述第一状态时,判断所述待处理的TCP数据包是否为SYN数据包和SYN_ACK数据包;
第一透传子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,透传所述待处理的TCP数据包;
第一转换子单元,适于所述第一判断子单元判断所述待处理的TCP数据包是SYN数据包和SYN_ACK数据包时,将所述待处理的TCP数据包所属TCP会话的状态转换为所述第二状态;
第二透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第二状态时,透传所述待处理的TCP数据包;
第三透传子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,透传所述待处理的TCP数据包;
第三转换子单元,适于当所述获取单元所获取的所述待处理的TCP数据包所属TCP会话的状态为所述第三状态时,将所述待处理的TCP数据包所属TCP会话的状态转换为第二状态。
12.根据权利要求11所述的TCP数据包处理装置,其特征在于,所述第一处理单元还包括:丢弃子单元,适于当所述第一判断子单元判断所述待处理的TCP数据包不是SYN数据包和SYN_ACK数据包时,丢弃所述待处理的TCP数据包。
13.根据权利要求8所述的TCP数据包处理装置,其特征在于,还包括:第二处理单元,适于在预设时间对所述会话列表中的TCP会话进行处理。
14.根据权利要求13所述的TCP数据包处理装置,其特征在于,所述第二处理单元包括:
获取子单元,适于在预设时间获取所述会话列表中TCP会话的状态;
第四转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第二状态时,将所述TCP会话的状态转换成为所述第三状态;
第五转换子单元,适于当所述获取子单元所获取的TCP会话的状态为所述第三状态时,将所述TCP会话的状态转换成为所述第一状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410290087.0A CN105207977A (zh) | 2014-06-24 | 2014-06-24 | Tcp数据包处理方法及装置 |
HK16103691.8A HK1215764A1 (zh) | 2014-06-24 | 2016-03-31 | 數據包處理方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410290087.0A CN105207977A (zh) | 2014-06-24 | 2014-06-24 | Tcp数据包处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105207977A true CN105207977A (zh) | 2015-12-30 |
Family
ID=54955415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410290087.0A Pending CN105207977A (zh) | 2014-06-24 | 2014-06-24 | Tcp数据包处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105207977A (zh) |
HK (1) | HK1215764A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603494A (zh) * | 2016-11-14 | 2017-04-26 | 上海华为技术有限公司 | 一种数据处理方法及基站 |
CN111092900A (zh) * | 2019-12-24 | 2020-05-01 | 北京北信源软件股份有限公司 | 服务器异常连接和扫描行为的监控方法和装置 |
CN111314328A (zh) * | 2020-02-03 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 网络攻击防护方法、装置、存储介质及电子设备 |
CN113452651A (zh) * | 2020-03-24 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 网络攻击检测方法、装置、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007037524A1 (en) * | 2005-09-30 | 2007-04-05 | Trend Micro Incorporated | Security management device, communication system, and access control method |
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和系统 |
CN101079759A (zh) * | 2007-07-24 | 2007-11-28 | 杭州华三通信技术有限公司 | 分布式双向转发检测方法及设备 |
CN102404318A (zh) * | 2011-10-31 | 2012-04-04 | 杭州迪普科技有限公司 | 一种防范dns缓存攻击的方法及装置 |
CN102647404A (zh) * | 2011-11-14 | 2012-08-22 | 北京安天电子设备有限公司 | 抵御flood攻击的流汇聚方法及装置 |
CN103812875A (zh) * | 2014-03-07 | 2014-05-21 | 网神信息技术(北京)股份有限公司 | 用于网关设备的数据处理方法和装置 |
-
2014
- 2014-06-24 CN CN201410290087.0A patent/CN105207977A/zh active Pending
-
2016
- 2016-03-31 HK HK16103691.8A patent/HK1215764A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007037524A1 (en) * | 2005-09-30 | 2007-04-05 | Trend Micro Incorporated | Security management device, communication system, and access control method |
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和系统 |
CN101079759A (zh) * | 2007-07-24 | 2007-11-28 | 杭州华三通信技术有限公司 | 分布式双向转发检测方法及设备 |
CN102404318A (zh) * | 2011-10-31 | 2012-04-04 | 杭州迪普科技有限公司 | 一种防范dns缓存攻击的方法及装置 |
CN102647404A (zh) * | 2011-11-14 | 2012-08-22 | 北京安天电子设备有限公司 | 抵御flood攻击的流汇聚方法及装置 |
CN103812875A (zh) * | 2014-03-07 | 2014-05-21 | 网神信息技术(北京)股份有限公司 | 用于网关设备的数据处理方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603494A (zh) * | 2016-11-14 | 2017-04-26 | 上海华为技术有限公司 | 一种数据处理方法及基站 |
CN111092900A (zh) * | 2019-12-24 | 2020-05-01 | 北京北信源软件股份有限公司 | 服务器异常连接和扫描行为的监控方法和装置 |
CN111092900B (zh) * | 2019-12-24 | 2022-04-05 | 北京北信源软件股份有限公司 | 服务器异常连接和扫描行为的监控方法和装置 |
CN111314328A (zh) * | 2020-02-03 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 网络攻击防护方法、装置、存储介质及电子设备 |
CN113452651A (zh) * | 2020-03-24 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 网络攻击检测方法、装置、设备以及存储介质 |
CN113452651B (zh) * | 2020-03-24 | 2022-10-21 | 百度在线网络技术(北京)有限公司 | 网络攻击检测方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
HK1215764A1 (zh) | 2016-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9843521B2 (en) | Processing packet header with hardware assistance | |
CN102404396B (zh) | P2p流量识别方法、装置、设备和系统 | |
US9742879B2 (en) | Hardware-based packet editor | |
US20190075049A1 (en) | Determining Direction of Network Sessions | |
CN102651861B (zh) | 用于移动终端的下载方法、移动终端和代理下载服务器 | |
KR102047585B1 (ko) | 프록시 ip 어드레스를 식별하는 방법 및 장치 | |
CN107682470B (zh) | 一种检测nat地址池中公网ip可用性的方法及装置 | |
WO2014187238A1 (zh) | 应用类型识别方法及网络设备 | |
US9843514B2 (en) | Packet processing method and background server | |
CN108833450B (zh) | 一种实现服务器防攻击方法及装置 | |
CN102546363A (zh) | 一种报文处理方法、装置及设备 | |
CN105207977A (zh) | Tcp数据包处理方法及装置 | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
CN101651721A (zh) | 网络地址转换设备类型的判断方法和系统 | |
CN110909030B (zh) | 一种信息处理方法及服务器集群 | |
CN107707569A (zh) | Dns请求处理方法及dns系统 | |
CN103746768B (zh) | 一种数据包的识别方法及设备 | |
US20160197954A1 (en) | Defending against flow attacks | |
CN102035750A (zh) | 点对点流量识别方法及装置 | |
GB2592315A (en) | Methods and systems for sending packets through a plurality of tunnels | |
CN103856435A (zh) | 一种地址解析协议缓存及其缓存方法 | |
CN106506400B (zh) | 一种数据流识别方法及出口设备 | |
CN103036789B (zh) | 报文发送方法、装置和网络出口设备 | |
US10375175B2 (en) | Method and apparatus for terminal application accessing NAS | |
CN104660636A (zh) | 点对点应用识别处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1215764 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151230 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1215764 Country of ref document: HK |