Passa al contenuto principale

Una cosa che le persone che passano da TCP_OS a STCP notano subito è che l'insieme delle statistiche TCP visualizzate dal comando TCP_OS netstat è un po' più ricco di quello visualizzato da STCP. Le statistiche netstat di STCP visualizzano le statistiche TCP standard RFC-1213. Mancano statistiche come, ad esempio, i duplicati di acks, i dati duplicati, i pacchetti fuori ordine o i conteggi delle sonde di finestra. Tuttavia, molte delle statistiche sono disponibili come parte dell'output visualizzato dalla richiesta analyze_system stcp_meters. Provare il comando:
analyze_system -request_line 'stcp_meters -all -long' -quit

Gli argomenti e l'output degli stcp_meters sono documentati nel manuale OpenVOS System Analysis (R073), disponibile all'indirizzo http://stratadoc.stratus.com. Il set di dati non è lo stesso del comando TCP_OS; mancano alcuni contatori come "connessioni cadute per ritrasmissione" ma ci sono anche nuovi contatori come "finestra imposta zero dopo la ricezione". Un bel tocco è che la percentuale del contatore è calcolata e presentata in modo auto-magico.

Un grosso problema con le statistiche netstat TCP sia di TCP_OS che di STCP è che sono per l'intero modulo, i contatori per ogni connessione che sia mai esistita (almeno per l'avvio corrente) vengono sommati per ottenere i valori visualizzati. I problemi, come le ritrasmissioni inaccettabili, che riguardano una o poche connessioni, possono perdersi nei conteggi complessivi. Il comportamento predefinito di stcp_meters ha lo stesso problema, aggrega i contatori di tutte le connessioni dall'avvio corrente; MA, stcp_meters può prendere come argomento l'indirizzo PCB (protocol control block) di una singola connessione e visualizzare le statistiche per quella sola connessione; il che lo rende un aiuto significativo per il debug. Per trovare l'indirizzo PCB si esegue netstat con l'argomento PCB_addr, sì il PCB è in maiuscolo. Una volta che netstat è completato, si trova la connessione di interesse e l'indirizzo del PCB è nella prima colonna.

La seguente macro fa questo per voi, eseguendo netstat, localizzando la connessione di interesse, estraendo l'indirizzo del PCB e poi eseguendo stcp_meters. La macro prende o l'indirizzo del PCB se lo conoscete già (nel qual caso salta la maggior parte dei passaggi precedenti) o 2 stringhe per aiutare a identificare la connessione di interesse. Il messaggio di utilizzo indica che le stringhe dovrebbero essere l'indirizzo IP locale, il numero di porta locale e il numero di porta remota dell'indirizzo IP remoto. Questo identificherà in modo univoco la connessione, ma si potrebbe riuscire a farla franca con meno, per esempio solo il numero di porta locale e l'indirizzo IP remoto. Se le stringhe specificate identificano più di 1 connessione, verranno visualizzati i contatori per ciascuna delle connessioni. La linea netstat apparirà sopra i contatori per identificare a quale connessione servono i contatori.

Se si desidera visualizzare i contatori per tutte le connessioni stabilite, provare il comando
get_connection_meters -locale ESTAB -remote :

In questo caso gli argomenti non rappresentano gli indirizzi locali e remoti ma lo stato STABILITATO e qualsiasi linea con un punto e virgola.

& get_connection_meters inizia qui
&
& get_connection_metri.cm
e versione 1.0 09-04-06
& [email protected]
&
&parametri_inizio_parametri
 Opzione LOCALE (-locale), stringa
 Opzione REMOTE (-remoto),stringa
Opzione PCB(-pcb),stringa
eparametri_fine_parametri
&
e assicurarsi che le cose estranee non vengano riportate nel file dei risultati
&if (tipo_processo) = 'batch' &then &do
set_ready -formato off
&echo no_command_lines
&end
&
se (lunghezza &PCB&) > 0
&then &do
   se (lunghezza &LOCALE&) > 0
       E poi andiamo a ERROR_ADDRESS
   se (lunghezza &REMOTE&) > 0
       E poi andiamo a ERROR_ADDRESS
   analyze_system -request_line (stringa stcp_meters &PCB& -all -long) -quit
   &ritorno
&end
&
&set_string FILE_1 (process_dir)>connect_stcp_meters_1.temp
&set_string FILE_2 (process_dir)>connect_stcp_meters_2.temp
&
se (lunghezza &LOCALE&) = 0
    E poi andiamo a ERROR_ADDRESS
se (lunghezza &REMOTE&) = 0
    E poi andiamo a ERROR_ADDRESS
attach_default_output &FILE_1&
netstat -numerico -PCB_addr
uscita_default_default_output
&
display &FILE_1& -match &LOCAL& -output_path &FILE_2& -no_header
display &FILE_2& -match &REMOTE& -output_path &FILE_1& -no_header
&
&attach_input
analizza_sistema
LINEA 1
&etichetta DI NUOVO
&set_string_connessione (contenuti &FILE_1& &LINE& -hold)
se (fine_di_file &FILE_1&) = 1 &allora &do
    se &if &LINE& = 1
       E poi andiamo a ERROR_NOT_FOUND
       &else &do
          chiudere
          &ritorno
       &end
&end
&
..display_line ============================================================
..display_line ============================================================
..visualizzare_linea
..display_line &CONNECTION&
..visualizzare_linea
&set_string PCB (substrato (stringa &CONNECTION&) 1 8)
stcp_meters &PCB& -all -long
&set LINE (calc &LINE&LINE& + 1)
andar via di nuovo
&
&
&etichetta ERROR_NOT_FOUND
chiudere
display_line
display_line
display_line Impossibile trovare il collegamento specificato nell'uscita netstat
display_line &LOCAL& &REMOTE&REMOTE
&ritorno
&
&etichetta ERROR_ADDRESS
display_line
display_line È necessario inserire una PCB o entrambe le porte IP:port locale e remota
display_line Useage:
display_line ' get_connection_meters -pcb PCB'.
display_line ' o
display_line ' get_connection_meters - IP:PORT - IP:PORT remoto
&ritorno
&
e i misuratori Get_connection_meters terminano qui

© 2024 Stratus Technologies.