none
附加拥塞控制提供程序 Add-On Congestion Control Provider问题咨询! RRS feed

  • 问题

  • 尊敬的微软工程师,

    TCP中附加拥塞控制提供程序 Add-On Congestion Control Provider默认在Windows2008r2,2012r2,2016各版本是不同的

    Windows2008r2默认状态下值为CTCP

    Windows2012r2默认状态下值为None

    Windows2016默认状态下值为None

    Windows2019默认状态下值为default

    我想咨询这个究竟应该怎么设置比较合理?

    CTCP、None、default在系统注册表中对应的键值是什么能否告知?


    谷青松


    • 已编辑 谷青松 2020年9月16日 7:38 补充修改
    2020年9月16日 7:36

答案

  • Hello,

    暂时没有08的机器做测试,拿了16和19做了一下测试。根据我的测试结果,从12之后Add-On Congestion Control Provider应该是没有办法更改的,也没有对应的注册表键值。如果您发现可以更改的话,可以分享一下您的方法,我这边再做测试。

    在12之后,应该是要选择TCP模板来配置对应的CongestionProvider。比如在08或者是windows7上都能直接通过netsh interface tcp set global congestionprovider=ctcp/none去更改Add-On Congestion Control Provider中的显示。而12之后,必须要指定TCP模板之后,才能去更改congestionprovider。

    如下图所示,server16上如下的TCP模板类型,通过netsh int tcp show supplemental命令可以看到当前默认使用的是internet模板,对应的congestionprovider是CTCP:

    通过命令将模板更改为internetcustom,然后再更改CongestionProvider为DCTCP。

    12和16上可以切换CTCP和DCTCP。而到了19上,默认是使用Cubic拥塞算法了,可以切换cubic和LEDBAT:

    关于server 2019上的TCP模板,可以参考以下的文章:

    https://techcommunity.microsoft.com/t5/networking-blog/tcp-templates-for-windows-server-2019-8211-how-to-tune-your/ba-p/339795

    对于Add-On Congestion Control Provider,server 12,server 16,server 19都会一直显示其默认状态下的值。并没有找到方法修改。

    此致

    Candy



    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月17日 7:16
    版主
  • Hello,

    12和16上只能在CTCP和DCTCP之间进行切换,19上默认是CUBIC算法。

    可以对比一下新旧两种版本的默认值之间吞吐量比较:

    CUBIC可以通过更快地提升到更高的速度来更好地管理拥塞,从而提高整体吞吐量。19上默认就是CUBIC不建议去进行变动。

    >>感谢您的测试结果,还是希望您能告诉我设置什么值比较合理,默认究竟应该是CTCP还是DCTCP,None和default这两个意味着是什么值?

    没有找到任何文档说明。说实话,这个有点太深入了,这些都已经涉及到底层算法逻辑了。和同事进行了讨论之后,我们认为不要去修改这些值了。我们基本上不会涉及到让用户去修改CongestionProvider参数的。

    如果想要深入了解这个信息的话,我建议还是和微软开case的,他们可能有更多详细的资料可供研究。

    此致

    Candy




    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月24日 5:31
    2020年9月21日 3:58
    版主

全部回复

  • Hello,

    暂时没有08的机器做测试,拿了16和19做了一下测试。根据我的测试结果,从12之后Add-On Congestion Control Provider应该是没有办法更改的,也没有对应的注册表键值。如果您发现可以更改的话,可以分享一下您的方法,我这边再做测试。

    在12之后,应该是要选择TCP模板来配置对应的CongestionProvider。比如在08或者是windows7上都能直接通过netsh interface tcp set global congestionprovider=ctcp/none去更改Add-On Congestion Control Provider中的显示。而12之后,必须要指定TCP模板之后,才能去更改congestionprovider。

    如下图所示,server16上如下的TCP模板类型,通过netsh int tcp show supplemental命令可以看到当前默认使用的是internet模板,对应的congestionprovider是CTCP:

    通过命令将模板更改为internetcustom,然后再更改CongestionProvider为DCTCP。

    12和16上可以切换CTCP和DCTCP。而到了19上,默认是使用Cubic拥塞算法了,可以切换cubic和LEDBAT:

    关于server 2019上的TCP模板,可以参考以下的文章:

    https://techcommunity.microsoft.com/t5/networking-blog/tcp-templates-for-windows-server-2019-8211-how-to-tune-your/ba-p/339795

    对于Add-On Congestion Control Provider,server 12,server 16,server 19都会一直显示其默认状态下的值。并没有找到方法修改。

    此致

    Candy



    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月17日 7:16
    版主
  • 感谢您的测试结果,还是希望您能告诉我设置什么值比较合理,默认究竟应该是CTCP还是DCTCP,None和default这两个意味着是什么值?

    谷青松

    2020年9月18日 1:31
  • Hello,

    12和16上只能在CTCP和DCTCP之间进行切换,19上默认是CUBIC算法。

    可以对比一下新旧两种版本的默认值之间吞吐量比较:

    CUBIC可以通过更快地提升到更高的速度来更好地管理拥塞,从而提高整体吞吐量。19上默认就是CUBIC不建议去进行变动。

    >>感谢您的测试结果,还是希望您能告诉我设置什么值比较合理,默认究竟应该是CTCP还是DCTCP,None和default这两个意味着是什么值?

    没有找到任何文档说明。说实话,这个有点太深入了,这些都已经涉及到底层算法逻辑了。和同事进行了讨论之后,我们认为不要去修改这些值了。我们基本上不会涉及到让用户去修改CongestionProvider参数的。

    如果想要深入了解这个信息的话,我建议还是和微软开case的,他们可能有更多详细的资料可供研究。

    此致

    Candy




    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月24日 5:31
    2020年9月21日 3:58
    版主