基于安全联盟的IPSec报文处理方法及装置的制作方法

文档序号:7565835阅读:228来源:国知局
专利名称:基于安全联盟的IPSec报文处理方法及装置的制作方法
技术领域
本发明涉及IPkc报文处理技术,尤其涉及一种基于安全联盟(SA, SecurityAssociation)的IPSec报文处理方法及装置。
背景技术
随着通讯技术和网络技术的快速发展,网络信息安全问题显得越来越突出。互联 网协议安全性(IPkc,Internet Protocol Security)技术是一种解决信息安全问题的有 效途径。其通过在网络路由设备上配置IPSec业务而加密信息,并建立安全的传输通道,使 得信息在网络传输过程中安全可靠。在网络路由设备上,为了加快IPSec业务的处理速度,往往采用多核处理器进行 多线程处理。图1为现有多线程IPSec报文处理原理示意图,如图1所示,IPSec报文接 收和分发单元将接收到的IPSec报文平均分发到线程1到线程η进行处理,处理完后再将 IPSec报文统一发送到保序线程进行IPSec报文的保序,最后再由IPSec报文发送单元发送 出去。首先,这种方法由于将保序处理统一到一个线程处理,很容易造成转发性能的瓶颈; 其次,这种方法处理IPSec报文,忽略了各个安全联盟之间的影响为了正常实现抗重放功 能,网络设备需要对各IPSec报文的序列号(SN,Sequence Number)进行处理,当同一 SA的 IPSec报文分发到不同线程进行处理时,会出现几个线程同时修改同一 SA的SN的冲突,此 时就需要进行互斥访问的操作,造成了转发性能的降低。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于安全联盟的IPSec报文处理方法 及装置,不必对各线程处理的IPSec报文进行保序,从而大大提高了 IPSec报文的处理效率。为达到上述目的,本发明的技术方案是这样实现的一种基于安全联盟的IPSec报文处理方法,包括将IPSec报文按照所述IPSec报文所属的SA分发给各线程;其中,属于同一 SA的 IPSec报文分发到同一线程;线程对IPSec报文设置序列号SN并加密,然后发送。优选地,所述方法还包括同一线程能同时处理分属不同SA的IPSec报文。
优选地,所述线程对IPSec报文设置SN具体为线程接收到IPSec报文后,对属于同一 SA的IPSec报文顺序编号。优选地,所述方法还包括检测出有负荷超出设定的第一阈值的线程时,将该负荷超出设定阈值的线程上的 至少一个SA的待发送IPSec报文分发到负荷未达到设定的第二阈值的线程。一种基于安全联盟的IPSec报文处理方法,包括
将接收到经前述基于安全联盟的IPSec报文处理方法处理过的IPSec报文按照 IPSec报文所属的SA分发给各线程;其中,属于同一 SA的IPSec报文分发到同一线程;在每一队列中按IPSec报文所属的SA分别设置缓存队列,并按IPSec报文的SN 缓存所接收到的IPSec报文,对缓存队列中的IPSec报文进行解密。一种基于安全联盟的IPSec报文处理装置,包括分发单元、一个以上线程处理单 元和发送单元,其中分发单元,用于将IPSec报文按照所述IPSec报文所属的安全联盟SA分发给各线 程;其中,属于同一 SA的IPSec报文分发到同一线程;线程处理单元,用于对IPSec报文设置SN并加密;发送单元,用于发送处理单元处理后的IPSec报文。优选地,线程处理单元能同时处理分属不同SA的IPSec报文。优选地,所述线程处理单元在接收到IPSec报文后,对属于同一 SA的IPSec报文 顺序编号。优选地,所述装置还包括检测单元,用于检测是否同时存在负荷超出设定的第一阈值的线程处理单元以及 负荷未达到设定的第二阈值的线程处理单元,同时存在时通知所述分发单元将该负荷超出 设定阈值的线程处理单元中的至少一个SA的待发送IPSec报文分发到负荷未达到设定的 第二阈值的线程处理单元。一种基于安全联盟的IPSec报文处理装置,包括接收单元、分发单元、设置单元、 存储单元和处理单元,其中接收单元,用于接收所述发送单元发送的IPSec报文;分发单元,用于将所述接收单元接收的IPSec报文按照IPSec报文所属的SA分发 给各线程;其中,属于同一 SA的IPSec报文分发到同一线程;设置单元,用于在每一队列中按IPSec报文所属的SA分别设置缓存队列;存储单元,用于按IPSec报文所属的SA分别设置缓存队列,处理单元,用于解密所缓存的IPSec报文。本发明将同一 SA的IPSec报文分发到同一线程上进行处理,这样,保证了同一 SA 的IPSec报文不会出现乱序,避免了 IPSec报文因保序而致的网络延迟、丢包、重复覆盖、转 发效率低,流量抖动等一系列问题。本发明还根据处理线程的忙闲状态,动态分配IPSec报 文到负荷较轻的线程进行处理,使得各个线程的负载更均衡,充分提高了多核处理器的处 理效率。本发明能实现抗重放和保序协同处理,避免了在入向上使用统一线程进行保序,简 化了处理流程,提高了转发效率。


图1为现有多线程IPSec报文处理原理示意图;图2为本发明实施例在多核处理器上多线程处理出向IPSec报文的示意图;图3为本发明实施例在多核处理器上多线程处理入向IPSec报文的示意图;图4为入向IPSec报文处理模块进行抗重放的原理图;图5为本发明实施例出向IPSec报文在某一线程上的处理流程图6为本发明实施例入向IPSec报文在某一线程上的处理流程图;图7为本发明实施例一种基于安全联盟的IPSec报文处理装置的组成结构示意 图;图8为本发明实施例另一种基于安全联盟的IPSec报文处理装置的组成结构示意 图。
具体实施例方式本发明实施例的基本思想是,将IPSec报文按照该IPSec报文所属的SA分发给各 线程;其中,属于同一 SA的IPSec报文分发到同一线程,而同一线程可处理一个以上的SA 的IPkc报文;由于同一 SA的IPkc报文实际上由一个线程进行处理,因此不会导致IPkc 报文的SN错乱等,有效地避免了 IPSec报文因保序而致的网络延迟、丢包、重复覆盖、转发 效率低。为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对 本发明进一步详细说明。图2为本发明实施例在多核处理器上多线程处理出向IPSec报文的示意图,如图2 所示,图中包括出向IPSec报文接收和分发模块210、出向IPSec报文处理模块220和出向 IPSec报文发送模块230,其中,出向IPSec报文接收和分发模块210,用于接收出向IPkc 报文,并将接收到的IPSec报文根据SA分发到相应的IPSec报文处理线程;其中,属于同 一 SA的IPSec报文分发到同一线程,而同一线程可处理一个以上的SA的IPSec报文;由 于同一 SA的IPSec报文实际上由一个线程进行处理,因此不会导致IPSec报文的SN错乱 等。出向IPSec报文处理模块220,该模块包含若干并行运行的IPSec报文处理线程,用于 对IPSec报文SN进行加一,并对IPSec报文进行加密处理。本发明实施例中的加密主要是 对报文进行保密和完整性保护等处理。由于将IPSec报文根据SA分发到相应的IPSec报文处理线程,即同一个SA的 IPSec报文只会在同一个线程处理,避免了同一个IPSec报文经过多个线程处理后的乱序。 本发明允许不同SA的IPSec报文进出顺序可以不一致,但这不影响IPkc的抗重放(即报 文排序)功能及其它功能的实现,省略了现有技术中的同一保序处理模块,克服了 IPSec报 文转发的瓶颈,提高了 IPSec报文转发的效率。上述经设置SN以及加密处理后的IPSec报文,经出向IPSec报文发送模块230发送。图3为本发明实施例在多核处理器上多线程处理入向IPSec报文的示意图,如图 3所示,图中包括入向IPSec报文接收和分发模块310和入向IPSec报文处理模块320,其 中,入向IPSec报文接收和分发模块310的功能同图2中的出向IPSec报文接收和分发模 块210 ;入向IPSec报文处理模块320,该模块也包含若干并行运行的IPSec报文处理线程, 用于对IPkc的加密IPSec报文进行抗重放处理,并对IPSec报文进行解密处理。经上述处理后的IPSec报文,经入向IPSec报文发送模块330进行发送。图4为入向IPSec报文处理模块进行抗重放的原理图,如图4所示,在每个线程中 为每个SA分配一个缓存队列,对抗重放窗口内的IPSec报文进行缓存,在抗重放处理过程 中,随着抗重放窗口的移动,将将处于窗口外(即已经过抗重放)的缓存IPSec报文按SN顺序发送到入向IPSec报文发送模块330。本发明中抗重放主要是实现对所接收到的报文 进行排序,主要是因为接收侧在接收所接收到的经图2处理后的IPSec报文时,在某一时 段内,IPSec报文的SN并不一定会连续,需要等待一些SN非连续的IPSec报文(如因传输 路径等导致的延迟等,即需要设定必要的等待时间,以确定所接收到的IPSec报文的SN联 系)。该过程与保序过程是对应的,即经过保序后的IPSec报文的SN,在接收到须保证其接 收连续。虽然以上对本发明实施例的基于安全联盟的IPSec报文处理方法进行了详细论 述,以下基于上述论述进一步阐明本发明技术方案的实质。需要说明的是,上述的处理模 块,均是根据本发明技术方案在实际的处理系统中的应用程序的处理方式进行虚拟的,是 为了阐明本发明技术方案而设置的,上述的处理模块仅是为说明上的便宜而设的,并不构 成对本发明技术方案的限定,上述的处理模块,仅需关注其记载功能以及各模块之间的交 互信息即可。图5为本发明出向IPSec报文在某一线程上的处理流程图,如图5所示,本发明出 向IPSec报文在某一线程上的处理主要包括以下步骤步骤S501,IPSec报文接收和分发单元接收到IPSec报文根据IPSec报文所属的 SA分发到各线程,IPSec报文的分发遵循同一 SA分发到同一线程的原则;步骤S502,出向IPSec报文处理单元对各IPSec报文的SN分别进行加1处理;步骤S503,出向IPSec报文处理单元进行IPSec报文加密等其他处理;步骤S504,IPSec报文发送单元不需要对IPSec报文进行保序处理直接将IPSec 报文发送出。图6为本发明入向IPSec报文在某一线程上的处理流程图,如图6所示,本发明入 向IPSec报文在某一线程上的处理主要包括以下步骤步骤S601,同步骤 S501 ;步骤S602,入向IPSec报文处理单元对各IPSec报文进行抗重放处理,并为每个 SA分配一个缓存队列,对抗重放窗口内的IPSec报文进行缓存;步骤S603,入向IPSec报文处理单元进行IPSec报文解密等其他处理;步骤S604,判断缓存队列是否可以发送;步骤S605,在抗重放处理过程中,随着抗重放窗口的移动,处理单元逐步将处于窗 口外的缓存IPSec报文按SN顺序发送到IPSec报文发送单元。本发明的基于安全联盟的IPSec报文处理方法,主要包括对待发送IPSec报文的 处理以及接收到经本发明处理后的IPSec报文后如何实现解报文,具体的,对待发送IPSec 报文的处理方法包括将IPkc报文按照IPkc报文所属的SA分发给各线程;其中,属于同 一 SA的IPSec报文分发到同一线程;也就说,本发明不会将分属于同一 SA的IPSec报文分 发给两个以上的线程,以避免两个以上的线程对IPSec报文设置SN后,导致后续的IPSec 报文的SN不连续,从而导致丢包等。另外,通过本发明的处理后,不必再对IPSec报文进行 保序处理,从而使得IPSec报文的处理效率大大提高。各线程对IPSec报文设置序列号SN并加密,然后发送即可。上述方法中,同一线程能同时处理分属不同SA的IPSec报文。也就是说,每个线 程可以同时处理两个以上的分属不同SA的IPSec报文。
6
上述线程对IPSec报文设置SN具体为线程接收到IPSec报文后,对属于同一 SA的IPSec报文顺序编号。上述方法还包括检测出有负荷超出设定的第一阈值的线程时,将该负荷超出设定阈值的线程上的 至少一个SA的待发送IPSec报文分发到负荷未达到设定的第二阈值的线程。这里,第一阈 值以及第二阈值最好不是相同的值,第二阈值的值远限于第一阈值。需要说明的是,上述的 阈值可以是由运营商根据系统运行需要而设置的具体值。本发明并不限定上述阈值的具体 取值。本领域技术人员应当立即,设定上述阈值是容易实现的。接收到经前述方法处理后的IPSec报文的处理方法,包括将接收到经前述基于安全联盟的IPSec报文处理方法处理过的IPSec报文按照 IPSec报文所属的SA分发给各线程;其中,属于同一 SA的IPSec报文分发到同一线程;在每一队列中按IPSec报文所属的SA分别设置缓存队列,并按IPSec报文的SN 缓存所接收到的IPSec报文,对缓存队列中的IPSec报文进行解密。上述的方法,可参照前述对图2至图5的相关描述而理解。图7为本发明一种基于安全联盟的IPSec报文处理装置的组成结构示意图,如图 7所示,本示例的基于安全联盟的IPSec报文处理装置包括分发单元70、一个以上线程处理 单元71和发送单元72,其中分发单元70,用于将IPSec报文按照所述IPSec报文所属的安全联盟SA分发给各 线程;其中,属于同一 SA的IPSec报文分发到同一线程;线程处理单元71,用于对IPSec报文设置SN并加密;发送单元72,用于发送处理单元处理后的IPSec报文。上述线程处理单元71能同时处理分属不同SA的IPSec报文。上述线程处理单元71进一步在接收到IPSec报文后,对属于同一 SA的IPSec报 文顺序编号。本示例的基于安全联盟的IPSec报文处理装置还包括检测单元(未图示),用于检测是否同时存在负荷超出设定的第一阈值的线程处 理单元以及负荷未达到设定的第二阈值的线程处理单元,同时存在时通知所述分发单元将 该负荷超出设定阈值的线程处理单元中的至少一个SA的待发送IPSec报文分发到负荷未 达到设定的第二阈值的线程处理单元。图8为本发明另一种基于安全联盟的IPSec报文处理装置的组成结构示意图,如 图8所示,本示例的基于安全联盟的IPSec报文处理装置包括接收单元80、分发单元81、设 置单元82、存储单元83和处理单元84,其中接收单元80,用于接收发送单元72发送的IPSec报文;分发单元81,用于将所述接收单元接收的IPSec报文按照IPSec报文所属的SA分 发给各线程;其中,属于同一 SA的IPSec报文分发到同一线程;设置单元82,用于在每一队列中按IPSec报文所属的SA分别设置缓存队列;存储单元83,用于按IPSec报文所属的SA分别设置缓存队列,处理单元84,用于解密所缓存的IPSec报文。本领域技术人员应当理解,本发明图7及图8所示的基于安全联盟的IPSec报文处理装置是为实现前述的基于安全联盟的IPSec报文处理方法而设计的,上述各处理单元 的实现功能可参照前述方法的相关描述而理解,具体可参见前述实施例一至实施例三的描 述而理解。图中的各处理单元的功能可通过运行于处理器上的程序而实现,也可通过具体 的逻辑电路而实现。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种基于安全联盟的IPSec报文处理方法,其特征在于,所述方法包括将互联网安全协议安全性IPSec报文按照所述IPSec报文所属的安全联盟SA分发给 各线程;其中,属于同一 SA的IPSec报文分发到同一线程; 线程对IPSec报文设置序列号SN并加密,然后发送。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括 同一线程能同时处理分属不同SA的IPSec报文。
3.根据权利要求2所述的方法,其特征在于,所述线程对IPSec报文设置SN具体为 线程接收到IPSec报文后,对属于同一 SA的IPSec报文顺序编号。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括检测出有负荷超出设定的第一阈值的线程时,将该负荷超出设定阈值的线程上的至少 一个SA的待发送IPSec报文分发到负荷未达到设定的第二阈值的线程。
5.一种基于安全联盟的IPSec报文处理方法,其特征在于,所述方法包括将接收到经权利要求1至4任一项所述方法处理过的IPSec报文按照IPSec报文所属 的SA分发给各线程;其中,属于同一 SA的IPSec报文分发到同一线程;在每一队列中按IPSec报文所属的SA分别设置缓存队列,并按IPSec报文的SN缓存 所接收到的IPSec报文,对缓存队列中的IPSec报文进行解密。
6.一种基于安全联盟的IPSec报文处理装置,其特征在于,所述装置包括分发单元、一 个以上线程处理单元和发送单元,其中分发单元,用于将IPSec报文按照所述IPSec报文所属的安全联盟SA分发给各线程; 其中,属于同一 SA的IPSec报文分发到同一线程; 线程处理单元,用于对IPSec报文设置SN并加密; 发送单元,用于发送处理单元处理后的IPSec报文。
7.根据权利要求6所述的装置,其特征在于,线程处理单元能同时处理分属不同SA的 IP^ic报文。
8.根据权利要求7所述的装置,其特征在于,所述线程处理单元在接收到IPSec报文 后,对属于同一 SA的IPSec报文顺序编号。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括检测单元,用于检测是否同时存在负荷超出设定的第一阈值的线程处理单元以及负荷 未达到设定的第二阈值的线程处理单元,同时存在时通知所述分发单元将该负荷超出设定 阈值的线程处理单元中的至少一个SA的待发送IPSec报文分发到负荷未达到设定的第二 阈值的线程处理单元。
10.一种基于安全联盟的IPSec报文处理装置,其特征在于,所述装置包括接收单元、 分发单元、设置单元、存储单元和处理单元,其中接收单元,用于接收权利要求6至9任一项所述发送单元发送的IPSec报文; 分发单元,用于将所述接收单元接收的IPSec报文按照IPSec报文所属的SA分发给各 线程;其中,属于同一 SA的IPSec报文分发到同一线程;设置单元,用于在每一队列中按IPSec报文所属的SA分别设置缓存队列; 存储单元,用于按IPSec报文所属的SA分别设置缓存队列, 处理单元,用于解密所缓存的IPSec报文。
全文摘要
本发明公开了一种基于安全联盟的IPSec报文处理方法,包括将IPSec报文按照所述IPSec报文所属的SA分发给各线程;其中,属于同一SA的IPSec报文分发到同一线程;线程对IPSec报文设置序列号SN并加密、发送。本发明同时公开了基于安全联盟的另一种IPSec报文处理方法,将接收到经前述方法处理过的IPSec报文按照IPSec报文所属的SA分发给各线程;在每一队列中按IPSec报文所属的SA分别设置缓存队列,并按IPSec报文的SN缓存所接收到的IPSec报文,对缓存队列中的IPSec报文进行解密。本发明同时公开了基于安全联盟的IPSec报文处理装置。本发明保证了同一SA的IPSec报文不会出现乱序,解决了因保序而致的网络延迟、丢包、重复覆盖、转发效率低等一系列问题。
文档编号H04L29/06GK102075427SQ201110021038
公开日2011年5月25日 申请日期2011年1月18日 优先权日2011年1月18日
发明者夏玮, 彭小新, 葛崇志, 邵庆华 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1