sb0k

sb0k

sb0k - Network Meter

sb0k è un tool per il monitoraggio del traffico di rete in tempo reale che ho sviluppato durante il corso di Complementi di Gestione di Rete all’ Università di Pisa, forse è l’unico progetto “universitario” che vale la pena menzionare.

Il cuore di questo piccolo tool è basato su pcap (packet capture), si tratta di API per la cattura del traffico di rete, mentre quel poco di GUI spartana che vedete è merito di ncurses, per un terminale direi che basta e avanza.

Come funziona

A differenza di qualche nerd sfigato che vi direbbe di leggere il suo fighissimo sorgente, cercherò di spiegarvi brevemente come funziona il tutto:

  • 2 thread, uno per ogni direzione (in & out), si occupano di processare i pacchetti catturati sull’interfaccia e di aggiornare una serie di contatori di pacchetti/bytes a più livelli (L2, IP, TCP, UDP, etc)
  • il main process si occupa di leggere i contatori ogni secondo e di memorizzare i valori in un buffer circolare di ampiezza sufficiente a permetterci delle misurazioni su un intervallo di tempo ragionevole (media), una volta finito aggiorna le statistiche (media, massimo, corrente, etc) e mostra a schermo il risultato

Trattandosi di contatori a 32bit e preso atto che l’unica conseguenza di una race condition produrrebbe un errore infinitesimale nel calcolo statistico, ho deciso di lasciare tutto lockless.

Come usarlo

Questo tool dovrebbe girare su sistemi unix-like e dipende da:

Visto che non ho avuto voglia/tempo di creare scriptini di configurazione, prima di tentare di compilarlo assicuratevi di avere le librerie che ho elencato poc’anzi, nella maggioranza dei casi sarà sufficiente giocare col vostro package manager.

Una volta compilato è sufficiente eseguirlo da root (o con pari privilegi sui device di rete), i comandi disponibili sono:

  • ‘I’ : passa alla prossima interfaccia
  • ‘B’ : converti bits in byte o viceversa
  • ‘Q’ : esci
  • ‘P’ : attiva/disattiva modalità promiscua
  • + : incrementa l’intervallo di tempo sul quale calcolare la media (max 30)
  • - : decrementa l’intervallo di tempo sul quale calcolare la media (min 1)
  • 0-9,Z,X : cambia statistica sulla colonna specificata (ci sono 12 colonne)

Tutto qui, nulla di complicato.
Anche questo tool è in fase di sviluppo per cui se avete dei suggerimenti o trovate dei bug mandatemi pure una email.

Download

downloadLa versione corrente è la 0.1 (11 Jul 2009)
11 KB

Ringraziamenti

Vorrei ringranziare il prof. Luca Deri per aver mantenuto uno dei pochi corsi (IMHO) interessanti all’ Università di Pisa e per non avermi sbattuto fuori all’esame (ma questo è un dettaglio asd!!). Fa sempre piacere sapere che tra tanti “panzoni spara-diapositive”, alcuni dei quali pagati profumatamente dallo Stato, ci sia ancora qualcuno che conosce davvero quello che insegna e che ha voglia di trasmetterlo.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>