ネットワークが (クライアントのサイトで) 輻輳しているときに、TCP ウィンドウ サイズ 0 のヘッダーを送信することが観察されたアプリケーション サーバーがあります。
利用可能なスループットに合わせて TCP ウィンドウ サイズを公称 64K から小さく調整する役割を担っているのが Indy なのか、それとも基盤となる Windows レイヤーなのかを知りたいと考えています。
そして、それが 0 になったときに対処することができます (何も送信されず、ユーザーは待機します => ダメです)。
したがって、Indy コードへの情報、リンク、ポインタは大歓迎です...
免責事項: 私はネットワークの専門家ではありません。平均的な私にとって理解しやすい答えにしてください;-)
注: Windows Server 2003 SP2 上の Indy9/D2007 です。
詳細:
TCP ゼロ ウィンドウのケースは、DB サーバーと通信する中間層で発生します。
これは、エンド ユーザーがクライアント アプリケーションの速度低下を訴えるのと同時に発生します (それが原因でネットワーク調査が開始されました)。
ボトルネックの原因となっている 2 つの主要なネットワークの問題が特定されました。
ネットワークの輻輳が発生したときに TCP ゼロ ウィンドウが発生しましたが、それが原因である場合とそうでない場合があります。
それがいつ発生するかを知りたいので、コードで何か (少なくともログ記録) を行う方法を用意します。
核となる問題は、ウィンドウ サイズを 0 に設定するのは誰で、どこで行うのかということです。
その状態がいつ発生するかを知るために (Indy で?) どこにフックしますか?