Negli articoli precedenti abbiamo visto com’è strutturata una rete e la Interneto ovvero una interconnessione di più reti di dimensioni varie, in cui possiamo trovare diversi tipi di dispositivi.
Purtroppo però, non basta collegare fisicamente due dispositivi con un cavo per farli comunicare, si deve infatti utilizzare delle giuste tecniche hardware/software che andremo adesso a vedere.
L’ Hardware e il Software di due dispositivi connessi fra di loro devono utilizzare delle convenzioni, chiamate protocolli, per riuscire a comunicare fra di loro. Cominciamo quindi a parlare dei protocolli utilizzati, e vediamo come le parti Hardware e Software sono suddivise utilizzando un sistema a livelli (layering).
I protocolli
Normalmente con la parola protocollo si intende
[blockquote]Un comportamento che due persone appartenenti a due culture estranee devono rispettare per non rischiare di offendersi l’un l’altro.[/blockquote]
In questo contesto con il termine protocollo intendiamo un insieme di regole che il mittente e destinatario devono seguire per poter essere in grado di comunicare fra di loro.
Vediamo quindi un esempio di utilizzo di protocollo che è suddiviso su un solo livello:
- Bob incontra Alice
- Bob saluta Alice
- Alice risaluta Bob
- Bob chiede l’ora ad Alice
- Alice dice l’ora a Bob
- Bob saluta
- Alice saluta
- Entrambi vanno per la propria strada.
In questo caso come mezzo di trasporto utilizziamo l’aria e i due interlocutori, comunicano direttamente l’uno con l’altro. Facciamo un’altro esempio a più livelli: Bob è cinese, e Alice è americana e vogliono comunicare.
Per farlo, scelgono di inviarsi delle lettere e di scrivere in Italiano.
I Passaggi sono:
[minimal_table]
Bob | Alice | ||
---|---|---|---|
1 | Scrive/legge il messaggio | Scrive/legge il messaggio | |
2 | Lo traduce in Cinese/Italiano | Lo traduce in Inglese/Italiano | |
3 | Lo spedisce/ Lo riceve | <– Viene inviato –> | Lo spedisce/ Lo riceve |
[/minimal_table]
Nella stessa riga, in entrambe le colonne, i tipi di messaggi che troviamo corrispondono (messaggio in stessa lingua, messaggio imbucato).
Questa divisione a più livelli, viene chiamata Stack Protocollare.
La strutturazione su più layers della comunicazione, ci porta diversi vantaggi:
- Semplicità del problema: Come le soluzioni dividi et impera, dividendo il problema in più sottoproblemi più semplici da risolvere ci permette di creare facilmente reti molto sofisticate.
- Specializzazione: Sono troppe cose da studiare per diventare un massimo esperto in tutto: la divisione ci permette di specializzarci in uno o più layers.
- Modularizzazione: Questo è il punto principale, se ci si rompe un pezzo ci basta sostituirlo per far tornare tutto a funzionare. Ed oltre a riparazioni è possibile aggiornare moduli in maniera molto più semplice (sempre senza sostituire tutto).
Nell’esempio di poco fa: Bob e Alice pensano a scrivere il messaggio, a livello 2 un persona esperta nelle traduzioni può tradurre i messaggi da e verso il Cinese, e al livello più basso una compagnia addetta alle spedizioni tipo un corriere può spedire il messaggio. In alternativa, Bob e Alice avrebbero dovuto conoscere due lingue e recapitato i messaggi a mano.
Ogni layer n deve essere in grado di capire e tradurre ciò che viene passato sia dallo strato n+1, sia dallo strato n-1.
Questo vuol dire che il traduttore deve essere sia in grado di tradurre da cinese a italiano, ma sia da italiano a cinese a seconda di come viaggi la comunicazione.
Fra ogni livello corrispondente (esempio: Bob e Alice) esiste un collegamente logico: ovvero Bob e Alice, anche se non sono uno di fronte a l’altro come l’esempio ad un livello, pensano di parlare come se fossero collegati direttamente.
Questo collegamento fisico, avviene però solo allo strato più basso: quello che è incaricato di trasportare fisicamente i dati da un punto ad un altro.
Lo stack TCP/IP
E’ una famiglia di protocolli in cui sono presenti il TCP (Trasmission Control Protocol) e l’ IP (Internet Protocol) da cui prende il nome la famiglia di protocolli: questo vuol dire che loro due sono i principali, ma ne esistono moltissimi altri.
Vediamone una piccola overview per poi parlarne più in dettaglio in seguito:
Applicazione, Livello 5: Sede delle applicazioni di rete, troviamo l’ HTTP, SMTP, FTP, DNS (e molti altri…). In questo livello i pacchetti vengono chiamati messaggi.
Trasporto, Livello 4: Livello di trasferimento dei messaggi a livello di applicazione tra il modulo client e server di un’applicazione. I protocolli sono solo due, TCP o UDP e in questo livello i pacchetti vengono chiamati Segmenti.
Rete, Livello 3: Instradamento dei pacchetti dall’ origine alla destinazione. Usiamo il protocollo IP e i pacchetti si chiamano Datagrammi.
Collegamento, Livello 2: Trasmette i Datagrammi da un nodo all’altro nel percorso per arrivare a destinazione. I protocolli possono essere Ethernet, Wifi, PPP e i Datagrammi, che in questo livello vengono chiamati Frame, possono essere gestiti nel percorso anche da tipi di Collegamento diversi
Fisico, Livello 1: Trasferimento dei singoli bit attraverso un supporto fisico.
Collegamento logico: ovvero gerarchia dei protocolli
Come già abbiamo detto nell’esempio di Bob e Alice, i livelli sono legati logicamente fra di loro. Ogni livello N di un computer infatti, è in collegamento logico con il livello N di un’altro computer: tutti i pacchetti che si vogliono scambiare però, devono passare prima per gli strati inferiori, venire trasferiti dal livello fisico, e poi risalire lo stack protocollare fino al livello corrispondente (come nell’esempio in cui Bob e Alice si inviano lettere).
C’è anche da dire questo: siccome abbiamo scelto di seguire la “modularizzazione” su più livelli, questa ci permette di creare dei router (riferendoci a quelli della dorsale) che implementino solamente i 3 livelli più bassi dello stack: Rete, Collegamento e Fisico.
Infatti con essi non abbiamo nessun bisogno di comunicare a livello di applicazione, motivo per cui non implementano i due strati superiori (che sono puramente software).
Ecco un’immagine chiarificatrice per concludere l’articolo:
Pingback: Reti: Servizi, protocolli e tipi di Architetture | InformaticaLab Blog