Netstat
本地地址的“本地地址”和“遠端地址”netstat 列是否對稱?
如果我有以下 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 -
如果套接字的兩端都在本地機器上,伺服器和客戶端是否可以出現在任一列中?
不,本地地址始終是所描述的程序打開的連接的結尾。在這種情況下,MySQL 伺服器程序偵聽埠 3306,因此這是任何已建立連接中的本地地址。隊列也特定於所描述的連接方向。
對於已建立的連接,您應該在
netstat
orss
的輸出中的其他位置看到對稱連接。
TIME_WAIT
連接是一種特殊情況。TIME_WAIT
用於確保新連接不接收雜散數據包;只有發起其終止的連接的一端會達到該狀態(因為另一端知道它的通信者不會再發送任何東西)。連接由作業系統保留,因此不再與程序關聯;本地地址是關閉連接的一端。