A proposito dell'autore

E’ certificato Cisco CCNA. Appassionato di reti e di Sicurezza. Redattore di NetworkingItalia per il quale ha scritto diversi articoli. Pubblica anche su AreaNetworking e ASSINT per il quale sta realizzando un corso online sulla sicurezza informatica. Al momento lavora presso un istituto professionale di Monza (MI) come Assistente Tecnico ma spera di poter cambiare.

Concetti base delle reti

A questo punto del nostro corso su Wireshark, per comprendere pienamente l’analisi di protocollo è necessario capire e assimilare in profondità il modo in cui i computer comunicano fra di loro. È importante quindi conoscere i fondamenti, i principi, i concetti che sottostanno al funzionamento delle reti. Esamineremo quindi in questa terza lezione i fondamenti dei protocolli di rete, il modello di riferimento OSI con cenni sulla suite di protocolli TCP/IP e delle Request for Comments (RFC).

Le modalità di comunicazioni nelle reti di computer

Una rete di calcolatori, per comunicare tra loro, utilizza una tecnica di trasmissione chiamata commutazione di pacchetto (packet switching). Si distingue dalla commutazione di circuito (circuit switching), che è una tecnica di comunicazione tipicamente usata nelle comunicazioni telefoniche.

Reti a commutazione di circuito (circuit switching)

In una rete a commutazione di circuito, il trasmittente compone il numero del destinatario, la rete elabora il numero mettendo su un collegamento fisico tra mittente e destinatario, il destinatario risponde; se accetta la connessione, i due possono comunicare avendo a disposizione un canale trasmissivo fisico dedicato; quando uno dei due chiude la comunicazione, la connessione viene interrotta.

Questa modalità di comunicazione non si rivela molto efficiente perché i canali trasmissivi vengono tenuti impegnati per tutto il tempo della comunicazione anche quando non vengono trasmesse informazioni. Inoltre, non è possibile utilizzare la rete per trasmettere informazioni provenienti da sorgenti differenti. È poco robusta perché la trasmissione risiede nel collegamento e se questo cade bisogna cominciare la trasmissione da capo.

Reti a commutazione di pacchetto (packet switching)

In una rete a commutazione di pacchetto, l’informazione da trasmettere viene suddivisa dal mittente in blocchi o pacchetti di dati di dimensione limitata. Ad ognuno di questi blocchi viene aggiunta una serie di dati che contengono le informazioni necessarie affinché possano essere inoltrati alla loro destinazione finale. I pacchetti, così formati, vengono inviati individualmente attraverso la rete senza che sia stato stabilito un canale trasmissivo e una volta arrivati a destinazione vengono riassemblati dal destinatario nella loro forma originale.

Nel luglio del 1961 Leonard Kleinrock, un visionario scienziato del M.I.T. (Massachusetts Institute of Technology) pubblica “Information flow in large communication”, il primo articolo sulla teoria del “packet switching”; successivamente, nel 1964, pubblica il libro “ Communication net”, descrivendo il funzionamento di una rete basata sul packet switching.

Questa rivoluzionaria modalità di comunicazione cambia completamente il modo di intendere le comunicazioni, perché si rivela molto più efficiente del sistema precedente. Infatti, i canali trasmissivi vengono utilizzati solo per il tempo strettamente necessario al passaggio dei pacchetti. Inoltre, poiché ogni pacchetto porta con sé la sua identificazione, una rete può trasportare nello stesso tempo pacchetti provenienti da sorgenti differenti. È molto robusta perché la trasmissione non consiste nei collegamenti come nel sistema precedente, ma consiste nel pacchetto dei dati. Il pacchetto correttamente formato con l’indirizzo sorgente e di destinazione, una volta spedito, è come se vivesse di vita propria, con un solo traguardo da perseguire: arrivare a destinazione. E per fare questo può eseguire tutti i percorsi che vuole, utilizzando una varietà di mezzi differenti per giungere alla sua destinazione finale.

Per poter essere inviati e ricevuti correttamente questi pacchetti di dati devono seguire delle regole.

I protocolli di rete

I protocolli di rete sono delle regole formali di comunicazione, cioè regole e convenzioni pre-definite che indicano quale è il formato, la temporizzazione, la sequenzializzazione, il controllo del flusso, il controllo e la correzione degli errori, la segmentazione, la cifratura, la compressione/decompressione dei dati nella trasmissione/ricezione da parte di un dispositivo di rete.

La fedeltà a queste regole pre-definite, i protocolli, garantisce che macchine molto diverse tra loro che compongono le reti possano comunicare correttamente usando lo stesso linguaggio.

Per la creazione dei protocolli, le regole per l’utilizzo di una rete, è preposta tutta una serie di organizzazioni e comitati:

  • IEEE (Institute of Electrical and Electronic Engineers)
  • ANSI (American National Standards Institute)
  • TIA (Telecommunications Industries Association)
  • ITU (International Telecommunications Union)
  • IETF (Internet Engineering Task Force)
  • IANA (Internet Assigned Numbers Autority)
  • ICANN (Internet Corporation for Assigned Names and Numbers)

Le specifiche di queste regole pre-definite, per essere valide per tutti, devono essere dei modelli unificati, degli Standard di Internet. Standard, è il massimo grado che possono raggiungere delle proposte di regole per Internet e sono chiamate Request for Comment (RFC), le quali vengono vagliate dall’IETF (Internet Engineering Task Force) e dai suoi Working Group (gruppi di lavoro formati da esperti). I tre gradi sono: Proposed Standard, Draft Standard, Standard (STD). Le proposte scartate diventano Historic Protocol. Mentre gli Standard non più attuali ed aggiornati da nuove RFC Standard diventano Obsolete. Le Request for Comments (RFC), numerate progressivamente in modo univoco (la prima RFC viene scritta nell’aprile 1969 da Steve Crocker membro del Network Working Group e tratta dell’host-to-host protocol), vengono pubblicate e mantenute liberamente disponibili su un database on-line http://www.rfc-editor.org/, fondato dalla Internet Society (http://www.isoc.org).

Tutti i protocolli che vengono utilizzati per il funzionamento di Internet sono pubblicati nelle RFC anche se non tutte le RFC specificano Standard.

Il problema della complessità ed eterogeneità delle comunicazioni

Storicamente, il problema della efficiente trasmissione dei dati in una rete di computer è stata una operazione tecnicamente molto complessa, ma una volta che i problemi tecnici fossero stati risolti, prometteva nuove opportunità e grandi guadagni, poiché trovava la soluzione all’innato bisogno dell’uomo di comunicare in maniera efficiente.

La soluzione a questo problema avrebbe portato alla scoperta vera e propria di un nuovo gigantesco mercato mondiale: il mercato delle comunicazioni digitali. Copiosi flussi di danaro avrebbe incassato chiunque fosse riuscito a monopolizzare con uno standard proprietario questo mercato.

La competizione tecnologica scatenata tra grandi aziende per accaparrarsi questo nuovo mercato portò le stesse aziende di comunicazione alla creazione di differenti metodi e tecnologie di trasmissioni proprietarie, con hardware e software di rete che però erano quanto di più eterogeneo e incompatibile potesse esserci. Ogni azienda tendeva a creare il proprio protocollo, la propria tecnologia, il proprio standard per farsi padrone del mercato delle comunicazioni.

Questa guerra commerciale creava difficoltà, incompatibilità nel trasmettere dati da un sistema ad un altro. La eterogeneità dei sistemi di rete causava ingenti danni economici. Inoltre, la possibilità che un sistema proprietario potesse imporsi come standard poteva limitare i guadagni, le comunicazioni, le scoperte e i miglioramenti tecnologici, le libertà di tutti gli uomini. Questi problemi e le prospettive di grandi guadagni misero in moto i meccanismi internazionali per trovare adeguate soluzioni. L’idea era quella di definire un modello di riferimento accettato da tutti e che per tutti fosse libero.

Il modello di riferimento ISO/OSI

Nel 1978 l’ISO (International Standard Organization), il principale ente di standardizzazione internazionale, pubblicò una serie di specifiche che descriveva l’architettura di rete per la connessione di dispositivi eterogenei. Il documento originale faceva riferimento a sistemi reciprocamente aperti, nel senso che tutti potevano fare uso degli stessi protocolli e degli stessi standard per scambiare informazioni.


Quasi contemporaneamente un altro ente internazionale, il CCITT, noto anche come International Telegraph and Telephone Consultative Committee, emanazione dell’ITU (International Telecommunications Union) facente parte dell’ONU che ha stabilito molti standard internazionali per le comunicazioni di dati (a seguito di una riforma nel 1993 ha cambiato nome ed è attualmente conosciuto come ITU-T [International Telecommunication Union – Telecommunication Standardization Bureau] ), in maniera del tutto autonoma ed indipendente, realizzò un documento che aveva lo stesso obiettivo di definire uno standard unificato, una architettura comune per i sistemi di rete.

Nel 1983, avendo questi due documenti molti punti in comune, vennero dai due enti internazionali fusi assieme in un unico documento che doveva diventare per tutti il modello di riferimento standard per le telecomunicazioni.

Nel 1984 l’ISO pubblicò questo documento (The Basic Reference Model for Open Systems Interconnection) con il nome di “standard ISO 7498“, mentre il CCITT lo pubblicò come “standard X.200“. Nonostante i due enti internazionali avessero pari dignità e il documento pubblicato fosse identico per tutti e due, il nome che è passato per questo modello standard è quello di “modello ISO/OSI”. La versione del 1984 è divenuto uno standard internazionale di riferimento per la progettazione e la configurazione per gli ambienti di rete.

Questo modello di riferimento descrive in che modo hardware e software interagiscono lavorando assieme su più livelli per permettere la comunicazione. Il modello ISO/OSI è di aiuto per le attività di risoluzione dei problemi, perché mette a disposizione uno standard di riferimento astratto che descrive il corretto funzionamento dei vari componenti che, interagendo tra loro, permettono la comunicazione.

Il modello OSI però, non è servito per lo sviluppo pratico dei protocolli di internet (per l’implementazione è stato preferito il modello TCP/IP per l’alta affidabilità e robustezza, sviluppato dal DoD, Dipartimento della Difesa Statunitense, definito nella RFC 1155). Il modello standard OSI viene usato come modello base per descrivere e spiegare il funzionamento dei protocolli di rete. A questo modello di riferimento standard si rimanda sempre quando si parla di comunicazione di rete.

La complessità del processo di comunicazione

Il processo di comunicazione in una rete di computer è molto complesso. Questo processo deve garantire il corretto funzionamento su una molteplicità di tecnologie, sistemi di trasmissione che operano su Sistemi Operativi diversi. Tutti devono utilizzare un comune linguaggio standardizzato, delle regole comuni, chiamate protocolli di comunicazione. Questi protocolli di comunicazione devono fornire dei servizi, risolvere diversi problemi complessi come:

  • Il controllo di flusso: la generazione di comunicazioni dal sistema ricevente che istruisca il sistema mittente ad una accelerazione o ad un rallentamento della sua trasmissione dei dati.
  • Il riconoscimento del pacchetto: la trasmissione di un messaggio di accusa di ricevuto da parte di un sistema ricevente verso il sistema trasmittente che dichiari la ricevuta dei dati.
  • La scoperta degli errori: l’uso di codici da parte del sistema trasmittente per verificare che i dati spediti non siano stati danneggiati durante la trasmissione.
  • La correzione degli errori: la ritrasmissione dei dati che sono andati persi o sono stati danneggiati durante la trasmissione.
  • La segmentazione: la divisione di lunghi flussi di dati in flussi più piccoli e compatti (pacchetti) per un trasferimento più efficiente.
  • La cifratura dei dati: una funzione che usa chiavi crittografiche per proteggere i dati trasmessi attraverso una rete.
  • La compressione dei dati: un metodo per ridurre la grandezza dei dati trasmessi attraverso una rete eliminando nella trasmissione informazioni ridondanti.

Risolvere tutti questi problemi contemporaneamente in modo monolitico e fornire tutti questi servizi alla comunicazione è stato di una difficoltà e complessità progettuale insuperabile.

I benefici di dividere il processo di comunicazione in più livelli

Storicamente, l’umanità ha spesso trovato la soluzione ai problemi complessi suddividendo gli stessi, in problemi più piccoli e relativamente semplici, più facilmente risolvibili. Per risolvere il problema della comunicazione tra reti di calcolatori è stata pertanto escogitata una architettura modulare a livelli. L’architettura a livelli ha molti vantaggi. Il principale è la separazione delle funzioni, cioè ogni livello ha la sua specifica funzione da espletare. Questo oltre a semplificare la progettazione dei protocolli di comunicazione, agevola il suo uso e rende più semplice spiegare il modo in cui lavorano. La progettazione viene semplificata dal fatto che ogni livello interagisce solamente con il livello immediatamente sopra e sotto di esso.

Questa architettura modulare assegna ad ogni livello un determinato e preciso compito o servizio da espletare. Una volta che quel livello fornisce un servizio per la comunicazione, quello specifico per quel livello e che le sue interfacce sono state identificate, ogni livello può essere progettato in maniera indipendente dagli altri.

Un’architettura a più livelli

L’architettura modulare del modello di riferimento OSI (Open Systems Interconnection) struttura la comunicazione di rete in base a sette livelli. Ogni livello riguarda attività, dispositivi o protocolli specifici. Essendo i livelli sovrapposti uno sull’altro a formare una pila, questa architettura viene anche chiamata “pila protocollare” o “stack protocollare”. La figura sotto illustra l’architettura a più livelli del modello OSI.

Questa architettura modulare prevede una suddivisione tra i vari livelli delle funzioni e dei servizi che interessano i dati trasferiti da un computer ad un altro tramite i media (cavi, onde radio ecc) di rete. Il modello OSI definisce le modalità con cui ogni livello comunica e interagisce con i livelli immediatamente precedente e successivo. Per esempio, il livello Sessione comunica e interagisce con i livelli Presentazione e Trasporto.

Ogni livello fornisce un servizio o un’operazione che prepara i dati per l’invio sulla rete verso un altro computer . I livelli più bassi, il primo e il secondo, definiscono i supporti fisici della rete e sui cavi. I livelli più alti definiscono le modalità con cui le applicazioni accedono ai servizi di comunicazione (interfaccia utente). Più alto è il livello, più complesso è il task.

I livelli sono separati da elementi detti interfacce. Tutte le richieste vengono passate da un livello al successivo tramite l’interfaccia. Queste interfacce servono a fare interagire in modo prevedibile i vari livelli. Ogni livello utilizza come base gli standard e le attività del livello inferiore.

Continua a leggere, clicca sotto sulle pagine seguenti.

  • Otahack88

    Molto utile questa guida, come approccio iniziale a WS è veramente ben fatta! Grazie all’autore

  • Ci fa piacere questo apprezzamento… l’abbiamo segnalato anche all’autore! :-) Grazie!

  • Pinco

    Indubbiamente interessante e propedeutica la trattazione del modello ISO/OSI, ma mi attendevo molto di più da un corso su WireShark!
    Praticamente il tutto si riduce all’installazione del software e all’avvio di una semplice cattura dati.
    Mi auguro che il corso non termini con la terza lezione!

    Ringrazio comunque l’autore per le informazioni fornite…

  • Salvatore Valerio

    ciao pinco, quando ho scritto il corso su wireshark avevo intenzione di fare il corso in dieci di lezioni e di collegarlo ad un altro corso su nmap ( la prima lezione deve stare da qualche parte l’avevo pur regalata a federico lagni).
    avevo preparato il tutto e cercavo qualcuno a cui interessasse mettere su un corso.
    all’epoca non ho trovato nessuno e per evitare di sprecare il gran lavoro fatto ho regalato all’umanità quello che era completo e definitivo. il resto delle lezioni era tutto strutturato ma non erano complete come quelle che hai letto.

    dei tanti pezzi che ho scritto e che sono stati a tante persone di aiuto negli studi universitarii l’unico, che mi ha onorato ufficialmente mettendoli come materiale di studio ufficiale in un corso universitario è stato il professor fausto marcantoni dell’università di camerino e che ancora ringrazio.

    avevo scritto con notevole dispendio di lavoro quel pezzo ed altri con la speranza di quadagnarmi da vivere facendo quello che ritenevo fosse un mio talento. così non è stato.
    L’AUTORE.

  • Canarino

    ke cazzo ci azzecca ko wireshark questa guida na cagata

  • giuseppe

    Complimneti davvero un grandissimo contributo.

  • Davide

    Ciao Salvatore mi piacerebbe capire l’istituto professionale a monza come si chiama

    Cordiali saluti

    Davide cossu

    Cell.3381282242

  • daniele

    Guida molto utile e interessante,complimenti.Potrei contattarla in privato ( o magari mi scriva lei al mio indirizzo email) per avere delucidazioni su una cattura dati che non riesco a capire benissimo?Ci sono delle anomalie (che poi magari non sono anomalie ma semplicemente io che non le riesco a decifrare) che per il mio livello di conoscenza dell’infrastruttura di rete sono troppo avanzate.Grazie in anticipo.Daniele.

  • Salvatore Valerio

    ciao daniele. mi fa piacere che ti sia piaciuta. è un pò datata, del
    2006 ma, sono contento che sia ancora apprezzata. all’epoca facevo dei
    lavori niente male. in internet sul sito di wireshark.org c’è anche un
    wiki tenuto da una grande comunità che aiuta tutti quelli che li
    interpellano. http://wiki.wireshark.org/ sullo stesso wiki è possibile
    anche poter fare delle domande http://ask.wireshark.org/ a cui in
    brevissimo tempo un volontario risponderà. i libri per imparare e magari
    certificarsi (sembra sia abbastanza richiesta) sono facilmente
    reperibili. ;-))) puoi contattarmi in privato. anzi ci mancherebbe ma…, sono molto preso e non sò se non è una cosa immediata se riesco a darti retta. se vai su facebook, ci vado più volte al giorno, ho come avatar il cagnaccio che vedi sopra .-))).

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: