[发明专利]一种零拷贝缓冲区队列网络数据接收的管理方法无效

专利信息
申请号: 200710177370.2 申请日: 2007-11-15
公开(公告)号: CN101150486A 公开(公告)日: 2008-03-26
发明(设计)人: 历军;聂华;曾宇;刘朝辉 申请(专利权)人: 曙光信息产业(北京)有限公司
主分类号: H04L12/54 分类号: H04L12/54;G06F13/28
代理公司: 北京安博达知识产权代理有限公司 代理人: 徐国文
地址: 100084*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 拷贝 缓冲区 队列 网络 数据 接收 管理 方法
【说明书】:

技术领域

发明涉及一种零拷贝缓冲区队列网络数据接收的管理方法,特别是涉及一种通过分离句柄管理零拷贝数据缓冲区队列的网络数据接收的方法。

背景技术

在计算机的现有数据发送技术中,经常采用数据队列的数据结构来保存数据,数据队列中的元素(数据)和队列的控制信息(队列控制项)是紧密耦合在一起的,这样做便于增加软件的内聚,这对单进程操作十分有利。在零拷贝的网络传送中,需要内核驱动程序及用户内存应用程序能够同时访问由报文缓冲区构成的队列空间,这就带来了队列控制结构是在用户内存空间构造还是在内核空间构造的问题,以及队列信息访问时的互斥问题。目前管理零拷贝缓冲队列,采用的技术方法是在用户空间构造数据缓冲队列及其控制信息,这就需要用内存拷贝将控制信息传给内核,并需要在队列控制信息中增加互斥标志,即内核驱动程序及用户内存应用程序访问队列时都要查看并设置互斥标志,因此这种将缓冲区队列和它的控制信息揉合在一起的数据缓冲区队列管理方法,不便于内核驱动程序及用户内存应用程序对数据缓冲队列同时访问。目前采用的通过互斥标志避免读写冲突的方法,虽然能够节省存贮资源,但无法满足零拷贝对软件的高时效性要求。

发明内容

本发明针对目前网络数据发送中的数据缓冲队列管理方法采用的是数据队列中的元素(数据)和队列的控制信息(队列控制项)是紧密耦合在一起的,在内核驱动程序及用户内存应用程序访问队列时都要查看并设置互斥标志,无法实现内核驱动程序及用户内存应用程序对对数据缓冲队列同时访问,并满足零拷贝对软件的高时效性要求的问题,提供了一种在用户空间分配连续的内存作为报文的DMA缓冲区,同时在内核中建立缓冲区队列的控制句柄管理零拷贝缓冲队列的网络数据发送方法,实现内核驱动程序及用户内存应用程序对数据缓冲队列的免锁同时访问,并满足零拷贝对软件的高时效性要求。

为了实现上述发明目的,本发明采用下述技术方案:

一种零拷贝缓冲区队列网络数据接收的管理方法,其中,所述方法包括如下操作步骤:A、在用户空间分配连续的内存作为报文的DMA缓冲区;B、在内核驱动中建立缓冲区的控制句柄,把缓冲区划分为4个环形队列来管理,发送和接收报文有两个队列,避免使用互斥锁,在控制句柄中设置DMA物理地址表,计算并保存每个DMA缓冲区的物理地址;C、应用程序通过接口库映射控制句柄,实现对缓冲区的操作;D、接收报文时,驱动从接收报文的空缓冲区队列取出一个空缓冲区索引,查找物理地址表,把空缓冲区的物理地址写入网卡,当网卡把缓冲区填充了报文后,驱动把填满报文的缓冲区索引放入满缓冲区队列,应用从满缓冲区队列取出一个填充了报文的缓冲区,分析报文内容后把缓冲区放入空缓冲区队列。

一种优选的零拷贝缓冲区队列网络数据接收的管理方法,其中,所述操作步骤A具体操作过程如下:A1、应用程序用一系列参数调用接口库打开设备函数,参数中有应用所需要的报文缓冲区的总容量,以及其中发送缓冲区占的百分比;A2、接口库函数根据缓冲区参数申请一片连续的内存,但不对这片内存划分缓冲区队列,不构造管理结构,而是把缓冲区地址和参数传给内核驱动。

一种进一步优选的零拷贝缓冲区队列网络数据接收的管理方法,其中,所述操作步骤B具体操作过程如下:B1、内核驱动根据缓冲区内存的大小计算管理句柄的大小,申请一片连续的空间作为句柄结构;B2、驱动根据缓冲区参数,初始化句柄中的4个队列,把整个缓冲区内存划分为多个2K字节大小的缓冲区,把每个缓冲区的索引保存在句柄的队列中,从而可以通过句柄控制用户空间的整个缓冲区内存,因为句柄中的队列会被应用和驱动同时访问,接收和发送分别实现两个队列,可以避免使用互斥锁,减少系统开销;B3、驱动根据缓冲区大小构造缓冲区的物理地址表,把每个缓冲区的物理地址计算出来保存到表中,以便设置网卡DMA时使用;B4、驱动把句柄物理地址返回给接口库函数。

一种进一步优选的零拷贝缓冲区队列网络数据接收的管理方法,其中,所述操作步骤C具体操作过程如下:C1、接口库函数根据驱动返回的句柄的物理地址,通过内存映射把句柄映射到用户空间;C2、接口库函数通过验证句柄开始和结束部分的魔数,确认句柄映射是否成功;C3、接口库获得句柄后,可以通过句柄操作缓冲区队列。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200710177370.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top