Wiresharkを使用してアプリケーションをデバッグし、TCP=ウィンドウサイズの値が通信の片側で縮小するのを監視しています。
パケットのTCP=セクションに「ウィンドウサイズの値:1」と表示されている場合、それは送信元のウィンドウサイズが1か、宛先のウィンドウサイズが1であることを意味しますか?片側が他の人が処理できる、私はそれがどれかを知っていることを確認したいだけです。
1 192.168.0.1-> 192.168.0.100、Modbus/TCP、長さ:66、ウィンドウサイズ値:1
2 192.168.0.100-> 192.168.0.1、TCP、長さ:60、ウィンドウサイズ値:92
3 192.168.0.100-> 192.168.0.1 TCP、長さ:310、ウィンドウサイズ値:92
4 192.168.0.1-> 192.168.0.100 TCP、長さ:54、ウィンドウサイズ値:0
それで192.168.0.1のウィンドウサイズは0ですか、それとも192.168.0.100のウィンドウが0であると報告していますか?ありがとう。
AからBまでのパケットのウィンドウサイズは、Aでパケットを受信するために使用できるバッファスペースの量を示します。したがって、Bがウィンドウサイズ1のパケットを受信すると、Aに送信できるバイト数をBに通知します。
ウィンドウサイズについて知っておく価値のあるいくつかの詳細は次のとおりです。
ACK number + window size * scaling factor
は(ほぼ)一定のままです。TCPヘッダーのウィンドウサイズフィールドは、送信者(この場合は192.168.0.1)が受信する予定のバイト数を示します。