[发明专利]一种加速网卡报文捕获的方法无效
申请号: | 200710144152.9 | 申请日: | 2007-12-29 |
公开(公告)号: | CN101217573A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 黎忠文;黄凯明;刘峰 | 申请(专利权)人: | 厦门大学 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/10 |
代理公司: | 厦门南强之路专利事务所 | 代理人: | 马应森 |
地址: | 361005福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加速 网卡 报文 捕获 方法 | ||
技术领域
本发明涉及一种网络网卡,尤其是涉及一种加速网卡报文捕获的方法。
背景技术
有关网卡报文捕获已有一些相关的报道,国内在这方面处于领先的是哈尔滨工业大学的计算机网络与信息安全技术研究中心,有3篇代表文章:《RTLinux下基于半轮询驱动的用户级报文传输机制》、《基于半轮询驱动的网络入侵检测单元的设计与实现》和《零拷贝报文捕获平台的研究与实现》。前两篇的第一作者是田志宏,第三篇的第一作者是王佰玲。国外在这方面研究具有突出成就的代表人物是Luca Deri。主要有两篇代表文章:《Improving PassivePacket Capture:Beyond Device Polling》和《nCap:Wire-speed Packet Capture and Transmission》。
在提高网络报文流采集和处理方面,文章《RTLinux下基于半轮询驱动的用户级报文传输机制》和《基于半轮询驱动的网络入侵检测单元的设计与实现》提出了“半轮询驱动”概念。而实际上,2003年底发布的Linux内核2.4.236已经通过NAPI实现了类似概念。两者的共同点都是首先采用中断唤醒数据接收的服务程序,然后通过POLL方法来轮询网卡,其差别在于田志宏的“半轮询”概念需要确定网络报文的输入速率是否达到一个稳定状态,当达到稳定状态时,持续通过轮询的方式采集网卡接收到的网络报文,反之则恢复中断方式;而应用NAPI的Linux网卡驱动程序,如e100 PRO/100,则在轮询失败(失败表示网卡目前没有新的网络报文等待Linux内核接收)后,休眠一段很短时间(时间长度可定制),再对网卡轮询一次,若轮询成功(表示有新的网络报文到达),则保持在轮询模式,反之恢复中断方式。
田志宏基于他提出的“半轮询”概念,实现了“用户级报文传输机制UMPS”。而基于NAPI机制,Luca Deri在《Improving Passive Packet Capture:Beyond Device Polling》中,提出了一种新的被动网络报文捕获机制-网络套接字PF_RING,PF_RING和UMPS都在内核空间中申请一块物理上连续的地址空间作为缓冲区,把内核接收到的网络报文复制到该缓冲区中,利用地址映射,上层应用程序直接读取存放在内核空间的网络报文,网络报文无须从内核空间发送到用户空间,从而避免网络报文从内核空间传送到用户空间过程中的内存拷贝操作。
在结构上,王佰玲的HPPCP比Luca的PF_RING更优化,PF_RING保留传统网卡驱动程序中内核接收网络报文的模式,即,在每条网络报文到达后内核临时申请堆缓冲的模式。网路报文被存放到堆缓冲后,PF_RING把报文拷贝到上层应用程序通过地址映射能够直接访问的内核地址空间(RING);而HPPCP则让网卡直接把网络报文以DMA方式存储到上层应用程序通过地址映射能够直接访问的内核地址空间,比PF_RING少了在网络报文在内核空间的一次内存拷贝。
实现PF_RING之后,Luca在《nCap:Wire-speed Packet Capture and Transmission》中,提出了一个新的网络报文捕获/接收及传输方案-nCap。nCap实现了不需要内核干涉的网络报文接收和传输。在这个方案中,网卡的寄存器和内存被映射到上层应用程序所在的用户地址空间。运行在用户地址空间的网络报文处理程序以控制linux操作系统的“设备”的形式直接与物理网卡交互,在接收和发送报文的过程中,完全地旁路了内核。
在网络报文接收方面,物理网卡把报文送到上层应用程序通过地址映射可以直接访问的内核地址空间,不仅实现了“零拷贝”,而且由网卡通过DMA直接完成,不需要内核干涉;在报文传输方面,用户空间程序通过直接存取物理网卡控制寄存器的方式,指挥网卡发送报文。报文接收和传输过程中的延迟被降低到了同样硬件条件下可能达到的最低程度,接近“零延迟”。
通过nCap提供的应用接口,现有的网络报文实时处理程序只要经过简单的重新编译,就可以在性能上得到极大的提升。同时,新的应用程序可以完全在用户空间开发,不需要另外开发内核空间的支持组件。开发人员甚至不需要具备Linux内核知识,这极大地降低了基于PC的高速网络报文处理系统的技术门槛和开发成本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门大学,未经厦门大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710144152.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:工频发光二极管照明灯
- 下一篇:锅炉用复合陶瓷燃烧器