[发明专利]一种网络通信设备多核并行快速转发数据包的方法及系统有效
| 申请号: | 202110203512.8 | 申请日: | 2021-02-24 |
| 公开(公告)号: | CN112929278B | 公开(公告)日: | 2022-07-22 |
| 发明(设计)人: | 唐远生;杨琦;刘平;叶鹏;匡道珍 | 申请(专利权)人: | 深圳市吉祥腾达科技有限公司 |
| 主分类号: | H04L45/745 | 分类号: | H04L45/745;H04L61/2503;H04L69/22;H04L69/18 |
| 代理公司: | 深圳市海顺达知识产权代理有限公司 44831 | 代理人: | 谢群锋 |
| 地址: | 518000 广东省深圳市南山区西丽*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 网络 通信 设备 多核 并行 快速 转发 数据包 方法 系统 | ||
1.一种网络通信设备多核并行快速转发数据包的方法,其特征在于,包括如下步骤:
S1:初始化内存池;
S2:内核加速模块接管待转发数据包;
S3:内核加速模块判断当前数据包是否为一条链路跟踪的前两个数据包,如果是,走标准协议栈,转发信息学习模块学习转发信息,并将转发信息记录至内存池;如果否,执行下一步;
S4:各核心处理器的数据包并行转发模块根据内存池的转发信息并行转发数据包,其中,所述数据包并行转发模块的处理方法为:
S41:解析数据包,获取数据包中的协议及链路信息;
S42:查找内存池中相应的转发信息,采用rcu锁标记临界区开始位置;
S43:根据转发信息封装数据包;
S44:采用rcu锁标记临界区结束位置;
S45:调用驱动发包函数发送数据包。
2.根据权利要求1所述的网络通信设备多核并行快速转发数据包的方法,其特征在于:所述内存池包括ipc内存池和brc内存池,其中,所述ipc内存池用于存储各种接入方式的三层转发信息ipc,所述brc内存池用于存储桥二层转发信息brc,所述ipc内存池和brc内存池是由struct hlist_head结构构成的二维散列表。
3.根据权利要求2所述的网络通信设备多核并行快速转发数据包的方法,其特征在于:步骤S3中,所述转发信息学习模块包括三层Nat信息学习子模块和桥信息学习子模块,所述三层Nat信息学习子模块用于学习ipc信息,并将ipc信息存储入ipc内存池,所述桥信息学习子模块用于学习brc信息,并将brc信息存储入brc内存池。
4.根据权利要求3所述的网络通信设备多核并行快速转发数据包的方法,其特征在于:当所述数据包为一条链路跟踪的第一个数据包时,所述三层Nat信息学习子模块的处理方法为:
A1:标准协议栈中NAT模块的函数填充NAT信息时,内核加速模块在函数处注册回调函数;
A2:三层Nat信息学习子模块根据链接跟踪方向确定记录该链接的snat转发信息,然后取出路由信息,并查询邻居子系统信息;
A3:根据路由信息确定并记录该链接的发送接口至ipc,根据邻居子系统信息记录源mac地址和目的mac地址至ipc,根据传入的nat信息记录snat源ip和源端口信息至ipc,并记录该链接方向数据包skb五元组及链接跟踪ct信息至ipc;
A4:将该链接做snat的ipc信息存入ipc内存池中。
5.根据权利要求4所述的网络通信设备多核并行快速转发数据包的方法,其特征在于:当所述数据包为一条链路跟踪的第二个数据包时,所述三层Nat信息学习子模块的处理方法为:
B1:通过回调函数记录该链接的dnat ipc信息;
B2:查询路由信息及邻居子系统信息,然后根据路由信息确定并记录该链接的发送接口至ipc,根据邻居子系统记录源mac地址和目的mac地址至ipc,根据传入的nat信息记录dnat ip和端口信息至ipc,并记录该链接方向skb五元组及ct信息至ipc;
B3:将该链接做dnat的ipc信息存入ipc内存池中。
6.根据权利要求5所述的网络通信设备多核并行快速转发数据包的方法,其特征在于:每条链接做snat的ipc信息和做dnat的ipc信息均使用IPC_LOCK()/IPC_UNLOCK()自旋锁进行保护,保证存入ipc条目的唯一性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市吉祥腾达科技有限公司,未经深圳市吉祥腾达科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110203512.8/1.html,转载请声明来源钻瓜专利网。





