Come funziona Internet

Internet, la rete delle reti di dimensione globale che si estende praticamente su tutto il pianeta Terra, si basa sull'utilizzo di una serie di protocolli di rete, solitamente riassunto con il termine pila TCP/IP, dal nome dei protocolli di più alto livello utilizzati nella rete.

Sfruttando il protocollo IP, si possono recapitare pacchetti ad un qualsiasi host presente su Internet: praticamente è sufficiente che il mittente sia
connesso ad Internet e che conosca l’indirizzo IP pubblico dell’host destinatario, tutto il resto è gestito dalla rete globale attraverso il routing. Tuttavia, il protocollo IP non risolve il problema di come far comunicare tra loro due processi qualsiasi che si trovano rispettivamente uno sulla macchina mittente ed uno sulla macchina destinataria. Questo problema è affrontato dai protocolli di trasporto, che creano l’astrazione logica di una connessione end-to-end, ovvero il supporto alla comunicazione tra due processi che si trovano ai due estremi del canale logico. Su Internet il protocollo di trasporto, il protocollo TCP ed il protocollo UDP: tra i due il TCP è indubbiamente il più utilizzato, per i motivi che verranno spiegati nel seguito.

Indirizzi IP

L’indirizzo IP è quell’indirizzo che permette di riconoscere un dispositivo (pc, router, smartphone, etc.) all’interno di una rete che utilizza il protocollo IP
(Internet Protocol). Attualmente, la versione più conosciuta del protocollo IP è la versione 4 (v4), che nel futuro sarà sostituita dalla versione 6 (v6), la quale ci consente di avere più indirizzi a disposizione. Un indirizzo
IPv4 viene specificato in decimale con una sintassi di questo tipo:
192.168.0.1
 

Routing

Il routing o instradamento è il servizio effettuato dai router, componenti fondamentali della rete Internet. Un router è un dispositivo di rete di livello 3, che ha il compito fondamentale di fare
comunicare tra loro reti differenti ed eterogenee. Per far ciò, il router effettua l’instradamento dei pacchetti basandosi sugli indirizzi IP. Ogni router è collegato ad almeno due reti diverse e dunque avrà almeno due indirizzi IP, un indirizzo per ciascuna rete a cui è collegato.

TCP

Il protocollo TCP (Transmission Control Protocol) è il protocollo di trasporto che si occupa di fornire un canale logico che permette la comunicazione end-to-end fra due host che si trovano ai due capi della rete.
Poiché su un host qualsiasi si trovano più processi in esecuzione e dunque più programmi applicativi, è necessario che il TCP permetta di effettuare il demultiplexing, consentendo cioè che la rete possa essere condivisa tra i vari processi applicativi presenti all’interno dello stesso host. Il servizio di demultiplexing, come spiegato in questo post, è comune a tutti i protocolli di trasporto ed è dunque implementato anche dal protocollo UDP.

Inoltre, la caratteristica distintiva del protocollo TCP è quella di garantire la consegna affidabile ed in sequenza di un flusso di byte.

Il servizio di consegna affidabile garantisce che il TCP è in grado recuperare i messaggi che sono andati persi, ripristinarne la sequenza ed eliminare i messaggi duplicati. Tali operazioni sono implementate dall’algoritmo a finestra scorrevole, detto anche sliding window.

Il controllo di flusso permette al protocollo di far sì che il ricevitore possa limitare la quantità di dati che il mittente trasmette in un certo istante. questo permette di evitare che il mittente esaurisca la capacità del ricevitore.

Il controllo di congestione impedisce al mittente di sovraccaricare la rete. infatti se nella rete vengono immessi un numero eccessivo di pacchetti si possa sovraccaricare i commutatori o le linee di collegamento.