信息
您所需的主题如下所示。但此主题未包含在此库中。

StreamSocketControl.NoDelay | noDelay Property

指示是否对 StreamSocket 对象使用 Nagle 算法的值。

语法


var noDelay = streamSocketControl.noDelay;
streamSocketControl.noDelay = noDelay;

属性值

类型: Boolean [JavaScript] | System.Boolean [.NET] | Platform::Boolean [C++]

指示是否对 StreamSocket 对象的 TCP 连接使用 Nagle 算法的值。

备注

StreamSocketControl.NoDelay 属性控制在 StreamSocket 对象上是启用还是禁用 Nagle 的算法。StreamSocketControl.NoDelay 属性的默认值为 true

Nagle 算法一种通过减少需要经由网络发送的包的数量来提高 TCP/IP 网络效率的技术。 算法尝试处理重复发出小块数据的应用程序所导致的问题。TCP 数据包具有 40 个字节的标头(IP 占 20 个字节和 TCP 占 20 个字节)。因此,如果应用程序仅发送 4 个字节的数据包,用在数据包数据的开销就很大。 远程访问协议(例如 telnet 或保护 shell)可能会发生这种情况,其中大多数虚拟键只能生成一个字节或立即传输的两个数据。经由较慢的链接,其中的很多数据包可能同时经由网络传输。Nagle 算法将若干小的传出消息组合在一起,然后将它们同时发出。当具有发送方收到未确认的发送包时,发送方保留缓冲区输出,直至到达完整的数据包的输出价值。这使得一次发送所有的输出成为了可能。应用 Nagle 算法的影响是牺牲延迟来提高带宽。缓冲区在内部发生的编写正确的应用程序不需要使用 Nagle 算法。

当此属性为 trueStreamSocket 将禁用位于 TCP 连接的 Nagle 的算法。当发送短小的信息时,此设置降低潜在延迟。在创建 StreamSocket 时,此属性的默认值为 true

当此属性为 falseStreamSocket 将启用位于 TCP 连接的 Nagle 的算法。此设置以延迟为代价提高带宽,应谨慎使用。当在启用 Nagle 的算法同时使用其他某些 TCP 优化时,可能会产生负面的副作用。

可能在连接 StreamSocket 之前设置此属性。连接 StreamSocket 后,设置该属性将导致错误。

此属性在 StreamSocket 使用的 TCP 套接字上设置 TCP_NODELAY 套接字选项的值。

要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

Windows.Networking.Sockets
Windows::Networking::Sockets [C++]

元数据

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

ID_CAP_NETWORKING [Windows Phone]

另请参见

StreamSocket
StreamSocketControl

 

 

显示: