情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

StreamSocketControl.NoDelay | noDelay Property

Nagle アルゴリズムが StreamSocket オブジェクトで使用されているかどうかを示す値。

構文


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

プロパティ値

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

Nagle アルゴリズムが StreamSocket オブジェクトの TCP 接続で使用されているかどうかを示す値

解説

StreamSocketControl.NoDelay プロパティは、StreamSocket オブジェクトの Nagle アルゴリズムを有効にするか無効にするかを制御します。StreamSocketControl.NoDelay プロパティの既定値は true です。

Nagle アルゴリズムは、ネットワーク上の送信に必要なパケット数を減らすことで、TCP/IP ネットワークの効率を改善する技法です。 アルゴリズムは、小さいチャンクのデータを繰り返し出力するアプリケーションによる問題に対処します。TCP パケットには 40 バイトのヘッダーがあります (IP の場合は 20 バイト、TCP の場合は 20 バイト)。したがって、アプリケーションがパケット内の 4 バイトのみを送信した場合、パケット データのオーバーヘッドはかなり大きくなります。 これは、ほとんどのキー操作がすぐに送信される単一バイトまたは 2 バイトのデータのみを生成する場合にリモート アクセス プロトコル (Telnet やセキュア シェルなど) に対して発生することがあります。遅いリンク上では、これらのパケットの多くがネットワーク上で同時に転送中の場合もあります。Nagle アルゴリズムは、多数の小さな送信メッセージを結合し、それらを一度に送信することによって機能します。送信者が受信確認を受信していない送信済みパケットがある場合は、完全なパケット分の出力を確認できるまで、送信者は出力バッファーを続けます。これによって、すべての出力が一度に送信されるようになります。Nagle アルゴリズムを適用すると、帯域幅を増加できますが待機時間を要します。バッファーを内部に送信する適切に記述されているアプリでは、Nagle アルゴリズムを使用する必要はありません。

このプロパティが true に設定されている場合は、StreamSocket によって TCP 接続で Nagle アルゴリズムが無効になります。この設定は、小さなメッセージを送信すると潜在的な遅延が少なくなります。StreamSocket が作成されるとき、このプロパティの 既定値は true です。

このプロパティが false に設定されている場合は、StreamSocket によって 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

 

 

表示: