IL CUORE DI INTERNET: TCP/IP
La spinta per lo sviluppo del protocollo TCP/IP venne data dalle nuove esigenze nate dallo sviluppo e dall’integrazione di reti diverse, che si trovavano nella necessità di comunicare: reti via satellite, reti via radio a commutazione di pacchetto e naturalmente ARPAnet. Il lavoro di progettazione e sviluppo di TCP/IP è il primo e il miglior esempio di quella che un po’ pomposamente viene chiamata “metodologia Internet”: molto semplicemente, quando c’è bisogno di qualcosa, la si fa, la si collauda “nel mondo reale” e una volta che è stata ottimizzata la si generalizza, definendo uno standard.
I nuovi protocolli vennero utilizzati per ARPAnet a partire dal 1° gennaio 1983, che per alcuni costituisce la data ufficiale di nascita di Internet: la maggior affidabilità ed efficienza di TCP/IP rispetto al suo predecessore NCP furono la causa principale della migrazione di tutte le principali Reti a commutazione di pacchetto verso il nuovo protocollo, che si impose in breve come lo standard di riferimento. 

CHE COS’È TCP
Il protocollo di controllo della trasmissione (Transmission Control Protocol) è la prima interfaccia software verso la Rete e colloquia principalmente con le applicazioni di livello superiore, quelle a diretto contatto con l’utente. Di concerto col sistema operativo, TCP soddisfa un gran numero di esigenze dei programmi applicativi, che basano i propri protocolli interni su servizi messi a disposizione da TCP: è il caso del protocollo per il trasferimento di file (FTP), del protocollo semplice per il trasporto di posta elettronica (Simple Mail Transfer Protocol, STMP) o di una sessione di TELNET (simulazione di terminale remolo). Quando avviamo i singoli applicativi che implementano queste funzioni (come nel caso della posta elettronica), essi si preoccupano in primo luogo di stabilire una comunicazione col software che implementa i protocolli TCP (come Winsock Trumpet o MacTCP) e che da quel momento è disponibile all’applicazione.
Tra le funzioni per cui un programma applicativo che ha necessità di colloquiare in Internet può rivolgersi a TCP, vi sono la stia gestione dei dati orientata alla connessione, il trasferimento dei dati, il controllo del flusso di trasmissione e il trasferimento fullduplex (bidirezionale simultaneo). Una caratteristica di TCP che non tutti i programmi sfruttano, ma che è incorporata nella definizione dello standard del protocollo, è quella di specificare livelli di sicurezza e di priorità per la connessione.
Questo per quanto riguarda il colloquio fra TCP e lo strato superiore. Lo standard TCP non comprende infatti alcuna specifica per quanto riguarda le comunicazioni con lo strato inferiore, sottintendendo che questo è in grado di scambiare informazioni con TCP in modo asincrono.

 

CHE COS’È IP
Il protocollo Internet si occupa di fornire tutti i servizi necessari alla gestione del traffico tra l’utente e la (sotto)rete sottostante, nonché — installato sui server di rete e sui gateway — tra le varie sottoreti attraverso cui i dati transitano per arrivare a destinazione. Si tratta di un cosiddetto “protocollo senza connessione” che non prevede alcun controllo sull’integrità e sulla completezza dei dati dalla partenza alla destinazione e che deve perciò appoggiarsi a un protocollo di livello superiore, come appunto TCP. Questo significa anche che IP è un protocollo relativamente semplice e “ignorante” occupandosi esclusivamente della confezione e dello smistamento dei pacchetti (o “datagrammi”), nonché del loro instradamento/ricezione, esso possiede ben pochi indizi sul funzionamento della Rete o delle reti sottostanti, il che rende queste ultime relativamente indipendenti da IP stesso.

L’indirizzamento in rete
In Internet è fondamentale distinguere chiaramente alcune nozioni che vengono spesso confuse. Un nome è un identificatore alfanumerico (cioè timi sequenza di caratteri e cifre) che indica una certa entità, quali un computer, un programma, una persona, una rete, indipendentemente dalla loro dislocazione fisica. Un indirizzo è un altro identificatore che fornisce informazioni di natura molto più approfondita e specifica a proposito di una certa risorsa, quali la sua posizione fisica o logica nella Rete. Un percorso è l’insieme delle informazioni e delle modalità da seguire necessarie al reperimento di una posizione fisica (sia essa un indirizzo o meno).
Non è in realtà ima distinzione difficile, anche perché si basa sul modello postale/telefonico che tutti conosciamo e che in effetti costituisce ancor oggi l’idea alla base della maggior parte delle sottoreti che afferiscono a Internet.
Nella pratica, l’utente utilizza di solito un nome per identificare il destinatario di una certa comunicazione; un name server (o server di nomi) risale dal nome all’indirizzo del destinatario, indirizzo da cui si ricostruisce il percorso fisico attraverso un protocollo di routing.
Si tratta di un’impostazione che consente una grande elasticità nella gestione delle risorse di rete, permettendo a sistemisti e amministratori di sistemi di riconfigurarle e di ottimizzarle senza che ciò tocchi in alcun modo gli utenti finali. 

L’indirizzo IP
Anche se l’utente finale ha a che fare solitamente col nome della risorsa di rete a cui vuole accedere (per esempio, un altro computer di rete), la prima cosa di cui si incarica il name server residente sull’host dell’utente è la sua traduzione in un indirizzo IP, cioè l’indirizzo di rete comprensibile agli strati successivi di software che implementano i protocolli di trasmissione.
Le reti TCP/IP implementano indirizzi a 32 bit che codificano la rete di appartenenza della risorsa (indirizzo di rete) e l’host che la supporta (indirizzo di host). La struttura dell’indirizzo IP è quindi: indirizzo IP = indirizzo di rete + indirizzo di host, a cui i 32 bit disponibili possono essere riservati in più modi, secondo la ripartizione in classi riportata in figura.

 Formati degli indirizzi IP.

Ricordando che N bit permettono di codificare 2N numeri, è facile constatare che le diverse classi di indirizzamento riflettono le esigenze di bilanciamenti reti/host alquanto diversi. Gli indirizzi di classe A riservano 24 bit all’indirizzamento di rete e 7 all’indirizzamento dell’host. Questo significa che permettono di indirizzare 27=128 reti (in realtà, 126, perché i valori 0 e 127 sono riservati) e 224=16.777.21 host (in realtà, 16.777.124).
In formato binario, un indirizzo IP (di classe C, per esempio) avrà un formato del tipo: 

11000001 11001111 00000010 0001 1111

dove è stata evidenziala la suddivisione nei 4 byte (gruppi di 8 bit) che lo costituiscono. Di solito i byte vengono rappresentati in forma decimale e separati da un punto. Così, il nostro indirizzo diventa: 

193.207.2.31 

una forma già molto più familiare ai frequentatori di Internet. In questo formato, 193.207.2 è l’identificatore di rete della risorsa, mentre 31 è l’indirizzo dell’host.

 

 

A

rete. host. host. host

B

rete. rete. host. host

C

rete. rete. rete. host

D

(non applicabile)

Formati delle notazioni decimali degli indirizzi IP.