| JP2000278301 | LOOP-SHAPED NETWORK COMMUNICATION SYSTEM |
| JP2002135305 | METHOD AND SYSTEM FOR SIMULATING VOICE COMMUNICATION ON NETWORK |
| WO/2007/040781 | INTEGRITY PROTECTION COUNT SYNCHRONIZATION METHOD |
夏玮 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
PENG, Xiaoxin (ZTE Plaza, Keji Road South Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
彭小新 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
中兴通讯股份有限公司 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
XIA, Wei (ZTE Plaza, Keji Road South Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
夏玮 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
PENG, Xiaoxin (ZTE Plaza, Keji Road South Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
| 权利要求书 1、 一种基于安全联盟的 IPSec报文处理方法, 其中, 该方法包括: 将互联网安全协议安全性 IPSec报文按照所述 IPSec报文所属的安全联 盟 SA分发给各线程; 其中, 属于同一 SA的 IPSec报文分发到同一线程; 线程对 IPSec报文设置序列号 SN并加密, 然后发送。 2、 根据权利要求 1所述的方法, 其中, 该方法还包括: 同一线程能同时处理分属不同 SA的 IPSec 4艮文。 3、根据权利要求 2所述的方法, 其中, 所述线程对 IPSec报文设置 SN 具体为: 线程接收到 IPSec 4艮文后, 对属于同一 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的 IPSec才艮文。 8、根据权利要求 7所述的装置,其中,所述线程处理单元在接收到 IPSec 才艮文后, 对属于同一 SA的 IPSec报文顺序编号。 9、 根据权利要求 6至 8任一项所述的装置, 其中, 该装置还包括: 检测单元, 设置为检测是否同时存在负荷超出设定的第一阈值的线程 处理单元以及负荷未达到设定的第二阈值的线程处理单元, 同时存在时通 知所述分发单元将该负荷超出设定阈值的线程处理单元中的至少一个 SA 的待发送 IPSec报文分发到负荷未达到设定的第二阈值的线程处理单元。 10、 一种基于安全联盟的 IPSec报文处理装置, 其中, 该装置包括接收 单元、 分发单元、 设置单元、 存储单元和处理单元, 其中: 所述接收单元, 设置为接收权利要求 6至 9任一项所述发送单元发送 的 IPSec 4艮文; 所述分发单元,设置为将所述接收单元接收的 IPSec报文按照 IPSec报 文所属的 SA分发给各线程; 其中, 属于同一 SA的 IPSec报文分发到同一 线程; 所述设置单元,设置为在每一队列中按 IPSec报文所属的 SA分别设置 緩存队列; 所述存储单元, 设置为按 IPSec报文所属的 SA分别设置緩存队列, 所述处理单元, 设置为解密所緩存的 IPSec报文。 |
本发明涉及 IPSec报文处理技术, 尤其涉及一种基于安全联盟 ( SA, Security Association ) 的 IPSec 4艮文处理方法及装置。 背景技术
随着通讯技术和网络技术的快速发展, 网络信息安全问题显得越来越 突出。 互联网十办议安全性( IPSec, Internet Protocol Security )技术是一种解 决信息安全问题的有效途径。其通过在网络路 由设备上配置 IPSec业务而加 密信息, 并建立安全的传输通道, 使得信息在网络传输过程中安全可靠。
在网络路由设备上, 为了加快 IPSec业务的处理速度,往往采用多核处 理器进行多线程处理。 图 1为现有多线程 IPSec报文处理原理示意图,如图 1所示, IPSec报文接收和分发单元将接收到的 IPSec报文平均分发到线程 1 到线程 n进行处理, 处理完后再将 IPSec报文统一发送到保序线程进行 IPSec ^艮文的保序, 最后再由 IPSec报文发送单元发送出去。 首先, 这种方 法由于将保序处理统一到一个线程处理, 很容易造成转发性能的瓶颈; 其 次, 这种方法处理 IPSec报文, 忽略了各个安全联盟之间的影响: 为了正常 实现抗重放功能, 网络设备需要对各 IPSec报文的序列号 (SN, Sequence Number )进行处理, 当同一 SA的 IPSec报文分发到不同线程进行处理时, 会出现几个线程同时修改同一 SA的 SN的冲突, 此时就需要进行互斥访问 的操作, 从而会造成转发性能的降低。 发明内容
有鉴于此,本发明的主要目的在于提供一种基 于安全联盟的 IPSec报文 处理方法及装置, 能够简化处理流程, 提高 IPSec报文的转发效率。
为达到上述目的, 本发明的技术方案是这样实现的:
一种基于安全联盟的 IPSec报文处理方法, 包括:
将 IPSec报文按照所述 IPSec报文所属的 SA分发给各线程; 其中, 属 于同一 SA的 IPSec才艮文分发到同一线程;
线程对 IPSec报文设置序列号 SN并加密, 然后发送。
优选地, 所述方法还包括:
同一线程能同时处理分属不同 SA的 IPSec 4艮文。
优选地, 所述线程对 IPSec报文设置 SN具体为:
线程接收到 IPSec 4艮文后, 对属于同一 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 4艮文顺序编号。
优选地, 所述装置还包括:
检测单元, 设置为检测是否同时存在负荷超出设定的第一 阈值的线程 处理单元以及负荷未达到设定的第二阈值的线 程处理单元, 同时存在时通 知所述分发单元将该负荷超出设定阈值的线程 处理单元中的至少一个 SA 的待发送 IPSec报文分发到负荷未达到设定的第二阈值的 程处理单元。
一种基于安全联盟的 IPSec报文处理装置, 包括接收单元、 分发单元、 设置单元、 存储单元和处理单元, 其中:
接收单元, 设置为接收所述发送单元发送的 IPSec报文;
分发单元,设置为将所述接收单元接收的 IPSec报文按照 IPSec报文所 属的 SA分发给各线程;其中,属于同一 SA的 IPSec报文分发到同一线程; 设置单元,设置为在每一队列中按 IPSec报文所属的 SA分别设置緩存 队列;
存储单元, 设置为按 IPSec报文所属的 SA分别设置緩存队列, 处理单元, 设置为解密所緩存的 IPSec报文。
本发明实施例将同一 SA的 IPSec报文分发到同一线程上进行处理,这 样, 保证了同一 SA的 IPSec报文不会出现乱序, 避免了 IPSec报文因保序 而致的网络延迟、 丟包、 重复覆盖、 转发效率低, 流量抖动等一系列问题。 本发明还根据处理线程的忙闲状态,动态分配 IPSec报文到负荷较轻的线程 进行处理, 使得各个线程的负载更均衡, 充分提高了多核处理器的处理效 率, 所以, 本发明实施例能实现抗重放和保序协同处理, 避免了在入向上 使用统一线程进行保序, 简化了处理流程, 提高了转发效率。 附图说明
图 1为现有多线程 IPSec 4艮文处理原理示意图;
图 2为本发明实施例在多核处理器上多线程处理 向 IPSec报文的示意 图;
图 3为本发明实施例在多核处理器上多线程处理 向 IPSec报文的示意 图; 图 4为入向 IPSec报文处理模块进行抗重放的原理图;
图 5为本发明实施例出向 IPSec报文在某一线程上的处理流程图; 图 6为本发明实施例入向 IPSec报文在某一线程上的处理流程图; 图 7为本发明实施例一种基于安全联盟的 IPSec报文处理装置的组成结 构示意图;
图 8为本发明实施例另一种基于安全联盟的 IPSec报文处理装置的组成 结构示意图。 具体实施方式 本发明实施例的基本思想是, 将 IPSec报文按照该 IPSec报文所属的 SA分发给各线程; 其中, 属于同一 SA的 IPSec报文分发到同一线程, 而 同一线程可处理一个以上的 SA的 IPSec报文; 由于同一 SA的 IPSec报文 实际上由一个线程进行处理, 因此不会导致 IPSec报文的 SN错乱等, 有效 地避免了 IPSec报文因保序而致的网络延迟、丟包、重复 盖、转发效率低。
为使本发明的目的、 技术方案和优点更加清楚明白, 以下举实施例并 参照附图, 对本发明进一步详细说明。
图 2为本发明实施例在多核处理器上多线程处理 向 IPSec报文的示意 图,如图 2所示, 图中包括出向 IPSec报文接收和分发模块 210、 出向 IPSec 报文处理模块 220和出向 IPSec报文发送模块 230, 其中, 出向 IPSec报文 接收和分发模块 210, 设置为接收出向 IPSec报文, 并将接收到的 IPSec报 文根据 SA分发到相应的 IPSec报文处理线程;其中,属于同一 SA的 IPSec 报文分发到同一线程, 而同一线程可处理一个以上的 SA的 IPSec报文; 由 于同一 SA的 IPSec 4艮文实际上由一个线程进行处理, 因此不会导致 IPSec 报文的 SN错乱等。 出向 IPSec报文处理模块 220, 该模块包含若干并行运 行的 IPSec报文处理线程, 设置为对 IPSec报文 SN进行加一, 并对 IPSec 报文进行加密处理。 本发明实施例中的加密主要是对报文进行保密 和完整 性保护等处理。
由于将 IPSec报文根据 SA分发到相应的 IPSec报文处理线程, 即同一 个 SA的 IPSec报文只会在同一个线程处理, 避免了同一个 IPSec报文经过 多个线程处理后的乱序。本发明实施例允许不 同 SA的 IPSec报文进出顺序 可以不一致, 但这不影响 IPSec的抗重放(即报文排序)功能及其它功能 实现,省略了现有技术中的同一保序处理模块 ,克服了 IPSec报文转发的瓶 颈, 提高了 IPSec报文转发的效率。
上述经设置 SN以及加密处理后的 IPSec报文, 经出向 IPSec报文发送 模块 230发送。
图 3为本发明实施例在多核处理器上多线程处理 向 IPSec报文的示意 图, 如图 3所示, 图中包括: 入向 IPSec报文接收和分发模块 310和入向 IPSec报文处理模块 320, 其中, 入向 IPSec报文接收和分发模块 310的功 能同图 2中的出向 IPSec报文接收和分发模块 210; 入向 IPSec报文处理模 块 320,该模块也包含若干并行运行的 IPSec报文处理线程,设置为对 IPSec 的加密 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 4艮文加密等其他处理; 步骤 S504, IPSec报文发送单元不需要对 IPSec报文进行保序处理直接 将 IPSec报文发送出。
图 6为本发明实施例入向 IPSec报文在某一线程上的处理流程图,如图 6所示, 本发明实施例入向 IPSec报文在某一线程上的处理主要包括以下步 骤:
步骤 S601, 同步骤 S501 ;
步骤 S602, 入向 IPSec报文处理单元对各 IPSec报文进行抗重放处理, 并为每个 SA分配一个緩存队列, 对抗重放窗口内的 IPSec报文进行緩存, 窗口外报文打上待发标记;
步骤 S603, 入向 IPSec报文处理单元进行 IPSec 4艮文解密等其他处理; 步骤 S604, 判断緩存队列是否有待发报文;
步骤 S605, 在抗重放处理过程中, 随着抗重放窗口的移动, 处理单元 逐步将处于窗口外的緩存 IPSec报文按 SN顺序发送到 IPSec报文发送单元 或进行丟弃处理。
本发明实施例的基于安全联盟的 IPSec报文处理方法,主要包括对待发 送 IPSec报文的处理以及接收到经本发明处理后的 IPSec报文后如何实现解 报文,具体的,对待发送 IPSec报文的处理方法包括:将 IPSec报文按照 IPSec 报文所属的 SA分发给各线程; 其中, 属于同一 SA的 IPSec报文分发到同 一线程; 也就说, 本发明不会将分属于同一 SA的 IPSec报文分发给两个以 上的线程, 以避免两个以上的线程对 IPSec报文设置 SN后, 导致后续的 IPSec报文的 SN不连续, 从而导致丟包等。 另外, 通过本发明实施例的处 理后, 不必再对 IPSec报文进行保序处理, 从而使得 IPSec报文的处理效率 大大提 1¾。 各线程对 IPSec报文设置序列号 SN并加密, 然后发送即可。
上述方法中, 同一线程能同时处理分属不同 SA的 IPSec 4艮文。 也就是 说, 每个线程可以同时处理两个以上的分属不同 SA的 IPSec报文。
上述线程对 IPSec报文设置 SN具体为:
线程接收到 IPSec 4艮文后, 对属于同一 SA的 IPSec 4艮文顺序编号。 上述方法还包括:
检测出有负荷超出设定的第一阈值的线程时, 将该负荷超出设定阈值 的线程上的至少一个 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 4艮文顺序编号。
本实施例的基于安全联盟的 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报文处理方法而 设计的, 上述各处理单元的实现功能可参照前述方法的 相关描述而理解, 具体可参见前述实施例的描述而理解。 图中的各处理单元的功能可通过运 行于处理器上的程序而实现, 也可通过具体的逻辑电路而实现。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。
