TCP/IP è una serie di protocolli. La sigla TCP/IP significa «Transmission Control Protocol/Internet Protocol» e si pronuncia «T-C-P-I-P». Esso proviene dai nomi dei due protocolli maggiori della serie di protocolli, cioè i protocolli TCP e IP).
TCP/IP rappresenta in un certo modo l'insieme delle regole di comunicazione su internet e si basa sulla nozione d'indirizzamento IP, cioè il fatto di fornire un indirizzo IP ad ogni terminale di rete per poter inviare dei pacchetti di dati. Dato che la serie protocollare TCP/IP in origine è stata creata per scopi militari, essa è concepita per rispondere ad un certo numero di criteri fra i quali:
Frazionamento dei messaggi in pacchetti;
Uso di un sistema di indirizzi;
Invio di dati sulla rete (routing);
Controllo degli errori di trasmissione di dati.
La conoscenza dell'insieme dei protocolli TCP/IP non è essenziale per un semplice utente, nello stesso modo in cui un telespettatore non ha bisogno di conoscere il funzionamento del suo televisore, né delle reti audiovisive. Tuttavia, la sua conoscenza è necessaria per le persone che desiderano amministrare o occuparsi della manutenzione di una rete TCP/IP.
TCP/IP raggruppa globalmente due nozioni:
La nozione di standard, ovvero che il TCP/IP rappresenta il modo in cui le comunicazioni si effettuano su una rete;
La nozione di implementazione, cioè la denominazione TCP/IP è spesso estesa ai software basati su questo protocollo. TCP/IP è infatti un modello sul quale gli sviluppatori di applicazioni di rete si basano. Le applicazioni sono quindi delle implementazioni del protocollo TCP/IP.
Per poter applicare il modello TCP/IP a tutti i terminali, cioè indipendentemente dal sistema operativo, il sistema di protocollo TCP/IP è stato scomposto in più moduli ciascuno con un compito preciso. Questi moduli svolgono inoltre i compiti gli uni dopo gli altri in un ordine preciso, con un sistema stratificato, ragione per cui si parla di modello a livelli.
Il termine livello è usato per evocare il fatto che i dati che transitano sulla rete attraversano più livelli di protocolli. Così, i dati (pacchetti di informazioni) che circolano sulla rete sono trattati successivamente per ogni livello, che aggiunge un elemento d'informazione (detto intestazione) e poi li trasmette al livello successivo.
Il modello TCP/IP è molto simile al modello OSI (con 7 livelli) che è stato elaborato dall'organizzazione internazionale degli standard (ISO, organizzazione internazionale di standardizzazione) per standardizzare le comunicazioni tra computer.
OSI significa Open Systems Interconnection, tradotto con interconnessione di sistemi aperti. Questo modello è stato realizzato dall'ISO per attuare uno standard di comunicazioni tra i computer di una rete, cioè le regole che gestiscono le comunicazioni tra i computer. In effetti, alle origini delle reti ogni costruttore aveva un proprio sistema (si parla di sistema proprietario). Esistevano quindi numerose reti incompatibili. Stabilire un norma era quindi diventata una necessità.
Il ruolo del modello OSI consiste nello standardizzare la comunicazione tra i terminali affinché i differenti costruttori possano mettere a punto dei prodotti (software o hardware) compatibili (per quanto poco essi rispettino scrupolosamente il modello OSI).
Lo scopo di un sistema a livelli è di separare il problema in differenti parti (i livelli) secondo il loro livello di astrazione. Ogni livello del modello comunica con un livello adiacente (quello sopra o quello sotto). Ogni livello usa inoltre i servizi dei livelli inferiori e ne fornisce a quelli superiori.
il modello OSI è un modello che prevede 7 livelli, mentre il modelli TCP/IP ne prevede solo 4. In realtà, il modello TCP/IP è stato sviluppato quasi nello stesso momento del modello OSI, ed è la ragione per cui ci si ispira ma non è totalmente conforme alle specifiche del modello OSI. I livelli del modello OSI sono i seguenti:
Livello | Vecchio modello | Nuovo modello |
---|---|---|
Livello 7 | Strato Applicazione | Livello Applicazione |
Livello 6 | Strato Presentazione | Livello Presentazione |
Livello 5 | Strato Sessione | Livello Sessione |
Livello 4 | Strato Trasporto | Livello Messaggio |
Livello 3 | Strato Rete | Livello Pacchetto |
Livello 2 | Strato Collegamento Dati | Livello Frame |
Livello 1 | Strato Fisico | Livello Fisico |
Il livello fisico definisce il modo in cui di dati sono fisicamente convertiti in segnali digitali sui media di comunicazione (impulsi elettrici, modulazioni della luce, ecc.).
Il livello collegamento dati definisce l'interfaccia con la scheda di rete e la condivisione del media di trasmissione.
Il livello rete permette di gestire l'indirizzamento e il routing dei dati, cioè il loro invio tramite la rete.
Il livello trasporto è incaricato del trasporto dei dati, della loro divisione in pacchetti e della gestione degli eventuali errori di trasmissione.
Il livello sessione definisce l'apertura e la distruzione delle sessioni di comunicazione tra i terminali di rete.
Il livello presentazione definisce il formato dei dati manipolato dal livello applicativo (loro rappresentazione, eventualmente loro compressione e loro codifica) indipendentemente dal sistema.
Il livello applicazione assicura l'interfaccia con le applicazioni. Si tratta quindi del livello più vicino agli utenti, gestito direttamente da alcuni software.
Il modello TCP/IP, ispirato al modello OSI, riprende l'approccio modulare (utilizzazione di modelli o livelli) ma ne contiene solo quattro:
Modello TCP/IP | Modello OSI |
---|---|
Livello Applicazione | Livello Applicazione |
Livello Presentazione | |
Livello Sessione | |
Livello Trasporto (TCP) | Livello Trasporto |
Livello Internet (IP) | Livello Rete |
Livello accesso rete | Livello Collegamento dati |
Livello fisico |
Come si può notare, i livelli del modello TCP/IP hanno dei compiti ben diversi da quelli del modello OSI, dato che alcuni livelli del modello TCP/IP corrispondono a più livelli del modello OSI. I ruoli dei differenti livelli sono i seguenti:
Livello Accesso di rete, che specifica la forma nella quale i dati devono essere inviati indipendentemente dal tipo di rete usata;
Livello Internet, che si incarica di fornire il pacchetto di dati (datagramma);
Livello Trasporto, che assicura l'invio dei dati, nonché i meccanismi che permettono di conoscere lo stato della trasmissione;
Livello Applicazione, che ingloba le applicazioni standard della rete (Telnet, SMTP,FTP, ecc.).
Qui di seguito i principali protocolli che fanno parte della serie TCP/IP:
Modello TCP/IP |
---|
Livello Applicazione TCP o UDP |
Livello Internet IP, ARP, RARP |
Livello accesso rete FDDI, PPP, Ethernet, Token ring |
Livello Fisico |
Durante una trasmissione, i dati attraversano alcuni degli strati al livello del terminale emittente. Ad ogni livello, un'informazione viene aggiunta al pacchetto di dati, si tratta di un'intestazione, un insieme di informazioni che garantisce la trasmissione. A livello del terminale ricettore, al momento del passaggio in ogni livello, l'intestazione viene letta, poi cancellata, così, alla ricezione, il messaggio è nel suo stato originale:
Ad ogni livello, il pacchetto cambia aspetto, dato che gli si aggiunge un'intestazione, e quindi le denominazioni cambiano seguendo i livelli:
Il pacchetto di dati è detto messaggio al livello Applicazione;
Il messaggio in seguito è incapsulato sotto forma di segmento nel livello Trasporto;
Il segmento, una volta incapsulato, nel livello Internet prende il nome di datagramma;
Infine, si parla di frame sul livello Accesso di rete.
Il livello Accesso di rete è il primo livello della pila TCP/IP capace di accedere ad una qualsiasi rete fisica, cioè rappresenta i mezzi per realizzare una trasmissione di dati attraverso una rete. Così, il livello Accesso di rete contiene tutte le specifiche riguardo la trasmissione di dati su una rete fisica, che si tratti di rete locale (Token ring, Ethernet, FDDI), di connessione ad una linea telefonica o a qualsiasi tipo di collegamento di rete. Si incarica delle nozioni seguenti:
Invio dei dati sul collegamento;
Coordinamento della trasmissione dei dati (sincronizzazione);
Formato dei dati;
Conversione dei segnali (analogico/digitale);
Controllo degli errori all'arrivo.
Fortunatamente tutte queste specifiche sono trasparenti per l'utente, dato che l'insieme di questi compiti è in effetti realizzato dal sistema operativo, come per altro i driver dell'hardware che permettono la connessione alla rete (ad esempio driver della scheda di rete).
Il livello internet è il livello "più importante" (sono tutti importanti) dato che è quello che definisce i datagrammi, e che gestisce le nozioni d'indirizzamento IP. Esso permette l'invio dei datagrammi (pacchetti di dati) verso dei terminali remoti nonché la gestione della loro frammentazione e riassemblaggio alla ricezione.
Il livello internet contiene 5 protocolli:
Protocollo IP;
Protocollo ICMP;
Protocollo RARP;
Protocollo IGMP.
I primi tre sono i protocolli più importanti di questo livello.
I protocolli dei livelli precedenti permettevano di inviare delle informazioni da un terminale all'altro. Il livello Trasporto permette a delle applicazioni che girano su terminali remoti di comunicare. Il problema consiste dell'identificare queste applicazioni. In effetti, a seconda del terminale e del suo sistema operativo, l'applicazione potrà essere un programma, un compito, un processo, ecc. Inoltre, la denominazione dell'applicazione può variare da un sistema all'altro, ed è la ragione per cui un sistema di numero è stato realizzato per poter associare un tipo di applicazione ad un tipo di dati; questi identificativi sono detti porte.
Il livello Trasporto contiene due protocolli che permettono alle due applicazioni di scambiare dei dati indipendentemente dal tipo di rete scelta (cioè indipendentemente dai livelli inferiori, ecc.). Si tratta dei seguenti protocolli:
TCP, un protocollo orientato connessione che assicura il controllo degli errori;
UDP, un protocollo senza connessione il cui controllo d'errore è obsoleto.
Il livello Applicazione è quello situato alla sommità dei livelli dei protocolli TCP/IP. Esso contiene le applicazioni di rete che permettono di comunicare grazie ai livelli inferiori. I software di questo livello comunicano quindi grazie ad uno dei due protocolli del livello inferiore (il livello trasporto) cioè TCP o UDP.
Le applicazioni di questo livello sono di differenti tipi, ma la maggior parte sono dei servizi di rete, cioè delle applicazioni fornite all'utente per assicurare l'interfaccia con il sistema operativo. Possiamo classificarli secondo i servizi che offrono: servizi di gestione (trasferimento) di file e di stampa; servizi di connessione alla rete; servizi di connessione remota; le diverse utility di Internet.
Foto: © Pixabay.