[发明专利]一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法有效
申请号: | 201010279606.5 | 申请日: | 2010-09-13 |
公开(公告)号: | CN101917350A | 公开(公告)日: | 2010-12-15 |
发明(设计)人: | 姚文顶 | 申请(专利权)人: | 南京中兴特种软件有限责任公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L12/26 |
代理公司: | 南京天华专利代理有限责任公司 32218 | 代理人: | 夏平;瞿网兰 |
地址: | 211100 江苏省南京市江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法,一、用户进程将整个物理内存映射到用户进程空间;二、使用队列方式管理报文驱动模块接收到的报文及要通过其发送的报文;三、使用报文驱动模块隔离各类型网卡驱动的区别对用户进程的影响;四、各类型网卡驱动加载成功后向报文驱动模块注册设备及相关操作方法。本发明采用分层实现,使得该方法能够同时支持多种类型的网卡,且易于添加对新网卡的支持。本发明在报文的捕获和发送过程中没有一次拷贝动作,能够实现高性能的报文捕获及发送,适用于网络流量监控及分析等对报文的收发的性能有很高要求的情景。 | ||
搜索关键词: | 一种 linux 基于 网卡 驱动 拷贝 以太网 报文 捕获 发送 实现 方法 | ||
【主权项】:
一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法,其特征是它包括以下步骤:首先,在内核态报文驱动模块中建立捕包队列、报文释放队列、报文缓存队列及发送队列以实现对报文的管理,并创建相应的报文填充线程、报文释放线程及报文发送线程; 其次,在加载网卡驱动且打开相应的网卡设备时,立即向前述报文驱动模块进行网卡设备注册,获得相应的报文发送接口;第三,在用户进程中将整个物理内存映射到用户空间,使得用户进程可以直接访问整个物理内存;第四,当用户进程需要进行报文捕获或者发送时,通过Linux下的/proc文件项方式通知内核态报文驱动模块进行初始化工作,创建相应资源及记录用户进程的初始配置,初始化成功后,用户进程即可进程报文捕获及发送;最后,采用物理地址在用户态和内核态之间进行数据交互,在用户态使用过程中将用户态的物理地址转换为虚拟地址,在内核态使用过程时,将内核态的物理地址其转换为内核虚拟地址,以实现零拷贝的以太网报文捕获及发送。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京中兴特种软件有限责任公司,未经南京中兴特种软件有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010279606.5/,转载请声明来源钻瓜专利网。
- 上一篇:肠道病毒及其应用
- 下一篇:一种谷氨酰胺转胺酶编码基因阻断吸水链霉菌及其应用