当套接字切换到 TIME_WAIT 状态时,为什么我看不到它的 inode 号?

1 kernel tcp linux-networking socket

我正在用 python 开发一个解析/proc/net/tcp信息的程序,但不幸的是,在我这样做的时候,我看到了一件奇怪的事情。

实际上,当套接字TIME_WAIT状态发生变化时,会丢失其 inode 编号,而且我不知道此套接字的所有者是谁。

我阅读了一些关于这个TIME_WAIT问题的文档,我了解到连接实际上已经完成,它保持等待只是为了保证数据传输。

有人对此有所了解吗?

Gio*_*oni 6

当套接字处于TIME_WAIT 时,不再有任何进程附加到它,内核只是保留它以防其他数据包到达。此时,原来打开这个socket的软件已经没有了打开文件的描述了。这就是为什么你找不到与它的任何关系。/proc/$PID/fd 中存在的套接字不再存在。