专利名称:实现网卡卸载功能的方法、网卡、主机系统及网络设备的制作方法
技术领域:
本发明属于通信技术领域,尤其涉及一种实现网卡卸载功能的方法、网卡、主机系统及网络设备。
背景技术:
随着互联网业务的快速发展,网络视频流量急剧增加,为了实现对硬件资源的充分利用,服务器虚拟化技术在数据中心得到越来越广泛的应用。在这种情形下,TCP/IP网络协议栈处理对CPU资源的占用率越来越高,甚至可能成为整个服务器系统的瓶颈。为了降低CPU的负载,进而提高整个服务器系统的性能,网络适配器(网卡)厂商纷纷推出带卸载功能的网卡,通过将原本TCP/IP网络协议栈负责的部分工作(如计算TCP/IP校验和、TCP/UDP报文切片等)卸载给网卡处理,从而降低TCP/IP协议栈处理对CPU资源的占用率。目前,网卡具有的卸载功能通常包括计算TCP/IP校验和、TCP/UDP分片报文重组、TCP切片卸载等,这些卸载功能都依赖于网卡能否正确解析所要处理的报文。通常,网卡可以支持标准数据报文,例如标准IP报文、带虚拟局域网Virtual (Local Area Network,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, Least Recent Used)的策略条目,从而节省网卡的存储资源。在本实施例中,对含新的私有或标准协议头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, Least Recent Used)的策略条目,从而节省网卡的存储资源。图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的报文,只需更新对所述报文进行解析的功能模块,使其能够处理该类报文并下发新的策略条目至主机策略表或者网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。另一方面,主机系统和网卡中的策略表的维护可以采用被动老化机制,即策略条目数超过上限时覆盖最近最少用(LRU7Least Recent Used)的策略条目,从而节省网卡的存储资源。又一方面,本发明实施例将包解析模块分成本地包解析模块和远端包解析模块两部分。远端包解析模块对外开放新协议注册功能,负责解析报文、生成策略条目并发送给本地包解析模块,形成一对多的服务模式,解决了大范围部署同类网卡时,由于需要在每台服务器的包解析模块上注册新协议,并进行协议解析,增加处理开销和不利于管理的问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现网卡卸载功能的方法,其特征在于,包括: 根据网卡中存储的网卡策略表或者主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文; 当所述数据报文为网卡已知数据报文时,由网卡根据所述网卡策略表中的策略条目对所述网卡已知数据报文进行相应的协议栈卸载操作; 当所述数据报文为网卡未知数据报文时,则对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中。
2.如权利要求1所述的方法,其特征在于,所述当所述数据报文为网卡未知数据报文时,则对所述网卡未知数据报文进行解析,生成新的策略条目具体包括: 主机系统对接收到的网卡未知数据报文进行解析,生成新的策略条目;或者, 主机系统将接收到的网卡未知数据报文转发给远端服务器,以使所述远端服务器对所述网卡未知数据报文进行解析并生成新的策略条目,所述主机系统接收所述远端服务器返回的所述新的策略条目。
3.如权利要求1或2所述的方法,其特征在于,所述对所述网卡未知数据报文进行解析具体包括: 提取所述网卡未知数据报文的协议关键字; 根据所述协议关键字查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄; 当所述协议关键字与所述 协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述网卡未知数据报文进行解析。
4.如权利要求1至3任一项所述的方法,其特征在于,所述根据网卡中存储的网卡策略表或者主机系统中存储的主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文具体包括: 所述网卡或者所述主机系统提取所述数据报文的协议关键字; 根据所述协议关键字查找所述网卡策略表或所述主机策略表,所述主机策略表和所述网卡策略表中包括策略条目,所述策略条目中包括策略类型; 当所述协议关键字与所述主机策略表或所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
5.一种网卡,其特征在于,所述网卡包括: 第一判断模块,用于依据网卡策略表判断接收到的数据报文是网卡已知数据报文还是网卡未知数据报文; 第一卸载模块,用于当所述数据报文是网卡已知数据报文时,根据网卡策略表对所述数据报文进行相应的协议栈卸载操作; 上行报文发送模块,用于当所述数据报文是网卡未知数据报文时,将所述数据报文发送给主机系统,以使主机系统对所述数据报文进行解析并生成新的策略条目; 第一策略更新模块,用于接收所述新的策略条目,并更新到所述网卡策略表中。
6.如权利要求5所述的网卡,其特征在于,所述第一判断模块具体包括:关键字提取单元,用于提取所述数据报文的协议关键字; 查表单元,用于根据所述关键字提取单元提取的协议关键字查找网卡策略表,所述网卡策略表中包括策略条目,所述策略条目中包括策略类型;当所述协议关键字与所述网卡策略表中一条已有策略条目的策略类型匹配时,则所述数据报文是网卡已知数据报文,否则所述数据报文是网卡未知数据报文。
7.一种主机系统,其特征在于,所述主机系统包括: 第二判断模块,用于根据主机策略表判断接收到的数据报文为网卡已知数据报文还是网卡未知数据报文; 下行报文发送模块,用于当所述数据报文是网卡已知数据报文时,则发送所述数据报文至网卡,以使所述网卡根据网卡策略表中的策略条目对所述数据报文进行相应的协议栈卸载操作; 包解析模块,用于当接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目; 第二策略更新模块,用于将所述新的策略条目更新到所述主机策略表中,并发送给所述网卡。
8.如权利要求7所述的主机系统,其特征在于,所述包解析模块具体包括: 关键字段提取单元,用于提取所述网卡未知数据报文的协议关键字; 关键字段匹配单元,用于根据所述关键字段提取单元提取的所述协议关键字,查找协议解析表,所述协议解析表中包含协议关键字和协议解析函数句柄; 策略条目生成单元,用于当所述协议关键字与所述协议解析表中一条已有协议解析信息的协议关键字匹配时,获取所述已有协议解析信息中的协议解析函数句柄,并调用所述协议解析函数对所述报文进行解析,生成所述新的策略条目。
9.如权利要求7所述的主机系统,其特征在于,所述包解析模块具体包括: 报文转发单元,用于将接收到的网卡未知数据报文转发给远端服务器,以使所述远端服务器对所述报文进行解析,生成所述新的策略条目; 策略条目接收单元,用于接收所述新的策略条目。
10.一种实现网卡卸载功能的网络设备,其特征在于,包括如权利要求5至6任一项所述的网卡和如权利要求7至9任一项所述的主机系统。
全文摘要
本发明适用于通信技术领域,提供了一种实现网卡卸载功能的方法、网卡、主机系统及网络设备。当网卡或者主机系统接收到的数据报文为网卡未知数据报文时,对所述网卡未知数据报文进行解析,生成新的策略条目,并将所述新的策略条目更新到所述主机策略表和所述网卡策略表中。本发明对含新的私有或标准协议头Tag的报文,只需更新对所述报文进行解析的功能模块,使其能够处理该类报文并下发新的策略条目至主机策略表及网卡策略表中,而网卡无需变动,从而实现了网卡卸载功能的动态扩展。
文档编号H04L29/08GK103139253SQ20111038926
公开日2013年6月5日 申请日期2011年11月30日 优先权日2011年11月30日
发明者杨小华, 孙福清, 王云贵 申请人:华为技术有限公司