HTTP 経由でリモート サーバーからビデオをストリーミングしています。クライアントで Wireshark を使用してパケットをキャプチャしました。接続のクライアントが、一時停止するたびに数秒間、パケットの送信を時々停止していることに気付きました。RTT は 170 ミリ秒から 200 ミリ秒の間で、帯域幅は 20 Mbps であり、接続のパケット損失率は 5.8% と高く、サーバーから通知されたウィンドウ サイズは 14 KB から 64 KB 近くまでスロー スタートで増加していることがわかります (ウィンドウ値)。サイズ=501、[計算されたウィンドウ サイズの値=64128]、ウィンドウ サイズの倍率=128)。
私の混乱は、接続用のサーバーの受信バッファーがまったく満たされていないときに、クライアントが時々パケットの送信を停止するのはなぜですか?
この状況 (ブラウザ ストリーミング ビデオ) でパケットが失われると、どのような影響がありますか?
私はこの可能な状況を考えています:
ブラウザは単一の接続でビデオをストリーミングします (同じ TCP 接続を再利用する HTTP を使用)。サーバーがクライアントに応答を送信している間、クライアント ACK が時間内に受信されないため、サーバーは停止し、ACK の再送信を待機し続けます。クライアントはサーバーの応答パケットを待っています。もちろん、サーバーからの ACK も待っています。しばらくすると、クライアントは ACK の再送信を開始し、すべてが再び機能し、キャプチャされたデータから、一時停止直後のパケットがクライアントからサーバーへのものであることがわかりました。
この理解は正しく、理にかなっていますか?