networking - 为什么我的计算机使用不同的端口与服务器进行 3 次握手 3 次 - Wireshark?
问题描述
当我的计算机使用 TCP 连接到随机网站以进行分配时,我使用 Wireshark 捕获了数据包。通常,在数据传输开始之前,应该有 3 个初始数据包(SYN、SYN-ACK、ACK)用于 3 次握手。
就我而言,有 9 个连接,3 个不同的 3 次握手;每个都是用我电脑的不同端口完成的。在它们中的每一个都被接受后,数据传输仅使用其中一个端口继续。
我无法理解这背后的原因。谢谢!
解决方案
浏览器打开到一个站点的多个连接是很常见的。这样做的原因是,对于 HTTP/1,单个 TCP 连接一次只能处理一个请求-响应,即多个请求一个接一个,而不是并行的。要并行处理多个请求,浏览器需要打开多个 TCP 连接。由于连接设置需要一些时间,如果需要发送新请求,浏览器可能会打开到服务器的多个连接,以便已经建立一些连接。
推荐阅读
- python - 当遇到阈值时,Python 中的运行总计会重置
- android - 反应原生 | @react-native-community_picker 在 android 上未解决
- python - 命令提示符: pip install mod_wsgi
- regex - 使用 java 脚本在字符串 `,"'/\{}[]() 中,这个字符表示我需要显示验证消息。否则我需要允许下一个过程
- python - Python如何将移动操作还原到文件中
- linux - 如何在多阶段 Docker 文件中将所有工件从源复制到目标
- python - *pool2D 和 *pooling2D 之间的 TensorFlow 差异
- javascript - React Native:让 ScrollView 的每个子项全高
- javascript - 如何将“活动”类添加到 javascript 中单击的导航链接?
- java - Remove last digit in a string in Java only if it is just one digit present