[发明专利]网络数据包高速处理转发方法及系统在审
申请号: | 201910024105.3 | 申请日: | 2019-01-10 |
公开(公告)号: | CN109766187A | 公开(公告)日: | 2019-05-17 |
发明(设计)人: | 龚慜;李涛;蒋锡虎;王建 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F13/28 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 邱云雷 |
地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络数据包 内存缓冲区 高速处理 转发 描述符 发送 缓存 数据通信领域 接收数据包 减少系统 内存池 内核态 用户态 拷贝 映射 调用 收发 进程 | ||
1.一种网络数据包高速处理转发方法,其特征在于,包括以下步骤:
用户态进程在内存池中处理收发的网络数据包,内核态进程将内存池中的接收描述符环和发送描述符环映射到同一个内存缓冲区,使发送和接收数据包缓存共用一个内存缓冲区。
2.如权利要求1所述的网络数据包高速处理转发方法,其特征在于:用户态进程在内存池中处理收发的网络数据包之前,还包括以下步骤:
内核态进程创建内存池,并对内存池进行DMA映射,供网卡直接使用;用户态进程通过mmap方法将内核态进程创建的内存池映射到用户态内存。
3.如权利要求2所述的网络数据包高速处理转发方法,其特征在于:内核态进程创建内存池之前,还包括以下步骤:
内核态进程创建虚拟字符设备,用户态进程调用虚拟字符设备,实现用户态进程与内核态进程之间的通信。
4.如权利要求2所述的网络数据包高速处理转发方法,其特征在于:所述内存池包括用于保存包内容的数据包缓冲区pkt_buff和用于保存接收描述符环和发送描述符环的描述符desc,内核态进程建立pkt_buff与desc之间的对应关系。
5.如权利要求4所述的网络数据包高速处理转发方法,其特征在于:该方法还包括以下步骤:
处理网卡中断时,内核态进程将收到的数据包存入pkt_buff,并修改desc中的状态字,通知用户态进程处理数据包;
用户态进程处理完数据包后,更新desc中的状态字;
内核态进程根据desc中的状态字,修改网卡的发送描述符环状态,网卡根据该状态发送对应数据包。
6.一种网络数据包高速处理转发系统,其特征在于,包括:
内核态模块,用于:创建内存池;将内存池中的接收描述符环和发送描述符环映射到同一个内存缓冲区,使发送和接收数据包缓存共用一个内存缓冲区;
用户态模块,用于:在内存池中处理收发的网络数据包。
7.如权利要求6所述的网络数据包高速处理转发系统,其特征在于:所述内核态模块还用于:对内存池进行DMA映射,供网卡直接使用;
所述用户态模块还用于:通过mmap方法将内核态模块创建的内存池映射到用户态内存。
8.如权利要求7所述的网络数据包高速处理转发系统,其特征在于:所述内核态模块还用于:创建虚拟字符设备;
所述用户态模块,还用于:调用虚拟字符设备,实现用户态进程与内核态进程之间的通信。
9.如权利要求7所述的网络数据包高速处理转发系统,其特征在于:所述内核态模块创建的内存池包括用于保存包内容的数据包缓冲区pkt_buff和用于保存接收描述符环和发送描述符环的描述符desc,内核态模块建立pkt_buff与desc之间的对应关系。
10.如权利要求9所述的网络数据包高速处理转发系统,其特征在于:所述内核态模块还用于:处理网卡中断时,将收到的数据包存入pkt_buff,并修改desc中的状态字,通知用户态模块处理数据包;
用户态模块处理完数据包后,更新desc中的状态字;
所述内核态模块根据desc中的状态字,修改网卡的发送描述符环状态,网卡根据该状态发送对应数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910024105.3/1.html,转载请声明来源钻瓜专利网。