[发明专利]一种嵌入式网络设备中加速网络数据包处理的方法及系统有效
| 申请号: | 202010606097.6 | 申请日: | 2020-06-30 |
| 公开(公告)号: | CN111506541B | 公开(公告)日: | 2020-09-22 |
| 发明(设计)人: | 许井泉;黄永佳;晋荣 | 申请(专利权)人: | 翱捷科技(上海)有限公司 |
| 主分类号: | G06F15/78 | 分类号: | G06F15/78;G06F16/901;H04L29/06 |
| 代理公司: | 上海恒锐佳知识产权代理事务所(普通合伙) 31286 | 代理人: | 殷晓雪 |
| 地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 嵌入式 网络设备 加速 网络 数据包 处理 方法 系统 | ||
1.一种嵌入式网络设备中加速网络数据包处理的方法,其特征是,包括如下步骤;
步骤S10:从网络接口接收一个TCP/IP数据包,采用一个pbuf数据结构p指针来指示该TCP/IP数据包的真正的存储空间;
步骤S20:拷贝该TCP/IP数据包的三个头部到片上缓存,采用一个pbuf数据结构q指针来指示该TCP/IP数据包的三个头部在片上缓存的存储空间;所述三个头部是指以太网头部、IPv4头部或IPv6头部、TCP头部或UDP头部;
步骤S30:重构pbuf链,在pbuf数据结构q指针中记录pbuf链中的下一个pbuf数据结构为pbuf数据结构p指针;
还修改pbuf数据结构q指针;pbuf数据结构q指针的tot_len字段设置为pbuf数据结构p指针的tot_len字段的内容;pbuf数据结构q指针的len字段设置为该TCP/IP数据包的三个头部在片上缓存的长度,也就是拷贝长度;
还修改pbuf数据结构p指针;pbuf数据结构p指针的净荷修改为跳过拷贝长度的位置;pbuf数据结构p指针的tot_len以及len字段均修改为减去拷贝长度的值;
步骤S40:使用新的pbuf链进行该TCP/IP数据包的处理;该TCP/IP数据包处理过程中,对三个头部的处理直接访问的是片上缓存的三个头部,而不是该TCP/IP数据包的三个头部原来的存储位置的三个头部;
步骤S50:完成所述步骤S40对该TCP/IP数据包的处理后,在需要转发接口或者转发应用之前,把位于片上缓存的该TCP/IP数据包的三个头部拷贝并覆盖到该TCP/IP数据包真正的存储空间中的三个头部的存储位置,同时在pbuf数据结构q指针中删除下一个pbuf数据结构为pbuf数据结构p指针的记载;
步骤S60:在pbuf链中删除pbuf数据结构q指针,释放片上缓存用于保存该TCP/IP数据包的三个头部的存储空间;重构pbuf数据结构p指针,这是指将pbuf数据结构p指针的净荷修改为包含拷贝长度的位置;pbuf数据结构p指针的tot_len以及len字段均修改为包含拷贝长度的值;
步骤S70:对该TCP/IP数据包或者进行转发、或者送入应用模块处理,随后删除pbuf数据结构p指针,释放该TCP/IP数据包所占用的真正的存储空间。
2.根据权利要求1所述的嵌入式网络设备中加速网络数据包处理的方法,其特征是,所述步骤S20中,根据该TCP/IP数据包的IP头部是IPv4头部还是IPv6头部来设置需要拷贝的长度;所述需要拷贝的长度至少为该TCP/IP数据包的以太网头部的长度+IPv4头部的基础头部或IPv6头部的基础头部的长度+TCP头部的基础头部或UDP头部的基础头部的长度之和。
3.根据权利要求1所述的嵌入式网络设备中加速网络数据包处理的方法,其特征是,所述步骤S40中,所述对TCP/IP数据包的处理包括以太网包的处理、IPv4头部或IPv6头部的检查和处理、TCP头部或UDP头部的检查和处理。
4.根据权利要求1所述的嵌入式网络设备中加速网络数据包处理的方法,其特征是,所述步骤S40中,所述对TCP/IP数据包的处理还包括中间模块对TCP/IP数据包的处理;所述中间模块包括防火墙模块、IP过滤模块、NAT模块的任意一种或多种。
5.根据权利要求4所述的嵌入式网络设备中加速网络数据包处理的方法,其特征是,所述步骤S40中,如果中间模块未修改该TCP/IP数据包位于片上缓存的头部,则省略步骤S50中的拷贝并覆盖的操作,但保留在pbuf数据结构q指针中删除下一个pbuf数据结构为pbuf数据结构p指针的记载。
6.根据权利要求4所述的嵌入式网络设备中加速网络数据包处理的方法,其特征是,所述步骤S40中,如果中间模块修改了该TCP/IP数据包位于片上缓存的头部,则修改步骤S50为步骤S55;
步骤S55:把位于片上缓存的该TCP/IP数据包的三个头部的修改部分的数据拷贝到该TCP/IP数据包真正的存储空间中相对应的部分并覆盖,并在pbuf数据结构q指针中删除下一个pbuf数据结构为pbuf数据结构p指针的记载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于翱捷科技(上海)有限公司,未经翱捷科技(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010606097.6/1.html,转载请声明来源钻瓜专利网。





