La maggior parte delle reti moderne è organizzata a livelli.
In passato, quando tale modello di progettazione e sviluppo degli standard HW e SW non era ancora stato adottato, si riscontravano, soprattutto in ambito di networking, notevoli problemi di incompatibilità e di manutenzione hardware e software.I livelli sono caratterizzati da una struttura gerarchica tale, per cui ognuno di essi è in grado di comunicare soltanto con quello immediatamente superiore e con quello immediatamente inferiore, attraverso "meccanismi" predeterminati detti interfacce.
Ogni livello di rete delle singole macchine comunica con i livelli corrispondenti delle altre, attraverso predefinite "regole di conversazione" che prendono il nome di protocolli.
La comunicazione non è diretta, ma ha luogo passando attraverso i livelli inferiori della propria macchina, che aggiungono informazioni di vario tipo al messaggio che si invia all' altro computer.
Il messaggio, attraverso i vari livelli, raggiunge il mezzo fisico di trasmissione e viene inviato alla seconda macchina, in corrispondenza della quale risale la gerarchia dei livelli fino ad arrivare a destinazione.
Questa struttura è molto vantaggiosa in quanto assicura la comunicazione anche di fronte ad una diversificazione profonda dei singoli livelli, purchè naturalmente le interfacce tra i livelli rimangano immutate.Possiamo definire architettura di una rete il complesso dei livelli e dei protocolli che la contraddistinguono.
Il modello di riferimento per le architetture di rete è quello proposto dall' ISO ( International Standards Organization ), con il nome di modello OSI ( Open systems Interconnection ), e con l' intento di definire le caratteristiche di protocollo necessarie e sufficienti a rendere "aperto" il sistema di trasmissione dei dati in rete ( caratterizzato cioè da una libera e facile interconnettività ).
Si struttura su sette livelli:
- Livello fisico
- Livello di collegamento dati
- Livello di rete
- Livello di trasporto
- Livello di sessione
- Livello di presentazione
- Livello di applicazione
Ognuno di questi "svolge" funzioni predefinite :
- Il livello fisico si occupa della trasmissione dei singoli bit da un estremo all' altro del mezzo di comunicazione ( comprende diversi "mezzi fisici" quali ad esempio:10 base5, 10 base2, 10baseT ecc. ).
- Il livello di collegamento dati ha il compito di trasmettere una sequenza di byte ( chiamata frame ) su una linea di trasmissione in maniera tale che risulti esente da errori al livello superiore ( vi appartengono i protocolli ARP, RARP ecc. ).
- Il livello di rete ( livello IP) gestisce l' instradamento dei pacchetti dal mittente al destinatario, anche attraverso il passaggio da una sottorete ad un' altra. In corrispondenza di questo livello ai pacchetti ( chiamati datagrams ) vengono aggiunte le informazioni necessarie ( indirizzi IP ) a far transitare i dati attraverso i routers e a raggiungere così altre reti, cosa questa che non può avvenire a livello fisico.
- Il livello di trasporto determina i servizi di comunicazione da fornire ai livelli successivi. Comprende tra gli altri il TCP ( Transmission Control Protocol ) e l' UDP ( User Datagram Protocol ): entrambi si basano sull' IP ( Internet protocol ) e sul concetto di porta ( socket ), ma le modlità di comunicazione sono diverse; Per ciò che riguarda il TCP possiamo dire che:
- è un protocollo orientato alla connessione
- è necessario specificare una sola volta l' indirizzo del ricevente
- necessita di due "socket" che vengono utilizzati in maniera simile al telefono
- una volta instaurata la connessione si ha a disposizione un canale di comunicazione bidirezionale esente da errori.
- il ricevente riceve i pacchetti inviatigli come un flusso continuo di informazioni, senza separazione tra un pacchetto e l' altro.
Per ciò che riguarda invece l' UDP possiamo dire che:
- è un protocollo senza connessione
- necessita di un solo socket
- per ogni pacchetto si deve specificare il destinatario
- esiste la possibilità che i pacchetti non arrivino a destinazione
- esiste la possibilità che i pacchetti arrivino in un ordine diverso da quello di invio
- ogni pacchetto arriva a destinazione ben distinto dagli altri
- in virtù dell' assenza di controlli è più veloce di TCP
- Il livello di sessione gestisce il dialogo tra tra due nodi di rete, e stabilisce se il traffico delle informazioni può essere bidirezionale o meno;
nel caso in cui il traffico sia unidirezionale deve stabilire un sistema di sincronizzazione che sia in grado di determinare chi debba trasmettere per primo e come questo debba poi cedere il diritto di trasmissione all' altro nodo.- Il livello di presentazione fa in modo che le informazioni scambiate siano comprensibili ad entrambi gli agenti della comunicazione.
Si occupa anche di eventuali meccanismi di compressione dati e ,di recente, anche di crittografia, per fare in modo che i pacchetti possano essere compresi soltanto dal destinatario.- Il livello di applicazione è quello che fa direttamente capo all' utente; comprende e fornisce servizi ad alto livello quali il trasferimento di files, la posta elettronica, l' accesso a computers remoti ecc..