Несколько пакетов син перед рукопожатием?

У меня есть сценарий, я анализирую трафик 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 ответ

Это часть работы браузеров. Когда веб-страница загружается, вы можете получить частичный ответ. Если у вас есть HTML-ссылка на изображение в первом фрагменте, нет необходимости ждать окончания потока, чтобы начать пытаться загрузить изображение, поскольку узкое место может быть связано с обработкой, а не с сетью. Следовательно, вы можете уменьшить время загрузки страницы, открыв второе соединение с веб-сервером для запроса этого изображения, а не запрашивая его после завершения загрузки HTML (например).

Поэтому браузеры будут открывать несколько соединений для каждого просмотра страницы. Вы можете увидеть ограничения, которые каждый браузер использует для количества соединений, которые он открывает здесь:

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

Другие вопросы по тегам