仅硬件 (HO) 功能和技术

适用范围:Windows Server 2022、Windows Server 2019、Azure Stack HCI 版本 21H2 和 20H2

这些硬件加速结合软件可提高网络性能,却又不是任何软件功能的重要组成部分。 示例包括中断审查、流控制和接收端 IPv4 校验和负载转移。 若要了解详细信息,请参阅 Azure Stack HCI 的主机网络要求

提示

如果安装的 NIC 支持它,则 SH 和 HO 功能可用。 以下功能说明将介绍如何判断 NIC 是否支持该功能。

地址校验和卸载

地址校验和卸载是一项 NIC 功能,可将地址校验和(IP、TCP、UDP)的计算卸载到 NIC 硬件,以便进行发送和接收。

在接收路径上,校验和卸载会(根据情况)计算 IP、TCP 和 UDP 标头中的校验和,并向 OS 指示校验和是通过、失败还是未检查。 如果 NIC 断言校验和有效,则 OS 将接受数据包而不被质询。 如果 NIC 断言校验和无效或未检查,IP/TCP/UDP 堆栈会在内部再次计算校验和。 如果计算的校验和失败,数据包将被丢弃。

在发送路径上,校验和卸载会计算校验和,并根据需要将校验和插入到 IP、TCP 或 UDP 标头中。

在发送路径上禁用校验和卸载不会禁用使用大型发送卸载 (LSO) 功能发送到小端口驱动程序的数据包的校验和计算和插入。  若要禁用所有校验和卸载计算,用户还必须禁用 LSO。

管理地址校验和卸载

在“高级属性”中,有几个不同的属性:

  • IPv4 校验和卸载

  • TCP 校验和卸载 (IPv4)

  • TCP 校验和卸载 (IPv6)

  • UDP 校验和卸载 (IPv4)

  • UDP 校验和卸载 (IPv6)

默认情况下,这些属性始终处于启用状态。 建议始终启用所有这些卸载。

可以使用 Enable-NetAdapterChecksumOffload 和 Disable-NetAdapterChecksumOffload cmdlet 来管理校验和卸载。 例如,以下 cmdlet 可启用 TCP (IPv4) 和 UDP (IPv4) 校验和计算:

Enable-NetAdapterChecksumOffload –Name * -TcpIPv4 -UdpIPv4

地址校验和卸载使用技巧

无论工作负载或环境如何,都应“始终”启用地址校验和卸载。 这种最基本的卸载技术可一直提高网络性能。 其他无状态卸载也需要校验和卸载才能正常工作,包括接收端缩放 (RSS)、接收段合并 (RSC) 和大型发送卸载 (LSO)。

中断调解 (IM)

IM 会在中断操作系统之前缓冲多个收到的数据包。 当 NIC 收到数据包时,它会启动计时器。 当缓冲区已满或计时器过期(以先到者为准)时,NIC 会中断操作系统。

许多 NIC 不仅可支持打开/关闭中断调解。 大多数 NIC 可支持低速率、中速率和高速率的 IM。 不同的速率表示较短或更长的计时器以及相应的缓冲区大小调整,用于减少延迟(低中断调解)或减少中断(高中断调解)。

在减少中断和过度延迟传送数据包之间需要进行平衡。 通常,启用中断调解后,数据包处理效率会更高。 高性能或低延迟应用程序可能需要评估禁用或减少中断调解的影响。

Jumbo 帧

巨型帧是一种 NIC 和网络功能,可允许应用程序发送远大于默认 1500 字节的帧。 通常,巨型帧的限制约为 9000 字节,但可能更小。

Windows Server 2012 R2 中对巨型帧支持没有更改。

Windows Server 2016 中有一个新的卸载:MTU_for_HNV。 此新卸载适用于巨型帧设置,可确保封装的流量不需要在主机和相邻交换机之间进行分段。 SDN 堆栈的这一新功能可使 NIC 自动计算要播发的 MTU 以及要在线路上使用的 MTU。 如果正在使用任何 HNV 卸载,则 MTU 的这些值会有所不同。 (在功能兼容性表(表 1)中,MTU_for_HNV 将具有与 HNVv2 卸载相同的交互,因为它与 HNVv2 卸载直接相关。)

大量发送卸载 (LSO)

LSO 允许应用程序将大型数据块传递到 NIC,NIC 将数据分解为适合网络最大传输单位 (MTU) 的数据包。

Receive Segment Coalescing (RSC)

接收段合并(也称为大规模接收卸载)是一种 NIC 功能,获取属于同一流并在网络中断之间到达的数据包,将它们合并为单个数据包,然后传送到操作系统。 RSC 在绑定到 Hyper-V 虚拟交换机的 NIC 上不可用。 有关详细信息,请参阅接收段合并 (RSC)