如果我有以下 netstat 输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 127.0.0.1:21950 ESTABLISHED 2129/mysqld
tcp 0 0 127.0.0.1:38766 127.0.0.1:10033 TIME_WAIT -
如果套接字的两端都在本地计算机上,服务器和客户端是否可以出现在任一列中?
答案1
不,本地地址始终是所描述的进程打开的连接的末尾。在本例中,MySQL 服务器进程侦听端口 3306,因此这是其在任何已建立的连接中的本地地址。队列还特定于所描述的连接方向。
对于已建立的连接,您应该在netstat
orss
的输出中的其他位置看到对称连接。
TIME_WAIT
连接是一种特殊情况。TIME_WAIT
用于确保新连接不会收到杂散数据包;只有发起终止的连接一端才会达到该状态(因为另一端知道其通信方不会再发送任何内容)。连接由操作系统保留,因此它不再与进程关联;本地地址是关闭连接的一端。