一种报文转发方法及装置制造方法及图纸

技术编号:15519016 阅读:100 留言:0更新日期:2017-06-04 09:01
本发明专利技术公开了一种报文转发方法及装置,涉及计算机技术领域,主要解决现有技术中网络报文转发设备的转发性能并未随着CPU核个数的增加而线性增长,导致报文转发性能较低的问题。本发明专利技术的方法包括:根据接收到的报文,查询用户态CPU本地建立的实体会话表中是否存在与所述报文对应的会话连接,实体接会话表中包含所述用户态CPU负责处理的会话连接,不同的用户态CPU各自维护各自负责处理的实体会话表;若存在,则通过用户态CPU对所述报文进行转发;若不存在,则基于接收报文的用户态CPU向内核态CPU获取报文对应的会话连接建立策略信息;基于接收报文的用户态CPU根据会话连接建立策略信息建立与报文对应的会话连接,并通过接收报文的CPU对报文进行转发。

【技术实现步骤摘要】
一种报文转发方法及装置
本专利技术涉及计算机
,特别是涉及一种报文转发方法及装置。
技术介绍
网络报文转发设备的转发吞吐性能和新建会话性能代表了一个网络安全厂商的技术实力。随着计算机领域科技发展,多核技术已经成为十分成熟的技术,基于多核系统的网络报文转发设备随之出现,通过增加网络报文转发设备的中央处理器(CentralProcessingUnit,CPU)核的个数,来提升网络报文转发设备的转发吞吐性能已成为一种趋势。在现有技术中,在进行报文转发时,网络报文转发设备通常基于用户态和内核态共同维护的实体会话表对报文进行转发,如图1所示,在用户态、内核线程、内核系统调用、内核软中断上下文等分别有不同模块或CPU,对共同维护的实体会话表进行各种新建、删除、更新和查找等访问操作。然而,在多核系统下,为了保证会话表的安全性,用户态和内核态通过加锁的方式访问共同维护的实体会话表,即一个模块或CPU访问实体会话表时,其他模块或CPU无法访问实体会话表,因此会产生多核互斥以及资源竞争的问题,这样会造成网络报文转发设备的转发性能并未随着CPU核个数的增加而线性增长,从而导致报文转发性能较低。
技术实现思路
有鉴于此,本专利技术提出了一种报文转发方法及装置,主要目的在于解决由于现有技术中网络报文转发设备的转发性能并未随着CPU核个数的增加而线性增长,导致报文转发性能较低的问题。为达到上述目的,本专利技术提供如下技术方案:一方面,本专利技术提供了一种报文转发方法,包括:根据接收到的报文,查询用户态CPU本地建立的实体会话表中是否存在与所述报文对应的会话连接,所述实体接会话表中包含所述用户态CPU负责处理的会话连接,不同的用户态CPU各自维护各自负责处理的实体会话表;若存在,则通过所述用户态CPU对所述报文进行转发;若不存在,则基于接收报文的用户态CPU向内核态CPU获取所述报文对应的会话连接建立策略信息;基于所述接收报文的用户态CPU根据所述会话连接建立策略信息建立与所述报文对应的会话连接,并通过所述接收报文的CPU对所述报文进行转发。进一步地,所述接收报文的用户态CPU通过内核态CPU获取所述报文对应的会话连接建立策略信息包括:基于所述接收报文的用户态CPU向内核态CPU发送针对所述报文建立会话连接的请求,所述请求中包含所述报文;所述内核态CPU根据所述请求获取所述报文对应的会话连接建立策略信息,并将所述会话连接建立策略信息发送给所述接收报文的用户态CPU。进一步地,所述内核态CPU根据所述请求获取所述报文对应的会话连接建立策略信息包括:所述内核态CPU在接收到所述请求后,查询是否有已建立的会话子连接模板,所述会话子连接模板为源端口号为0且源互联网协议IP地址、目的IP地址、目的端口号以及协议类型与会话连接一致的会话连接模板;若有已建立的会话子连接模板,则查询已建立的会话子连接模板中是否存在与所述报文对应的会话子连接模板;若存在与所述报文对应的会话子连接模板,则将所述报文按照所述会话子连接模板封装与所述报文对应的会话消息,并发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息;若不存在与所述报文对应的会话子连接模板,则将所述报文发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息;若没有已建立的会话子连接模板,则将所述报文发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息。进一步地,通过所述用户态CPU对所述报文进行转发包括:确定与所述报文对应的会话连接存在的实体会话表所属的用户态CPU是否为接收报文的用户态CPU;若为接收报文的用户态CPU,则通过接收报文的用户态CPU对所述报文进行转发;若为除接收报文的用户态CPU以外的其他用户态CPU,则通过倒核队列将所述报文转发给对应的其他用户态CPU进行转发。进一步地,所述方法还包括:为每个用户态CPU建立一个会话消息接收队列,所述会话消息接收队列用于接收用户态其他CPU对本地CPU实体会话表的新建、删除或更新消息。进一步地,所述方法还包括:用户态CPU接收设置在用户态的配置命令行调试模块发送的针对所述用户态CPU本地实体会话表进行操作的操作消息;接收到所述操作消息的用户态CPU根据所述操作消息对所述用户态CPU本地实体会话表执行对应的操作。进一步地,所述用户态CPU接收设置在用户态的配置命令行调试模块发送的针对所述用户态CPU本地实体会话表进行操作的操作消息,包括:用户态建立与所述配置命令行调试模块进行通信的进程间通信ipc线程;所述ipc线程接收所述配置命令行调试模块发送的针对所述用户态CPU本地实体会话表进行操作的操作消息,并根据所述操作消息的类型确定执行所述操作消息的用户态CPU;将所述操作消息发送给确定的用户态CPU。进一步地,所述实体会话表包括安全部分和不安全部分,所述安全部分用于存储非地址信息,所述不安全部分用于存储地址信息;所述方法还包括:在初始化的过程中,将所述实体会话表的地址空间共享给内核态,以便内核态的其他CPU安全的获取一实体会话表的安全信息。优选地,所述实体会话表采用预先分配的内存池申请获取。另一个方面,本专利技术提供了一种报文转发装置,包括:查询单元,用于根据接收到的报文,查询用户态CPU本地建立的实体会话表中是否存在与所述报文对应的会话连接,所述实体接会话表中包含所述用户态CPU负责处理的会话连接,不同的用户态CPU各自维护各自负责处理的实体会话表;转发单元,用于若所述查询单元查询用户态CPU本地建立的实体会话表中存在与所述报文对应的会话连接,则通过所述用户态CPU对所述报文进行转发;获取单元,用于若所述查询单元查询用户态CPU本地建立的实体会话表中不存在与所述报文对应的会话连接,则基于接收报文的用户态CPU向内核态CPU获取所述报文对应的会话连接建立策略信息;建立单元,用于基于所述接收报文的用户态CPU根据所述会话连接建立策略信息建立与所述报文对应的会话连接;所述转发单元,还用于通过所述接收报文的CPU对所述报文进行转发。进一步地,所述获取单元包括:获取子单元,用于基于所述接收报文的用户态CPU向内核态CPU发送针对所述报文建立会话连接的请求,所述请求中包含所述报文;所述获取子单元,还用于所述内核态CPU根据所述请求获取所述报文对应的会话连接建立策略信息;第一发送子单元,用于将所述会话连接建立策略信息发送给所述接收报文的用户态CPU。进一步地,所述获取子单元包括:第一查询模块,用于所述内核态CPU在接收到所述请求后,查询是否有已建立的会话子连接模板,所述会话子连接模板为源端口号为0且源互联网协议IP地址、目的IP地址、目的端口号以及协议类型与会话连接一致的会话连接模板;第二查询模块,用于若所述第一查询模块查询有已建立的会话子连接模板,则查询已建立的会话子连接模板中是否存在所述报文对应的会话子连接模板;第一发送模块,用于若所述第二查询模块查询已建立的会话子连接模板中存在所述报文对应的会话子连接模板,则将所述报文按照所述会话子连接模板封装与所述报文对应的会话消息,并发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息;所述第一发送模块,还用于若所述第二查询模块查询已建立的会话子连接模板中不存在所述报文对应的本文档来自技高网...
一种报文转发方法及装置

【技术保护点】
一种报文转发方法,其特征在于,所述方法包括:根据接收到的报文,查询用户态CPU本地建立的实体会话表中是否存在与所述报文对应的会话连接,所述实体接会话表中包含所述用户态CPU负责处理的会话连接,不同的用户态CPU各自维护各自负责处理的实体会话表;若存在,则通过所述用户态CPU对所述报文进行转发;若不存在,则基于接收报文的用户态CPU向内核态CPU获取所述报文对应的会话连接建立策略信息;基于所述接收报文的用户态CPU根据所述会话连接建立策略信息建立与所述报文对应的会话连接,并通过所述接收报文的CPU对所述报文进行转发。

【技术特征摘要】
1.一种报文转发方法,其特征在于,所述方法包括:根据接收到的报文,查询用户态CPU本地建立的实体会话表中是否存在与所述报文对应的会话连接,所述实体接会话表中包含所述用户态CPU负责处理的会话连接,不同的用户态CPU各自维护各自负责处理的实体会话表;若存在,则通过所述用户态CPU对所述报文进行转发;若不存在,则基于接收报文的用户态CPU向内核态CPU获取所述报文对应的会话连接建立策略信息;基于所述接收报文的用户态CPU根据所述会话连接建立策略信息建立与所述报文对应的会话连接,并通过所述接收报文的CPU对所述报文进行转发。2.根据权利要求1所述的方法,其特征在于,所述接收报文的用户态CPU通过内核态CPU获取所述报文对应的会话连接建立策略信息包括:基于所述接收报文的用户态CPU向内核态CPU发送针对所述报文建立会话连接的请求,所述请求中包含所述报文;所述内核态CPU根据所述请求获取所述报文对应的会话连接建立策略信息,并将所述会话连接建立策略信息发送给所述接收报文的用户态CPU。3.根据权利要求2所述的方法,其特征在于,所述内核态CPU根据所述请求获取所述报文对应的会话连接建立策略信息包括:所述内核态CPU在接收到所述请求后,查询是否有已建立的会话子连接模板,所述会话子连接模板为源端口号为0且源互联网协议IP地址、目的IP地址、目的端口号以及协议类型与会话连接一致的会话连接模板;若有已建立的会话子连接模板,则查询已建立的会话子连接模板中是否存在与所述报文对应的会话子连接模板;若存在与所述报文对应的会话子连接模板,则将所述报文按照所述会话子连接模板封装与所述报文对应的会话消息,并发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息;若不存在与所述报文对应的会话子连接模板,则将所述报文发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息;若没有已建立的会话子连接模板,则将所述报文发送给内核态的CPU,以便获取所述报文对应的会话连接建立策略信息。4.根据权利要求1所述的方法,其特征在于,通过所述用户态CPU对所述报文进行转发包括:确定与所述报文对应的会话连接存在的实体会话表所属的用户态CPU是否为接收报文的用户态CPU;若为接收报文的用户态CPU,则通过接收报文的用户态CPU对所述报文进行转发;若为除接收报文的用户态CPU以外的其他用户态CPU,则通过倒核队列将所述报文转发给对应的其他用户态CPU进...

【专利技术属性】
技术研发人员:刘健男
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1