一种智能网卡的接口实现方法

文档序号:7855618阅读:513来源:国知局
专利名称:一种智能网卡的接口实现方法
技术领域
本发明涉及网络检测应用领域,尤其涉及一种智能网卡的接口实现方法。
背景技术
现在的服务器端网络处理程序往往利用libpcap、libnet、Iibnids编程接口对普通网卡进行控制,实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理等功能。由于普通网卡功能单一、处理速度低等缺点,致使基于普通网卡开发的网络处理软件性
能低、功能不多。同时,现存的高性能网卡没有提供对libpcap、libnet、Iibnids编程接口的支持。

发明内容
本发明的目的是针对现有的智能网卡所存在的问题,提出一种智能网卡的接口实现方法。使用该方法的智能网卡在硬件上接收来自前端数据分发设备的数据后,有效地减轻了后台服务器CPU的负担;同时,网卡驱动程序在服务器用户空间为智能网卡提供了多种编程接口,其中包括自定义的专用接口及libpcap、libnet、Iibnids等多种标准兼容接口 ;可以让现有的相关网络处理程序无缝的使用智能网卡,以此实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理功能,大幅度提高了后台服务器处理能力。本发明的技术方案是
一种智能网卡的接口实现方法,它所指的智能网卡包括编程接口模块、智能网卡驱动模块、数据处理模块、存储器、控制模块和PCI-E主机接口 ;
所述的编程接口模块和智能网卡驱动模块配置在服务器端;编程接口模块是在服务器端为用户空间提供可编程接口函数;智能网卡驱动模块用于实现智能网卡到服务器端的数据接收和发送;
所述的数据处理模块、存储器、控制模块和PCI-E主机接口配置在智能网卡内部;PCI-E主机接口用于连接服务器和智能网卡;PCI-E主机接口与数据处理模块相连,数据处理模块的存储信号端与存储器相连。本发明的数据处理模块是基于MIPS64架构的专用网络控制芯片,实现千兆网卡控制;控制模块用于实现人机接口,达到对智能网卡有效控制的目的;PCI-E主机接口用于连接服务器和智能网卡。本发明的编程接口模块在服务器端为用户空间提供API接口函数;实现对网卡的控制,包括网卡打开、关闭、规则加载、规则删除和流量统计。本发明的编程接口模块提供的标准的接口函数,对libpcap、libnet和Iibnids标
准兼容接口均支持。本发明的智能网卡支持IOOOBase-T 和 lOOOBase-T Gigabit Ethernet 协议。
本发明的有益效果
本发明提供了一种智能网卡的接口实现方法,该智能网卡可对接收到的数据进行规则过滤、深度包解析、负载均衡等操作,有效地减轻了后台服务器CPU的负担;同时,使用该方法的网卡驱动程序在服务器用户空间为智能网卡提供了多种编程接口,其中包括自定义的专用接口及libpcap、libnet、Iibnids等多种标准兼容接口,可以让现有的相关网络处理程序无缝的使用智能网卡,以此实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理功能,大幅度提高了后台服务器处理能力。


图I是本发明的原理框图。图2是本发明的使用新的接口实现方法的智能网卡示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步的说明。如图I所示,一种智能网卡的接口实现方法,所指该智能网卡在硬件上接收来自前端数据分发设备的数据后,通过PCI-E接口按照负载均衡的方式均匀的发送数据到后台服务器的多个线程,使服务器的每个线程都能对线路数据同时进行处理。同时,智能网卡驱动程序在服务器用户空间为智能网卡提供了多种编程接口,实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理功能,极大减轻后台服务器的压力。所述智能网卡采用MIPS64架构的专用网络控制芯片来实现千兆以太网控制器的功能,具有强大的数据处理速度,其工作原理如图I所示。智能网卡通过接口模块(模块102)接收线路数据后通过高速总线将其传递给数据处理模块(模块101)进行数据处理。数据处理模块使用高性能的数据处理芯片和大容量的内存(模块105)对数据按照规则的配置内容进行处理,通过PCI-E 4x标准接口(模块103)向后台发送数据或者接收来自服务器的指令向外发送数据。控制模块(模块104)完成人机接口对智能网卡的控制。所述智能网卡可实现对IP数据包的ACL规则过滤、DPI、TCP/IP协议卸载、数据流负载均衡等功能。TCP减负引擎由软硬件两部分组件构成,将传统的TCP/IP协议栈的功能进行延伸,把网络数据流量的处理工作全部转移到网卡上的集成硬件中进行,服务器只承担TCP/IP控制信息的处理任务。智能网卡驱动在用户空间定制了一套ACL规则处理工具,利用智能网卡的同步命令机制,ACL规则处理工具可以将ACL规则下发到网卡内存中,智能网卡对接收到的规则进行分类,对于每类规则可以进行不同优先级、老化时间的配置。同时,智能网卡还支持ACL规则删除及查询功能。为了进一步减轻服务器CPU负担,智能网卡内部根据数据包中五元组的任意组、合、协议、UDP载荷的动态字段等方式对数据包进行分流操作,并将不同的分流数据上送至服务器端不同内存缓冲区内,上层应用程序多个线程可对对应的流缓冲区内的数据进行分析和处理,从而进一步的提升了多路多核服务器的功能。智能网卡在服务器用户空间封装了标准的API接口函数,包括网卡打开、关闭、规则加载、规则删除、流量统计等功能;
利用所述智能网卡标准的接口函数,进一步提供了对libpcap、libnet、Iibnids等多种标准兼容接口的支持,实现现有的相关网络处理程序无缝的使用智能网卡,编程接口结构图如图2所示。例如,为了实现对PCAP接口的支持,必须完成PCAP源码中两个部分的修改
在PCAP初始化及释放函数中增加智能网卡的初始化和释放调用;
在PCAP收发包接口中需要调用智能网卡的收发包接口。 利用智能网卡的标准接口及libpcap、libnet、Iibnids等工具可以实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理功能。例如,当利用智能网卡提供的编程接口实现网卡捕包功能时,智能网卡按照服务器端的数据预处理要求,把数据通过网卡接口按照负载均衡的要求均匀的发送到多线程处理服务器的每个线程中。本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
权利要求
1.一种智能网卡的接口实现方法,所指智能网卡的特征是包括编程接口模块、智能网卡驱动模块、数据处理模块、存储器、控制模块和PCI-E主机接口 ; 所述的编程接口模块和智能网卡驱动模块配置在服务器端;编程接口模块是在服务器端为用户空间提供可编程接口函数;智能网卡驱动模块用于实现智能网卡到服务器端的数据接收和发送; 所述的数据处理模块、存储器、控制模块和PCI-E主机接口配置在智能网卡内部;PCI-E主机接口用于连接服务器和智能网卡;PCI-E主机接口与数据处理模块相连,数据处理模块的存储信号端与存储器相连。
2.根据权利要求I所述的智能网卡的接口实现方法,其特征是所述的数据处理模块是基于MIPS64架构的专用网络控制芯片,实现千兆网卡控制;控制模块用于实现人机接口 ;PCI-E主机接口用于连接服务器和智能网卡。
3.根据权利要求I所述的智能网卡的接口实现方法,其特征是所述的编程接口模块在服务器端为用户空间提供API接口函数;实现对网卡的控制,包括网卡打开、关闭、规则加载、规则删除和流量统计。
4.根据权利要求I所述的智能网卡的接口实现方法,其特征是所述的编程接口模块提供的标准的接口函数,对libpcap、Iibnet和Iibnids标准兼容接口均支持。
5.根据权利要求I至权利要求4任一项所述的智能网卡的接口实现方法,其特征是所述应用该实现方法的智能网卡支持IOOOBase-T和lOOOBase-T Gigabit Ethernet协议。
全文摘要
一种智能网卡的接口实现方法,它包括编程接口模块、智能网卡驱动模块、数据处理模块、存储器、控制模块和PCI-E主机接口、该智能网卡驱动程序在服务器用户空间为智能网卡提供了多种编程接口,其中包括自定义的专用接口及libpcap、libnet、libnids等多种标准兼容接口,可以让现有的相关网络处理程序无缝的使用智能网卡,以此实现数据捕捉处理、过滤处理和构造数据包外发等数据包的预处理功能,大幅度提高了后台服务器处理能力。
文档编号H04L12/02GK102752119SQ201210235789
公开日2012年10月24日 申请日期2012年7月9日 优先权日2012年7月9日
发明者刘欣, 张慧, 王勇, 王延海, 薛晨, 邹昕, 韩志前, 鲁松 申请人:南京中兴特种软件有限责任公司, 国家计算机网络与信息安全管理中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1