web-dev-qa-db-ja.com

ハンドシェイクの前に複数のsynのパケット?

シナリオがあります。WebサーバーへのSSL(decrpyt)トラフィックを分析しています。サーバーとエンドツーエンドの遅延の問題を調査しています。この間、私はいくつかのアドバイス/提案が必要なトラフィックパターンに従うことに固執しています。パターンは次のことを示しています:-

 client       server
src port 1 -> 80 (syn)
src port 2 -> 80 (syn)
src port 3 -> 80 (syn)
src port 4 -> 80 (syn)
.....

 server        client
src port 80 -> 1  (syn/ack)
src port 80 -> 2  (syn/ack)

client         server
src port 1 -> 80  (ack)
src port 2 -> 80  (ack)

ハンドシェイクが完了すると、クライアントから"http get request"が表示されます。私の問題は:-

  1. 複数のSYNが異なる送信元ポートからクライアントからサーバーに送信されるのはなぜですか?

分析のためのサンプルSYNリクエストは次のようになります

694 47.583499000    192.168.1.56    192.168.1.22    TCP 66  0.000173000 50844→80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1

この動作を理解するのを手伝ってください。

1
asad

これは、ブラウザの動作方法の一部です。 Webページが読み込まれると、 チャンク 応答が返される場合があります。最初のチャンクに画像へのHTML参照がある場合、ボトルネックはネットワーク関連ではなく処理関連である可能性があるため、ストリームの終わりまで画像の読み込みを開始するまで待つ必要はありません。したがって、たとえばHTMLの読み込みが完了した後に画像を要求するのではなく、Webサーバーへの2番目の接続を開いてその画像を要求することにより、ページの読み込み時間を短縮できます。

したがって、ブラウザはページビューごとに複数の接続を開きます。ここで、各ブラウザが開く接続数に対して使用する制限を確認できます。

https://stackoverflow.com/a/985704/3127174

1
James Shewey