当多个请求发送到同一个服务器时,端口号为 80 或其他来自同一个 IP 地址比如,来自 NAT 后面的计算机或来自同一台计算机但不同的浏览器或同一台计算机上的不同应用程序,服务器如何区分它们并能够答复?
答案1
客户端将对每个 TCP 会话(请求)使用不同的源端口,因此每个连接都有 4 个相关参数:
- 源 IP
- 源端口
- 目标 IP
- 目的端口
正如您在 netstat 输出中看到的,例如,我的 Web 浏览器在不同的源端口(40092、40094、40096)上与 StackExchange 网络有多个连接:
tcp 0 0 192.168.x.42:40092 151.101.129.69:80 TIME_WAIT
tcp 0 0 192.168.x.42:40096 151.101.129.69:80 TIME_WAIT
tcp 0 0 192.168.x.42:40094 151.101.129.69:80 TIME_WAIT
服务器将能够根据客户端使用的源端口区分连接。