gpt4 book ai didi

http - HTTP请求中不同的TCP连接是如何识别的?

转载 作者:可可西里 更新时间:2023-11-01 02:30:37 25 4
gpt4 key购买 nike

据我了解,每个 HTTP 请求都使用自己的 TCP 连接(如果我错了,请纠正我)。因此,假设有两个当前连接到同一台服务器。例如,客户端 javascript 代码使用 XMLHttpRequest 对象触发几个 AJAX POST 请求,一个接一个,然后才获得对第一个请求的响应。所以我们谈论的是到同一台服务器的两个连接,每个连接都在等待响应,以便将其路由到每个单独的回调函数。

现在我不明白的是:TCP 数据包包括源和目标 ip 和端口,但是这两个连接不会具有相同的源和目标 ip 地址以及端口 80 吗?如何区分数据包并将其路由到适当的位置?它与每个连接不同的数据包序列号有什么关系吗?

最佳答案

当您的浏览器创建到 HTTP 服务器的新连接时,它会使用不同的源端口。

例如,假设您的浏览器创建了两个到服务器的连接,并且您的 IP 地址是 60.12.34.56。第一个连接可能来自源端口 60123,第二个连接来自 60127。这嵌入在发送到服务器的每个数据包的 TCP header 中。当服务器回复每个连接时,它会使用适当的端口(例如 60123 或 60127),以便数据包返回正确的位置。

了解这一点的最佳方式之一是下载 Wireshark并观察您自己网络上的流量。它会向您展示这一点以及更多内容。

此外,这还可以深入了解网络地址转换 (NAT) 如何在路由器上工作。您可以让多台计算机共享相同的 IP 地址,路由器将重写请求以使用不同的端口,以便两台计算机可以同时连接到 AOL Instant Messenger 等地方。

关于http - HTTP请求中不同的TCP连接是如何识别的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com