本发明公开了一种ip非分片化方法,属于ip报文的加密封装,具体涉及一种重新构造网络ip报文实现ip非分片化方法。
背景技术:
1、传统的ipsec vpn设备实现网络ip报文的加密封装,需要对进入协议栈的网络报文,根据三层ip包头的分片标识和和偏移值,进行重组,形成一个完整的包含三层、四层的头结构的网络ip报文。在此基础上,对完整的网络ip报文进行加密封装,再根据mtu值分片处理后进行发送。
2、这样ipsec vpn设备在处理过程中,存在以下问题:
3、1.需要大量的缓存空间,对于资源受限的小型高速的ipsec vpn设备,没法实现网络ip报文重组和加密封装处理。
4、2.网络ip报文需要根据网络ip报文的长度进行缓存、重组、加密封装处理,再按照mtu值的要求进行分片处理,网络延时往往超过100ms以上,对实时性要求较高的应用场景支持不够。
5、3.传统的ipsec vpn设备在完成网络ip报文重组以后,如果遇到极限长度的ip包(已经达到最大长度即65536字节),因为加密封装还需要增加报文长度,这样封装完成以后就超过了网络ip报文的极限长度,导致网络ip报文无法正确传输。
6、上述技术的缺点正是本发明所要解决的技术问题。
技术实现思路
1、发明目的:提供重新构造网络ip报文实现ip非分片化方法,解决上述提到的问题。
2、技术方案:重新构造网络ip报文实现ip非分片化方法,所述ip非分片化方法对进入协议栈的网络ip报文,即对于分片包或非分片包进行重新构造网络ip报文的结构,使得新的网络ip报文成为完整的非分片包,并对所述非分片包进行加密封装处理并发送至对端ipsec vpn设备,进行解密和解封装,并根据网络报文中保留的原始分片信息再进行重新构造,恢复原始网络报文的数据结构。
3、在进一步的实施例中,所述ip非分片化方法具体包括以下步骤:
4、步骤1:构建新的ip头;
5、步骤2:增加新的udp头;
6、步骤3:增加新的附加ipa头;
7、步骤4:将原始的ip载荷添加到ipa头部后面,形成完整网络ip报文;
8、步骤5:重新计算ip包的总长度,修改新的ip头;完成重构网络ip报文结构;
9、步骤6:重构完成的ip包,为独立的非分片包,实现当前的网络ip报文和前后网络ip报文无关联;
10、步骤7:重构后的网络ip报文,再实现ipsec vpn加密封装处理;
11、步骤8:ipsec vpn加密封装处理后的包,到达对端解密设备,解密、解封装以后,再将保存在ipa头部的分片标识和偏移值还原处理。
12、在进一步的实施例中,所述构建新的ip头是将原有的网络ip报文的ip头部的ip协议、ip分片信息集中放到新附加ipa头部保留,便于还原时使用;修改原有网络ip报文的ip头部ip协议为udp,将分片标识mf设置为0,表示非分片包;将片偏移值设为0,重新计算ip头的校验和,其他沿用原来三层ip头的大部分内容,构建完成新的ip头部。
13、在进一步的实施例中,所述增加新的附加ipa头是附加ipa的头部需要保留原始网络ip报文的ip协议、ip分片信息。
14、在进一步的实施例中,ip分片信息包括:分片标识和偏移值。
15、在进一步的实施例中,所述增加新的udp头是在新的ip头后加入固定的udp头,udp头部源端口和目标端口设置为4500。
16、有益效果:本发明相较于现有技术中ipsec vpn设备实现网络ip报文的加密封装的方法,具有以下优点:
17、1.本发明提供的网络ip报文预处理方式,完全可以实现低成本、低功耗、高性能的要求。本发明提供的技术,能够节省内存空间40倍。
18、2.本发明针对每一个网络ip报文进行单独预处理,使得网络ip报文无需缓存、重组,即使加密封装完成的网络ip报文,大于mtu值,最多再需要分片一次。经用core i5处理器进行测试验证,网络延时低于5ms。
19、3.本发明不需要ip包重组,即使是极限长度的网络ip报文,因为只对分片包进行处理,不存在需要处理65536字节的包,不会影响网络正常的通信传输。
1.重新构造网络ip报文实现ip非分片化方法,其特征在于,所述ip非分片化方法对进入协议栈的网络ip报文进行重新构造网络ip报文的结构,使得新的网络ip报文成为完整的非分片包,并对所述非分片包进行加密封装处理并发送至对端ipsec vpn设备;ipsec vpn设备进行解密和解封装,并根据网络报文中保留的原始分片信息再进行重新构造,恢复原始网络报文的数据结构。
2.根据权利要求1所述重新构造网络ip报文实现ip非分片化方法,其特征在于,所述ip非分片化方法具体包括以下步骤:
3.根据权利要求2所述重新构造网络ip报文实现ip非分片化方法,其特征在于,所述构建新的ip头是将原有的网络ip报文的ip头部的ip协议、ip分片信息集中放到新附加ipa头部保留,便于还原时使用;修改原有网络ip报文的ip头部ip协议为udp,将分片标识mf设置为0,表示非分片包;将片偏移值设为0,重新计算ip头的校验和,其他沿用原来三层ip头的大部分内容,构建完成新的ip头部。
4.根据权利要求3所述重新构造网络ip报文实现ip非分片化方法,其特征在于,所述增加新的附加ipa头是附加ipa的头部需要保留原始网络ip报文的ip协议、ip分片信息。
5.根据权利要求4所述重新构造网络ip报文实现ip非分片化方法,其特征在于,ip分片信息包括:分片标识和偏移值。
6.根据权利要求2所述重新构造网络ip报文实现ip非分片化方法,其特征在于,所述增加新的udp头是在新的ip头后加入固定的udp头,udp头部源端口和目标端口设置为4500。