我正在用 python 开发一个解析信息的程序/proc/net/tcp
,但不幸的是,在开发过程中,我看到了一件奇怪的事情。
实际上,当套接字TIME_WAIT
状态发生变化时,会丢失其 inode 编号,而且我不知道谁是该套接字的所有者。
我阅读了一些关于这个问题的文档TIME_WAIT
,我了解到连接实际上已经完成,它仍然在等待以保证数据传输。
有人知道这件事吗?
答案1
当插座处于时间的等待,不再有任何进程与其关联,内核只是将其保留以防其他数据包到达。此时,最初打开此套接字的软件不再具有打开文件描述。这就是您无法找到与它的任何关系的原因。/proc/$PID/fd 中存在的套接字不再存在。
答案2
处于状态的套接字TIME_WAIT
不再由进程拥有,而由内核拥有。因此,是没有主人,所以你看不到它:)