gpt4 book ai didi

.net - WCF/SOAP 中的 Nagle 算法真的有用吗?

转载 作者:行者123 更新时间:2023-12-04 15:13:16 31 4
gpt4 key购买 nike

我看过很多关于在 Azure 上工作时禁用 WCF 中的 Nagle 算法的帖子。我一直想知道这是否仅适用于 Azure 或者这是否应该是更通用的最佳实践。

如各种来源所述,Nagle 算法基本上将小的 TCP 请求批处理为单个较大的请求。批处理基于每个连接进行。

我在专业环境中看到的大多数 WCF 传输都是小数据块,由单个线程发送,并且主要是双向的。我知道这并不是 Nagle 算法的理想情况。

所以......我的结论是否正确,最好简单地总是 在使用 WCF 或 SOAP 时禁用它,无论上下文如何?

最佳答案

据我了解,Nagle 的算法仅在数据以低于网络吞吐量的速率以小块流式传输时才有帮助。例如,如果它是来自某个硬件传感器的视频馈送或恒定输出(实时无关紧要,但历史无关紧要)。
想象一下极端情况——所有这些数据都是在没有 Nagle 算法的情况下逐字节发送的,实际上是将流量乘以 41。

相反,当数据被写入一大块(SOAP 请求)然后被一大块接收(SOAP 响应)时,它当然没有用,甚至有害(由于延迟)。因此,建议将其关闭。

因此,可以得出结论,Nagle 算法 应该留在 对于流应用程序(文件、视频、持续数据馈送),除非实时处理很重要(控制台终端)。它基本上是应用程序的“良好行为准则”,不要用无用的流量阻塞 channel (这可能是网络负载较重的大型数据中心的问题)。
如果通信是在请求-响应模式下完成的(即:所有数据一次写入缓冲区 - 因此 Nagle 的算法无效),您可以默认将其关闭。

关于.net - WCF/SOAP 中的 Nagle 算法真的有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14403314/

31 4 0