Tcp

當套接字切換到 TIME_WAIT 狀態時,為什麼我看不到它的 inode 號?

  • August 15, 2014

我正在用python開發一個解析/proc/net/tcp資訊的程序,但不幸的是,在我這樣做的時候,我看到了一件奇怪的事情。

實際上,當一個套接字TIME_WAIT狀態改變時,它的 inode 號會失去,我不知道這個套接字的所有者是誰。

我看了一些關於這個TIME_WAIT問題的文件,我知道連接實際上已經完成,它保持等待只是為了保證數據傳輸。

有人知道嗎?

當套接字處於TIME_WAIT時,不再有任何程序連接到它,核心只是持有它以防其他數據包到達。此時,原來打開這個socket的軟體已經沒有打開文件描述了。這就是為什麼你找不到與它有任何關係的原因。/proc/$PID/fd 中存在的套接字不再存在。

處於狀態的套接字TIME_WAIT不再歸程序所有,而是歸核心所有。因此,沒有所有者,這就是你看不到它的原因:)

引用自:https://serverfault.com/questions/620634