CN103139253B - 实现网卡卸载功能的方法、网卡、主机系统及网络设备 - Google Patents
实现网卡卸载功能的方法、网卡、主机系统及网络设备 Download PDFInfo
- Publication number
- CN103139253B CN103139253B CN201110389265.1A CN201110389265A CN103139253B CN 103139253 B CN103139253 B CN 103139253B CN 201110389265 A CN201110389265 A CN 201110389265A CN 103139253 B CN103139253 B CN 103139253B
- Authority
- CN
- China
- Prior art keywords
- network interface
- interface card
- data message
- protocol
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
Abstract
本发明适用于通信技术领域,提供了一种实现网卡卸载功能的方法、网卡、主机系统及网络设备。当网卡或者主机系统接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中。本发明对含新的私有或标准协议头Tag的报文,只需更新对所述报文进行解析的功能模块,使其能够处理该类报文并下发新的策略条目至主机策略表及网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种实现网卡卸载功能的方法、网卡、主机系统及网络设备。
背景技术
随着互联网业务的快速发展,网络视频流量急剧增加,为了实现对硬件资源的充分利用,服务器虚拟化技术在数据中心得到越来越广泛的应用。在这种情形下,TCP/IP网络协议栈处理对CPU资源的占用率越来越高,甚至可能成为整个服务器系统的瓶颈。为了降低CPU的负载,进而提高整个服务器系统的性能,网络适配器(网卡)厂商纷纷推出带卸载功能的网卡,通过将原本TCP/IP网络协议栈负责的部分工作(如计算TCP/IP校验和、TCP/UDP报文切片等)卸载给网卡处理,从而降低TCP/IP协议栈处理对CPU资源的占用率。
目前,网卡具有的卸载功能通常包括计算TCP/IP校验和、TCP/UDP分片报文重组、TCP切片卸载等,这些卸载功能都依赖于网卡能否正确解析所要处理的报文。通常,网卡可以支持标准数据报文,例如标准IP报文、带虚拟局域网Virtual(LocalAreaNetwork,VLAN)标识的IP报文的处理。但是,在服务器虚拟化情形下,为了隔离网络流量,通常在报文中封装私有协议标签Tag,对于含有私有协议Tag的IP报文,因网卡无法正确解析该类IP报文,造成各种卸载处理误操作,从而导致网络大量丢包,影响网络传输性能。
现有技术通过定制的网卡,提供对特定私有协议的网卡卸载功能。但是,定制网卡的方案,可扩展性差,同时对于未知协议IP报文的处理,仍然需要占用大量的CPU资源。
发明内容
本发明实施例提供了一种实现网卡卸载功能的方法、网卡、主机系统及网络设备,旨在解决现有技术中网卡卸载功能扩展性差的问题。
一方面,提供一种实现网卡卸载功能的方法,包括:
根据网卡中存储的网卡策略表或者主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
当所述数据报文为网卡已知数据报文时,由网卡根据所述网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作;
当所述数据报文为网卡未知数据报文时,则对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中。
另一方面,提供一种网卡,所述网卡包括:所述网卡包括:
第一判断模块,用于依据网卡策略表判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文;
第一卸载模块,用于当所述数据报文是网卡已知数据报文时,根据网卡策略表对所述数据报文进行相应的协议栈卸载操作;
上行报文发送模块,用于当所述数据报文是网卡未知数据报文时,将所述数据报文发送给主机系统,以使主机系统对所述数据报文进行解析,生成新的策略条目;
第一策略更新模块,用于接收所述新的策略条目,并更新到所述网卡策略表中。
再一方面,提供一种主机系统,包括:
第二判断模块,用于根据主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
下行报文发送模块,用于当所述数据报文是网卡已知数据报文时,则发送所述数据报文至网卡,以使所述网卡根据网卡策略表中的策略条目对所述数据报文进行相应的协议栈卸载操作;
包解析模块,用于当接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目;
第二策略更新模块,用于将所述新的策略条目更新到主机策略表中,并发送给所述网卡。
又一方面,提供一种实现网卡卸载功能的网络设备,所述网络设备包括如上所述的网卡和如上所述的主机系统。
在本发明实施例中,先判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文,当所述数据报文为网卡已知数据报文时,由网卡根据网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作,当所述数据报文为网卡未知数据报文时,则对所述对接收到的网卡未知数据报文进行解析,生成新的策略条目,再将所述新的策略条目同时更新到主机策略表和网卡策略表中,以使网卡能根据所述新的策略条目对后续接收到的数据报文进行相应的协议栈卸载操作,其中,所述数据报文的协议关键字与所述网卡未知数据报文的协议关键字相同。本发明对含新的私有或标准协议头Tag的数据报文,只需更新对所述报文进行解析的功能模块,使其能够处理该类数据报文并下发新的策略条目至主机策略表及网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。
附图说明
图1是本发明实施例提供的一种实现网卡卸载功能的方法流程图;
图2是本发明实施例提供的主机策略表和网卡策略表的结构示意图;
图3是本发明实施例提供的协议解析表的结构示意图;
图4是本发明实施例提供的当接收到报文是上行报文时,实现网卡卸载功能的方法流程图;
图5是本发明实施例提供的当接收到报文是下行报文时,实现网卡卸载功能的方法流程图;
图6是本发明实施例提供的实现网卡卸载功能的网络设备框图;
图7是本发明实施例提供的实现网卡卸载功能的系统框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,先判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文,当所述数据报文为网卡已知数据报文时,由网卡根据网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作,当所述数据报文为网卡未知数据报文时,则对所述网卡未知数据报文进行解析,生成新的策略条目,再将所述新的策略条目同时更新到主机策略表和网卡策略表中,以使网卡能根据所述新的策略条目对后续接收到的数据报文进行相应的协议栈卸载操作,其中,所述数据报文的协议关键字与所述网卡未知数据报文的协议关键字相同。本发明对含新的私有或标准协议头Tag的数据报文,只需更新对所述数据报文进行解析的功能模块,使其能够处理该类数据报文并下发新的策略条目至主机策略表或者网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。
图1示出了本发明实施例提供的实现网卡卸载功能的方法,该方法可以应用于包括主机系统和网卡的网络设备。所述方法具体包括:
101、根据网卡中存储的网卡策略表或者主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文。
在本发明实施例中,数据报文可以是入向包报文,也称为上行报文;或者出向包报文也称为下行报文。其中,当接收到的数据报文是上行报文时,即网卡先接收到所述数据报文时,则由网卡根据网卡中存储的网卡策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文,否则,当接收到的数据报文是下行报文时,即主机系统先接收到所述数据报文时,则由主机系统根据主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文。
其中,网卡或者主机系统判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文,具体包括:
101a、网卡或者主机系统提取数据报文的协议关键字;
101b、根据所述协议关键字查找所述网卡策略表或所述主机策略表,所述主机策略表和所述网卡策略表中包括策略条目,所述策略条目中包括策略类型和动作;
101c、当所述协议关键字与所述主机策略表或所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
102、当所述数据报文为网卡已知数据报文时,由网卡根据所述网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作。
其中,当所述数据报文是上行报文时,使所述网卡根据与所述协议关键字对应的策略条目中的动作对所述上行报文进行相应的协议栈卸载操作,并将处理后的数据报文发送给主机协议栈或虚拟化平台中的虚拟交换机(vSwitch)处理。
当所述数据报文是下行报文时,则主机系统发送所述数据报文至网卡,以使网卡根据网卡策略表中的相应策略条目对所述数据报文进行相应的协议栈卸载操作并外发所述数据报文。
103、当所述数据报文为网卡未知数据报文时,则对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中。
其中,所述网卡中包括内存,内存中存储有网卡策略表,网卡策略表中包括策略条目,策略条目中包括策略类型和动作。所述主机系统中存储有主机策略表,所述主机策略表与所述网卡策略表结构相同。具体的主机策略表和网卡策略表的结构如图2所示。
具体的103中,可以由主机系统对接收到的网卡未知数据报文进行解析,生成新的策略条目;所述主机系统中存储有协议解析表。或者,由主机系统将接收到的网卡未知数据报文转发给远端服务器,以使所述远端服务器对所述网卡未知数据报文进行解析,生成新的策略条目,所述主机系统接收所述远端服务器返回的所述新的策略条目;所述远端服务器中存储有协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄,具体的协议解析表的结构如图3所示。
所述主机系统将所述新的策略条目更新到所述主机策略表和所述网卡策略表中,以使网卡根据所述新的策略条目对后续接收到的同类数据报文进行相应的协议栈卸载操作,所述同类数据报文是指其协议关键字与所述网卡未知数据报文的协议关键字相同的数据报文。
其中,对所述网卡未知数据报文进行解析具体包括:
103a、提取所述网卡未知数据报文的协议关键字;
103b、根据所述协议关键字查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄;
103c、当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述网卡未知数据报文进行解析。
需要说明的是,主机系统和网卡中的策略表初始可以为空,即没有任何策略条目,随着网卡不断接收到各种协议类型的流量报文,本地包解析模块或者远端包解析模块动态扩展主机系统及网卡中的策略表的策略条目,策略表维护可以采用被动老化机制,即策略条目数超过上限时覆盖最近最少用(LRU,LeastRecentUsed)的策略条目,从而节省网卡的存储资源。
在本实施例中,对含新的私有或标准协议头Tag的报文,只需更新本地包解析模块或者远端包解析模块使其能处理该类报文并下发新的策略条目至本地策略表及网卡策略表,而网卡无需变动,从而实现了网卡卸载功能动态扩展。
可选的,为了使主机系统或者远端服务器能够对接收到的网卡未知数据报文进行解析,在步骤101之前,所述方法还包括:
主机系统或者远端服务器接收输入的新协议注册命令,所述新协议注册命令中包括关键字和指向与所述关键字对应的解析函数句柄的表项;
所述主机系统或者所述远端服务器,根据所述新协议注册命令更新协议解析表。图3示出了新协议注册前的协议解析表和新协议注册后的协议解析表。
举例来说,图4示出了本发明实施例提供的当接收到数据报文是上行报文时,实现网卡卸载功能的方法,所述方法包括:
401,网卡接收到上行报文后,提取所述上行报文的协议关键字。
其中,上行报文的协议关键字可以是协议类型。
402,所述网卡根据所述协议关键字查找所述网卡策略表,所述网卡策略表中包括策略条目,所述策略条目中包括策略类型,当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,执行403,否则所述数据报文是网卡未知数据报文,执行404。
网卡提取到上行报文的协议关键字后,根据该关键字查找网卡策略表,当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则执行步骤403,否则执行步骤404。
具体的匹配规则是查找策略条目中的策略类型,当网卡策略表中存在与该关键字相同的策略类型时,则认为网卡策略表中存在与该关键字匹配的策略条目。
403,所述网卡根据所述策略条目对所述报文进行相应的协议栈卸载操作。
当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,所述网卡根据与所述关键字对应的策略条目中的动作对上行报文进行相应的协议栈卸载操作,比如计算TCP校验和、GRO处理等,最后,将上行报文送交主机系统的协议栈或虚拟化平台中的虚拟交换机(vSwitch)处理。
404中,所述网卡发送所述上行报文至主机系统,以使主机系统对接收到的所述上行报文进行解析,生成新的策略条目,并将所述新的策略条目更新到主机策略表和所述网卡策略表中。
当所述协议关键字与所述网卡策略表中任一条已有策略条目的策略类型都不匹配时,网卡将该上行报文交给主机系统。
主机系统接收到的网卡发送的上行报文后,首先通过主机系统的本地包解析模块提取所述上行报文的协议关键字,再根据所述协议关键字查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄,当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述网卡未知数据报文进行解析,生成新的策略条目,然后将该新的策略条目更新到主机系统中的主机策略表中,同时将该新的策略条目下发到网卡中的网卡策略表。
这时主机策略表和网卡策略表中都包括了与所述上行报文的协议关键字匹配的策略条目,后续网卡接收到与所述上行报文的协议关键字相同的数据报文后,就可按照网卡策略表或者主机策略表中新增加的策略条目中的动作对接收到的数据报文执行相应的协议栈操作。
另一方面,通过主机系统对网卡和主机策略表进行更新后,可以利用主机系统的CPU对该上行报文进行相应处理(如计算TCP校验和、GRO处理等),处理完后,CPU将该上行报文转给协议栈或vSwitch处理。
又例如,图5示出了本发明实施例提供的当接收到报文是下行报文时,实现网卡卸载功能的方法,所述方法包括:
501,主机系统提取接收到的数据报文的协议关键字。
当主机系统接收到从vSwitch或协议栈下发的TX方向的下行报文后,通过本地包解析模块提取所述下行报文的协议关键字。
502,主机系统根据所述协议关键字查找所述主机策略表,所述主机策略表中包括策略条目,所述策略条目中包括策略类型,当所述协议关键字与所述主机策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,执行503;否则所述数据报文是网卡未知数据报文,执行S504。
503,主机系统发送所述报文至网卡,以使网卡根据网卡策略表中的策略条目对所述数据报文进行相应的协议栈卸载操作。
当数据报文的协议关键字与主机策略表中一条已有策略条目的策略类型匹配时,由于主机策略表和网卡策略表是同时更新的,因此可以得出,网卡策略表中也存在与所述关键字匹配的策略条目,则主机系统发送接收到的数据报文至网卡,使网卡根据所述策略条目中的动作对所述数据报文执行相应的协议栈卸载操作。
504,主机系统对所述报文进行解析,生成新的策略条目,并将所述策略条目更新到所述主机策略表和网卡策略表中。
当数据报文的协议关键字与主机策略表中任意一条已有策略条目的策略类型都不匹配时,则通过主机系统的本的包解析模块对接收到的数据报文进行解析,生成与解析结果对应的新的策略条目,主机系统的本地包解析模块将生成的新的策略条目更新到主机策略表中,同时将该策略条目下发到网卡策略表中,以实现主机策略表和网卡策略表的同步更新。具体步骤可以参见103a至103c,在此不再赘述。
505,主机系统发送接收到的下行报文至网卡,以使所述网卡根据所述策略条目对所述下行报文执行相应的协议栈卸载操作。
主机系统发送接收到的下行报文至网卡,由于网卡中的策略表已经添加了所述新的策略条目,因此网卡可以根据所述新的策略条目中的动作对所述下行报文执行相应的协议栈卸载操作并外发到网络中。
图6示出了本发明实施例提供的实现网卡卸载功能的网络设备框图,用于实现本发明中图1、图4和图5所示的方法。所述网络设备包括网卡61和主机系统62。
所述网卡61包括:内存,所述内存中存储有网卡策略表,所述网卡策略表包括策略条目,所述策略条目包括策略类型和动作,所述网卡61可以与所述主机系统62连接,所述网卡61还包括:第一判断模块611、第一卸载模块612、上行报文发送模块613和第一策略更新模块614。
其中,第一判断模块611用于依据网卡策略表判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文;
第一卸载模块612用于当所述数据报文是网卡已知数据报文时,根据网卡策略表对所述数据报文进行相应的协议栈卸载操作;
上行报文发送模块613用于当所述数据报文是网卡未知数据报文时,将所述数据报文发送给主机系统以使主机系统对所述数据报文进行解析,生成新的策略条目;
第一策略更新模块614用于接收所述新的策略条目,并更新到所述网卡策略表中。
其中,第一判断模块611包括:关键字提取单元和查表单元。
关键字提取单元用于提取所述数据报文的协议关键字;
查表单元用于根据所述关键字提取单元提取的协议关键字查找网卡策略表,所述网卡策略表中包括策略条目,所述策略条目中包括策略类型,当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
所述主机系统62中存储有主机策略表,所述主机策略表包括策略条目,所述策略条目包括策略类型和动作,所述主机系统62包括:第二判断模块621、下行报文发送模块622、包解析模块623和第二策略更新模块624。
其中,第二判断模块621用于根据主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
下行报文发送模块622用于当所述数据报文是网卡已知数据报文时,则发送所述数据报文至网卡,以使所述网卡根据网卡策略表中的策略条目对所述数据报文进行相应的协议栈卸载操作;
包解析模块623用于当接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目;
第二策略更新模块624用于将所述新的策略条目更新到所述主机策略表中,并发送给所述网卡。
其中,所述包解析模块623可以包括:关键字段提取单元、关键字段匹配单元和策略条目生成单元。或者,可以包括:报文转发单元和策略条目接收单元。
所述关键字段提取单元用于提取所述网卡未知数据报文的协议关键字;
所述关键字段匹配单元用于根据所述关键字段提取单元提取的所述协议关键字,查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄;
所述策略条目生成单元,用于当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述报文进行解析,生成所述新的策略条目。
所述报文转发单元,用于将接收到的网卡未知数据报文转发给远端服务器,以由所述远端服务器对所述报文进行解析,生成所述新的策略条目;
所述策略条目接收单元,用于接收所述新的策略条目。
需要说明的是,主机系统和网卡中的策略表初始可以为空,即没有任何策略条目,随着网卡不断接收到各种协议类型的流量报文,本地包解析模块或者远端包解析模块动态扩展主机系统及网卡中的策略表的策略条目,策略表维护可以采用被动老化机制,即策略条目数超过上限时覆盖最近最少用(LRU,LeastRecentUsed)的策略条目,从而节省网卡的存储资源。
图7示出了本发明实施例提供的实现网卡卸载功能的系统框图,为了便于说明,仅示出了与本发明实施例相关的部分。所述系统包括网卡71、主机系统72和远端服务器73。
所述网卡71包括:内存711,所述内存711中存储有网卡策略表,所述网卡策略表包括策略条目,所述策略条目包括策略类型和动作,所述网卡71与主机系统72连接,所述网卡71还包括:第一判断模块712、第一卸载模块713、上行报文发送模块714和第一策略更新模块15。
其中,第一判断模块712用于依据网卡策略表判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文;
第一卸载模块713用于当所述数据报文是网卡已知数据报文时,根据网卡策略表对所述数据报文进行相应的协议栈卸载操作;
上行报文发送模块714用于当所述数据报文是网卡未知数据报文时,将所述数据报文发送给主机系统,以使主机系统对所述数据报文进行解析,生成新的策略条目;
第一策略更新模块715用于接收所述新的策略条目,并更新到所述网卡策略表中。
其中,第一判断模块712包括:关键字提取单元和查表单元。
关键字提取单元用于提取所述数据报文的协议关键字;
查表单元用于根据所述关键字提取单元提取的协议关键字查找网卡策略表或主机策略表,所述主机策略表和所述网卡策略表中包括策略条目,所述策略条目中包括策略类型,当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
所述主机系统72中存储有主机策略表,所述主机策略表包括策略条目,所述策略条目包括策略类型和动作,所述主机系统72包括:第二判断模块721、下行报文发送模块722、报文转发模块723、策略条目接收模块724和第二策略更新模块725。
其中,第二判断模块721用于根据主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
下行报文发送模块722用于当所述数据报文是网卡已知数据报文时,则发送所述数据报文至网卡,以使网卡根据网卡策略表中的已有策略条目对所述数据报文进行相应的协议栈卸载操作;
报文转发模块723用于将接收到的网卡未知数据报文转发给远端服务器,以由所述远端服务器对所述报文进行解析,生成新的策略条目;
策略条目接收模块724用于接收所述新的策略条目;
第二策略更新模块725用于将所述新的策略条目更新到主机策略表,并发送给所述网卡。
所述远端服务器73中存储有协议解析表,所述协议解析表包括协议头关键字和指向与所述协议头关键字对应的解析函数句柄的表项,所述协议头关键字是所述协议解析表的索引,所述远端服务器73还包括报文接收模块731、远端包解析模块732、策略条目发送模块733、注册命令接收模块734和协议解析表更新模块735。
报文接收模块731用于接收主机系统2发送的网卡未知数据报文;
远端包解析模块732用于对所述报文接收模块731接收到的网卡未知数据报文进行解析,生成新的策略条目;
策略条目发送模块733用于发送所述新的策略条目至主机系统72,以由所述主机系统72将所述策略条目发送单元733发送的新的策略条目同时更新到主机系统72的主机策略表和网卡策略表中。
其中,所述远端包解析模块732包括:关键字段提取单元、关键字段匹配单元和策略条目生成单元。
关键字段提取单元用于提取所述网卡未知数据报文协议关键字;
关键字段匹配单元用于根据所述关键字段提取单元提取的关键字,查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄;
策略条目生成单元,用于当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述报文进行解析,生成与解析结果对应的策略条目。
注册命令接收模块734用于接收输入的新协议注册命令,所述新协议注册命令中包括关键字和指向与所述关键字对应的解析函数句柄的表项;
协议解析表更新模块735用于根据所述注册命令接收模块34接收到的新协议注册命令更新远端服务器3中的协议解析表。在本发明实施例中,一方面先对接收到的网卡未知数据报文进行解析,生成与解析结果对应的策略条目,再将所述策略条目同时更新到主机策略表和网卡策略表中,以使网卡根据所述策略条目对后续接收到的同类数据报文进行相应的协议栈卸载操作。对含新的私有或标准协议头Tag的报文,只需更新对所述报文进行解析的功能模块,使其能够处理该类报文并下发新的策略条目至主机策略表或者网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。另一方面,主机系统和网卡中的策略表的维护可以采用被动老化机制,即策略条目数超过上限时覆盖最近最少用(LRU,LeastRecentUsed)的策略条目,从而节省网卡的存储资源。又一方面,本发明实施例将包解析模块分成本地包解析模块和远端包解析模块两部分。远端包解析模块对外开放新协议注册功能,负责解析报文、生成策略条目并发送给本地包解析模块,形成一对多的服务模式,解决了大范围部署同类网卡时,由于需要在每台服务器的包解析模块上注册新协议,并进行协议解析,增加处理开销和不利于管理的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种实现网卡卸载功能的方法,用于包括主机系统和网卡的网络设备中,其特征在于,所述方法包括:
若所述网卡先接收到数据报文,则由所述网卡根据所述网卡中存储的网卡策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
若所述主机系统先接收到数据报文,则由所述主机系统根据所述主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
所述网卡策略表与所述主机策略表结构相同;
当所述数据报文为网卡已知数据报文时,由网卡根据所述网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作;
当所述数据报文为网卡未知数据报文时,则主机系统对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中;
所述根据网卡中存储的网卡策略表或者主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文具体包括:
所述网卡或者所述主机系统提取所述数据报文的协议关键字;
根据所述协议关键字查找所述网卡策略表或所述主机策略表,所述主机策略表和所述网卡策略表中包括策略条目,所述策略条目中包括策略类型;
当所述协议关键字与所述主机策略表或所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
2.如权利要求1所述的方法,其特征在于,所述当所述数据报文为网卡未知数据报文时,则主机系统对所述网卡未知数据报文进行解析,生成新的策略条目具体包括:
主机系统对接收到的网卡未知数据报文进行解析,生成新的策略条目;或者,
主机系统将接收到的网卡未知数据报文转发给远端服务器,以使所述远端服务器对所述网卡未知数据报文进行解析并生成新的策略条目,所述主机系统接收所述远端服务器返回的所述新的策略条目。
3.如权利要求1或2所述的方法,其特征在于,所述主机系统对所述网卡未知数据报文进行解析具体包括:
主机系统提取所述网卡未知数据报文的协议关键字;
主机系统根据所述协议关键字查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄;
当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,主机系统获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述网卡未知数据报文进行解析。
4.一种网卡,其特征在于,所述网卡包括:
第一判断模块,用于依据网卡策略表判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文;
第一卸载模块,用于当所述数据报文是网卡已知数据报文时,根据网卡策略表对所述数据报文进行相应的协议栈卸载操作;
上行报文发送模块,用于当所述数据报文是网卡未知数据报文时,将所述数据报文发送给主机系统,以使主机系统对所述数据报文进行解析并生成新的策略条目;
第一策略更新模块,用于接收所述新的策略条目,并更新到所述网卡策略表中;
所述第一判断模块具体包括:
关键字提取单元,用于提取所述数据报文的协议关键字;
查表单元,用于根据所述关键字提取单元提取的协议关键字查找网卡策略表,所述网卡策略表中包括策略条目,所述策略条目中包括策略类型;当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
5.一种主机系统,其特征在于,所述主机系统包括:
第二判断模块,用于根据主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文;
下行报文发送模块,用于当所述数据报文是网卡已知数据报文时,则发送所述数据报文至网卡,以使所述网卡根据网卡策略表中的策略条目对所述数据报文进行相应的协议栈卸载操作;
包解析模块,用于当接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目;
第二策略更新模块,用于将所述新的策略条目更新到所述主机策略表中,并发送给所述网卡;
所述第二判断模块具体包括:
关键字提取单元,用于提取所述数据报文的协议关键字;
查表单元,用于根据所述关键字提取单元提取的协议关键字查找主机策略表,所述主机策略表中包括策略条目,所述策略条目中包括策略类型;当所述协议关键字与所述主机策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
6.如权利要求5所述的主机系统,其特征在于,所述包解析模块具体包括:
关键字段提取单元,用于提取所述网卡未知数据报文的协议关键字;
关键字段匹配单元,用于根据所述关键字段提取单元提取的所述协议关键字,查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄;
策略条目生成单元,用于当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述报文进行解析,生成所述新的策略条目。
7.如权利要求5所述的主机系统,其特征在于,所述包解析模块具体包括:
报文转发单元,用于将接收到的网卡未知数据报文转发给远端服务器,以使所述远端服务器对所述报文进行解析,生成所述新的策略条目;
策略条目接收单元,用于接收所述新的策略条目。
8.一种实现网卡卸载功能的网络设备,其特征在于,包括如权利要求4所述的网卡和如权利要求5至7任一项所述的主机系统。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389265.1A CN103139253B (zh) | 2011-11-30 | 2011-11-30 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
PCT/CN2012/074628 WO2013078824A1 (zh) | 2011-11-30 | 2012-04-25 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
EP12853441.9A EP2747381B1 (en) | 2011-11-30 | 2012-04-25 | Method, network device and system for implementing network card offloading function |
US14/292,096 US9680690B2 (en) | 2011-11-30 | 2014-05-30 | Method, network adapter, host system, and network device for implementing network adapter offload function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389265.1A CN103139253B (zh) | 2011-11-30 | 2011-11-30 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103139253A CN103139253A (zh) | 2013-06-05 |
CN103139253B true CN103139253B (zh) | 2016-03-09 |
Family
ID=48498554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110389265.1A Active CN103139253B (zh) | 2011-11-30 | 2011-11-30 | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9680690B2 (zh) |
EP (1) | EP2747381B1 (zh) |
CN (1) | CN103139253B (zh) |
WO (1) | WO2013078824A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10194337B2 (en) * | 2012-07-12 | 2019-01-29 | Qualcomm Incorporated | Methods and apparatus for offloading checksum processing |
US9571394B1 (en) | 2014-01-10 | 2017-02-14 | Juniper Networks, Inc. | Tunneled packet aggregation for virtual networks |
US10341203B2 (en) * | 2015-01-02 | 2019-07-02 | Gigamon Inc. | Policy tracking in a network that includes virtual devices |
CN105991625B (zh) * | 2015-03-06 | 2020-11-06 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
CN105406989B (zh) * | 2015-10-26 | 2019-04-05 | 华为技术有限公司 | 处理报文的方法、网卡及系统、更新信息的方法及主机 |
CN114095427A (zh) * | 2017-12-29 | 2022-02-25 | 西安华为技术有限公司 | 一种处理数据报文的方法和网卡 |
CN110851371B (zh) | 2018-08-20 | 2023-09-26 | 华为技术有限公司 | 报文处理方法及相关设备 |
CN114363256A (zh) * | 2020-09-28 | 2022-04-15 | 华为云计算技术有限公司 | 基于网卡的报文解析方法以及相关装置 |
US11374838B1 (en) * | 2021-03-29 | 2022-06-28 | Mellanox Technologies, Ltd. | Using a data processing unit (DPU) as a pre-processor for graphics processing unit (GPU) based machine learning |
CN116679654B (zh) * | 2023-07-10 | 2024-02-02 | 河北大学 | 一种基于Petri网的柔性制造系统死锁控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7860097B1 (en) * | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
CN102014065A (zh) * | 2010-12-10 | 2011-04-13 | 中兴通讯股份有限公司 | 报文包头的解析方法、包头解析预处理装置和网络处理器 |
CN102045247A (zh) * | 2009-10-12 | 2011-05-04 | 曙光信息产业(北京)有限公司 | 基于Snort规则集的报文处理方法和装置 |
CN102143148A (zh) * | 2010-11-29 | 2011-08-03 | 华为技术有限公司 | 用于通用协议解析的参数获取和通用协议解析方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876654B1 (en) * | 1998-04-10 | 2005-04-05 | Intel Corporation | Method and apparatus for multiprotocol switching and routing |
US7239639B2 (en) * | 2001-12-27 | 2007-07-03 | 3Com Corporation | System and method for dynamically constructing packet classification rules |
US20070022212A1 (en) * | 2005-07-22 | 2007-01-25 | Fan Kan F | Method and system for TCP large receive offload |
US8243595B2 (en) * | 2005-08-05 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Prioritization of network traffic sent to a processor by using packet importance |
US20070294360A1 (en) * | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Method and apparatus for localized adaptation of client devices based on correlation or learning at remote server |
CN101212314A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 单一芯片实现多项网络安全功能的方法 |
US8619766B2 (en) * | 2007-03-02 | 2013-12-31 | At&T Intellectual Property Ii, L.P. | Method and apparatus for classifying packets |
US8031606B2 (en) * | 2008-06-24 | 2011-10-04 | Intel Corporation | Packet switching |
WO2012171166A1 (zh) | 2011-06-13 | 2012-12-20 | 华为技术有限公司 | 协议解析方法及装置 |
-
2011
- 2011-11-30 CN CN201110389265.1A patent/CN103139253B/zh active Active
-
2012
- 2012-04-25 EP EP12853441.9A patent/EP2747381B1/en active Active
- 2012-04-25 WO PCT/CN2012/074628 patent/WO2013078824A1/zh active Application Filing
-
2014
- 2014-05-30 US US14/292,096 patent/US9680690B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7860097B1 (en) * | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
CN102045247A (zh) * | 2009-10-12 | 2011-05-04 | 曙光信息产业(北京)有限公司 | 基于Snort规则集的报文处理方法和装置 |
CN102143148A (zh) * | 2010-11-29 | 2011-08-03 | 华为技术有限公司 | 用于通用协议解析的参数获取和通用协议解析方法及装置 |
CN102014065A (zh) * | 2010-12-10 | 2011-04-13 | 中兴通讯股份有限公司 | 报文包头的解析方法、包头解析预处理装置和网络处理器 |
Non-Patent Citations (1)
Title |
---|
《基于N-code框架的协议识别的研究与实现》;张晓利;《中国优秀硕士学位论文全文数据库 信息科技辑》;20101015;第42页第5.1.5节 * |
Also Published As
Publication number | Publication date |
---|---|
EP2747381A1 (en) | 2014-06-25 |
WO2013078824A1 (zh) | 2013-06-06 |
EP2747381B1 (en) | 2017-02-22 |
US20140280857A1 (en) | 2014-09-18 |
US9680690B2 (en) | 2017-06-13 |
EP2747381A4 (en) | 2015-04-08 |
CN103139253A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103139253B (zh) | 实现网卡卸载功能的方法、网卡、主机系统及网络设备 | |
CN104125208B (zh) | 数据传输方法及装置 | |
US20170244635A1 (en) | A method, apparatus and system for enabling communication using multi-protocol gateway and virtual resource manager | |
EP3985931A1 (en) | Service flow division method, apparatus, and system, electronic device, and storage medium | |
CN107395572B (zh) | 一种数据处理方法及物联网网关 | |
US10193738B2 (en) | Method for service content distribution under heterogeneous network and service management platform | |
CN102546363A (zh) | 一种报文处理方法、装置及设备 | |
US20150178400A1 (en) | Method and device for acquiring terminal information in heterogeneous terminal environment | |
CN105323229A (zh) | 一种基于cpe的数据传输方法、网元、平台及系统 | |
CN111294235A (zh) | 数据处理方法、装置、网关及可读存储介质 | |
US20170279738A1 (en) | Method, apparatus, and system for transmitting data | |
CN113037761A (zh) | 登录请求的验证方法及装置、存储介质、电子设备 | |
CN101895531A (zh) | 一种客户端设备、多媒体数据卸载系统及卸载方法 | |
CN115039392A (zh) | 消息处理方法、装置、系统以及服务器 | |
CN101309453B (zh) | 用于使无线事务中的消息相关联的系统和方法 | |
CN109787789B (zh) | 软件升级的兼容性管理方法、装置及设备、存储介质 | |
CN102694675A (zh) | 一种基于snmp协议的异步通信方法及装置 | |
CN102420858B (zh) | 一种ftp模式配置方法、数据传输方法及设备 | |
CN111294316B (zh) | 基于用户态协议栈虚拟路由器的网络隔离方法和装置 | |
CN108712298B (zh) | 网络设备升级方法、装置、网络设备及存储介质 | |
KR102420606B1 (ko) | 캐시 경로를 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치 | |
CN109766347A (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
US10791161B2 (en) | Temporal transaction locality in a stateless environment | |
US11804986B2 (en) | Method for the remote management of a device connected to a residential gateway | |
CN102075532B (zh) | 一种防火墙穿透方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |