“/proc/net/tcp”显示的顺序是什么

“/proc/net/tcp”显示的顺序是什么

当您查看/proc/net/tcp/proc/net/tcp6文件时,您可以看到计算机本身打开的端口。

但只是想知道这些条目按什么顺序列出?

答案1

如中所述这个内核文档文件,,生成列表的实际代码位于Linux内核源文件.../net/ipv4/tcp_ipv4.c。文档文件指出,首先列出所有侦听套接字,然后列出已建立的连接。

不承诺任何形式的进一步分类。因此,如果/当重新实现内核中 TCP 套接字状态的存储时,确切的顺序(或非顺序)可能会发生变化,或者换句话说,不同的内核版本可能会做非常不同的事情。

似乎有四个与相关的主要功能/proc/net/tcp

  • tcp4_seq_start()启动一个迭代器来遍历内核 TCP 数据结构
  • tcp4_seq_show()使用各种子函数将当前记录翻译成一行文本
  • tcp4_seq_next()查找下一条数据记录
  • tcp4_seq_stop()当文件关闭或列表完成时清理迭代器。

生成列表的内核数据结构是用于处理各个 TCP 连接的实际数据结构,因此从某种意义上来说,您可能会说运行系统调用的进程的行为listen()connect()导致插入条目。任何地方都没有单独的“更新/proc/net/tcp”步骤。

相关内容