Di cosa si occupa esattamente il protocollo di rete TCP/IP e quali sono le differenze sostanziali con il riferimento ISO/OSI? esistono attualmente altri protocolli di rete dello stesso tipo?

Comincerò col rispondere all’ultima parte della domanda. Esistono
protocolli di rete diversi dal TCP/IP, e fra questi si possono citare
SNA (System Network Architecture) definito dalla IBM e alcune implementazioni
dei protocolli OSI fra cui la più matura è sicuramente Decnet/OSI
della Digital Equipment. Va notato comunque che la diffusione del protocollo
TCP/IP dovuta al successo di Internet ha relegato tutti gli altri protocolli
ad applicazioni di nicchia.

La risposta alla parte principale della domanda richiederebbe uno spazio
ed un livello di approfondimento assolutamente inadatti a queste pagine,
mi limiterò quindi a dare uno sguardo ali aspetti “funzionali”
di TCP/IP rimandando per i dettagli ai riferimenti in fondo alla pagina.

Si chiamano con il nome generico di TCP/IP un insieme di protocolli
che consentono lo scambio di dati fra due programmi in funzione su due
computer diversi connessi da una rete di trasmissione dati.

Per descrivere le caratteristiche dei protocolli di trasmissione dati
si utilizza universalmente un modello introdotto dall’ International
Standards Organization e chiamato Open-Systems
Interconnection (Modello di interconnessione dei sistemi aperti),
da cui la sigla ISO/OSI. Il modello descrive le funzioni necessarie all’interconnessione
di due sistemi mediante una gerarchia di sette livelli:


Nome del livello

Funzione
1. Fisico Descrive le modalità di trasmissione e ricezione dei segnali
(elettrici, ottici) che trasportano le informazioni.
2. Data link Descrive come viene controllato il flusso di dati fra due nodi
intercomunicanti, le modalità di condivisione del mezzo trasmissivo
da parte di più utilizzatori, ecc.
3. Rete Descrive le modalità di instradamento (Routing) ovvero
specifica come avviene l’attraversamento delle reti interconnesse.
4. Trasporto Comprende tutte le operazioni necessarie al corretto trasferimento
dei dati dal nodo sorgente al nodo destinazione provvedendo al controllo
degli errori, alla ritrasmissione in caso di errore, ecc.
5. Sessione Controlla la connessione fra le due applicazioni intercomunicanti
ovvero attiva e disattiva il canale virtuale di interconnessione
fra i due programmi che si scambiano i dati.
6. Presentazione Effettua la conversione dei protocolli, l’interpretazione dei
dati su base sintattica, la cifratura e decifratura, ecc.
7. Applicazione Descrive i protocolli al livello della particolare applicazione
ossia stabilisce la struttura ed il significato dei messaggi che
i due programmi intercomunicanti si scambiano.

Nell’interpretazione del modello si considera ciascun livello come un
“servizio” fornito al livello superiore; il livello 7 del nodo che trasmette
i dati interpreta le richieste dell’utilizzatore, prepara i dati necessari
e li trasferisce al livello inferiore che a sua volta esegue la parte
del compito che gli spetta e passa il risultato al livello ancora inferiore,
e cosí via. Nel nodo ricevente si svolge il processo contrario.

I protocolli TCP/IP id base, ovvero il protocollo TCP (Transfer Control
Protocol) ed IP (Internet Protocol) definiscono le operazioni che sono
comprese nei livelli da 3 a 5 nel modello ISO/OSI. Ovvero consentono lo
scambio di dati mediante un canale logico fra due programmi operanti su
due nodi di una rete, ma non stabiliscono quale sia il significato dei
dati trasmessi (compito dei livelli superiori) né specificano quali
sono le caratteristiche delle linee fisiche di interconnessione (compito
dei livelli inferiori).

Nella pratica comunque sotto il nome generico di TCP/IP sono compresi
per ragioni storiche anche alcuni protocolli dei livelli 6 e 7 (ad esempio:
SMTP per lo scambio di posta elettronica, ftp per il trasferimento
di files, etc.) ed un protocollo di livello 2 per l’accesso alla rete
ethernet (arp). Altri protocolli sono invece nati successivamente
e non si considerano parte della “suite” TCP/IP (ad esempio il protocollo
http per l’accesso alle pagine Web o il protocollo SNMP
per il controllo remoto delle apparecchiature di rete, ai livelli superiori,
ed i protocolli ppp e slip al livello 2)

Per spiegare le funzioni descritte dai livelli del modello ISO/OSI e
l’implementazione effettuata dai protocolli TCP/IP, mi servirò
di un esempio. Supponiamo quindi di voler analizzare a livello di protocollo
ciò che avviene quando si invia un messaggio di posta elettronica
dal proprio Personal Computer; ovvero quando, una volta composto un messaggio
ed impostato l’indirizzo di destinazione, si impartisce il comando di
“invio”.

Il PC è collegato ad un provider tramite modem su linea telefonica
ed il messaggio si suppone diretto ad un corrispondente che ha una “casella
di posta” presso lo stesso provider. Per semplicità supporremo
che fra il PC ed il server che mantiene la “mailbox” del destinatario
ci sia un solo router, mentre nella realtà il messaggio può
attraversare parecchi router prima di arrivare a destinazione.

La
situazione descritta è schematizzata nella seguente figura qui
a fianco (ingrandisci con un click).

Perché il messaggio possa essere correttamente inviato e ricevuto
il programma di invio e quello di ricezione devono concordare un linguaggio
comune (protocollo) per descrivere tutte le caratteristiche del messaggio.
Questa funzione si colloca al livello 7 e, nel caso particolare della
posta elettronica, utilizza il protocollo SMTP.

In questo esempio il livello 6 non interviene, quindi il messaggio viene
passato al livello 5, il quale ha il compito di aprire una connessione
con il nodo di rete che deve ricevere il messaggio e con il particolare
programma che e’ in grado di comprenderne il contenuto.

Interviene poi il livello 4 che ha il compito di trasferire in modo
corretto la sequenza di dati che compongono il messaggio al nodo destinazione.
Si noti che il software ai livelli 5 e 4 non ha nessuna conoscenza del
contenuto del messaggio, ma ha il solo compito che venga consegnato intatto
al nodo di destinazione. La porzione TCP del protocollo svolge essenzialmente
le funzioni dei livelli 4 e 5.

Il messaggio a questo punto passa al livello 3 che ha il compito di
individuare quale è il nodo adiacente nel cammino per raggiungere
la destinazione e di trasferire il messaggio a tale nodo utilizzando i
servizi del livello 2. I servizi di livello 3 sono implementati dalla
porzione IP del protocollo TCP/IP.

Nel nostro esempio al livello 2 dobbiamo considerare due casi: l’interconnessione
fra il PC ed il router del provider e l’interconnessione fra il router
ed il server di posta di destinazione, attraverso la LAN del provider.
Nel primo caso i servizi del livello 2 sono svolti da un ulteriore protocollo
il PPP (Point To Point Protocol), che consente il trasferimento di una
sequenza di dati lungo la linea telefonica; nel secondo caso dal protocollo
“Ethernet” implementato all’interno delle schede di rete del router e
del server di posta.

Al livello 1 si collocano infine l’interfaccia hardware verso la linea
telefonica ovvero l’insieme delle due schede modem e della rete telefonica
che le interconnette, nel caso del collegamento fra PC utente e router
di ingresso del provider e la circuiteria delle schede di rete con i relativi
cablaggi di interconnessione nel collegamento LAN presso il provider.

Quando il messaggio viene ricevuto attraversa i livelli più bassi
e viene quindi viene passato al livello 3 (IP) dove viene verificato se
si tratta del nodo finale oppure se il messaggio deve essere ritrasmesso
verso un nodo successivo. Nel nostro esempio quando il router riceve il
messaggio dovrà ritrasmetterlo sulla LAN utilizzando l’appropriato
protocollo di livello 2 che a sua volta utilizza la relativa interfaccia
di trasmissione.

Quando invece il messaggio raggiunge il server e raggiunge il livello
3 viene passato al livello superiore per effettuare i controlli di validità
e, per passi successivi, raggiunge il programma di livello 7, dove il
messaggio che segue le direttive del protocollo SMTP, viene finalmente
interpretato e collocato nella “casella postale” del destinatario, che
non è altro che un file al quale vengono via via accodati i messaggi
in arrivo.

Riferimenti

Quanto detto fino a qui dovrebbe essere sufficiente a dare un’idea del
funzionamento del prtocollo TCP/IP, ma trascura una gran quatità
di dettagli che non possono essere trattati in modo sintetico.

Una descrizione un po’ più dettagliata può essere trovata
nelle seguenti pagine Web:

Mentre per una trattazione completa al massimo livello tecnico rimando
ai tre volumi:

  • D.E. Comer, “Internetworking with tcp/ip”. Englewood Cliffs: Prentice-Hall,
    1988.

  • D.E. Comer, D.L. Stevens, “Internetworking with tcp/ip vol.II: design,
    implementation and internals”. Englewood Cliffs: Prentice-Hall, 1991

  • D.E. Comer, D.L. Stevens, “Internetworking with tcp/ip. vol.III:
    client server programming and applications”. Englewood Cliffs: Prentice-Hall,
    1988