Le prime reti furono progettate cominciando dallo hardware (HW) e sviluppando
il software (SW) solo successivamente, quasi come se esso fosse un'accessoria
appendice dell'hardware.
Questo approccio non funziona più. Il SW di rete è oggi
altamente strutturato. Esaminiamo ora, a grandi linee, tale strutturazione.
1.3.1) Gerarchie di protocollo
Per ridurre la complessità di progetto,
le reti sono in generale organizzate a
livelli,
ciascuno costruito sopra il precedente. Fra un tipo di rete ed un altra,
possono essere diversi:
il numero di livelli;
i nomi dei livelli;
il contenuto dei livelli;
le funzioni dei livelli.
Comunque un principio generale è sempre rispettato:
lo scopo di un livello è offrire certi servizi
ai livelli più alti, nascondendo i dettagli sul come tali servizi siano
implementati. Ogni livello deve solo sapere come passare i dati ai livelli adiacenti.
Isolare le funzioni di comunicazione in livelli differenti minimizza l'impatto dei cambiamenti tecnologici o di parti dell'insieme dei protocolli.
Il livello n su un host porta avanti una conversazione col livello n su
di un'altro host.
Le regole e le convenzioni che governano la conversazione
sono collettivamente indicate col termine di
protocollo di livello n.
I protocolli sono regole formali di comportamento.
Nelle relazioni internazionali i protocolli minimizzano i problemi causati dalle
differenti tradizioni culturali quando diverse nazioni lavorano insieme e sono
costituiti da regole comuni stabilite indipendentemente dalla cultura di origine.
Quando consideriamo diversi computer collegati in rete tra loro o l'interconnessione di
reti si pone una analoga esigenza di stabilire regole di comunicazione indipendenti
dai dettagli strutturali di calcolatori e reti.
Le entità (processi) che effettuano tale conversazione si chiamano
peer entitiy (entità di pari
livello).
Il dialogo fra due peer entity di livello n viene materialmente realizzato
tramite i servizi offerti dal livello (n-1).
Figura 5: Dialogo fra peer entity
In realtà non c'è un trasferimento diretto dal livello n
di host 1 al livello n di host 2. Ogni livello di host 1 passa i
dati,
assieme a delle informazioni di
controllo, al livello sottostante.
Al di sotto del livello 1 c'è il mezzo fisico, attraverso il quale
i dati vengono trasferiti da host 1 ad host 2.
Quando arrivano a host 2, i dati vengono passati da ogni livello (a partire
dal livello 1) a quello superiore, fino a raggiungere il livello n.
Fra ogni coppia di livelli adiacenti è definita una
interfaccia, che caratterizza:
le operazioni primitive che possono essere richieste al livello
sottostante;
i servizi che possono essere offerti al livello sovrastante.
1.3.2) Architettura di rete
L'insieme dei livelli e dei relativi protocolli
è detto architettura di rete.
La specifica dell' architettura deve essere abbastanza dettagliata da
consentire la realizzazione di SW e/o HW che, per ogni livello, rispetti
il relativo protocollo.
Viceversa, i dettagli implementativi di ogni livello e le interfacce
fra livelli non sono parte dell'architettura, in quanto sono nascosti
all'interno di un singolo host.
E' quindi possibile che sui vari host della rete ci siano implementazioni
che differiscono fra di loro anche in termini di interfacce fra livelli,
purché ogni host implementi correttamente i protocolli previsti
dall'architettura. In questo caso possono dialogare fra loro anche host
aventi caratteristiche (processore, sistema operativo, costruttore) diverse.
Un modello di architettura sviluppato dalla
International Standard Organization(ISO)
solitamente usato per descrivere la struttura e le funzioni dei protocolli di
comunicazione di dati prevede sette diversi livelli.
L'architettura TCP/IP è la più diffusa ed è
lo standard utilizzato in Internet.
Notate ancora che è essenziale definire standard comuni di comunicazione.
Pensate ad esempio al trasporto dei container. Se ci fossero standard diversi tra
nazioni e tra il trasporto su strada, su rotaie, navi e aerei, il trasporto di merci
sarebbe estremamente complesso.
Non esiste un accordo comune di come descrivere l'architettura TCP/IP con un modello a
livelli. Nella nostra breve descrizione noi useremo 5 livelli.
1.3.3) Funzionamento del software di rete
Per comprendere i meccanismi basilari di funzionamento
del software di rete si può pensare alla seguente analogia umana,
nella quale un filosofo indiano vuole conversare con uno stregone africano:
Figura 6: Dialogo fra grandi menti
Nel caso delle reti, la comunicazione fra le due entità di livello superiore
avviene con una modalità che, almeno in linea di principio, è uguale
in tutte le architetture di rete.
Figura 7: Flusso dell'informazione fra peer entity
Vediamo cosa accade:
il programma applicativo (livello 5) deve mandare un messaggio M alla sua
peer entity;
il livello 5 consegna M al livello 4 per la trasmissione;
il livello 4 aggiunge un suo header
in testa al messaggio (talvolta si dice che il messaggio è inserito
nella busta di livello 4); questo
header contiene informazioni di controllo.
il livello 4 consegna il risultato al livello 3;
il livello 3 può trovarsi nella necessità di frammentare
i dati da trasmettere in unità più piccole,
(pacchetti)
a ciascuna delle quali aggiunge il suo header;
il livello 3 passa i pacchetti al livello 2;
il livello 2 aggiunge ad ogni pacchetto il proprio header (e magari un
trailer) e lo spedisce sul canale
fisico;
nella macchina di destinazione i pacchetti fanno il percorso inverso, con
ogni livello che elimina (elaborandoli) l'header ed il trailer di propria
competenza, e passa il resto al livello superiore.
Aspetti importanti sono i seguenti:
le peer entity pensano concettualmente ad una comunicazione orizzontale
fra loro, basata sul protocollo del proprio livello, mentre in realtà
comunicano ciascuna col livello sottostante attraverso l'interfaccia fra
i due livelli;
spesso i livelli bassi sono implementati in hardware per ragioni
di efficienza.