一种虚拟化环境下的数据包处理方法及装置的制造方法

文档序号:10534582阅读:234来源:国知局
一种虚拟化环境下的数据包处理方法及装置的制造方法【专利摘要】一种虚拟化环境下的数据包处理方法及装置,所述方法包括:在客户域配置页池和建立客户域与驱动域共享内存的输入输出环,该页池可以存储授权驱动域访问的空闲页的引用地址;在需要从驱动域获取数据包时,从页池获取页的引用地址;并将页的引用地址封装在请求消息中并放置在输入输出环内,请求消息可以指示驱动域将数据包拷贝到页的引用地址;从输入输出环取出请求消息的响应消息后,从页的引用地址读取数据包,上述响应消息可以是驱动域将数据包拷贝到页的引用地址后放置在输入输出环。本申请具有提高网络性能的优点。【专利说明】一种虚拟化环境下的数据包处理方法及装置
技术领域
[0001]本申请涉及信息与通信领域,尤其涉及一种虚拟化环境下的数据包处理方法及装置。【
背景技术
】[0002]Xen是一个开放源代码虚拟机监视器,Xen是目前主流的管理程序(英文全称:Hypervisor)之一,现有的很多厂家的云数据中心解决方案的虚拟化平台均是基于Xen构建的。Xen的虚拟机网络设备从技术上看有两种类型:第一种类型是全虚网络设备,这种设备的驱动不需要修改操作系统(英文全称-OperatingSystem,英文简称:0S)的网卡驱动代码,完全靠设备模拟器模拟,但是性能较差;第二种类型是半虚拟网络设备,这种设备的驱动模型是一种分离式的设备驱动程序(英文全称:splitdevicedriver),它包括分别处于两个域(英文全称:domain)内核中的网络驱动程序,两个domain内核中的网络驱动程序相互配合,完成网络通信,由于第二种类型是专为虚拟化环境特别定制的,性能较全虚网络设备性能要高出很多,正是基于性能方面的考虑,当前商用的Xen虚拟机都采用半虚拟网络设备。在第二种类型下,半虚网络设备包括:运行于驱动域(英文全称:DriverDomain)的后端网络驱动(英文全称:Netback)和运行于客户域(英文全称:GuestDomain)的前端网络驱动(英文全称:Netfront),该DriverDomain可以为运行分离式的驱动后端部分的特权虚拟机,GuestDomain可以为提供给用户使用的虚拟机。DriverDomain与GuestDomain之间首先通过Xenstore(中文:数据库)机制进行特性协商后,建立前后端共享的输入输出(英文全称:inputoutput,英文简称:10)环交换请求消息和响应信息,通过事件通道(英文全称:EventChannel)机制进行事件通知,通过授权表(英文全称:Granttable)机制进行网络数据包的跨Domain拷贝,该Granttable可以为Xen平台的一种用于多个Domain之间内存共享的一套授权控制机制。[0003]在实现现有技术的方案中,发现现有技术存在如下技术问题:[0004]在GuestDomain内核中的netfront必须对每一个数据包都进行页分配、授权、结束授权和释放操作,严重消耗了GuestDomain的计算能力,所以现有的GuestDomain网络性能低下。【
发明内容】[0005]本申请提供一种虚拟化环境下的数据包处理方法及装置。可以提高虚拟机的网络性能。[0006]第一方面,本申请实施例提供一种虚拟化环境下的数据包处理方法,该方法可以包括:首先在客户域配置页池和建立客户域与驱动域共享内存的输入输出环,该页池可以存储授权驱动域访问的空闲页的引用地址;然后在需要从驱动域获取数据包时,从页池获取页的引用地址;并将页的引用地址封装在请求消息中并放置在输入输出环内,请求消息可以指示驱动域将数据包拷贝到页的引用地址;从输入输出环取出请求消息的响应消息后,从页的引用地址读取数据包,上述响应消息可以是驱动域将数据包拷贝到页的引用地址后放置在输入输出环。[0007]第一方面提供的虚拟化环境下的数据包处理方法在客户域配置页池,上述页池用于放置已授权驱动域访问的空闲页的引用地址,通过配置页池,就能够减少页请求、页分配以及页授权的操作,这样能够很大的提高客户域的网络性能。因为对于客户域来说,相当于配置了一批永久授权的页给需要接收的数据包使用,同时废除了页的临时授权,这样就避免了反复执行页请求、页分配和页授权的步骤,这样就能够提高客户域的网络性能。[0008]在一种可能的设计中,还可以将获取页的引用地址从页池内删除。[0009]将获取的页的引用地址从页池内删除可以避免页的重复使用。[0010]在另一种可能的设计中,如果数据包的大小小于设定值,则在将数据包拷贝到套接字缓存内,以及将套接字缓存发送至协议栈处理后,清空页的引用地址,并将页的引用地址放回到页池内。[0011]将小包数据包拷贝到套接字缓存内发送至协议栈处理后清空页,将页的引用地址放回页池,能够提尚页的使用率,进一步提尚客户域的网络性能。[0012]在后一种可能设计中,如数据包的大小大于或等于设定值,则在将数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内,以及将套接字缓存发送至协议栈处理。此时,不将所述页的引用地址放回到所述页池内。[0013]将大包数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内发送至协议栈处理能实现大包数据包的处理,提高客户域的网络性能。[0014]在下一种可能设计中,如页池内没有授权驱动域访问空闲页的引用地址时,申请分配另外的页的引用地址,调用授权表机制授权驱动域访问另外的页的引用地,将另外页的引用地址放置在页池内。[0015]在页池内没有空闲页的情况下提供另外页的授权能够减少数据包处理的等待时间。[0016]第二方面,本申请实施例提供一种虚拟化环境下的数据包处理装置,包括:处理单元,用于在客户域配置页池和建立客户域与驱动域共享内存输入输出环,上述页池用于存储授权驱动域访问的空闲页的引用地址;在需要从驱动域获取数据包时,从页池内获取页的引用地址;以及将页的引用地址封装在请求消息中并放置在输入输出环内,请求消息可以用于指示驱动域将数据包拷贝到该页的引用地址;读取单元,用于从输入输出环内取出请求消息的响应消息,从页的引用地址读取该数据包,该响应消息可以为驱动域将数据包拷贝到页的引用地址后放置在输入输出环的。[0017]第二方面提供的虚拟化环境下的数据包处理装置在客户域配置页池,上述页池用于放置已授权驱动域访问的空闲页的引用地址,通过配置页池,就能够减少页请求、页分配以及页授权的操作,这样能够很大的提高客户域的网络性能。因为对于客户域来说,相当于配置了一批永久授权的页给需要接收的数据包使用,同时废除了页的临时授权,这样就避免了反复执行页请求、页分配和页授权的步骤,这样就能够提高客户域的网络性能。[0018]上述处理单元还可以用于执行上述可能设计的技术方案。[0019]第三方面,本申请实施例提供一种客户域设备,该客户域设备具有实现第一方面方法设计中数据包处理方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。[0020]第三方面提供的客户域设备具有实现第一方面方法设计中数据包处理方法的功能,所以该客户域设备能够提高客户域的网络性能。[0021]第四方面,本申请实施例提供一种主机,所述主机包括:客户域、驱动域、虚拟机监视器和网卡,所述客户域包括:网络前端驱动程序,所述驱动域包括:网络后端驱动程序:该网络前端驱动程序用于执行上述第一方面提供的方案或上述可能的设计方案。[0022]第四方面提供的主机具有执行第一方面方法以及可能设计的功能,所以该客户域设备能够提高客户域的网络性能。[0023]相对于现有技术,本申请的技术方案配置了页池,这样减少了页请求、页分配、页授权等步骤,减少了客户域处理器的开销,提升了虚拟机的吞吐量,所以能够有效的提高客户域的网络性能。【附图说明】[0024]为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0025]图1A是本申请提供的一种主机的构架示意图;[0026]图1B是本申请提供的一种虚拟化环境下的数据包处理方法的流程示意图;[0027]图2是本申请一实施例提供的虚拟化环境下的数据包处理方法的流程示意图;[0028]图3是本申请另一实施例提供的虚拟化环境下的数据包处理方法的流程示意图;[0029]图4是本申请又一实施例提供的一种客户域设备的结构图。【具体实施方式】[0030]参阅图1A,图1A为一种主机架构图,该主机如图1所示,包括:驱动域DriverDomainlO、客户域GuestDomainl1、网卡Nic12、虚拟机监视器(VMM,VirtualMachineMonitor)、其他硬件设备(例如处理器、存储器等);其中,客户域11具体可以包括:用户应用、前端网络驱动Netfront和协议栈,驱动域10具体可以包括:网卡驱动、软网桥和后端网络驱动Netback;上述客户域11与驱动域10通过分别设置其内的前端网络驱动和后端网络驱动通信,该前端网络驱动和后端网络驱动之间具有用于放置数据包或消息的客户域与驱动域共享内存的输入输出环,该前端网络驱动和后端网络驱动之间还可以具有事件通道,该事件通道可以用于前端网络驱动和后端网络驱动之间发送事件消息以唤醒前端网络驱动。[0031]参阅图1B,图1B为虚拟化环境下的数据包处理方法,该虚拟机具体可以为Xen虚拟机,Xen虚拟机的操作系统可以为:Linux系统,当然在实际应用中,上述Xen虚拟机的操作系统也可以为OpenBSD或windows操作系统,如图1所不,DriverDomain的Netback和GuestDomain的Netfront会通过Xenstore相互交互,构建出客户域与驱动域共享内存的10环,该10环可以用于交互消息,该方法如图1所示,包括如下步骤:[0032]步骤3101、他丨;^0111:请求分配客户域的口386(中文:页);该口386用于保存数据包;[0033]上述步骤SlOl通常称为page请求步骤和page分配步骤。[0034]步骤S102、Netfront调用Granttable机制授权DriverDomain可以访问该page,将该page的引用地址封装到请求消息(req)内,将该请求消息放置到客户域与驱动域共享内存的1环上;[0035]上述步骤S102中Netfront调用Granttable机制授权DriverDomain可以访问该page通常可以称为page授权步骤。[0036]步骤S103、Netback从共享内存的1环上获取请求信息得到该page的引用地址,并记录该请求消息在1环上的位置;[0037]步骤S104、Netback依据该引用地址将GuestDomain的数据包拷贝到该page内;[0038]步骤S105、Netback将拷贝完成字段封装到该请求消息的响应消息(rsp)内,将该响应消息放置到该1环上的该请求信息所占用的位置上;[0039]步骤5106、如七;1^0111:从该10环上取出响应消息(>8口),确定报文数据已经拷贝完毕,结束授权并释放该page。[0040]请参考图2,图2是本申请一实施例提出的一种虚拟化环境下的数据包处理方法,该方法应用于Xen虚拟机中,Xen虚拟机的操作系统可以为:Linux系统,当然在实际应用中,上述Xen虚拟机的操作系统也可以为OpenBSD或windows操作系统。具体的,该方法应用于Xen的GuestDomain的Netfront和DriverDomain的Netback中,上述GuestDomain或DriverDomain均可以设置在计算机或服务器中,该方法如图2所示,包括如下步骤:[0041]步骤S201、Netffont在客户域内配置pagepool(中文:页池);该pagepool用于存储授权DriverDomain访问的空闲page的引用地址;[0042]上述步骤S201中的pagepool可以为新增加的配置,其用处为将已授权DriverDomain访问且空闲的page的引用地址存储,这样在Netfront需要获取DriverDomain的数据包时,只需要直接从pagepool获取page的引用地址即可,去掉了复杂的page请求配置以及page授权DriverDomain访问等一系列的操作。[0043]步骤S202、Netfront建立客户域与驱动域共享内存的10环,在需要从DriverDomain获取数据包时,Netfront从pagepool内获取page的引用地址;[0044]上述步骤S201中Netfront建立客户域与驱动域共享内存的10环的建立方法可以为现有技术的客户域与驱动域共享内存的10环的建立方法,本申请实施例并不限制上述建立方法的具体实现方式。[0045]步骤S203、Netfront将该page的引用地址封装在请求消息内,将该请求消息放置在该客户域与驱动域共享内存的10环上;[0046]上述步骤S203中将page的引用地址封装在请求消息中的封装方法可以采用现有技术的封装方法,本申请的一实施例中对该封装方法并不限制,上述步骤S203中将该请求消息放置在客户域与驱动域共享内存的1环上的放置方法也可以采用现有技术的放置方法,本申请一实施例中对该放置方法并不限定。[0047]步骤S204、Netback从该客户域与驱动域共享内存的10环获取该请求消息,解析该请求消息获取page的引用地址;[0048]上述步骤S204中从该客户域与驱动域共享内存的10环获取该请求消息的获取方式可以采用现有技术的获取方式,本申请一实施例并不限制该获取的具体形式,该解析该请求消息获取page的引用地址的解析方式也可以采用现有技术的解析方式,本申请一实施例并不限制该解析的具体形式。[0049]步骤S205、Netback依据该page的引用地址将该数据包拷贝到该page的引用地址中,拷贝完成后,将拷贝完成字段封装到该请求消息的响应消息内;[0050]上述步骤S205中将依据该page的引用地址将该数据包拷贝到该page中的拷贝方式可以采用现有技术的拷贝方式,上述将拷贝完成字段封装到响应消息内中封装方式可以采用现有技术的封装方式,本申请一实施例并不限制该封装具体形式。[0051]步骤S206、Netback将该响应消息放置在客户域与驱动域共享内存的1环上;[0052]上述步骤S206的将该响应消息放置在客户域与驱动域共享内存的1环上的放置方式可以采用现有技术的放置方式。[0053]步骤S207、Netfront从客户域与驱动域共享内存的1环上获取该响应消息,从该页的引用地址读取该数据包。[0054]上述步骤S207中获取该响应消息的获取方式可以采用现有技术的获取方式,上述从该页的引用地址读取该数据包的读取方式以及作用也可以采用现有技术的方式,本申请并不限制该读取的具体形式。[0055]本申请一实施例提供的技术方案的实现原理为,在Netfront内配置pagepool,该pagepool放置已授权DriverDomain访问的空闲page的引用地址,通过配置pagepool,就能够减少page请求、page分配以及page授权的步骤,这样能够很大的提高GuestDomain的网络性能。因为对于GuestDomain来说,相当于配置了一批永久授权的page给需要接收的数据包使用,同时废除了page的临时授权,这样就避免了反复执行page请求、page分配以及page授权的步骤,这样减少了GuestDomain的处理器的开销,提升了虚拟机的吞吐量,这样就能够提高GuestDomaiη的网络性能。[0056]可选的,上述方法在步骤S207之后还可以包括:[0057]如所述数据包的大小小于设定值,在将该数据包拷贝到套接字缓存(英文全称:SocketBuffer,英文简称:SKB)内,将该SKB发送至协议栈处理后,清空该page的引用地址,将该page的引用地址放回到pagepool中。[0058]上述协议桟具体可以为TCP/IP(英文全称:TransferControlProtocol/InternetProtocol,中文:传输控制协议/网际协议)协议桟,其处理方式也属于现有技术的处理方式,这里不再赘述。[0059]上述技术方案仅仅针对小包数据包(即数据包的大小小于设定值),增加此方案,对于GuestDomain的开销更小,所以能够进一步提高GuestDomain的网络性能,对于小包数据包来说,一般情况小包数据包大小在255个字节以下,依据上述技术方案,需要将该小包数据包拷贝到SKB中,由于小包数据包的数据量小,所以拷贝到SKB所需开销较小,另外,清空该页以及将该页放置在页池中,也可以提高页的使用率,所以其能够进一步的提高GuestDomain的网络性能,对于大包数据包来说,一般情况下大包数据包的大小在255个字节以上,如果大包数据包也采用上述数据方案,则需要将大包数据包拷贝到SKB中,由于大包数据包的数据量大,所以拷贝到SKB所需开销较大,这样会消耗GuestDomain的网络性會K。[0060]可选的,上述方法在上述技术方案之后还可以包括:[0061]如该数据包的大小大于或等于设定值,则在将该数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内,以及将套接字缓存发送至协议栈处理,不将该页的引用地址放回到页池内。[0062]上述技术方案是针对大包数据方案进行处理,对于大包数据来说,由于大包数据拷贝到SKB内的开销较大,并且对于协议栈来说,其处理大包数据并不关心数据的具体内容,只需要报文头信息以及报文内容链接表即能够实现大包数据的处理,所以本申请技术方案仅将报文头信息以及报文内容链接表拷贝到SKB中,而无需进行大包数据包的拷贝,从而节省了GuestDomain的开销,提高了GuestDomain的网络性能。[0063]可选的,上述方法在步骤S202与步骤S203之间还可以包括:[0064]将获取的该页的引用地址从所述页池内删除。[0065]此设置是为了避免页池内存储正在使用的页的引用地址,避免一个页的引用地址被同时使用,假设一个页的引用地址被重复使用,则会出现,后面的数据包无法存储在页的引用地址内,因为页的引用地址已经被前面使用的数据包所占用,这样后面的数据包可能出现丢失。[0066]可选的,上述方法在步骤S207之后还可以包括:[0067]如页池内没有授权驱动域访问的空闲页的引用地址时,申请分配另外的页的引用地址,调用授权表机制授权驱动域访问另外的页的引用地址,将另外的页的引用地址放置在页池内。[0068]上述技术方案可以在pagepool没有已授权空闲page时,提前申请分配另外的page,这样可以减少数据包处理的等待时间,具体原因为,对于GuestDomain来说,其不需要持续的进行数据包处理,这样数据包处理就会有间隔时间,在pagepool没有已授权DriverDomain访问的空闲page时,如需要进行数据包处理,就需要临时申请另外的page的引用地址以及对另外的page的引用地址授权,在执行完授权后才能够执行如步骤S202-步骤S207,而上述技术方案在pagepool没有已授权DriverDomain访问的空闲page的引用地址时,重新申请另外的page的引用地址并添加到pagepool内,此重新申请可以在数据包处理的间隔时间中完成时,就能够减少数据包处理的等待时间。[0069]参阅图3,图3为本申请另一实施例提供的一种虚拟化环境下的数据包处理装置30,该装置可以配置在Xen虚拟机中,具体的可以配置在Xen虚拟机的GuestDomain内,上述Xen虚拟机的操作系统可以为:Linux系统,当然在实际应用中,上述Xen虚拟机的操作系统也可以为OpenBSD或windows操作系统。该装置如图3所示,包括:[0070]处理单元301,用于在客户域内配置页池,该页池用于存储授权驱动域访问的空闲页的引用地址;建立客户域与驱动域共享内存的输入输出环,在需要从驱动域获取数据包时,从页池内获取空闲页的引用地址;以及将该页的引用地址封装在请求消息内,将该请求消息放置在客户域与驱动域共享内存的输入输出环内,该请求消息用于指示该驱动域将该数据包拷贝到该页;[0071]读取单元302,还用于从该客户域与驱动域共享内存的输入输出环内取出该驱动域在将该数据包拷贝到该页后放置的该请求消息的响应消息;从该页的引用地址读取该数据包。[0072]本申请另一实施例提供的技术方案的实现原理为,处理单元配置在客户域内配置页池,该页池放置已授权驱动域访问的空闲页的引用地址,通过配置页池,就能够减少页请求分配以及页授权的操作,这样能够很大的提高客户域的网络性能。因为对于客户域来说,相当于配置了一批永久授权的页给需要接收的数据包使用,同时废除了页的临时授权,这样就避免了反复分配页、页引用地址以及页的授权,这样就能够提高客户域的网络性能。[0073]可选的,上述处理单元301,还用于将获取的该页的引用地址从页池内删除。[0074]此方案是为了避免页池内存储正在使用的页,避免一个页被同时使用,假设一个页被重复使用,则会出现,后面的数据包无法存储在页内,因为页已经备前面使用的数据包所占用,这样后面的数据包可能出现丢失。[0075]可选的,上述处理单元301,还用于当数据包的大小小于设定值时,将数据包拷贝到套接字缓存内;[0076]收发单元303,用于将该套接字缓存发送至协议栈处理;[0077]处理单元301,还用于在收发单元302将套接字缓存发送值协议栈处理后,清空页的引用地址,并将该页的引用地址放回到页池内。[0078]上述小包数据包以及协议栈的定义可以参见本申请一实施例的描述,这里不再赘述。上述方案的技术效果也可以参见本申请一实施例的描述,这里不再赘述。[0079]可选的,处理单元301,还用于当数据包的大小大于或等于设定值时,则在将数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内;[0080]收发单元303,用于将该套接字缓存发送至协议栈处理。[0081]上述大包数据包以及协议栈的定义可以参见本申请一实施例的描述,这里不再赘述。上述方案的技术效果也可以参见本申请一实施例的描述,这里不再赘述。[0082]可选的,处理单元301,还用于如页池内没有授权驱动域访问的空闲页的引用地址时,申请分配另外的页的引用地址,调用授权表机制授权驱动域访问另外的页的引用地址,将另外的页的引用地址放置在页池内。[0083]上述方案的技术效果可以参见本申请一实施例的描述,这里不在赘述。[0084]参阅图1A,图1A为本申请下一实施例提供的一种主机,该主机包括:驱动域10、客户域11、虚拟机监视器、网卡12;客户域10和驱动域11运行在虚拟机监视器之上,其中,客户域11具体可以包括:用户应用、前端网络驱动程序和协议栈,驱动域10具体可以包括:网卡驱动、软件网桥和后端网络驱动程序;[0085]该网络前端驱动程序,用于在客户域配置页池,该页池用于存储授权驱动域访问的空闲页的引用地址;建立该客户域与该驱动域共享内存的输入输出环;在需要从驱动域获取数据包时,从该页池获取页的引用地址;将该页的引用地址封装在请求消息内,将该请求消息放置在该输入输出环内,[0086]该网络后端驱动程序,用于从该输入输出环读取该请求消息,获取请求消息中的页的引用地址,并将来自网卡的数据包拷贝到该页的引用地址;将该请求消息的响应消息放置到该输入输出环内;[0087]该网络前端驱动程序,还用于从该输入输出环取出该请求消息的响应消息,从该页的引用地址读取该数据包。[0088]本申请下一实施例提供的技术方案的实现原理为,在Netfront内配置pagepool,该pagepool放置已授权DriverDomain访问的空闲page的引用地址,通过配置pagepool,就能够减少page请求、page分配以及page授权的步骤,这样能够很大的提高GuestDomain的网络性能,进而提高主机的网络性能。因为对于GuestDomain来说,相当于配置了一批永久授权的page给需要接收的数据包使用,同时废除了page的临时授权,这样就避免了反复执行page请求、page分配以及page授权的步骤,这样减少了主机的处理器的开销,提升了虚拟机的吞吐量,这样就能够提高主机的网络性能。[0089]可选的,上述网络前端驱动程序还可以用于执行如图2所示实施例中的方法,上述下一实施例技术术语的定义、细化方案以及技术效果均可以参见如图2所示实施例的描述,这里不再赘述。[0090]参阅图4,图4为本申请又一实施例提供的一种客户域设备40,该客户域设备40如图4所示,包括:该设备40包括处理器401、存储器402、收发器403和总线404。收发器403用于与外部设备之间收发数据。设备40中的处理器401的数量可以是一个或多个。本申请的一些实施例中,处理器401、存储器402和收发器403可通过总线或其他方式连接。设备40可以用于执行图2所示的方法。关于本实施例涉及的术语的含义以及举例,可以参考图2对应的实施例。此处不再赘述。[0091]其中,存储器402中存储程序代码。处理器401用于调用存储器402中存储的程序代码,用于执行以下操作:[0092]处理器401,用于在客户域配置页池,该页池用于存储授权驱动域访问的空闲页的引用地址;建立客户域与驱动域共享内存的输入输出环,在需要从驱动域获取数据包时,从页池内获取页的引用地址;以及将该页的引用地址封装在请求消息内,将该请求消息放置在客户域与驱动域共享内存的输入输出环内,该请求消息用于指示该驱动域将该数据包拷贝到该页的引用地址;[0093]处理器401,还用于从该客户域与驱动域共享内存的输入输出环内取出该驱动域在将该数据包拷贝到该页后放置的该请求消息的响应消息;从该页的引用地址读取该数据包。[0094]上述客户域设备40的技术效果可以参见本申请如图2所示实施例的描述,这里不再赘述。[0095]可选的,处理器401以及收发器403执行图2的方法。[0096]需要说明的是,在通讯系统中,示例性地,就虚拟机而言,客户域设备40可以是服务器或者计算机等设备,相应的,驱动域设备也可以是服务器或者计算机等设备。[0097]需要说明的是,这里的处理器401可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(CentralProcessingUnit,CPU),也可以是特定集成电路(Applicat1nSpecificIntegratedCircuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsingnalprocessor,DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,FPGA)ο[0098]存储器403可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器403可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatilememory),例如磁盘存储器,闪存(Flash)等。[0099]总线404可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、夕卜部设备互连(PeripheralComponent,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0100]该客户域设备还可以包括输入输出装置,连接于总线404,以通过总线与处理器401等其它部分连接。该输入输出装置可以为操作人员提供一输入界面,以便操作人员通过该输入界面选择布控项,还可以是其它接口,可通过该接口外接其它设备。[0101]需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。[0102]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。[0103]以上对本申请实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。【主权项】1.一种虚拟化环境下的数据包处理方法,其特征在于,所述方法包括:在客户域配置页池,所述页池用于存储授权驱动域访问的空闲页的引用地址;建立所述客户域与所述驱动域共享内存的输入输出环;在需要从驱动域获取数据包时,从所述页池获取页的引用地址;将所述页的引用地址封装在请求消息内,将所述请求消息放置在所述输入输出环内,所述请求消息用于指示所述驱动域将所述数据包拷贝到所述页的引用地址;从所述输入输出环取出所述驱动域在将所述数据包拷贝到所述页的引用地址后放置的所述请求消息的响应消息,从所述页的引用地址读取所述数据包。2.根据权利要求1所述的方法,其特征在于,从所述页池获取页的引用地址之后,还包括:将获取的所述页的引用地址从所述页池内删除。3.根据权利要求1或2所述的方法,其特征在于,从所述页的引用地址读取所述数据包之后,所述方法还包括:如所述数据包的大小小于设定值,则在将所述数据包拷贝到套接字缓存内,以及将所述套接字缓存发送至协议栈处理后,清空所述页的引用地址,并将所述页的引用地址放回到所述页池内。4.根据权利要求3所述的方法,其特征在于,从所述页的引用地址读取所述数据包之后,所述方法还包括:如所述数据包的大小大于或等于设定值,则在将所述数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内,以及将所述套接字缓存发送至协议栈处理。5.根据权利要求1所述的方法,其特征在于,在从所述页池内获取空闲页的引用地址之前还包括:如所述页池内没有空闲页的引用地址时,申请分配另外的页的引用地址,调用授权表机制授权驱动域访问所述另外的页的引用地址,将所述另外页的引用地址放置在所述页池内。6.一种虚拟化环境下的数据包处理装置,其特征在于,所述装置包括:处理单元,用于在客户域配置页池,所述页池用于存储授权驱动域访问的空闲页的引用地址;建立客户域与驱动域共享内存输入输出环,在需要从驱动域获取数据包时,从所述页池内获取页的引用地址;以及将所述页的引用地址封装在请求消息内,将所述请求消息放置在输入输出环内,所述请求消息用于指示所述驱动域将所述数据包拷贝到所述页的引用地址;读取单元,还用于从所述输入输出环内取出所述驱动域在将所述数据包拷贝到所述页的引用地址后放置的所述请求消息的响应消息,从所述页的引用地址读取所述数据包。7.根据权利要求6所述的装置,其特征在于,所述处理单元,还用于将获取的所述页的引用地址从所述页池内删除。8.根据权利要求6或7所述的装置,其特征在于,所述处理单元,还用于当所述数据包的大小小于设定值时,将所述数据包拷贝到套接字缓存内;收发单元,用于将所述套接字缓存发送至协议栈处理;所述处理单元,还用于在所述收发单元将所述套接字缓存发送值协议栈处理后,清空所述页的引用地址,并将所述页的引用地址放回到所述页池内。9.根据权利要求8所述的装置,其特征在于,所述处理单元,还用于所述数据包的大小大于或等于设定值,则在将所述数据包的报文头信息以及报文内容链接表拷贝到套接字缓存内;收发单元,用于将所述套接字缓存发送至协议栈处理。10.根据权利要求6所述的装置,其特征在于,所述处理单元,还用于如所述页池内没有空闲页的引用地址时,申请分配另外的页的引用地址,调用授权表机制授权驱动域访问所述另外的页的引用地址,将所述另外页的引用地址放置在所述页池内。11.一种客户域设备,其特征在于,所述设备包括:一个或多个处理器、存储器、总线、收发器以及一个或多个程序,所述一个或多个处理器、所述存储器和所述收发器通过所述总线相连;其中,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述客户域设备执行时使所述客户域设备执行如权利要求1-5任意一项所述的方法。12.—种主机,所述主机包括:客户域、驱动域、虚拟机监视器和网卡,所述客户域和所述驱动域运行在所述虚拟机监视器之上,所述客户域包括:网络前端驱动程序,所述驱动域包括:网络后端驱动程序:其特征在于,所述网络前端驱动程序,用于在客户域配置页池,所述页池用于存储授权驱动域访问的空闲页的引用地址;建立所述客户域与所述驱动域共享内存的输入输出环;在需要从驱动域获取数据包时,从所述页池获取页的引用地址;将所述页的引用地址封装在请求消息内,将所述请求消息放置在所述输入输出环内,所述网络后端驱动程序,用于从所述输入输出环读取所述请求消息,获取请求消息中的所述页的引用地址,并将来自所述网卡的所述数据包拷贝到所述页的引用地址;将所述请求消息的响应消息放置到所述输入输出环内;所述网络前端驱动程序,还用于从所述输入输出环取出所述请求消息的响应消息,从所述页的引用地址读取所述数据包。13.根据权利要求12所述的主机,其特征在于,所述网络前端驱动程序,还用于将所述获取页的引用地址从所述页池内删除。14.根据权利要求12或13所述的主机,其特征在于,所述网络前端驱动程序,用于当所述数据包的大小小于设定值时,则在将所述数据包拷贝到套接字缓存内,以及将所述套接字缓存发送至协议栈处理后,清空所述页的引用地址,并将所述页的引用地址放回到所述页池内。【文档编号】G06F9/455GK105893112SQ201610187968【公开日】2016年8月24日【申请日】2016年3月29日【发明人】于洲,张磊强,庄毓新,罗浩【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1