none
tcp全局参数默认修改差异的说明 RRS feed

  • 问题

  • 尊敬的微软工程师

    有没有官方对Windows2008r2、Windows2012r2和Windows2016 tcp全局参数默认修改差异的说明?


    谷青松

    2020年9月15日 8:26

答案

  • 您好,

    如果您要对TCP 全局参数进行修改,请参考如方法:

    *请注意CMD 以及Powershell窗口都需要以管理员身份运行

    1. 接收端缩放状态 Receive-Side Scaling State

    默认设置:启用

    推荐设置:启用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global rss =enable

     

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Enable-NetAdapterRss -Name *    (使用此选项可为支持它的所有适配器启用RSS

    Disable-NetAdapterRss -Name *(使用此选项可禁用所有适配器的RSS

    Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled(所有适配器的备用全局命令)

     

    2. 烟囱卸载状态 Chimney Offload State

    默认设置:2008 自动,2012 2016禁用

    推荐设置: 2008 自动,2012 2016禁用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global chimney=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetOffloadGlobalSetting -Chimney Disabled   (recommended: disabled*)

     

    3. NetDMA状态 NetDMA State

    默认设置:2008 启用,2012 2016中禁用(20122016中不支持此功能)

    推荐设置:不用改动此设置

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global netdma=enabled

     

    4. 直接缓存访问(DCADirect Cache Access (DCA)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global dca=disabled

     

    5. 接收窗口自动调整级别 Receive Window Auto-Tuning Level

    默认设置:normal

    推荐设置:normal(除非您遇到问题)

    若要进行修改,请在PowerShell(或CMD窗口中)中键入:

    netsh int tcp set global autotuninglevel = normal

    使用PowerShell cmdlet 也可以完成相同的操作(适用于server 2012 2016),只需键入:

    Set-NetTCPSetting -SettingName InternetCustom -AutoTuningLevelLocal Normal

     

    6. 附加拥塞控制提供程序 Add-On Congestion Control Provider

    默认设置:CTCP

    推荐设置:CTCP

    若要进行修改,请在PowerShell(或CMD窗口中)中键入:

    Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider CTCP

    或在cmd窗口中键入:

    netsh int tcp set supplemental Internet congestionprovider=ctcp

     

    7. ECN Capability

    默认设置:2008 enabled, 2012 2016 disabled

    推荐设置:在存在拥塞/数据包丢失的情况下可以启用,否则可以禁用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global ecncapability=default

    如果要使用PowerShell cmdlet进行更改,请执行以下操作

    Set-NetTCPSetting -SettingName InternetCustom -EcnCapability Disabled

     

    8. RFC 1323 Timestamps

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global timestamps=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -Timestamps Disabled

     

    9. 初始RTO Initial RTO 2008版本不支持此功能)

    默认设置:3000 (3 seconds)

    推荐设置:2000 (2 seconds) - 3000 (3 seconds).

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global initialRto=3000

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -InitialRto 3000

     

    10. Receive Segment Coalescing State2008版本不支持此功能)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global rsc=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing disabled

     

    11. Non Sack Rtt Tesiliency 2008版本不支持此功能)

    默认设置:disabled

    推荐设置:对于稳定的连接,没有太大的延迟,建议为“禁用”;对于ping命令有波动且有丢包的连接,建议为“启用”。

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global nonsackrttresiliency=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -NonSackRttResiliency disabled

     

    12. 最大SYN重传次数 Max SYN Retransmissions 2008版本不支持此功能)

    可能的设置:2-8

    默认设置:2

    推荐设置:2

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global maxsynretransmissions=2

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -MaxSynRetransmissions 2

     

    13. TCP Fast Open 2008 2012版本不支持此功能)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global fastopen=disabled

    此致,

    Sunny


    Please remember to mark the replies as an answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com   

    • 已标记为答案 谷青松 2020年9月18日 6:08
    2020年9月16日 9:15

全部回复

  • 您好,

    根据我的搜索,目前没有很全面的关于修改不同版本server中的TCP全局参数的官方文档。

    关于TCP全局参数在不同版本server中的默认配置,请参考下表:

    1. 接收端缩放状态 Receive-Side Scaling State

    当网络适配器少于服务器上的逻辑处理器时,RSS(接收方缩放状态)可以提高Web可伸缩性和性能。 当所有Web通信都通过支持RSS的网络适配器时,服务器可以跨不同的CPU同时处理来自不同连接的传入Web请求。

    如果禁用此功能,则将增加OS CPU的工作量,因为来自网络适配器的所有网络进程将由OS中的单个CPU服务处理。

    更多信息请参考以下链接:
    Using Receive Side Scaling

    2. 烟囱卸载状态 Chimney Offload State

    TCP烟囱卸载将传输控制协议(TCP)流量处理(例如数据包分段和重组处理任务)从计算机的CPU传输到支持TCP烟囱卸载的网络适配器。将TCP / IP处理从CPU移到网络适配器可以使CPU释放执行更多应用程序级功能的能力。如果网络适配器支持,TCP Chimney Offload可以分流TCP / IPv4和TCP / IPv6连接的处理。

    更多信息请参考以下链接:
    Using TCP Chimney Offload

    3. NetDMA状态 NetDMA State

    TCP / IP使用NetDMA减轻了CPU将接收到的数据复制到应用程序缓冲区中的负担,减少了内存之间数据传输所需的CPU处理负担, 从而减轻了CPU负载。

    更多信息请参考以下链接:
    https://support.microsoft.com/en-us/help/951037/information-about-the-tcp-chimney-offload-receive-side-scaling-and-net

    4. 直接缓存访问(DCA)Direct Cache Access (DCA)

    直接高速缓存访​​问(DCA)  允许功能强大的I / O设备(例如网络控制器)将数据直接放入CPU高速缓存中,从而

    减少高速缓存未命中并提高应用程序响应时间。

    5. 接收窗口自动调整级别 Receive Window Auto-Tuning Level

    在Windows Vista,Windows Server 2008和更高版本的Windows中,Windows网络堆栈使用名为TCP接收窗口自动调整级别的功能来协商TCP接收窗口大小。 此功能可以在TCP握手期间为每个TCP通信协商定义的接收窗口大小。

    如果禁用自动调整,则Windows网络堆栈将使用固定大小的接收窗口(65,535字节),该窗口限制了连接的总体潜在吞吐量。 TCP连接可达到的总吞吐量可能会限制网络使用。

    6. 附加拥塞控制提供程序 Add-On Congestion Control Provider

    TCP中的传统慢启动和拥塞避免算法通过在传输开始时逐渐增加TCP窗口直到达到TCP接收窗口边界或发生数据包丢失,来帮助避免网络拥塞。对于将高TCP窗口与较高延迟(高BDP)相结合的宽带 Internet连接,这些算法不能足够快地增加TCP窗口以充分利用连接带宽。

    复合TCP(CTCP)是一种较新的拥塞控制方法,可为宽带连接(具有较大的RWIN和BDP)更加积极地增加TCP发送窗口。CTCP试图通过监视延迟变化和数据包丢失来最大化吞吐量。它还可以确保其行为不会对其他TCP连接产生负面影响。CTCP在Windows 8/10和Server版本中可用。使用CTCP可以显着提高吞吐量和数据包丢失恢复。

    7. ECN Capability

    ECN(显式拥塞通知,RFC 3168)是一种机制,可为路由器提供通信网络拥塞的另一种方法。目的是减少重传。本质上,ECN假定任何数据包丢失的原因都是路由器拥塞。它允许出现拥塞的路由器标记数据包,并允许客户端自动降低其传输速率以防止进一步的数据包丢失。传统上,TCP / IP网络通过丢弃数据包来表示拥塞。成功协商ECN后,支持ECN的路由器可以在IP 标头中(在DiffServ字段中)设置一个位,而不是丢弃数据包为了表示拥塞。接收者将拥塞指示回送给发送者,发送者必须做出反应,就像检测到数据包丢失一样。在现代Windows TCP / IP实现中,默认情况下禁用

    8. RFC 1323 Timestamps

    RFC 1323提供了许多有用的选项,尤其是TCP窗口的缩放。“ 时间戳 ”(TSOpt)是一种不太常用的1323选项,旨在通过重发在某个重传超时(RTO)间隔内未确认的段来提高传输可靠性。时间戳的问题在于,它们会将12个字节添加到每个数据包的20字节TCP报头中,因此打开它们会导致相当大的开销

    9. 初始RTO Initial RTO

    超时重传(RTO)决定了在中止连接之前需要花费多少毫秒对于未确认的数据进行重传。对于低延迟的现代宽带连接,通常可以将初始RTO的默认超时降低为3秒,除非您位于远程位置,通过卫星Internet连接或遇到高延迟。在高延迟情况下,如果定期达到RTO值,则可能会增加重传。

    10. Receive Segment Coalescing State

    RSC是一种无状态卸载技术,可通过将任务从CPU卸载到支持RSC的网络适配器上来帮助降低接收方网络处理的CPU利用率。与网络相关的处理导致的CPU饱和会限制服务器的可伸缩性。反过来,此问题会降低事务处理速率,原始吞吐量和效率。

    更多信息请参考以下链接:
    Receive Segment Coalescing (RSC)

    11. Non Sack Rtt Tesiliency

    为非SACK客户端启动/禁用弹性RTT。这可以帮助降低客户端/连接的速度,因为在启用时它使 TCP/IP重新传输数据包时不那么具有攻击性。

    12. 最大SYN重传次数 Max SYN Retransmissions

    设置尝试用SYN数据包重新建立连接的最大次数

    13. TCP Fast Open

    TCP Fast Open 可以加快两个端点之间连续的传输控制协议(TCP)连接的打开速度。它通过使用TFO cookie(TCP选项)来工作,该cookie是存储在客户端上。客户端重新连接时,它将发送初始SYN数据包以及TFO cookie数据以进行身份​​验证。如果成功,则服务器可能甚至在接收到三向握手的最终ACK数据包之前就开始向客户端发送数据,从而跳过了往返延迟并降低了数据传输开始时的延迟。

    此致

    Sunny


    Please remember to mark the replies as an answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com   



    2020年9月16日 6:24
  • 您好,

    如果您要对TCP 全局参数进行修改,请参考如方法:

    *请注意CMD 以及Powershell窗口都需要以管理员身份运行

    1. 接收端缩放状态 Receive-Side Scaling State

    默认设置:启用

    推荐设置:启用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global rss =enable

     

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Enable-NetAdapterRss -Name *    (使用此选项可为支持它的所有适配器启用RSS

    Disable-NetAdapterRss -Name *(使用此选项可禁用所有适配器的RSS

    Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled(所有适配器的备用全局命令)

     

    2. 烟囱卸载状态 Chimney Offload State

    默认设置:2008 自动,2012 2016禁用

    推荐设置: 2008 自动,2012 2016禁用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global chimney=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetOffloadGlobalSetting -Chimney Disabled   (recommended: disabled*)

     

    3. NetDMA状态 NetDMA State

    默认设置:2008 启用,2012 2016中禁用(20122016中不支持此功能)

    推荐设置:不用改动此设置

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global netdma=enabled

     

    4. 直接缓存访问(DCADirect Cache Access (DCA)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global dca=disabled

     

    5. 接收窗口自动调整级别 Receive Window Auto-Tuning Level

    默认设置:normal

    推荐设置:normal(除非您遇到问题)

    若要进行修改,请在PowerShell(或CMD窗口中)中键入:

    netsh int tcp set global autotuninglevel = normal

    使用PowerShell cmdlet 也可以完成相同的操作(适用于server 2012 2016),只需键入:

    Set-NetTCPSetting -SettingName InternetCustom -AutoTuningLevelLocal Normal

     

    6. 附加拥塞控制提供程序 Add-On Congestion Control Provider

    默认设置:CTCP

    推荐设置:CTCP

    若要进行修改,请在PowerShell(或CMD窗口中)中键入:

    Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider CTCP

    或在cmd窗口中键入:

    netsh int tcp set supplemental Internet congestionprovider=ctcp

     

    7. ECN Capability

    默认设置:2008 enabled, 2012 2016 disabled

    推荐设置:在存在拥塞/数据包丢失的情况下可以启用,否则可以禁用

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global ecncapability=default

    如果要使用PowerShell cmdlet进行更改,请执行以下操作

    Set-NetTCPSetting -SettingName InternetCustom -EcnCapability Disabled

     

    8. RFC 1323 Timestamps

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global timestamps=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -Timestamps Disabled

     

    9. 初始RTO Initial RTO 2008版本不支持此功能)

    默认设置:3000 (3 seconds)

    推荐设置:2000 (2 seconds) - 3000 (3 seconds).

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global initialRto=3000

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -InitialRto 3000

     

    10. Receive Segment Coalescing State2008版本不支持此功能)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global rsc=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing disabled

     

    11. Non Sack Rtt Tesiliency 2008版本不支持此功能)

    默认设置:disabled

    推荐设置:对于稳定的连接,没有太大的延迟,建议为“禁用”;对于ping命令有波动且有丢包的连接,建议为“启用”。

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global nonsackrttresiliency=disabled

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -NonSackRttResiliency disabled

     

    12. 最大SYN重传次数 Max SYN Retransmissions 2008版本不支持此功能)

    可能的设置:2-8

    默认设置:2

    推荐设置:2

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global maxsynretransmissions=2

    如果要使用PowerShell cmdlet进行更改,请执行以下操作:

    Set-NetTCPSetting -SettingName InternetCustom -MaxSynRetransmissions 2

     

    13. TCP Fast Open 2008 2012版本不支持此功能)

    默认设置:disabled

    推荐设置:disabled

    若要进行修改,请在CMD窗口中键入:

    netsh int tcp set global fastopen=disabled

    此致,

    Sunny


    Please remember to mark the replies as an answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com   

    • 已标记为答案 谷青松 2020年9月18日 6:08
    2020年9月16日 9:15