[英]How does a TCP/IP packet reach to a specific server socket?
当您从客户端连接到服务器时,服务器上的TCP知道客户端的地址和端口 。 每个单独的连接由4元组(client_ip,client_port,server_ip,server_port)标识和区分。
在netstat显示中,本地地址和远程(外部)地址的组合唯一标识连接。 两个突出显示的连接的外部地址是不同的。
这基本上是入站和出站连接之间的区别。
在入站连接上,服务器套接字将绑定并侦听给定的ip:端口。 传入连接在具有相同ip:port的新套接字上被接受,因为它们是从侦听服务器套接字接受的。
使用netstat时,您应该看到服务器套接字的ip:端口处于Listening状态(对于TCP连接),而多个ip:端口处于Established状态,用于新套接字上接受的传入连接。
出站连接仅允许使用未绑定的端口。 您可以手动指定它们,或者通过tcp / ip堆栈随机选择一个。 (这是一个例外,当使用SO_REUSEADDR时 ,它允许您绑定到仍处于TIME_WAIT状态的绑定端口)
在服务器上,只有一个开放端口意味着您正在运行单个站点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.