CN105337929A - Ip地址的校验方法和装置 - Google Patents

Ip地址的校验方法和装置 Download PDF

Info

Publication number
CN105337929A
CN105337929A CN201410289738.4A CN201410289738A CN105337929A CN 105337929 A CN105337929 A CN 105337929A CN 201410289738 A CN201410289738 A CN 201410289738A CN 105337929 A CN105337929 A CN 105337929A
Authority
CN
China
Prior art keywords
address
packet
calibration
state
client
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
Application number
CN201410289738.4A
Other languages
English (en)
Inventor
祝顺民
李库
陈永保
魏雄烈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410289738.4A priority Critical patent/CN105337929A/zh
Publication of CN105337929A publication Critical patent/CN105337929A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种IP地址的校验方法和装置。其中,IP地址的校验方法包括:接收客户端在与服务器建立连接之前发送的同步请求数据包;响应同步请求数据包生成同步响应数据包,其中,同步响应数据包中的同步字段的确认号等于同步请求数据包中的同步字段的序列号;发送同步响应数据包至客户端;接收来自客户端的响应同步响应数据包的重置数据包;以及根据重置数据包对IP地址进行校验。通过本申请,解决了现有技术中IP地址的校验方法比较复杂的问题,进而达到了提高校验效率的效果。

Description

IP地址的校验方法和装置
技术领域
本发明涉及网络通信安全领域,具体而言,涉及一种IP地址的校验方法和装置。
背景技术
随着互联网技术的发展,网络上开始出现越来越多的通过伪造源IP的方式来实现一些针对网络服务器的攻击行为,其中分布式拒绝服务攻击影响越来越多。这些攻击都有一个共同特点,就是可以瞬间消耗服务器大量资源,造成大量服务器资源被占用,使得正常的用户无法访问。
如图1和图2所示,一次简单的四层包攻击行为,通过发送大量伪造数据包,如果没有保护就能造出非常严重的后果,服务器的传输控制块(TransmissionControlBlock,简称TCB)资源被耗尽,正常请求无法被响应,直接导致服务器拒绝服务。
现有技术中提供了一种使用SYNCookie来做源IP认证的方法,如图3所示:此种方法根据收到的SYN报文生成SYNCookie,并作为TCP序列号封装发送SYN_ACK报文给SYN报文发送源,待网络设备接收的ACK报文验证SYNCookie通过后,该SYN报文发送源的后续报文就会由网络设备透传给受到攻击的服务器(Victim),图3中FW表示防火墙。
上述使用SYNCookie的方法时有一个非常明显的缺点就是:三次握手时相关的网络设备接管了,但是客户端(Clinet)并不知道这个接管过程,在完成三次握手之后Client就会发起针对服务器(server)的TCP(传输控制协议TransmissionControlProtocol,简称TCP)连接,可能是一次HTTP(超文本转移协议HypertextTransferProtocol,简称HTTP)获取请求(即,HTTPget请求),但是后端的server也就是图3中的victim并没有三次握手信息,所以如果这时候Client直接请求是无法完成的,除非Client重新发起一次针对server的三次请求,但是这就需要网络防护设备来主动和client断开连接,可以发送TCP的RST包或者FIN包来结束,这样数据包的交互就比较复杂。
针对相关技术中IP地址的校验方法比较复杂的问题,目前尚未提出有效的解决方案。
发明内容
本申请的目的在于提供一种IP地址的校验方法和装置,以解决现有技术中IP地址的校验方法比较复杂的问题。
根据本申请的一个方面,提供了一种IP地址的校验方法,包括:接收客户端在与服务器建立连接之前发送的同步请求数据包;响应所述同步请求数据包生成同步响应数据包,其中,所述同步响应数据包中的同步字段的确认号等于所述同步请求数据包中的同步字段的序列号;发送所述同步响应数据包至所述客户端;接收来自所述客户端的响应所述同步响应数据包的重置数据包;以及根据所述重置数据包对所述IP地址进行校验。
进一步地,根据所述重置数据包对所述IP地址进行校验包括:获取所述重置数据包中的序列号;判断所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号是否相等;以及在判断出所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号相等的情况下,确定所述IP地址通过校验。
进一步地,在确定所述IP地址通过校验之后,所述校验方法还包括:标记所述IP地址的状态为第一状态,其中,所述第一状态表示所述IP地址通过校验。
进一步地,在接收客户端在与服务器建立连接之前发送的同步请求数据包之后,并且在发送所述同步响应数据包至所述客户端之前,所述校验方法还包括:标记所述IP地址的状态为第二状态,其中,所述第二状态表示未对所述IP地址进行校验。
进一步地,在发送所述同步响应数据包至所述客户端之后,并且在接收来自所述客户端的响应所述同步响应数据包的重置数据包之前,所述校验方法还包括:标记所述IP地址的状态为第三状态,其中,所述第三状态表示所述IP地址等待校验。
进一步地,在接收来自所述客户端的响应所述同步响应数据包的重置数据包之前,所述校验方法还包括:从发送出所述同步响应数据包开始计时;在计时时间达到预设时间时,判断是否接收到所述重置数据包;以及在判断出未接收到所述重置数据包的情况下,标记所述IP地址的状态为第四状态,其中,所述第四状态表示所述IP地址未通过校验。
进一步地,在对所述IP地址进行校验过程中,所述校验方法还包括:获取对所述IP地址进行校验所占用的总内存;获取预设超时周期和对所述预设超时周期进行粒度划分的单位时间;以及根据所述预设超时周期和所述单位时间对所述总内存进行清除。
进一步地,根据所述预设超时周期和所述单位时间对所述总内存进行清除包括:从内存地址的起始位置至所述内存地址的结束位置,将所述总内存划分为n份子内存,其中,T为所述预设超时周期,T0为所述单位时间;以及顺序清空所述子内存,其中,在每个所述单位时间内,清空一个所述子内存。
根据本申请的另一方面,提供了一种IP地址的校验装置,包括:第一接收单元,用于接收客户端在与服务器建立连接之前发送的同步请求数据包;响应单元,用于响应所述同步请求数据包生成同步响应数据包,其中,所述同步响应数据包中的同步字段的确认号等于所述同步请求数据包中的同步字段的序列号;发送单元,用于发送所述同步响应数据包至所述客户端;第二接收单元,用于接收来自所述客户端的响应所述同步响应数据包的重置数据包;以及校验单元,用于根据所述重置数据包对所述IP地址进行校验。
进一步地,所述校验单元包括:获取模块,用于获取所述重置数据包中的序列号;判断模块,用于判断所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号是否相等;以及确定模块,用于在判断出所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号相等的情况下,确定所述IP地址通过校验。
进一步地,所述校验装置还包括:第一标记单元,用于标记所述IP地址的状态为第一状态,其中,所述第一状态表示所述IP地址通过校验。
进一步地,所述校验装置还包括:第二标记单元,用于标记所述IP地址的状态为第二状态,其中,所述第二状态表示未对所述IP地址进行校验。
进一步地,所述校验装置还包括:第三标记单元,用于标记所述IP地址的状态为第三状态,其中,所述第三状态表示所述IP地址等待校验。
进一步地,所述校验装置还包括:计时单元,用于从发送出所述同步响应数据包开始计时;判断单元,用于在计时时间达到预设时间时,判断是否接收到所述重置数据包;以及第四标记单元,用于在判断出未接收到所述重置数据包的情况下,标记所述IP地址的状态为第四状态,其中,所述第四状态表示所述IP地址未通过校验。
进一步地,所述校验装置还包括:第一获取单元,用于获取对所述IP地址进行校验所占用的总内存;第二获取单元,用于获取预设超时周期和对所述预设超时周期进行粒度划分的单位时间;以及清除单元,用于根据所述预设超时周期和所述单位时间对所述总内存进行清除。
进一步地,所述清除单元包括:划分模块,用于从内存地址的起始位置至所述内存地址的结束位置,将所述总内存划分为n份子内存,其中,T为所述预设超时周期,T0为所述单位时间;以及清空模块,用于顺序清空所述子内存,其中,在每个所述单位时间内,清空一个所述子内存。
在本申请中,采用接收客户端在与服务器建立连接之前发送的同步请求数据包;响应所述同步请求数据包生成同步响应数据包,其中,所述同步响应数据包中的同步字段的确认号等于所述同步请求数据包中的同步字段的序列号;发送所述同步响应数据包至所述客户端;接收来自所述客户端的响应所述同步响应数据包的重置数据包;以及根据所述重置数据包对所述IP地址进行校验。通过将生成的同步响应数据包中的确认号设置为与同步请求数据包中的序列号相等,实现了在客户端接收到同步响应数据包的情况下,既能能够被识别为非法包,但又不至于因确认号与序列号相差比较大而丢包,能够反馈重置数据包,进而基于重置数据包对IP地址进行校验,此种对IP地址进行校验的方式,简化了客户端与服务器之间的交互,解决了现有技术中IP地址的校验方法比较复杂的问题,进而达到了提高校验效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1和图2是根据相关技术的对服务器进行SYNFlood攻击的数据交互图;
图3是根据相关技术的IP地址认证的示意图;
图4是根据本申请实施例的IP地址的校验方法的流程图;
图5a是根据相关技术的客户端与服务器之间的数据包交互过程的时序图;
图5b是根据本申请实施例的客户端与服务器之间的数据包交互过程的时序图;
图6是根据本申请实施例的IP地址的校验方法进行状态标识的示意图;
图7是应用本申请实施例的IP地址的校验方法的数据处理的示意图;
图8是根据本申请实施例的IP地址的校验方法进行内存划分的示意图;以及
图9是根据本申请实施例的IP地址的校验装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
根据本申请实施例,可以提供了一种可以用于实施本申请装置实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,提供了一种IP地址的校验方法,以下对本申请实施例所提供的IP地址的校验方法做具体介绍。
图4是根据本申请实施例的IP地址的校验方法的流程图,如图4所示,该方法包括如下的步骤S401至步骤S409:
S401:接收客户端在与服务器建立连接之前发送的同步请求数据包,其中,同步请求数据包是指SYN数据包。
S403:响应同步请求数据包生成同步响应数据包,其中,同步响应数据包中的同步字段的确认号等于同步请求数据包中的同步字段的序列号,即,将生成的同步响应数据包中的确认号设置为与同步请求数据包中的序列号相等,其中,同步响应数据包是指SYN_ACK数据包,同步请求数据包中的同步字段的序列号是指SYN数据包中seq的取值,同步响应数据包中的同步字段的确认号是指SYN_ACK数据包中ack的取值。
S405:发送同步响应数据包至客户端,即,发送SYN_ACK数据包至客户端。
S407:接收来自客户端的响应同步响应数据包的重置数据包,其中,重置数据包是指客户端反馈的RST数据包。
S409:根据重置数据包对IP地址进行校验。
在客户端与服务器进行TCP连接的握手过程中,很多防火墙或其它能够记录TCP连接信息的网络设备,会主动记录TCP连接过程中的序列号和确认号,正常的握手过程中,客户端与服务器之间的数据包交互过程在图5a中示出,如图5a所示,确认号等于序列号加一,如果握手过程中,同步响应数据包中的确认号与同步请求数据包中的序列号相差比较大的话,网络设备会将同步响应数据包当作非法的数据包直接丢弃,对于这种情况,将无法对IP地址进行正常校验,本申请实施例所提供的IP地址的校验方法,客户端与服务器之间的数据包交互过程在图5b中示出,如图5b所示,在Server发给Client端的SYN_ACK包中,修改了ack值,而Client收到这个数据包之后,发现和自己期望得到的ack的取值x+1有0别,就会主动断开当前这个连接,反馈RST数据包至服务器,当服务器收到这个RST数据包之后,能够检测出接收到的RST数据包的seq值与之前收到的SYN数据包的seq值以及SYN_ACK的seq值相同,所以可以确定这个Client的IP地址是可信任的。如果来自Client的IP地址是一个伪造的IP地址,要么无法响应SYN_ACK数据包,要么响应了SYN_ACK数据包的RST数据包中的seq值发送变化。
本申请实施例所提供的IP地址的校验方法,通过将生成的同步响应数据包中的确认号设置为与同步请求数据包中的序列号相等,实现了在客户端接收到同步响应数据包的情况下,既能能够被识别为非法包,但又不至于因确认号与序列号相差比较大而丢包,能够反馈重置数据包,进而基于重置数据包对IP地址进行校验,此种对IP地址进行校验的方式,简化了客户端与服务器之间的交互,解决了现有技术中IP地址的校验方法比较复杂的问题,进而达到了提高校验效率的效果。
具体地,根据重置数据包对IP地址进行校验包括:首先,获取重置数据包中的序列号,即,获取RST数据包中seq的取值。其次,判断重置数据包中的序列号与同步请求数据包中的序列号是否相等,或判断重置数据包中的序列号与同步响应数据包中的确认号是否相等,即,判断RST数据包中seq的取值与SYN数据包中的seq的取值是否相等,或判断RST数据包中seq的取值与SYN_ACK数据包中的ack的取值是否相等。然后,在判断出重置数据包中的序列号与同步请求数据包中的序列号相等,或在判断重置数据包中的序列号与同步响应数据包中的确认号相等,确定IP地址通过校验,即,在判断出RST数据包中seq的取值与SYN数据包中的seq的取值相等,或在判断RST数据包中seq的取值与SYN_ACK数据包中的ack的取值相等的情况下,确定IP地址通过校验。
进一步,本申请实施例的校验方法还包括如下标记中的至少之一:
在确定IP地址通过校验之后,标记IP地址的状态为第一状态,其中,第一状态表示IP地址通过校验。
在接收客户端在与服务器建立连接之前发送的同步请求数据包之后,并且在发送同步响应数据包至客户端之前,标记IP地址的状态为第二状态,其中,第二状态表示未对IP地址进行校验。
在发送同步响应数据包至客户端之后,并且在接收来自客户端的响应同步响应数据包的重置数据包之前,标记IP地址的状态为第三状态,其中,第三状态表示IP地址等待校验。
在接收来自客户端的响应同步响应数据包的重置数据包之前,从发送出同步响应数据包开始计时;在计时时间达到预设时间时,判断是否接收到重置数据包;以及在判断出未接收到重置数据包的情况下,标记IP地址的状态为第四状态,其中,第四状态表示IP地址未通过校验。
其中,如图6所示,示意性示出了以“TRUST_STAT”作为第一状态的标识,以“INIT_STAT”作为第二状态的标识,以“WAIT_STAT”作为第三状态的标识,即,在接收到来自客户端的一个SYN数据包后,服务器尚未对客户端的IP地址进行校验,因为标记为“INIT_STAT”,紧接着,服务器会针对性地发出一个SYN_ACK包,其中的ack值就是SYN数据包中的seq值,发出SYN_ACK数据包之后状态机转换到“WAIT_STAT”状态,同时等待RST数据包。如果一段时间内,收到了来自该IP地址的RST回复,并判断出RST的seq值和之前的SYN的seq值相同,则确定该IP地址的校验结束,而且标记状态机状态为“TRUST_STAT”,反之,如果一段时间没有收到RST或者seq值对不上,则确定这个IP地址是伪造的,并作相应的标记(该标记未在图6中示出)。
通过对IP地址的状态进行标识,实现了后续在对来自IP地址的数据进行处理时,能够直接读取IP地址的状态,根据读取到的IP地址的状态来确定是否对接收到的数据进行放行,对于来自通过了IP校验的IP地址的数据包能够直接通过,然后做进一步处理,而来自未通过IP校验的IP地址的数据包不能够通过,这种方法可以有效地减少数据包的透传量,很好地减少非法数据包特别是伪造出来的数据包的透传量。
以下举例说明本申请实施例所提供的IP地址的校验方法的应用场景,图7是应用本申请实施例的IP地址的校验方法的流程图,如图7所示,在对本申请实施例所提供的IP地址的校验方法进行应用过程中,主要处理的数据包是SYN数据包和RST数据包,对于来自通过了IP校验的IP地址的数据包能够直接通过,然后做进一步处理,而来自未通过IP校验的IP地址的数据包不能够通过,这种方法可以有效地减少SYN数据包的透传量,很好地减少非法数据包特别是伪造出来的数据包的透传量。
需要说明的是,本申请实施例所提供的IP地址的校验方法还可以用到其他很多场景,比如对其他的TCP数据包或者UDP包的透传都按照源IP检查的结果进行,只有验证通过的源IP对应的数据包才放行,不验证通过就不放行,这样就能很好地减少非法数据包特别是伪造出来的数据包的透传量。
优选地,在对IP地址进行校验过程中,本申请实施例的IP地址的校验方法还包括:获取对IP地址进行校验所占用的总内存,并获取预设超时周期和对预设超时周期进行粒度划分的单位时间,然后根据预设超时周期和单位时间对总内存进行清除,具体地,可以从内存地址的起始位置至内存地址的结束位置,将总内存划分为n份子内存,其中,内存的划分如图8所示,然后,顺序清空子内存,其中,在每个单位时间内,清空一个子内存其中,T为预设超时周期,T0为单位时间。
因为在对IP地址校验过程中,很多陈旧的数据需要定时清空,通过按超时周期和单位时间把连续的内存平均分成若干份,每一段时间清一段内存,一个超时周期内即可清空一次所有的内存,此种对内存进行清除的方式,不需要不记录每一个IP地址校验的开始时间,只是把内存从头到尾按照时间的顺序,全部做了一次清内存的操作,整个清除内存的操作对每一个IP地址的记录都做了一次有效的超时处理,实现了对IP地址校验所占用的内存及时进行清理,进而达到提高内存利用率和处理速度的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述IP地址的校验方法的IP地址的校验装置,该IP地址的校验装置主要用于执行本申请实施例上述内容所提供的IP地址的校验方法,以下对本申请实施例所提供的IP地址的校验装置做具体介绍:
图9是根据本申请实施例的IP地址的校验装置的示意图,如图9所示,该校验装置主要包括第一接收单元10、响应单元20、发送单元30、第二接收单元40和校验单元50,其中:
第一接收单元10用于接收客户端在与服务器建立连接之前发送的同步请求数据包,其中,同步请求数据包是指SYN数据包。
响应单元20用于响应同步请求数据包生成同步响应数据包,其中,同步响应数据包中的同步字段的确认号等于同步请求数据包中的同步字段的序列号,即,将生成的同步响应数据包中的确认号设置为与同步请求数据包中的序列号相等,其中,同步响应数据包是指SYN_ACK数据包,同步请求数据包中的同步字段的序列号是指SYN数据包中seq的取值,同步响应数据包中的同步字段的确认号是指SYN_ACK数据包中ack的取值。
发送单元30用于发送同步响应数据包至客户端,即,发送SYN_ACK数据包至客户端。
第二接收单元40用于接收来自客户端的响应同步响应数据包的重置数据包,其中,重置数据包是指客户端反馈的RST数据包。
校验单元50用于根据重置数据包对IP地址进行校验。
在客户端与服务器进行TCP连接的握手过程中,很多防火墙或其它能够记录TCP连接信息的网络设备,会主动记录TCP连接过程中的序列号和确认号,正常的握手过程中,客户端与服务器之间的数据包交互过程在图5a中示出,如图5a所示,确认号等于序列号加一,如果握手过程中,同步响应数据包中的确认号与同步请求数据包中的序列号相差比较大的话,网络设备会将同步响应数据包当作非法的数据包直接丢弃,对于这种情况,将无法对IP地址进行正常校验,本申请实施例所提供的IP地址的校验方法,客户端与服务器之间的数据包交互过程在图5b中示出,如图5b所示,在Server发给Client端的SYN_ACK包中,修改了ack值,而Client收到这个数据包之后,发现和自己期望得到的ack的取值x+1有差别,就会主动断开当前这个连接,反馈RST数据包至服务器,当服务器收到这个RST数据包之后,能够检测出接收到的RST数据包的seq值与之前收到的SYN数据包的seq值以及SYN_ACK的seq值相同,所以可以确定这个Client的IP地址是可信任的。如果来自Client的IP地址是一个伪造的IP地址,要么无法响应SYN_ACK数据包,要么响应了SYN_ACK数据包的RST数据包中的seq值发送变化。
本申请实施例所提供的IP地址的校验装置,通过将生成的同步响应数据包中的确认号设置为与同步请求数据包中的序列号相等,实现了在客户端接收到同步响应数据包的情况下,既能能够被识别为非法包,但又不至于因确认号与序列号相差比较大而丢包,能够反馈重置数据包,进而基于重置数据包对IP地址进行校验,此种对IP地址进行校验的方式,简化了客户端与服务器之间的交互,解决了现有技术中IP地址的校验方法比较复杂的问题,进而达到了提高校验效率的效果。
具体地,校验单元50主要包括获取模块、判断模块和确定模块,其中,获取模块用于获取重置数据包中的序列号,即,获取RST数据包中seq的取值。判断模块用于判断重置数据包中的序列号与同步请求数据包中的序列号是否相等,或判断重置数据包中的序列号与同步响应数据包中的确认号是否相等,即,判断RST数据包中seq的取值与SYN数据包中的seq的取值是否相等,或判断RST数据包中seq的取值与SYN_ACK数据包中的ack的取值是否相等。确定模块用于在判断模块判断出重置数据包中的序列号与同步请求数据包中的序列号相等,或在判断模块判断重置数据包中的序列号与同步响应数据包中的确认号相等,确定IP地址通过校验,即,在判断出RST数据包中seq的取值与SYN数据包中的seq的取值相等,或在判断RST数据包中seq的取值与SYN_ACK数据包中的ack的取值相等的情况下,确定IP地址通过校验。
进一步,本申请实施例的校验装置还包括执行如下标记的至少一个标记单元:
第一标记单元,用于在确定模块确定IP地址通过校验之后,标记IP地址的状态为第一状态,其中,第一状态表示IP地址通过校验。
第二标记单元,用于在第一接收单元10接收客户端在与服务器建立连接之前发送的同步请求数据包之后,并且在发送单元30发送同步响应数据包至客户端之前,标记IP地址的状态为第二状态,其中,第二状态表示未对IP地址进行校验。
第三标记单元,用于在发送单元30发送同步响应数据包至客户端之后,并且在第二接收单元40接收来自客户端的响应同步响应数据包的重置数据包之前,标记IP地址的状态为第三状态,其中,第三状态表示IP地址等待校验。
在第二接收单元40接收来自客户端的响应同步响应数据包的重置数据包之前,计时单元用于从发送出同步响应数据包开始计时;判断单元用于在计时时间达到预设时间时,判断是否接收到重置数据包;第四标记单元用于在判断出未接收到重置数据包的情况下,标记IP地址的状态为第四状态,其中,第四状态表示IP地址未通过校验。
通过对IP地址的状态进行标识,实现了后续在对来自IP地址的数据进行处理时,能够直接读取IP地址的状态,根据读取到的IP地址的状态来确定是否对接收到的数据进行放行,对于来自通过了IP校验的IP地址的数据包能够直接通过,然后做进一步处理,而来自未通过IP校验的IP地址的数据包不能够通过,这种方法可以有效地减少数据包的透传量,很好地减少非法数据包特别是伪造出来的数据包的透传量。
优选地,本申请实施例的IP地址的校验装置还包括第一获取单元、第二获取单元和清除单元,在对IP地址进行校验过程中,第一获取单元用于获取对IP地址进行校验所占用的总内存,第二获取单元用于获取预设超时周期和对预设超时周期进行粒度划分的单位时间,清除单元用于根据预设超时周期和单位时间对总内存进行清除,具体地,清除单元主要包括划分模块和清空模块,其中,划分模块用于从内存地址的起始位置至内存地址的结束位置,将总内存划分为n份子内存,清空模块用于顺序清空子内存,其中,在每个单位时间内,清空一个子内存,T为预设超时周期,T0为单位时间。
因为在对IP地址校验过程中,很多陈旧的数据需要定时清空,通过按超时周期和单位时间把连续的内存平均分成若干份,每一段时间清一段内存,一个超时周期内即可清空一次所有的内存,此种对内存进行清除的方式,不需要不记录每一个IP地址校验的开始时间,只是把内存从头到尾按照时间的顺序,全部做了一次清内存的操作,整个清除内存的操作对每一个IP地址的记录都做了一次有效的超时处理,实现了对IP地址校验所占用的内存及时进行清理,进而达到提高内存利用率和处理速度的效果。
从以上的描述中,可以看出,本申请实现了简化了客户端与服务器之间的交互,达到了提高校验效率的效果。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种IP地址的校验方法,其特征在于,包括:
接收客户端在与服务器建立连接之前发送的同步请求数据包;
响应所述同步请求数据包生成同步响应数据包,其中,所述同步响应数据包中的同步字段的确认号等于所述同步请求数据包中的同步字段的序列号;
发送所述同步响应数据包至所述客户端;
接收来自所述客户端的响应所述同步响应数据包的重置数据包;以及
根据所述重置数据包对所述IP地址进行校验。
2.根据权利要求1所述的校验方法,其特征在于,根据所述重置数据包对所述IP地址进行校验包括:
获取所述重置数据包中的序列号;
判断所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号是否相等;
在判断出所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号相等的情况下,确定所述IP地址通过校验。
3.根据权利要求2所述的校验方法,其特征在于,在确定所述IP地址通过校验之后,所述校验方法还包括:
标记所述IP地址的状态为第一状态,其中,所述第一状态表示所述IP地址通过校验。
4.根据权利要求1所述的校验方法,其特征在于,在接收客户端在与服务器建立连接之前发送的同步请求数据包之后,并且在发送所述同步响应数据包至所述客户端之前,所述校验方法还包括:
标记所述IP地址的状态为第二状态,其中,所述第二状态表示未对所述IP地址进行校验。
5.根据权利要求1或4所述的校验方法,其特征在于,在发送所述同步响应数据包至所述客户端之后,并且在接收来自所述客户端的响应所述同步响应数据包的重置数据包之前,所述校验方法还包括:
标记所述IP地址的状态为第三状态,其中,所述第三状态表示所述IP地址等待校验。
6.根据权利要求1所述的校验方法,其特征在于,在接收来自所述客户端的响应所述同步响应数据包的重置数据包之前,所述校验方法还包括:
从发送出所述同步响应数据包开始计时;
在计时时间达到预设时间时,判断是否接收到所述重置数据包;以及
在判断出未接收到所述重置数据包的情况下,标记所述IP地址的状态为第四状态,其中,所述第四状态表示所述IP地址未通过校验。
7.根据权利要求1所述的校验方法,其特征在于,在对所述IP地址进行校验过程中,所述校验方法还包括:
获取对所述IP地址进行校验所占用的总内存;
获取预设超时周期和对所述预设超时周期进行粒度划分的单位时间;以及
根据所述预设超时周期和所述单位时间对所述总内存进行清除。
8.根据权利要求7所述的校验方法,其特征在于,根据所述预设超时周期和所述单位时间对所述总内存进行清除包括:
从内存地址的起始位置至所述内存地址的结束位置,将所述总内存划分为n份子内存,其中,T为所述预设超时周期,T0为所述单位时间;以及
顺序清空所述子内存,其中,在每个所述单位时间内,清空一个所述子内存。
9.一种IP地址的校验装置,其特征在于,包括:
第一接收单元,用于接收客户端在与服务器建立连接之前发送的同步请求数据包;
响应单元,用于响应所述同步请求数据包生成同步响应数据包,其中,所述同步响应数据包中的同步字段的确认号等于所述同步请求数据包中的同步字段的序列号;
发送单元,用于发送所述同步响应数据包至所述客户端;
第二接收单元,用于接收来自所述客户端的响应所述同步响应数据包的重置数据包;以及
校验单元,用于根据所述重置数据包对所述IP地址进行校验。
10.根据权利要求9所述的校验装置,其特征在于,所述校验单元包括:
获取模块,用于获取所述重置数据包中的序列号;
判断模块,用于判断所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号是否相等;以及
确定模块,用于在判断出所述重置数据包中的序列号与所述同步请求数据包中的序列号或所述同步响应数据包中的确认号相等的情况下,确定所述IP地址通过校验。
11.根据权利要求10所述的校验装置,其特征在于,所述校验装置还包括:
第一标记单元,用于标记所述IP地址的状态为第一状态,其中,所述第一状态表示所述IP地址通过校验。
12.根据权利要求9所述的校验装置,其特征在于,所述校验装置还包括:
第二标记单元,用于标记所述IP地址的状态为第二状态,其中,所述第二状态表示未对所述IP地址进行校验。
13.根据权利要求9或12所述的校验装置,其特征在于,所述校验装置还包括:
第三标记单元,用于标记所述IP地址的状态为第三状态,其中,所述第三状态表示所述IP地址等待校验。
14.根据权利要求9所述的校验装置,其特征在于,所述校验装置还包括:
计时单元,用于从发送出所述同步响应数据包开始计时;
判断单元,用于在计时时间达到预设时间时,判断是否接收到所述重置数据包;以及
第四标记单元,用于在判断出未接收到所述重置数据包的情况下,标记所述IP地址的状态为第四状态,其中,所述第四状态表示所述IP地址未通过校验。
15.根据权利要求9所述的校验装置,其特征在于,所述校验装置还包括:
第一获取单元,用于获取对所述IP地址进行校验所占用的总内存;
第二获取单元,用于获取预设超时周期和对所述预设超时周期进行粒度划分的单位时间;以及
清除单元,用于根据所述预设超时周期和所述单位时间对所述总内存进行清除。
16.根据权利要求15所述的校验装置,其特征在于,所述清除单元包括:
划分模块,用于从内存地址的起始位置至所述内存地址的结束位置,将所述总内存划分为n份子内存,其中,T为所述预设超时周期,T0为所述单位时间;以及
清空模块,用于顺序清空所述子内存,其中,在每个所述单位时间内,清空一个所述子内存。
CN201410289738.4A 2014-06-24 2014-06-24 Ip地址的校验方法和装置 Pending CN105337929A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410289738.4A CN105337929A (zh) 2014-06-24 2014-06-24 Ip地址的校验方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410289738.4A CN105337929A (zh) 2014-06-24 2014-06-24 Ip地址的校验方法和装置

Publications (1)

Publication Number Publication Date
CN105337929A true CN105337929A (zh) 2016-02-17

Family

ID=55288218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410289738.4A Pending CN105337929A (zh) 2014-06-24 2014-06-24 Ip地址的校验方法和装置

Country Status (1)

Country Link
CN (1) CN105337929A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802937A (zh) * 2018-11-30 2019-05-24 浙江远望信息股份有限公司 一种发现对智能终端设备tcp下ip欺骗攻击的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571381A (zh) * 2003-07-12 2005-01-26 华为技术有限公司 通信设备中定时处理表项的方法及其装置
CN101147376A (zh) * 2005-02-04 2008-03-19 诺基亚公司 降低tcp洪泛攻击同时节省无线网络带宽的装置、方法和计算机程序产品
WO2008060009A1 (en) * 2006-11-13 2008-05-22 Samsung Sds Co., Ltd. Method for preventing denial of service attacks using transmission control protocol state transition
CN101729513A (zh) * 2008-10-27 2010-06-09 成都市华为赛门铁克科技有限公司 网络认证方法和装置
CN103546486A (zh) * 2013-11-04 2014-01-29 北京荣之联科技股份有限公司 一种防DDOS攻击的SYN Cookie源认证方法及其装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571381A (zh) * 2003-07-12 2005-01-26 华为技术有限公司 通信设备中定时处理表项的方法及其装置
CN101147376A (zh) * 2005-02-04 2008-03-19 诺基亚公司 降低tcp洪泛攻击同时节省无线网络带宽的装置、方法和计算机程序产品
WO2008060009A1 (en) * 2006-11-13 2008-05-22 Samsung Sds Co., Ltd. Method for preventing denial of service attacks using transmission control protocol state transition
CN101729513A (zh) * 2008-10-27 2010-06-09 成都市华为赛门铁克科技有限公司 网络认证方法和装置
CN103546486A (zh) * 2013-11-04 2014-01-29 北京荣之联科技股份有限公司 一种防DDOS攻击的SYN Cookie源认证方法及其装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802937A (zh) * 2018-11-30 2019-05-24 浙江远望信息股份有限公司 一种发现对智能终端设备tcp下ip欺骗攻击的方法
CN109802937B (zh) * 2018-11-30 2021-08-17 浙江远望信息股份有限公司 一种发现对智能终端设备tcp下ip欺骗攻击的方法

Similar Documents

Publication Publication Date Title
US9628441B2 (en) Attack defense method and device
CN105516080B (zh) Tcp连接的处理方法、装置及系统
EP3300331B1 (en) Response method, apparatus and system in virtual network computing authentication, and proxy server
US10129722B2 (en) Service processing method and network device
CN111064755B (zh) 一种数据保护方法、装置、计算机设备和存储介质
CN106470136B (zh) 平台测试方法以及平台测试系统
CN104184749A (zh) 一种sdn网络访问方法及系统
CN106790221A (zh) 一种英特网协议安全IPSec协议加密方法和网络设备
CN106961414B (zh) 一种基于蜜罐的数据处理方法、装置及系统
CN104601541A (zh) 数据传输的方法、服务器和用户设备
CN109962913A (zh) 基于安全套接层协议的代理服务器及代理方法
CN111064742B (zh) 一种基于网络代理实现内网访问的方法、装置及相关设备
CN102404345A (zh) 分布式攻击阻止方法及装置
Rodrigues et al. Evaluating a blockchain-based cooperative defense
CN102427452B (zh) 同步报文发送方法、装置和网络设备
Suaib Akhter et al. A secured message transmission protocol for vehicular ad hoc networks
CN106131039A (zh) Syn洪泛攻击的处理方法及装置
US20150067333A1 (en) Methods, systems, and computer readable media for utilizing predetermined encryption keys in a test simulation environment
CN102510386B (zh) 分布式攻击阻止方法及装置
CN108418844A (zh) 一种应用层攻击的防护方法及攻击防护端
CN105337929A (zh) Ip地址的校验方法和装置
CN106411677A (zh) 一种确定vpn数据通道的最优mtu的方法和装置
CN114205248B (zh) 模拟超时响应方法、装置、设备及存储介质
JP6870386B2 (ja) マルウェア不正通信対処システム及び方法
CN110995730B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20160217

RJ01 Rejection of invention patent application after publication