掌桥专利:专业的专利平台
掌桥专利
首页

IPSec传输模式下IP数据报文重组方法、系统、介质及设备

文献发布时间:2023-06-19 18:37:28


IPSec传输模式下IP数据报文重组方法、系统、介质及设备

技术领域

本发明涉及通信技术领域,具体地说是一种IPSec传输模式下IP数据报文重组方法、系统、介质及设备。

背景技术

应用IPSec封装保护后的IP数据包会产生数据膨胀。如果膨胀后的报文大于路径MTU,需要对数据报文进行分片处理。在隧道模式下,IPSec保护了原始报文的IP头和载荷部分,因此IPSec接收端可以识别重组数据包。在传输模式下,IP头不进行IPSec保护。在发送端数据包较大的情况下,IP的分片包经过IPSec发送端进行处理之后大于路径MTU,需要进行分片。IPSec接收端上将无法重组成原始数据包。因此RFC4301规定,IPSec传输模式不支持对IP分片包的保护。但是在实际应用环境中,确实存在IP分片包经过IPSec发送端进行处理之后超过MTU长度,从而导致加密业务传输不正常的情况。

发明内容

为此,本发明所要解决的技术问题在于提供一种IPSec传输模式下IP数据报文重组方法、系统、介质及设备,通过对IP头数据分片字段保存的方式,对IPSec加密传输模式协议进行改进设计,解决了IPSec发送端进行处理后超过MTU长度导致加密业务传输不正常的问题。

为解决上述技术问题,本发明提供如下技术方案:

IPSec传输模式下IP数据报文重组方法,包括如下步骤:

S1)第一IPSec网关接收原始IP数据报文,将原始IP数据报文加密封装为IPSec报文并将原始IP数据报文报头中的标识和分片偏移量记录在IPSec报文载荷数据的特定位置,然后第一IPSec网关将IPsec报文发送至第二IPSec网关;当IPsec报文长度大于最大传输单元时,触发因特网协议允许对IPSec报文进行分片,第一IP网关将IPSec报文分成大于或等于2个新的IPsec报文,每个新的IPSec报文的长度均小于或等于最大传输单元,第一IPSec网关将分片后得到的新的IPSec报文发送至第二IPsec网关;

S2)第二IP网关接收到分片后得到的新的IPSec报文后,向将分片后得到的新的IPSec报文重组成分片前的IPSec报文,然后对分片前的IPSec报文进行解封装,再将写在分片前的IPSec报文载荷数据特定位置的原始IP数据报文报头中的标识和分片偏移量取出并写入原始IP数据报文报头中的相应位置,然后将原始IP数据报文发出。

上述IPSec传输模式下IP数据报文重组方法,在步骤S1)中,所有的新的IPSec报文均包含有原IP数据报文报头中的标识。

上述IPSec传输模式下IP数据报文重组方法,分片偏移量的偏移单位为8个字节。

上述IPSec传输模式下IP数据报文重组方法,每个新的IPSec报文均具有一个新的IP头。

IPSec传输模式下IP数据报文重组系统,包括:

第一IPSec网关,用于接收IP数据报文并对IP数据报文进行封装与解封操作;第一IPSec网关内置有封装模块、解封模块、数据报文重组模块和对数据报文进行分片处理的分片处理模块;

第二IPSec网关,用于接收IP数据报文并对IP数据报文进行封装与解封操作;第二IPSec网关内置有封装模块、解封模块、数据报文重组模块和对数据报文进行分片处理的分片处理模块;

第一终端通过第一IPSec网关和第二IPSec网关与第二终端通信连接。

计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述IPSec传输模式下IP数据报文重组方法。

计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述IPSec传输模式下IP数据报文重组方法。

本发明的技术方案取得了如下有益的技术效果:

在确保可以通过IPSec传输模式下正常传输IP数据报文的情况下,能够有效提高IPSec传输模式下IP数据报文的传输速度。

附图说明

图1为本发明中IPSec传输模式下IP数据报文重组系统的工作原理图;

图2为IPSec传输模式下IP数据包重组系统进行IP数据报文发送重组的流程图;

图3为IP数据报文IPSec加密封装并分片的流程图;

图4为分片后的IPSec报文解封并重组的流程图;

图5为IP数据报文的结构图;

图6为IPsec报文的结构图;

图7为本发明中可进行IPSec传输模式下IP数据报文重组的计算机设备原理图。

具体实施方式

下面结合示例,针对本发明进行进一步说明。

如图1所示,IPSec传输模式下IP数据报文重组系统,包括第一IPSec网关和第二IPSec网关,第一终端通过第一IPSec网关和第二IPSec网关与第二终端通信连接。其中,第一IPSec网关,用于接收IP数据报文并对IP数据报文进行封装与解封操作;第一IPSec网关内置有封装模块、解封模块、数据报文重组模块和对数据报文进行分片处理的分片处理模块;第二IPSec网关,用于接收IP数据报文并对IP数据报文进行封装与解封操作;第二IPSec网关内置有封装模块、解封模块、数据报文重组模块和对数据报文进行分片处理的分片处理模块。

在实际应用过程中,可以通过一个IPSec网关实现第一IPSec网关和第二IPSec网关联合使用的功能。

如图2所示,在两个终端通过所述IPSec传输模式下IP数据报文重组系统在IPSec传输模式下进行IP数据报文传输时,IP数据报文通过如下步骤重组:

S1)第一IPSec网关接收原始IP数据报文,将原始IP数据报文加密封装为IPSec报文并将原始IP数据报文报头中的标识和分片偏移量记录在IPSec报文载荷数据的特定位置,然后第一IPSec网关将IPsec报文发送至第二IPSec网关;当IPsec报文长度大于最大传输单元(MTU)时,触发因特网协议允许对IPSec报文进行分片,第一IPSec网关将IPSec报文分成大于或等于2个新的IPsec报文,每个新的IPSec报文的长度均小于或等于最大传输单元,第一IPSec网关将分片后得到的新的IPSec报文发送至第二IPsec网关,如图3所示;

S2)第二IPSec网关接收到分片后得到的新的IPSec报文后,将分片后得到的新的IPSec报文重组成分片前的IPSec报文,然后对分片前的IPSec报文进行解封装,再将写在分片前的IPSec报文载荷数据特定位置的原始IP数据报文报头中的标识和分片偏移量取出并写入原始IP数据报文报头中的相应位置,然后将原始IP数据报文发出,如图4所示。

其中,在步骤S1)中,所有的新的IPSec报文均包含有原IP数据报文报头中的标识,且每个新的IPSec报文均具有一个新的IP头。

IP数据报文的IP头总共20字节,数据结构如图5所示。其中,跟分片有关的字段为标识和片偏移。标识占16位,2字节。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段.但这个"标识"并不是序号,因为IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过路径MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。片偏移占13位。较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位,这就是说,每个分片的长度一定是8字节(64位)的整数倍。

本发明中所使用的IPSec报文结构如图6所示。其中,载荷数据是一个变长的字段,它包含初始化向量IV和下一个头字段所描述的数据,其长度单位为字节。

在本发明中,相较于现有技术的在封装前分片处理,封装后的分片可以减少对分片再封装后的数据报的大小进行预估环节,加快数据报文在IPSec传输模式下的转发速度,而且可以确保分片后形成的单个数据报文满足在IPSec传输模式下的最大传输单元限制的要求,避免了加密业务传输不正常的情况的出现。

基于上述IPSec传输模式下IP数据报文重组方法,相应的,本实例中还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如下步骤:IPSec网关接收端接收来自第一终端的原始IP数据报文,然后由封装模块将原始IP数据报文加密封装得到IPSec报文并将IP数据报文报头中的标识和分片偏移量记录在IPsec报文载荷数据的特定位置,然后由IPSec网关发送端将IPSec报文发送至另一个IPSec网关的接收端,当IPsec报文长度大于最大传输单元时,触发因特网协议允许对IPSec报文进行分片,然后再由IPSec网关的发送端将分片得到的新的IPSec报文发送至另一个IPSec网关,而IPSec网关接收端在接收到来自其他IPSec网关的分片后的IPSec报文时,会先将分片后的IPSec报文重组成分片前的IPSec报文,然后在解封,再将写在分片前的IPSec报文载荷数据特定位置的原始IP数据报文报头中的标识和分片偏移量取出并写入原始IP数据报文报头中的相应位置,然后将原始IP数据报文发出。

如图7所示,基于上述IPSec传输模式下IP数据报文重组方法以及计算机可读存储介质,本实施例中,还提供了一种计算机设备,其包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其中可读存储介质与处理器均设置在总线上,处理器执行计算机程序时实现如下步骤:IPSec网关接收端接收来自第一终端的原始IP数据报文,然后由封装模块将原始IP数据报文加密封装得到IPSec报文并将IP数据报文报头中的标识和分片偏移量记录在IPsec报文载荷数据的特定位置,然后由IPSec网关发送端将IPSec报文发送至另一个IPSec网关的接收端,当IPsec报文长度大于最大传输单元时,触发因特网协议允许对IPSec报文进行分片,然后再由IPSec网关的发送端将分片得到的新的IPSec报文发送至另一个IPSec网关,而IPSec网关接收端在接收到来自其他IPSec网关的分片后的IPSec报文时,会先将分片后的IPSec报文重组成分片前的IPSec报文,然后在解封,再将写在分片前的IPSec报文载荷数据特定位置的原始IP数据报文报头中的标识和分片偏移量取出并写入原始IP数据报文报头中的相应位置,然后将原始IP数据报文发出。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。

技术分类

06120115636149