支持 VMQ 接口的网络适配器包括路由数据包以接收队列的硬件。 这需要分析网络适配器上队列的数据包标头和配置。
当微型端口驱动程序发出接收指示时,所有数据包都针对同一 VM 队列。
作为选项,网络适配器可以在硬件中为指定的媒体访问控制 (MAC) 地址提供 VLAN 筛选。
将数据包路由到队列,并向 VM 指示队列中的所有数据包时,可对多个 VM 进行并发接收处理。 每个队列都由不同的处理器提供服务。
路由到网络适配器中的队列可防止复制步骤将数据从网络适配器接收缓冲区复制到 VM 地址空间。
下图显示了 VMQ 接口中的合成数据路径。
此图表说明了使用 vmq 的合成设备数据路径。
在图中,物理网络适配器的微型端口驱动程序最多可向 Hyper-V 可扩展交换机组件指示收到的数据。 此组件充当网络虚拟服务提供程序 (NetVSP),并提供服务来支持 Hyper-V 子分区的网络访问。
可扩展交换机提供的服务包括在来宾操作系统中的虚拟机 (VM) 网络适配器之间路由数据包。 VM 网络适配器由在来宾操作系统中运行的网络虚拟服务客户端 (NetVSC) 公开。
在 VMQ 下,物理网络适配器会将与 VMQ 的接收筛选器测试匹配的数据直接传输到该队列。 这可防止在可扩展交换机中进行软件处理。 未通过任何筛选器测试的数据都将转到可扩展交换机必须处理数据的默认队列。 除了防止在可扩展交换机中进行路由和复制之外,还会将 VM 队列的接收中断分配给不同的处理器。
有关 VMQ 接口的详细信息,请参阅虚拟机队列 (VMQ)。