每个进程的端口号是否唯一?是 1:1 的关系吗?如果不是,系统如何知道与流程传递响应?
问问题
53 次
2 回答
1
操作系统使用 4 个参数来识别 TCP 连接端点:
本地端口,本地地址,远程端口,远程地址
所以本地端口不需要是唯一的。它对于监听(即服务器)套接字通常是唯一的,因为监听套接字通常具有未绑定的远程端口和远程地址。但即使对于侦听套接字,如果一台机器有多个 IP 地址,您可以让一个进程在给定端口和一个 IP 地址上侦听,而其他一些进程在同一端口上侦听不同的 IP 地址。
对于连接的套接字,所有 4 个值都是绑定的,因此许多同时连接可以使用同一个本地端口。多亏了这一点,单台机器上打开的连接数不限于 64K,这将是相当有限的。
于 2013-01-07T11:46:46.387 回答
0
每个系统的端口号是唯一的:两个进程不能[重新]打开相同的端口号。
于 2013-01-06T16:08:46.943 回答