[发明专利]网络数据包高速处理转发方法及系统在审
申请号: | 201910024105.3 | 申请日: | 2019-01-10 |
公开(公告)号: | CN109766187A | 公开(公告)日: | 2019-05-17 |
发明(设计)人: | 龚慜;李涛;蒋锡虎;王建 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F13/28 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 邱云雷 |
地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络数据包 内存缓冲区 高速处理 转发 描述符 发送 缓存 数据通信领域 接收数据包 减少系统 内存池 内核态 用户态 拷贝 映射 调用 收发 进程 | ||
本发明公开了一种网络数据包高速处理转发方法及系统,涉及数据通信领域。该方法包括以下步骤:用户态进程在内存池中处理收发的网络数据包,内核态进程将内存池中的接收描述符环和发送描述符环映射到同一个内存缓冲区,使发送和接收数据包缓存共用一个内存缓冲区。本发明能减少网络数据包在本地处理中的拷贝次数,减少系统调用,提高CPU性能,提高网络数据包的处理与转发速率。
技术领域
本发明涉及数据通信领域,具体是涉及一种网络数据包高速处理转发方法及系统。
背景技术
路由器平台转发面目前使用的是af_packet处理数据包,数据包从网卡接收到后,由网卡驱动捕捉收包中断,经内核协议栈后送给用户态进程处理;处理完将数据包交给协议栈,最终由网卡发送出去。数据包在整个过程中经过了多次拷贝,包括从网卡到内核的拷贝,以及从内核到用户空间的拷贝等等,且涉及大量系统调用,包括send和recv等等,占用CPU资源和内存资源,转发性能较低。
当前比较常用的ZCP(Zero CoPy,零拷贝)技术,只局限于收包阶段和发包阶段分别实现了零拷贝,但是无可避免地,还是要将收到的数据包从收包缓冲区拷贝到发包缓冲区。数据缓冲区是用户前端用来存储、操纵数据的对象。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:路由器平台转发面占用大量CPU和内存资源,转发速率较低。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种网络数据包高速处理转发方法及系统,能够减少网络数据包在本地处理中的拷贝次数,减少系统调用,提高CPU性能,进而提高网络数据包的处理与转发速率。
第一方面,提供一种网络数据包高速处理转发方法,包括以下步骤:
用户态进程在内存池中处理收发的网络数据包,内核态进程将内存池中的接收描述符环和发送描述符环映射到同一个内存缓冲区,使发送和接收数据包缓存共用一个内存缓冲区。
根据第一方面,在第一方面的第一种可能的实现方式中,用户态进程在内存池中处理收发的网络数据包之前,还包括以下步骤:
内核态进程创建内存池,并对内存池进行DMA映射,供网卡直接使用;用户态进程通过mmap方法将内核态进程创建的内存池映射到用户态内存。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,内核态进程创建内存池之前,还包括以下步骤:
内核态进程创建虚拟字符设备,用户态进程调用虚拟字符设备,实现用户态进程与内核态进程之间的通信。
根据第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述内存池包括用于保存包内容的数据包缓冲区pkt_buff和用于保存接收描述符环和发送描述符环的描述符desc,内核态进程建立pkt_buff与desc之间的对应关系。
根据第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括以下步骤:
处理网卡中断时,内核态进程将收到的数据包存入pkt_buff,并修改desc中的状态字,通知用户态进程处理数据包;
用户态进程处理完数据包后,更新desc中的状态字;
内核态进程根据desc中的状态字,修改网卡的发送描述符环状态,网卡根据该状态发送对应数据包。
第二方面,提供一种网络数据包高速处理转发系统,包括:
内核态模块,用于:创建内存池;将内存池中的接收描述符环和发送描述符环映射到同一个内存缓冲区,使发送和接收数据包缓存共用一个内存缓冲区;
用户态模块,用于:在内存池中处理收发的网络数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910024105.3/2.html,转载请声明来源钻瓜专利网。