CN102377524A - 分片处理的方法和系统 - Google Patents
分片处理的方法和系统 Download PDFInfo
- Publication number
- CN102377524A CN102377524A CN201110306732XA CN201110306732A CN102377524A CN 102377524 A CN102377524 A CN 102377524A CN 201110306732X A CN201110306732X A CN 201110306732XA CN 201110306732 A CN201110306732 A CN 201110306732A CN 102377524 A CN102377524 A CN 102377524A
- Authority
- CN
- China
- Prior art keywords
- burst
- message
- application layer
- transmit leg
- recipient
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分片处理的方法和系统,属于数据通信和互联网安全领域。所述方法包括:发送方的第一应用层获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方;所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
Description
技术领域
本发明涉及数据通信和互联网安全领域,特别涉及一种分片处理的方法和系统。
背景技术
IPsec(Internet协议安全性)可以保护主机和主机之间、安全网关和安全网关之间、安全网关和主机之间的多条IP数据流。对于互联网上的许多安全应用来说,IPsec标准采用IKEv2(Internet Key Exchange Version 2,互联网密钥交换协议第二版)作为其默认的自动密钥配置协议来协商密钥和加密/认证算法等参数。
IKEv2允许在一对网络通信设备之间执行多种认证方式并建立起相应的整套安全关联参数,将其提供给ESP(Encapsulating Security Payload,封装安全负载)或者AH(Authentication Header,认证头)协议来保护流经网络的IP流量。IKEv2在协商秘密参数的过程中,涉及多条消息的交互及非常复杂的身份认证功能,而且还能够自动的探测本地或远端是否处于NAT(Network AddressTranslation,网络地址转换)的工作方式。IKEv2不仅协商密钥和加密/认证算法保护自身的消息通信,也协商密钥和加密/认证算法并和ESP/AH协议交互从而保护IP流量。
虽然采用IKEv2协议可以极大的提高IPsec的安全性,但是IKEv2协议本身面临Dos(Denial of Service,拒绝服务)攻击的危险。由于IKEv2协议是基于UDP(User Datagram Protocol,用户数据包协议)来传输的,在这个过程中涉及到分片处理,而分片一般是由操作系统的TCP/IP协议栈来处理的,这就给以消耗内存资源为特点的DoS攻击包括DDoS(Distributed Deny of Service,分布式拒绝服务)攻击提供了良好的机会。
发明内容
为了解决现有IKEv2协议中Dos攻击的问题,本发明实施例提供了一种分片处理的方法和系统。所述技术方案如下:
一方面,提供了一种分片处理的方法,所述方法包括:
发送方的第一应用层获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
所述发送方的第一应用层获取第一消息,包括:
获取发送方的网卡接口参数,并计算第一消息的长度;
根据所述网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
如果是,则所述发送方的第一应用层获取所述第一消息。
所述对所述第一消息进行分片处理,得到N个分片,包括:
所述第一应用层对所述第一消息进行分片处理,得到N个分片;
产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息,包括:
接收方依次接收到所述N个分片后,判断所述每个分片是否为所述第一消息的分片;
如果是,则所述接收方将所述每个分片提交给第二应用层;
所述第二应用层获取N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
所述接收方的第二应用层获取所述发送方发送的N个分片之后,还包括:
所述第二应用层将所述每个分片的参数信息加入到定时器的队列中;
所述定时器周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方将删除所述分片的事件通知给所述发送方,所述发送方接收到所述删除所述分片的事件的通知后,删除或重发所述分片。
另一方面,提供了一种分片处理的系统,所述系统包括:发送方和接收方,所述发送方包括第一应用层,所述接收方包括第二应用层;
所述发送方的第一应用层,用于获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
所述接收方的第二应用层,用于获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
所述发送方的第一应用层包括:
第一获取模块,用于获取发送方的网卡接口参数,并计算第一消息的长度;
第一判断模块,用于根据所述第一获取模块获取的网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
第二获取模块,用于如果所述第一判断模块的判断结果为是,则所述发送方的第一应用层获取所述第一消息。
所述发送方的第一应用层还包括:
执行模块,用于对所述第一消息进行分片处理,得到N个分片;产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
所述接收方的第二应用层包括:
第三获取模块,用于获取所述接收方提交的分片,所述分片是接收方依次接收到所述N个分片后,判断所述每个分片是否为所述第一消息的分片;如果是,则将所述每个分片提交给第二应用层的分片;
第二判断模块,用于根据所述第三获取模块获取的N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
组装模块,用于如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
所述系统还包括:定时器,所述接收方的第二应用层还包括:添加模块
所述添加模块,用于所述第三获取模块获取到获取所述发送方发送的N个分片之后,将所述每个分片的参数信息加入到定时器的队列中;
所述定时器,用于周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方的第二应用层还包括:通知模块,
所述通知模块,用于将删除的所述分片的事件通知给所述发送方;
所述发送方的第一应用层还包括:处理模块,
所述处理模块,用于接收到所述通知模块所述删除所述分片的事件的通知后,删除或重发所述分片。
本发明实施例提供的技术方案,不在TCP/IP层对消息进行分片,而是由发送方的第一应用层对第一消息进行分片处理,同时在每个分片中添加分片标识符、分片偏移量和分片标志位,接收方的TCP/IP协议栈不需要对第一消息进行任何处理,直接交给第二应用层进行处理,第二应用层根据分片标识符、分片偏移量和分片标志位对分片进行重组,得到第一消息,这样可以避免某些应用依然采用基于IP分片对TCP/IP协议栈进行Dos攻击的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的一种分片处理的方法的流程;
图2是本发明实施例2中提供的一种安全网关上部署的IPsec协议软件的逻辑系统总体架构;
图3是本发明实施例2中提供的一种安全网关-安全网关实际网络应用场景的部署方式;
图4是本发明实施例2提供的一种M-IKEv2协议报头格式;
图5是本发明实施例2中提供的一种M-IKEv2分片产生流程图;
图6是本发明实施例2中提供的一种发送方分片处理的方法的流程;
图7是本发明实施例2中提供的一种接收方分片处理的方法的流程;
图8是本发明实施例2中提供的一种网络设备示意图;
图9是本发明实施例2中提供的一种安全网关M-IKEv2软件分片超时定时器的运行流程;
图10是本发明实施例2中提供的一种消息格式;
图11是本发明实施例3中提供的一种基于应用层分片的处理系统示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供的分片处理的方法和系统可以由多种类型的网关系统或者主机系统来实施,适用于多种场景,包括安全网关-安全网关场景,安全主机-安全主机场景和安全网关-安全主机场景等。为实施本发明,需要在所有的安全系统上部署M-IKEv2密钥协商软件,同时需要所在安全系统能够支持TCP/IP/IPsec协议栈。
实施例1
参见图1,本发明实施例提供了一种分片处理的方法,包括:
101:发送方的第一应用层获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
102:所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
本实施例中,第一消息包括IKEv1和IKEv2消息,但不限于这两种消息,分片标识符用于标识某一消息是否是需要分片处理的消息,且将该条消息与其它消息进行区分;分片偏移量用于标识该分片包相对于该条消息原始头部的偏移量;分片标志位,用于标识该分片是否还有后续分片。
本实施例中,所述发送方的第一应用层获取第一消息,包括:
获取发送方的网卡接口参数,并计算第一消息的长度;
根据所述网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
如果是,则所述发送方的第一应用层获取所述第一消息;
如果否,则不用对所述第一消息进行分片,发送方的第一应用层不用获取第一消息。
本实施例中,对所述第一消息进行分片处理,得到N个分片,包括:
所述第一应用层对所述第一消息进行分片处理,得到N个分片;
产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
其中,所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息,包括:
接收方依次接收到所述N个分片后,判断所述每个分片是否为第一消息的分片;
如果是,则所述接收方将所述每个分片提交给第二应用层;
所述第二应用层获取N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
进一步的,本实施例中,所述接收方的第二应用层获取所述发送方发送的N个分片之后,还包括:
所述第二应用层将所述每个分片的参数信息加入到定时器的队列中;
所述定时器周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方将删除所述分片的事件通知给所述发送方,所述发送方接收到所述删除所述分片的事件的通知后,删除或重发所述分片。
本发明提供的方法实施例的有益效果是:不在TCP/IP层对消息进行分片,而是由发送方的第一应用层对第一消息进行分片处理,同时在每个分片中添加分片标识符、分片偏移量和分片标志位,接收方的TCP/IP协议栈不需要对第一消息进行任何处理,直接交给第二应用层进行处理,第二应用层根据分片标识符、分片偏移量和分片标志位对分片进行重组,得到第一消息,这样可以避免某些应用依然采用基于IP分片对TCP/IP协议栈进行Dos攻击的问题。
实施例2
本实施例提供了一种分片处理的方法,如图2所示为安全网关上部署的IPsec协议软件的逻辑系统总体架构,发送方设备和接收方设备都需要安装M-IKEv2协议,该图同时显示了M-IKEv2协议应用层分片和TCP/IP分片在整个系统中所处的位置,M-IKEv2协议应用层分片在用户空间,TCP/IP分片在内核空间。
如图3所示为安全网关-安全网关实际网络应用场景的部署方式,本实施例中需要两个接入传输网络的路由器用于部署IPsec及M-IKEv2协议,需要一个传输网络用于在两个安全网关之间传输数据报文。其中核心网路由器是高性能IP路由器,IPsec安全网关是既是接入网路由器,同时也运行IPsec协议,用于保护内网的主机。IPsec安全网关在需要通信的两个接入网络之间建立起穿越核心传输网络的IPsec-VPN隧道,用于保护两个接入网之间的通信流量。
本实施例中,定义了一种M-IKEv2分片协议格式,如图4所示,M-IKEv2分片协议格式包括:用于应用层分片的分片标识符、分片偏移量、M标志位等。
其中,分片标识符:用于标识某一M-IKEv2消息是否是需要分片处理的IKEv2消息。如,将分片标识符设置为0,则表示不需要执行分片功能,该分片标识符可以为16比特,对此本实施例不做具体限定。
本实施例中,在一对IKE发起实体和对等实体之间,可能有多条IKEv2消息需要分片,那么对同一条消息不同分片的标识字段设定相同的标志值,确保IKEv2对等实体能够正确的识别这条IKEv2消息的所有分片并进行重组。另外,一对通信实体之间的不同IKEv2消息的标识字段设定为不同值,从而使得对等体可以区分不同的IKEv2消息。对于任一条需要分片的IKEv2消息,由IKEv2实体填写标识字段。本实施例中,考虑到IKEv2消息交互的数量,使用一个16比特的计数器,用于产生M-IKEv2消息的标识字段,该计数器可以通过随机发生器、顺序计数器、随机初始值顺序递增或递减中的一种或几种方式产生,但也不局限于这几种方式,对此本实施例不做具体限定。
分片偏移量:用于标识该分片包相对于该条消息原始头部的偏移量。一般可以为13比特,对此本实施例不作具体限定。
M标志位:即分片标志位,用于标识该分片是否还有后续分片。如,将其设置为0,则表示无后续分片,将其设置为1,则表示仍有后续分片,还不能对所有的分片进行组装处理。一般可以为3比特,对此本实施例不作具体限定。
如图5所示,展示了产生M-IKEv2分片消息的过程,包括M-IKEv2消息的可分片部分和不可分片部分。不可分片部分要求每一个分片数据包必须携带本信息,M-IKEv2头部属于不可分片部分。消息数据部分是可分片部分,该部分可以拆分成多个分片由多个M-IKEv2消息携带。下面以图5为例来直观的说明分片的执行过程:
假定Packet(1)是需要分片的大型消息,本实施例中,设定M-IKEv2消息的头部长度为24字节,数据域的长度是2000字节。假定采用IPv6协议来运送该数据包,链路MTU(Maximum Transmission Unit,最大传输单元)是1500字节,MAC(Medium Aceesss Control,介质访问控制)头部长度为14字节,IPv6头部长度为40字节,UDP头部长度为8字节。
Packet(2)描述了M-IKEv2消息的可分片部分和不可分片部分。
Packet(3)描述了第一个分片数据包,M-IKEv2头部的标识字段设定为一个16比特的整型值I,偏移部分设置为0,M标志位设置为1,分片数据长度设置为1414字节。
Packet(4)描述了第二个分片数据包,M-IKEv2头部的标识符字段和Packet(3)中的值相同的值为I,偏移部分设置为1414字节,M标志位设定为0,分片数据长度设置为586字节。
参见图6,本发明实施例提供的一种发送方分片处理的方法,包括:
601:发送方外出报文。
本实施例中,发送方产生报文,将报文发送到接收方。
602:M-IKEv2进程查询网络接口,获取链路MTU。
本实施例中,M-IKEv2软件启动后,通过系统调用接口netlink获取链路所有网卡的接口参数,如IP地址、MTU值等。
603:M-IKEv2进程计算IKEv2消息的总长度。
本实施例中,依据IKEv2协议产生消息报文,计算IKEv2消息的总长度,包括MAC、IP头、UDP头等。
604:M-IKEv2进程判断是否需要对该消息进行应用层分片处理,如果是,则执行步骤605,否则执行步骤607。
本实施例中,如果IKEv2消息的总长度大于MTU则该消息需要进行分片,否则该消息不需要进行分片。
605:产生分片标识符,将所有分片组成分片链。
606:将每个分片打上M-IKEv2头,依次发送。
本实施例中,若需要进行分片,则为该消息产生16比特的分片标识符,将分片标识符、分片偏移量和M标志位添加到分片中,并按照图5所示的过程形成分片链,一片一片的依次交给内核的TCP/IP/IPsec协议栈进行处理。
607:交给TCP/IP协议栈处理。
608:TCP/IP/IPsec协议栈,发送M-IKEv2消息。
本实施例中,基于上述发送方对M-IKEv2消息的分片处理,如图7所示,本实施例提供了一种接收方分片处理的方法,包括:
701:网络输入M-IKEv2报文。
702:TCP/IP/IPsec协议栈检查UDP端口号是否为IKEv2,如果是,则执行步骤704,否则执行步骤703。
703:进行正常入栈操作。
704:将IKEv2数据包提交给M-IKEV2进程。
705:M-IKEv2为不同的M-IKEv2分片标识符分配不同的链队列暂存收到的第一个分片消息。
706:同时为每个分片队列启动分片超时清除定时器,并将定时器加入周期扫描队列中。
707:判断接收到的分片是否是最后一个分片,如果是,则执行步骤709,否则执行步骤708。
708:将该分片加入相同的标识符队列,继续等待下一个分片。
709:立即组装同一个标识符的链队列的所有分片。
710:进入正常的IKEv2消息处理过程。
本实施例中,IPsec安全设备从网络上接收到M-IKEv2分片消息后,内核协议栈首先判断是否为IKEv2数据包,若是,则不进行内核IP协议的分片检查,直接提交给用户空间的M-IKEv2进程。应用层的M-IKEv2进程收到某条消息的第一个分片后,按分片标识符暂存该分片,然后对把分片放入分片超时定时器队列中,继续等待该分片队列直至最后一个分片到达。以分片标识符为关键字将消息分片队列组装完成后,就进入IKEv2协议规定的消息处理流程。
具体的,当IKEv2接收方接收到第一个M-IKEv2分片消息后,首先读取该分片包的标识字段,然后检查头部的M标志位,如果M设置为1,就暂存该分片不处理,等到收到具有相同标识符的M-IKEv2消息,且M字段为0后,IKEv2实体就依次组装相同标识符的所有M-IKEv2分片消息,然后对整个IKEv2消息进行处理。
本实施例中,步骤601-608为发送方的第一应用层获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方的具体执行过程;步骤701-710为所述接收方的第二应用层接收到所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息的具体执行过程。其中,第一消息为M-IKEv2消息,发送方的M-IKEv2进程具体执行第一应用层的功能,接收方的M-IKEv2进程具体执行第二应用层的功能。
具体的上述流程的实现可以通过如图8所示的网络设备:
对于发送方包括:参数提取模块911:用于获取本机所有网卡的接口参数,如IP地址、MTU值等。
分片判定模块912:基于上述定义的M-IKEv2协议,设计了应用层分片协议的处理流程。首先获取M-IKEv2消息发送接口的MTU,然后依据消息长度判定是否需要执行分片处理。
标识产生模块921:由一个16比特的循环计数器构成,其初始值采用随机发生器产生,计数的过程采用循环顺序加1的方式进行。
分片执行模块922:发送方依据判定模块的结果,填充协议字段,执行分片处理。
分片发送模块923:用于发送方发送同一个分片链的所有分片数据。
对于接收方包括:分片组装模块93:用于接收方重组M-IKEv2分片消息。
本实施例中,设计了一个定时器,此处的定时器是用于分片处理定时器,不同于IKEv2本身具有的重发定时器。每当IKEv2服务器收到M-IKEv2连接消息的第一个分片的时候,就将分片消息的相关参数加入一个定时器队列当中,定时器对定时队列进行周期性的扫描,一旦发现有超时的分片信息没有完成组装处理,定时处理例程就删除该分片消息队列,释放存储资源,这样会将IKEv2服务器的资源使用率维持在一个合理的水平。
如图9所示,描述了安全网关M-IKEv2软件分片超时定时器的运行流程:
801:启动分片超时清除定时器。
802:等待周期间隔,读取系统当前时间值。
803:周期性的顺序扫描分片清除超时队列,以分片标识符为扫描关键字。
804:判断每个分片队列是否超时,如果是,则执行步骤806,否则执行步骤805。
805:返回步骤802继续扫描下一个分片链。
806:用散列算法计算第一个分片的散列值,清除该分片标识符所标识的分片队列。
807:利用前一步获取的散列值创建通告消息,并发送该通告消息。
本实施例中,M-IKEv2软件在启动阶段初始化分片超时定时器扫描监控程序,以分片标识符为关键字周期性的扫描分片超时定时器队列中,若判断出超时分片,则首先将该分片的第一个分片执行散列运算,获取摘要值,然后以此摘要值为Notification Data产生自定义类型的FRAGMENT_TIMER_DROP通知载荷,即通知消息,发送该通知消息通知对方重新发送该分片队列,进入分片队列删除程序,清除该分片标识符所对应的分片队列。散列算法包括MD2、MD4、MD5和SHA-1,但不限于这4种算法,对此本实施例不做具体限定。
本实施例中,采用定时机制清除超时的M-IKEv2未组装分片消息后,需要将该分片删除事件通知发送方,以确保通信对端获知该消息的分片已经删除这一事件,并产生相应的重发或者其它异常处理,因此需要对应的通知载荷处理机制。本实施例中,根据IKEv2的载荷类型设计出一种通知载荷FRAGMENT_TIMER_DROP,其格式如图10所示,它兼容IKEv2的消息格式,包括:下一载荷类型、c、保留位、载荷长度、协议ID、安全索引(SPI)、SPI长度、通知消息类型和通知数据。图10中定义的Notify Message Type,从IANA的保留域中选取,Notification Data(通知数据)域是IKEv2服务器通过M-IKEv2分片定时机制丢弃的某条M-IKEv2消息的第一个分片的散列值。引入计算散列值的方法,不仅可以对分片进行匹配,减小传输的通知载荷长度,还可以在某种程度上抵挡未经授权的notify攻击。该载荷由IKEv2服务器发在删除某个消息的分片时发送给通信对端,通信对端收到该Notify载荷后,提取里面的Notification Data,并计算本地保存的M-IKEv2分片队列的第一个分片,采用相同的散列算法计算其散列值,然后与接收到的Notification Data进行对比,删除或者重发匹配的M-IKEv2分片消息。
具体的将该分片删除事件通知发送方可以通过如图8所示的网络结构实现,包括:
超时载荷模块951:用于依据图10定义的载荷类型,实现散列运算,产生通知消息。
异常发送模块952:将异常载荷封装进入M-IKEv2消息头部进行发送。
异常响应模块96:用于处理接收到的分片超时异常载荷。
本发明提供的方法实施例的有益效果是:不在TCP/IP层对消息进行分片,而是由发送方的第一应用层对第一消息进行分片处理,同时在每个分片中添加分片标识符、分片偏移量和分片标志位,接收方的TCP/IP协议栈不需要对第一消息进行任何处理,直接交给第二应用层进行处理,第二应用层根据分片标识符、分片偏移量和分片标志位对分片进行重组,得到第一消息,这样可以避免某些应用依然采用基于IP分片的IKEv2数据包对TCP/IP协议栈进行Dos攻击的问题。
采用M-IKEv2分片协议后,TCP/IP协议栈不需要对IKEv2协议的任何分片进行处理,只需要在IP协议栈中对M-IKEv2数据包进行检查,也就是一旦发现某个数据包的UDP端口号是IKEv2协议,直接交给M-IKEv2协议进行处理,这样可以避免某些应用依然采用基于IP分片的IKEv2数据包对TCP/IP协议栈进行Dos攻击。
进一步设置定时器,定时器用于对定时队列进行周期性的扫描,一旦发现有超时的分片信息没有完成组装处理,定时处理例程就删除该分片消息队列,释放存储资源,这样会将IKEv2服务器的资源使用率维持在一个合理的水平。
实施例3
参见图11,本发明实施例提供了一种分片处理的系统,包括:发送方301和接收方302,发送方301包括第一应用层,接收方302包括第二应用层;
所述发送方的第一应用层,用于获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
所述接收方的第二应用层,用于获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
其中,所述发送方的第一应用层包括:
第一获取模块,用于获取发送方的网卡接口参数,并计算第一消息的长度;
第一判断模块,用于根据所述第一获取模块获取的网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
第二获取模块,用于如果所述第一判断模块的判断结果为是,则所述发送方的第一应用层获取所述第一消息。
其中,所述发送方的第一应用层还包括:
执行模块,用于对所述第一消息进行分片处理,得到N个分片;产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
本实施例中,所述接收方的第二应用层包括:
第三获取模块,用于获取所述接收方提交的分片,所述分片是接收方依次接收到所述N个分片后,判断所述每个分片是否为第一消息的分片;如果是,则将所述每个分片提交给第二应用层的分片;
第二判断模块,用于根据所述第三获取模块获取的N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
组装模块,用于如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
本实施例中的系统还包括:定时器,所述接收方的第二应用层还包括:添加模块;
添加模块,用于所述第三获取模块获取到获取所述发送方发送的N个分片之后,将所述每个分片的参数信息加入到定时器的队列中;
所述定时器,用于周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方的第二应用层还包括:通知模块,
通知模块,用于将删除所述分片的事件通知给所述发送方;
所述发送方的第一应用层还包括:处理模块,
处理模块,用于接收到所述通知模块所述删除所述分片的事件的通知后,删除或重发所述分片。
本发明提供的系统实施例的有益效果是:不在TCP/IP层对消息进行分片,而是由发送方的第一应用层对第一消息进行分片处理,同时在每个分片中添加分片标识符、分片偏移量和分片标志位,接收方的TCP/IP协议栈不需要对第一消息进行任何处理,直接交给第二应用层进行处理,第二应用层根据分片标识符、分片偏移量和分片标志位对分片进行重组,得到第一消息,这样可以避免某些应用依然采用基于IP分片对TCP/IP协议栈进行Dos攻击的问题。
本实施例提供的系统,具体可以与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分片处理的方法,其特征在于,所述方法包括:
发送方的第一应用层获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
2.根据权利要求1所述的方法,其特征在于,所述发送方的第一应用层获取第一消息,包括:
获取发送方的网卡接口参数,并计算第一消息的长度;
根据所述网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
如果是,则所述发送方的第一应用层获取所述第一消息。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一消息进行分片处理,得到N个分片,包括:
所述第一应用层对所述第一消息进行分片处理,得到N个分片;
产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
4.根据权利要求1所述的方法,其特征在于,所述接收方的第二应用层获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息,包括:
接收方依次接收到所述N个分片后,判断所述每个分片是否为所述第一消息的分片;
如果是,则所述接收方将所述每个分片提交给第二应用层;
所述第二应用层获取N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
5.根据权利要求4所述的方法,其特征在于,所述接收方的第二应用层获取所述发送方发送的N个分片之后,还包括:
所述第二应用层将所述每个分片的参数信息加入到定时器的队列中;
所述定时器周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方将删除所述分片的事件通知给所述发送方,所述发送方接收到所述删除所述分片的事件的通知后,删除或重发所述分片。
6.一种分片处理的系统,其特征在于,所述系统包括:发送方和接收方,所述发送方包括第一应用层,所述接收方包括第二应用层;
所述发送方的第一应用层,用于获取第一消息,对所述第一消息进行分片处理,得到N个分片,其中,所述N个分片中的每个分片包括分片标识符、分片偏移量和分片标志位,并将所述N个分片发送给接收方,所述N为大于1的自然数;
所述接收方的第二应用层,用于获取所述发送方发送的N个分片,并根据所述N个分片中每个分片的分片标识符、分片偏移量和分片标志位对所述N个分片进行组装,得到所述第一消息。
7.根据权利要求6所述的系统,其特征在于,所述发送方的第一应用层包括:
第一获取模块,用于获取发送方的网卡接口参数,并计算第一消息的长度;
第一判断模块,用于根据所述第一获取模块获取的网卡接口参数和所述第一消息的长度,判断所述第一消息是否需要执行分片处理;
第二获取模块,用于如果所述第一判断模块的判断结果为是,则所述发送方的第一应用层获取所述第一消息。
8.根据权利要求6所述的系统,其特征在于,所述发送方的第一应用层还包括:
执行模块,用于对所述第一消息进行分片处理,得到N个分片;产生分片标识符,并将所述分片标识符填充到所述N个分片中的每一个分片中,并在所述N个分片的每一个分片中填充所述分片的分片偏移量和分片标志位。
9.根据权利要求6所述的系统,其特征在于,所述接收方的第二应用层包括:
第三获取模块,用于获取所述接收方提交的分片,所述分片是接收方依次接收到所述N个分片后,判断所述每个分片是否为所述第一消息的分片;如果是,则将所述每个分片提交给第二应用层的分片;
第二判断模块,用于根据所述第三获取模块获取的N个具有相同的标识字段的分片,根据所述分片标志位判断所述第N个分片是否为所述第一消息的最后一个分片;
组装模块,用于如果是,则根据所述分片标识符和所述分片偏移量组装所述N个分片,得到所述第一消息。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括:定时器,所述接收方的第二应用层还包括:添加模块;
所述添加模块,用于所述第三获取模块获取到获取所述发送方发送的N个分片之后,将所述每个分片的参数信息加入到定时器的队列中;
所述定时器,用于周期性的对所述定时队列进行扫描,删除在预定时间内没有被组装的分片;
所述接收方的第二应用层还包括:通知模块;
所述通知模块,用于将删除所述分片的事件通知给所述发送方;
所述发送方的第一应用层还包括:处理模块;
所述处理模块,用于接收到所述通知模块所述删除所述分片的事件的通知后,删除或重发所述分片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110306732.XA CN102377524B (zh) | 2011-10-11 | 2011-10-11 | 分片处理的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110306732.XA CN102377524B (zh) | 2011-10-11 | 2011-10-11 | 分片处理的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102377524A true CN102377524A (zh) | 2012-03-14 |
CN102377524B CN102377524B (zh) | 2014-12-17 |
Family
ID=45795569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110306732.XA Expired - Fee Related CN102377524B (zh) | 2011-10-11 | 2011-10-11 | 分片处理的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102377524B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104822137A (zh) * | 2015-04-14 | 2015-08-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息接收的方法及终端 |
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务系统 |
CN107612841A (zh) * | 2017-08-21 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 一种传输数据的方法、装置及计算机设备 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN111404648A (zh) * | 2020-02-20 | 2020-07-10 | 视联动力信息技术股份有限公司 | 一种数据发送方法和装置 |
CN113438176A (zh) * | 2021-05-17 | 2021-09-24 | 翱捷科技股份有限公司 | 一种处理分片ip数据包的方法及装置 |
WO2022032532A1 (en) * | 2020-08-12 | 2022-02-17 | Alibaba Group Holding Limited | Sharding for workflow applications in serverless architectures |
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
CN115242561A (zh) * | 2022-09-23 | 2022-10-25 | 中国电子科技集团公司第三十研究所 | IPSec传输模式超限包后分片处理方法、设备及介质 |
CN117812166A (zh) * | 2024-03-01 | 2024-04-02 | 广州市仪美医用家具科技股份有限公司 | 一种基于udp的数据传输方法、系统、设备和存储介质 |
WO2024207837A1 (zh) * | 2023-12-12 | 2024-10-10 | 天翼云科技有限公司 | 一种分布式缓存发布订阅的方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039309A (zh) * | 2006-03-16 | 2007-09-19 | 联想(北京)有限公司 | 链路共享服务装置以及通信方法 |
CN101072184A (zh) * | 2007-06-25 | 2007-11-14 | 中兴通讯股份有限公司 | 一种ip报文分片重组的方法 |
CN101226700A (zh) * | 2008-01-28 | 2008-07-23 | 哈尔滨工业大学 | Ip数据报的分片与重组过程的教学实验方法 |
CN102014067A (zh) * | 2010-12-14 | 2011-04-13 | 北京星网锐捷网络技术有限公司 | 一种报文分片发送的方法、装置和网络设备 |
-
2011
- 2011-10-11 CN CN201110306732.XA patent/CN102377524B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039309A (zh) * | 2006-03-16 | 2007-09-19 | 联想(北京)有限公司 | 链路共享服务装置以及通信方法 |
CN101072184A (zh) * | 2007-06-25 | 2007-11-14 | 中兴通讯股份有限公司 | 一种ip报文分片重组的方法 |
CN101226700A (zh) * | 2008-01-28 | 2008-07-23 | 哈尔滨工业大学 | Ip数据报的分片与重组过程的教学实验方法 |
CN102014067A (zh) * | 2010-12-14 | 2011-04-13 | 北京星网锐捷网络技术有限公司 | 一种报文分片发送的方法、装置和网络设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104822137A (zh) * | 2015-04-14 | 2015-08-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息接收的方法及终端 |
CN104822137B (zh) * | 2015-04-14 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息接收的方法及终端 |
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务系统 |
CN105468764B (zh) * | 2015-12-02 | 2019-07-02 | 广州欢聚时代信息科技有限公司 | 一种数据处理方法、装置及集群服务系统 |
CN107612841A (zh) * | 2017-08-21 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 一种传输数据的方法、装置及计算机设备 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN111404648A (zh) * | 2020-02-20 | 2020-07-10 | 视联动力信息技术股份有限公司 | 一种数据发送方法和装置 |
WO2022032532A1 (en) * | 2020-08-12 | 2022-02-17 | Alibaba Group Holding Limited | Sharding for workflow applications in serverless architectures |
CN113438176A (zh) * | 2021-05-17 | 2021-09-24 | 翱捷科技股份有限公司 | 一种处理分片ip数据包的方法及装置 |
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
CN115242561A (zh) * | 2022-09-23 | 2022-10-25 | 中国电子科技集团公司第三十研究所 | IPSec传输模式超限包后分片处理方法、设备及介质 |
CN115242561B (zh) * | 2022-09-23 | 2023-01-31 | 中国电子科技集团公司第三十研究所 | IPSec传输模式超限包后分片处理方法、设备及介质 |
WO2024207837A1 (zh) * | 2023-12-12 | 2024-10-10 | 天翼云科技有限公司 | 一种分布式缓存发布订阅的方法、系统和装置 |
CN117812166A (zh) * | 2024-03-01 | 2024-04-02 | 广州市仪美医用家具科技股份有限公司 | 一种基于udp的数据传输方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102377524B (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377524B (zh) | 分片处理的方法和系统 | |
Yang et al. | Security vulnerabilities in LoRaWAN | |
Snoeren et al. | Hash-based IP traceback | |
US8499146B2 (en) | Method and device for preventing network attacks | |
KR101378647B1 (ko) | Ieee 802.15.4 네트워크에서의 보안 설정 가능한 맥프레임 제공 방법 및 장치 | |
Hussen et al. | SAKES: Secure authentication and key establishment scheme for M2M communication in the IP-based wireless sensor network (6L0WPAN) | |
US20080005558A1 (en) | Methods and apparatuses for authentication and validation of computer-processable communications | |
CN101558599B (zh) | 客户端设备、邮件系统、程序以及记录介质 | |
EP3070902A2 (en) | Mitigating neighbor discovery-based denial of service attacks | |
EP3442195B1 (en) | Reliable and secure parsing of packets | |
CN102474724A (zh) | 用于在无线网中安全地广播敏感数据的方法 | |
US7139679B1 (en) | Method and apparatus for cryptographic protection from denial of service attacks | |
Van Es et al. | Denial-of-service attacks on LoRaWAN | |
Malekzadeh et al. | A new security model to prevent denial‐of‐service attacks and violation of availability in wireless networks | |
CN105262737B (zh) | 一种基于跳通道模式的抵御ddos攻击的方法 | |
US7921285B2 (en) | Means of mitigating denial of service attacks on IP fragmentation in high performance IPsec gateways | |
Zuquete | Improving the functionality of SYN cookies | |
Wu | Analysis of the WireGuard protocol | |
CN103095563A (zh) | 一种报文处理方法及系统 | |
CN113746788A (zh) | 一种数据处理方法及装置 | |
CN114938312B (zh) | 一种数据传输方法和装置 | |
US8364949B1 (en) | Authentication for TCP-based routing and management protocols | |
CN108965309B (zh) | 一种数据传输处理方法、装置、系统及设备 | |
Walker | Internet security | |
CN114614984B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141217 Termination date: 20201011 |
|
CF01 | Termination of patent right due to non-payment of annual fee |