当前位置: 首页 > 面试题库 >

/ proc中可能的内部套接字状态列表

詹高畅
2023-03-14
问题内容

我想知道stin 中column
的可能值/proc/net/tcp。我认为该st列等于netstat(8)或中的STATE列ss(8)

我设法确定了三个代码:

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
0: 0100007F:08A0 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 7321 1 ffff81002f449980 3000 0 0 2 -1                     
1: 00000000:006F 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 6656 1 ffff81003a30c080 3000 0 0 2 -1                     
2: 00000000:0272 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 6733 1 ffff81003a30c6c0 3000 0 0 2 -1                     
3: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 7411 1 ffff81002f448d00 3000 0 0 2 -1                     
4: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 7520 1 ffff81002f4486c0 3000 0 0 2 -1                     
5: 0100007F:089F 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 7339 1 ffff81002f449340 3000 0 0 2 -1           
6: 0100007F:E753 0100007F:0016 01 00000000:00000000 02:000AFA92 00000000   500        0 18198 2 ffff81002f448080 204 40 20 2 -1                   
7: 0100007F:E752 0100007F:0016 06 00000000:00000000 03:000005EC 00000000     0        0 0 2 ffff81000805dc00

以上显示:

  • 在sl 0行上:tcp / 2208上的侦听端口。 st = 0A = LISTEN
  • 在第sl 6行:在tcp / 22上建立的会话。 st = 01 = ESTABLISHED
  • 在第sl 7行:ssh注销后处于TIME_WAIT状态的套接字。没有索引节点。st = 06 = TIME_WAIT

任何人都可以在此列表上展开吗?该手册proc(5)的主题很简洁:

   /proc/net/tcp
          Holds a dump of the TCP socket table. Much of the information is not of use apart from debugging. The "sl" value is the kernel hash slot for the socket, the "local address" is  the  local  address  and
          port  number pair.  The "remote address" is the remote address and port number pair (if connected). ’St’ is the internal status of the socket.  The ’tx_queue’ and ’rx_queue’ are the outgoing and incom-
          ing data queue in terms of kernel memory usage.  The "tr", "tm->when", and "rexmits" fields hold internal information of the kernel socket state and are only useful  for  debugging.   The  "uid"  field
          holds the effective UID of the creator of the socket.

与此相关的是,上面的/ proc / net /
tcp输出显示了一些监听过程(2208、62、111等)。但是,虽然显示了已建立状态和time_wait状态,但我看不到tcp /
22上正在侦听的tcp连接。是的,我可以在里面看到它们,/proc/net/tcp6但也应该不在/proc/net/tcp吗?Netstat的输出显示它与仅绑定到ipv4的应用程序不同。例如

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4231/portmap        
tcp        0      0 :::22                       :::*                        LISTEN      4556/sshd

非常感谢,-安德鲁


问题答案:

它们应与linux内核源代码中./include/net/tcp_states.h中的枚举匹配

enum {
    TCP_ESTABLISHED = 1,
    TCP_SYN_SENT,
    TCP_SYN_RECV,
    TCP_FIN_WAIT1,
    TCP_FIN_WAIT2,
    TCP_TIME_WAIT,
    TCP_CLOSE,
    TCP_CLOSE_WAIT,
    TCP_LAST_ACK,
    TCP_LISTEN,
    TCP_CLOSING,    /* Now a valid state */

    TCP_MAX_STATES  /* Leave at the end! */
};

至于您的2.问题,您是否真的确定没有使用sshd监听例如0.0.0.0:22?如果不是,我怀疑您看到的内容与v4映射到v6套接字有关,请参见例如man 7 ipv6



 类似资料:
  • 我正在尝试在nexus 5(Android 6)和谷歌眼镜之间建立连接。要连接的客户端代码: 服务器端代码: 以https://github.com/vicmns/BluetoothGlass为参照。我面临的问题是,在accept()返回后,连接立即断开,并出现以下错误: 02-15 16:20:42.769 2163-2414/?e/Bt _ btif _ sock _ RFCOMM:find

  • 编写一个iocp控制台服务器并不容易,套接字池和线程池都工作得很好,但是过了一段时间,服务器就不能再连接了,虽然没有什么问题发生,为什么呢?我用procexp_16.05.1446001339.exe检查进程属性,发现有很多close_wait状态,过了一段时间close_wait状态消失了,但是服务器还是不能连接,这是为什么呢?又该如何修复呢?

  • 我面临的问题是: < li >当我加载页面时,服务器的控制台中会显示套接字(我可以获取远程地址和远程端口) < li >无论我做什么,客户端中的连接总是挂起。我尝试了Chrome、Brave、Mozilla和Safari,但似乎没有一个能用。 我错过了什么?我试图在连接准备好之前不发送消息,但我从未在我的PC中获得过该状态。即使我在没有事件的情况下建立onopen属性,客户端中的警报也不会弹出。

  • 问题内容: 我在python中有一个协调的存储列表, 用于存储非零值。 如何获取所有行索引的列表?我希望这可以打印整个列表,但只能打印。 我问的原因是为了有效计算每行中非零值的数量, 即在n为总行数的地方进行迭代。这应该比我目前的方式 便宜 得多。 就像是: 过度: 编辑: 使用Junuxx的答案,这个问题和这篇博文,我想到了以下内容 (用于返回单 例行的 数量) ,对于当前的问题大小,它比我最初

  • 我必须构建一个客户机/服务器应用程序,其中服务器端只是一个将数据从一个客户机传递到另一个客户机的应用程序。 客户端将用C#编写,如果可能的话,我想用NodeJS编写服务器。我会尽力解释这背后的想法。 如果您将此应用程序视为1vs1游戏,最好对此进行解释。因此,多个客户端可以连接到服务器。在Player1/Player2上下文中,一个客户端将与另一个客户端匹配。 Player1可以移动。例如,一个将

  • 我正在尝试使链接有一个围绕整体的焦点状态。container-covid-alert div,当链接被选项卡打开时,我确信这一定是可能的?以下2个选择器不工作。 null null