握手之前有多个 syn 数据包吗?

握手之前有多个 syn 数据包吗?

我有一个场景,我正在分析到我的网络服务器的 SSL(解密)流量。我正在调查服务器和端到端延迟问题。在此期间,我陷入了以下流量模式,我需要一些建议。模式显示:-

 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客户端从不同的源端口向服务器发送多个 s?

仅供分析的 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 引用,则无需等到流结束时才开始尝试加载图像,因为瓶颈可能与处理有关,而不是与网络有关。因此,您可以通过打开与 Web 服务器的第二个连接来请求该图像,而不是在 HTML 加载完成后请求它(例如),从而减少页面加载时间。

因此,浏览器会为每个页面浏览打开多个连接。您可以在此处查看每个浏览器对其打开的连接数的限制:

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

相关内容