9 sockets tcp http xmlhttprequest
据我所知,每个HTTP请求都使用自己的TCP连接(如果我错了,请纠正我).所以,假设有两个当前连接到同一台服务器.例如,客户端javascript代码在获得对第一个的响应之前,使用XMLHttpRequest对象一个接一个地触发几个AJAX POST请求.所以我们讨论的是同一个服务器的两个连接,每个连接等待一个响应,以便将它路由到每个单独的回调函数.
现在这是我不明白的事情:TCP数据包包括源和目标IP和端口,但这两个连接不会有相同的src和dest ip地址,以及端口80?如何区分数据包并将其路由到适当的位置?是否与每个连接不同的数据包序列号有关?
Jef*_*ser 11
当您的浏览器创建与HTTP服务器的新连接时,它使用不同的源端口.
例如,假设您的浏览器创建了两个到服务器的连接,并且您的IP地址是60.12.34.56.第一个连接可能源自源端口60123,第二个连接源自60127.这嵌入在发送到服务器的每个数据包的TCP头中.当服务器回复每个连接时,它使用适当的端口(例如60123或60127),以便数据包返回到正确的位置.
了解这一点的最佳方法之一是下载Wireshark并观察您自己网络上的流量.它会告诉你这个以及更多.
此外,还可以深入了解网络地址转换(NAT)如何在路由器上运行.您可以让许多计算机共享相同的IP地址,路由器将重写请求以使用不同的端口,以便两台计算机可以同时连接到AOL Instant Messenger等位置.
| 归档时间: |
|
| 查看次数: |
6579 次 |
| 最近记录: |