0

ソケットから十分な速さでデータを読み取っていない場合、TCP プロトコルはスライディング ウィンドウのサイズを小さくし、送信中に送信者がブロックされる可能性があります (ここで説明したように、'recv' を十分に速く呼び出せない場合はどうなりますか? )。

Windows のレシーバー側でこの状況を検出するにはどうすればよいですか? ソケットからの読み取りのパフォーマンスに影響を与えることなく、できれば C# コードで直接検出できますか? 他の監視ソリューション (perfmon、wireshark) も許容されますが、私のシナリオには最適ではありません。

正確なシナリオは何ですか?サーバー アプリは最大 1Mbps の速度でデータを送信できるとしますが、クライアント アプリは 0.5Mbps の速度でしかデータを受信できません。クライアント アプリケーションで、TCP フロー制御が開始されて送信速度が低下していることを確認するにはどうすればよいですか?

私は Socket.Available プロパティhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.available.aspxに来て、それがこの情報を照会するための推奨される方法であるかどうか疑問に思っていましたか?

4

2 に答える 2

1

読む速度が遅いとシステムに言わせようとして時間を無駄にするよりも、できる限り速く読むほうがよいでしょう。最高速度で読んでいても送信者がまだブロックされている場合、TCP は正常に動作しており、より高速なマシンを調べる以外にできることはありません。

于 2013-06-05T23:37:21.997 に答える