Che cosa significa l'output di "ss-s"?


4

Ho un problema a capire l'output di Linux ss (statistiche socket). Non riesco a capire il significato dell'output di ss -s

Per esempio:

[root@dls2304-1 ~]# ss -s
Total: 973 (kernel 996)
TCP:   600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333

Transport Total     IP        IPv6
*         996       -         -
RAW       1         1         0
UDP       157       128       29
TCP       527       512       15
INET      685       641       44
FRAG      0         0         0

Le mie domande:

Cosa fa Total: 973 (kernel 996) significare? Cosa è Total e cos'è kernel? Perché Total sembra essere più piccolo di kernel?

Nella linea TCP: 600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333, cosa dice la parola ports significare?

E questo:

Transport Total     IP        IPv6
*         996       -         -

Cosa fa l'asterisco ( * ) significare?

Sono molto sopra la mia testa. Non riesco a trovare un documento sulle specifiche dell'output per ss comando. Mi puoi aiutare?

Risposte:


3

Per prima cosa, dichiarerò esplicitamente che sto davvero "alando" questa risposta. Ho esperienza di networking come amministratore di sistema, ma le mie conoscenze di networking non sono così profonde come la maggior parte. Quindi spero di ottenere qualcosa di giusto. E se qualcuno che conosce meglio legge questo, si prega di commentare o anche modificare per correggere.

Quando esegui il ss (statistiche socket) comando con -s flag che mostra lo stato del socket. Quindi, sapendo che:

Cosa fa Total: 973 (kernel 996) significare? Cosa è Total e cos'è kernel? Perché Total sembra essere più piccolo di kernel?

A mia conoscenza, le prese di sistema non scadono subito dopo l'uso. Quindi, per quanto ne so, il 973 è un riflesso di prese attive totali meno prese scadute, ma il 996 connesso al kernel include il 23 rimanenti prese parassite che il kernel non ha ancora trovato da pulire. Questa pagina sull'ottimizzazione del kernel offre una buona panoramica del concetto di come il kernel si occupa dei socket e di come un sistema può essere ottimizzato per gestire meglio i socket a livello di kernel.

Nella linea TCP: 600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333, cosa dice la parola ports significare?

Il ports 333 è solo un elenco di tutte le attività portuali sul tuo sistema in quel momento specifico. Il 333 corrisponde alla somma di estab 280 e closed 73. Specifiche su tali porti sarebbero riassunte sotto quella lista. Ma nel contesto dei socket quella linea in pratica afferma che ci sono 600 prese disponibili e di quelle 600, 333 sono in qualche modo associati alle porte del sistema. Per maggiori dettagli su cosa un socket è contro una porta, leggi questa eccellente risposta Stack Overflow .

Cosa fa l'asterisco ( * ) significare?

Nel contesto dell'esempio che mostri:

Transport Total     IP        IPv6
*         996       -         -

Guarda come 996 il totale del kernel in Total: 973 (kernel 996)? Quello * è correlato a socket che sono semplicemente aperti / gestiti indipendentemente dal loro livello di trasporto a livello del kernel.

Ma quello ha detto, sì ... Questo è tutto abbastanza confuso a livello di novizio.


Grazie mille per la spiegazione e scusa per il ritardo di risposta. Dopo aver sfogliato il codice sorgente di iptable2, ho scoperto che hai praticamente ragione e mi hai illuminato molto. Solo un promemoria, porti non è sempre la somma di isti e chiuso . porti riflette le porte totali in uso in questo momento sulla macchina, che viene letta da / proc / slabstat. Così porti include alcune porte di prese fuori strada.
ruanhao
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.