Determina se o socket TCP está no espaço do kernel

4

Eu não tenho nenhum problema em descobrir se um socket pertence ao espaço do usuário - eu simplesmente examino / proc / para ver qual PID possui o [socket]. Mas com os sockets TCP abertos no espaço do kernel não existe entrada em / proc / (já que o kernel não possui PID). Eu assumo que não é seguro supor que só porque o socket não foi encontrado em / proc, ele foi iniciado pelo kernel. Eu pensei sobre as 7 colunas não documentadas de / proc / net / tcp no final. Talvez um deles possa dar dicas de origem muito grande? Não consegui decifrar o código-fonte do kernel para descobrir o que esses 7 campos representam.

Alguém poderia me ajudar, por favor.

    
por abirvalg 09.10.2011 / 23:31

1 resposta

2

Experimente netstat com argumentos adicionais:

sudo netstat -wtpeav

O sudo está lá para garantir que você o execute como root, caso contrário, ele não mostrará tudo.

As opções são:

-w, --raw
    Show raw sockets.

-t, --tcp
    Show TCP protocol sockets.

-p, --program
    Show the PID and name of the program to which each socket
    belongs.

-e, --extend
    Display additional information. Use this option twice for
    maximum detail.

-a, --all
    Show both listening and non-listening sockets. With the
    --interfaces option, show interfaces that are not up

--verbose , -v
   Tell the user what is going on by being verbose. Especially
   print some useful informa‐ tion about unconfigured address
   families.

Além disso, as colunas no final de /proc/net/tcp estão documentadas na árvore de fontes do kernel em Documentação / rede / proc_net_tcp.txt . Os campos finais são:

1000        0 54165785 4 cd1e6040 25 4 27 3 -1
 |          |    |     |    |     |  | |  | |--> slow start size threshold, 
 |          |    |     |    |     |  | |  |      or -1 if the threshold
 |          |    |     |    |     |  | |  |      is >= 0xFFFF
 |          |    |     |    |     |  | |  |----> sending congestion window
 |          |    |     |    |     |  | |-------> (ack.quick<<1)|ack.pingpong
 |          |    |     |    |     |  |---------> Predicted tick of soft clock
 |          |    |     |    |     |              (delayed ACK control data)
 |          |    |     |    |     |------------> retransmit timeout
 |          |    |     |    |------------------> location of socket in memory
 |          |    |     |-----------------------> socket reference count
 |          |    |-----------------------------> inode
 |          |----------------------------------> unanswered 0-window probes
 |---------------------------------------------> uid
    
por 19.12.2011 / 01:30