Tecnologia di Internet
 
Il protocollo TCP/IP
TCP/IP, il protocollo di comunicazione di Internet, consiste in realtà di una famiglia di protocolli strettamente legati tra loro, di cui TCP (Transmission Control Protocol) e IP (Internet Protocol) sono i principali.

Inizialmente sviluppata per mainframe, il protocollo TCP/IP fu portato sui sistemi Unix alla fine degli anni 70, diventando parte integrale di quel sistema operativo. Oggi, con il diffondersi di Internet, è disponibile su tutti i personal computer.

In Internet (o meglio nella famiglia di protocolli TCP/IP) sono utilizzati solo cinque livelli OSI (non vengono usati i livelli di presentazione e sessione).

Come funziona TCP/IP
Quando ci vogliamo collegare con il nostro browser a un server web, stabiliamo un collegamento (virtuale) a livello applicazione. Dei dettagli di questo livello si occupa il livello di trasporto.

Al livello di trasporto il protocollo TCP mette in coda i messaggi delle applicazioni (browser e server) li indirizza e li trasmette sottoforma di pacchetti; il buon fine della spedizione è attestato da una ricevuta di ritorno. Anche questo è un collegamento virtuale tra le due applicazioni, i cui dettagli sono demandati al livello di rete.

Al livello di rete il protocollo IP decide quale strada seguire per trasmettere effettivamente i messaggi da un computer all’altro. Un computer spedisce, l’altro riceve, ma è un collegamento virtuale tra i due computer remoti, dei cui dettagli si occupa il livello di link.

Al livello di link si decide come fare il trasferimento del messaggio per ogni singolo tratto del percorso: dal computer del browser al primo router, dal primo router al secondo, dal secondo al terzo e dal terzo al computer del server. Questo è un collegamento virtuale tra due computer (o router) adiacenti. I dettagli fisici sono lasciati all’ultimo livello.

L’ultimo livello, fisico, trasmette fisicamente il messaggio sul cavo sottoforma di impulso elettrico. Questo è l’unico livello in cui avviene una trasmissione effettiva.

Per consentire queste comunicazioni, ad ogni signola macchina sulla rete è assegnato un indirizzo IP di 32 bit

Il sistema binario
Tutta l’informatica, e in particolare Internet e il protocollo TCP/IP, è basata sui numeri binari, l’unico sistema numerico che i computer comprendono.

Il sistema numerico decimale (detto in base dieci, comodo per gli esseri umani, forse perché hanno 10 dita) utilizza le dieci cifre 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 e la cifra di posizione n (partendo da destra con n=0) si intende moltiplicata per 10n.

Un sistema non decimale, per esempio quello ternario (detto anche in base tre), utilizza le tre cifre 0, 1 e 2 e la cifra di posizione n si intende moltiplicata per 3n.

Un sistema con base maggiore di dieci, per esempio il sistema esadecimale con base sedici, utilizza le sedici cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. La cifra di posizione n si intende moltiplicata per 16n (la cifra A ha il valore 10, la cifra B vale 11, …, la cifra F vale 15).

Il sistema binario (comodo per i computer, che sono fatti con componenti elettronici che possono assumere due stati, conduzione o non conduzione) si basa sulle due cifre 0 e 1. La cifra di posizione n si intende moltiplicata per 2n. Una cifra binaria è detta bit. Otto bit sono detti byte.

I primi numeri nei sistemi di numerazione decimale, ternario e binario.
Il sistema di numerazione di rete TCP/IP

Il sistema di numerazione di rete del protocollo TCP/IP è stato fissato nel 1981. Ad ogni singola macchina della rete viene assegnato un diverso indirizzo IP composto di 32 bit, cioè 4 byte, che la identifica. In notazione decimale, ciò significa quattro numeri ognuno dei quali va da 0 a 255. È usuale separare i quattro byte (sia in notazione binaria che decimale) con dei punti.

Ecco un indirizzo IP nelle notazioni binaria e decimale

    11001000.10000101.10101111.01100001
    200.133.175.97

L’ indirizzo IP ha una prima parte (che può essere composta dal primo, dai primi due, o dai primi tre byte) che indica il numero di rete e una seconda parte (gli altri byte) che indica il numero della macchina all’interno della rete.

Indirizzi di classe A

Più in dettaglio, si è convenuto che negli indirizzi IP il cui primo bit è 0 (quindi quelli in cui il primo numero decimale è compreso tra 0 e 127), il primo byte rappresenti il numero di rete, gli altri tre byte il numero della macchina all’interno della rete.

Struttura di un indirizzo IP di classe A; un byte è dedicato alla rete e tre byte sono dedicati al computer; gli indirizzi di questa classe sono adatti a quelle poche, grandi organizzazioni, che hanno reti con numerosi computer.
Con questo tipo di indirizzi, che sono detti di classe A o /8, si possono indirizzare poche reti (128 in totale ma in realtà solo 126 perché i numeri di rete 0 e 127 non si possono usare) ma ognuna con un numero molto elevato di possibili nodi (224 – 2 = 16.777.214, il primo e l’ultimo indirizzo non si possono usare).

Alle reti molto ampie, per esempio quella dell’esercito americano, vengono assegnati blocchi di indirizzi di classe A. Dall’elenco completo che si può trovare in

ecco alcune organizzazioni alle quali è stato assegnato un blocco di indirizzi di classe A (quindi più di 16 milioni di indirizzi):

  • Hewlett Packard (15.0.0.0)
  • Apple Computer (17.0.0.0)
  • Stanford University (36.0.0.0)
  • Posta Americana (56.0.0.0)

Indirizzi di classe B

Negli indirizzi IP i cui primi due bit sono 10 (e quindi il cui primo numero decimale è tra 128 a 191) i primi due byte rappresentano il numero di rete, e gli altri due byte rappresentano il numero della macchina all’interno della rete.

Struttura di un indirizzo IP di classe B; due byte sono dedicati alla rete e due byte sono dedicati al computer; gli indirizzi di questa classe sono adatti alle medie organizzazioni, che hanno reti con un numero medio di computer.
Ci sono 214 blocchi di questi indirizzi (detti di classe B o /16), ma solo 214 – 2 = 16,382 si possono usare: di questi attualmente ne sono stati assegnati circa 12,000 (65%). Ogni blocco consiste di un numero massimo teorico di 216 – 2 = 65,534 indirizzi.

Tutti gli indirizzi di classe B si possono trovare alla pagina

dalla quale sono tratte alcune organizzazioni alle quali è stato assegnato un blocco di indirizzi di classe B:

  • University of Utah (128.110.0.0)
  • Princeton University (128.112.0.0)
  • Technische Universität Hamburg (132.28.0.0)
  • Red Lion Hotels (170.10.0.0)

Indirizzi di classe C

Infine gli indirizzi IP i cui primi tre bit sono 110 (primo numero decimale da 192 a 223) si dicono di classe C o /24: qui, i primi tre byte indicano la rete e l’ultimo byte può indicare, per ogni rete, fino a 254 macchine.

Struttura di un indirizzo IP di classe C; tre byte sono dedicati alla rete e un byte è dedicati al computer; gli indirizzi di questa classe sono adatti alle numerose piccole organizzazioni, che hanno reti con pochi computer.
Poiché i primi tre bit sono fissi, ci sono 221 – 2 = 2,097,150 possibili reti di classe C; attualmente ne sono definite circa 800,000 (40%). Una piccola organizzazione (una società, una scuola) può per esempio ricevere un blocco di 254 indirizzi che vanno da 192.66.12.1 fino a 192.66.12.254.

Il blocco 195.31 è uno di quelli assegnati all’Italia; ecco alcuni blocchi di indirizzi italiani:

  • Magistrato delle Acque di Venezia (195.31.130.0)
  • Cassa di Risparmio di Ferrara (195.31.137.0)
  • Gruppo Coin (195.31.151.224)
  • Comune di Bologna (195.31.141.128)
Altre classi

Sono previste anche le classe D (bit iniziali 1110, indirizzi tra 224 e 239, per multicasting) ed E (bit iniziali 1111, indirizzi tra 240 e 254, per usi futuri).

Classe Primo byte binario Primo byte decimale Reti nella classe Indirizzi nella rete
A 00000000 – 01111111 0 – 127 126 16,777,214
B 10000000 – 10111111 128 – 191 16,382 65,534
C 11000000 – 11011111 192 – 223 2,097,150 254
D 11100000 – 11101111 224 – 239
E 11110000 – 11111111 240 – 254

Convenzioni

Un indirizzo che ha tutti i bit del numero di macchina uguali a 0 non indica una determinata macchina ma la rete stessa a cui apparterrebbe tale macchina.

Per esempio l’indirizzo di classe A

    00010001.00000000.00000000.00000000
    17.0.0.0

indica la rete della Apple, quello di classe B

    10000000.01110000.00000000.00000000
    128.112.0.0

indica la rete della Princeton University, e quello di classe C

    11000011.00011111.10001001.00000000
    195.31.137.0

la rete della Cassa di Risparmio di Ferrara.

Un indirizzo che ha tutti i bit del numero di macchina uguali a 1 non indica una particolare macchina; si tratta del cosiddetto indirizzo di broadcasting sulla rete indicata. Gli indirizzi di broadcasting delle tre reti indicate qui sopra sono

    00010001.11111111.11111111.11111111
    17.255.255.255

    10000000.01110000.1111111.11111111
    128.112.255.255

    11000011.00011111.10001001.11111111
    195.31.137.255

Gli indirizzi (di classe A) che iniziano con 127 hanno un uso riservato; tra questi

  • 127.0.0.1 = indica la macchina stessa (localhost)
  • 127.0.0.2 = indica la macchina più vicina nella rete

Reti private

Nelle reti locali interne private, non collegate con Internet, non è consigliato usare indirizzi pubblici (visibili), ma solo indirizzi speciali, a loro riservati.

La Internet Assigned Numbers Authority (IANA) ha riservato i seguenti tre blocchi di indirizzi IP per reti private

  • da 10.0.0.0 a 10.255.255.255 (una singola rete di classe A)
  • da 172.16.0.0 a 172.31.255.255 (16 reti contigue di classe B)
  • da 192.168.0.0 a 192.168.255.255 (256 reti contigue di classe C)
Assegnazione degli indirizzi IP

Il RIPE (Réseau IP Européens) è l’ente preposto all’assegnamento degli indirizzi IP per il continente Europeo. Per il continente americano l’ente preposto è l’ARIN, mentre per l’Asia e il Pacifico è l’APNIC.

Tutti questi organismi sono coordinati dall’ICANN (Internet Corporation for Assigned Names and Numbers).

Le porte
Livello OSI di riferimento: trasporto TCP crea un “circuito virtuale” tra due processi, assicura cioè che i pacchetti siano ricevuti nell’ordine in cui sono stati trasmessi e i pacchetti persi vengano ritrasmessi. Finora abbiamo discusso dell’indirizzo IP di una macchina. Ma quando il pacchetto è arrivato ad una macchina è necessario individuare un singolo servizio a cui spedirlo. Questa è la funzione delle porte. Quando TCP riceve un pacchetto verifica il numero di porta e spedisce i dati al processo corrispondente. Quando un processo viene avviato, registra un numero di porta con lo stack TCP/IP. I numeri di porta di default sono
  • 20, 21 FTP (File Transfer Protocol, dati su 20, controllo su 21)
  • 23 TELNET
  • 25 SMTP (Simple Mail Transfer Protocol)
  • 53 DNS (Domain Name Server)
  • 70 GOPHER
  • 79 FINGER
  • 80 HTTP (HyperText Transfer Protocol)
  • 110 POP3 (Post Office Protocol, version 3)
  • 119 NEWS
  • 123 TIME
  • 194 IRC (Internet Relay Chat)

Informazioni online

Il protocollo UDP
Livello OSI di riferimento: trasporto UDP è l’abbreviazione di User Datagram Protocol, un protocollo connectionless che, come TCP, viene eseguito su IP. Al contrario di TCP, UDP fornisce pochi servizi di correzione errore, offrendo invece un modo diretto di spedire e ricevere datagrammi su una rete IP. Il suo uso principale è per messaggi di broadcasting su una rete.

UDP è utile quando TCP è troppo complesso, troppo lento, o addirittura non necessario. Oltre a quelle di IP, UDP ha le seguenti funzioni

  • fornisce numeri di porta a 16 bit per consentire a processi mutltipli di usare servizi UDP su uno stesso host
  • fornisce un controllo di checksum; un pacchetto che non ha il checksum corretto viene semplicemente scartato, senza altre ulteriori azioni

Normalmente in UDP vengono forniti i servizi di audio e video streaming.

Informazioni online

   
Home | Commenti a Mauro Boscarol | Ultimo aggiornamento 22 dicembre 2000