5.6) Il livello network in Internet

Internet è una collezione di AS connessi gli uni con gli altri. Non esiste una struttura rigida, ma comunque si possono distinguere alcune componenti:


Figura 5-8: Organizzazione della rete Internet

Ciò che tiene tutto insieme è il protocollo di livello network dell'architettura TCP/IP, e cioè IP (Internet Protocol, RFC 791).

IP è un protocollo datagram, quindi non connesso e non affidabile, che opera come segue:

5.6.1) Lo header IP (versione 4)

Un pacchetto IP è costituito da un header e da una parte dati.

L'header ha una parte fissa di 20 byte e una parte, opzionale, di lunghezza variabile.


Figura 5-9: Formato dell'header IP

I campi dell'header hanno le seguenti funzioni:

Version il numero di versione del protocollo (oggi è 4).
IHL lunghezza dell'header in parole di 32 bit (minimo 5, massimo 15).
Type of service caratterizza affidabilità e velocità richieste. E' di fatto ignorato dai router.
Total length lunghezza del pacchetto (inclusi dati), massimo 65.535 byte.
Identification tutti i frammenti di uno stesso pacchetto hanno lo stesso valore.
DF don't fragment (se uguale a 1, non si deve frammentare il pacchetto a costo di scegliere una strada meno veloce).
MF more fragments (se uguale a 1, il pacchetto non è ancora finito).
Fragment offset indice del frammento nel pacchetto.
Time to live contatore (inizializzato a 255) che viene decrementato di uno a ogni hop (o ad ogni secondo). Quando arriva a zero, il pacchetto viene scartato.
Protocol codice del protocollo di livello transport a cui consegnare i dati (i codici sono definiti in RFC 1700).
Header checksum checksum di controllo del solo header:
  • si sommano (in complemento ad uno) le parole a 16 bit dello header, considerando il checksum a zero;
  • si complementa ad uno il risultato;
  • viene ricalcolato ad ogni hop (time to live cambia).
Source e destination address indirizzi di mittente e destinatario.
Options opzioni, solo cinque sono definite oggi:
  • security: quanto è segreto il pacchetto;
  • strict source routing: cammino da seguire;
  • loose source routing: lista di router da non mancare;
  • record route: ogni router appende il suo indirizzo;
  • timestamp: ogni router appende il suo indirizzo più un timestamp.



5.6.2) Indirizzi IP

Un indirizzo IP è formato da 32 bit e codifica due cose:

La combinazione è unica: non possono esistere nell'intera rete Internet due indirizzi IP uguali.

Si noti che solitamente si ritiene che ogni host sulla rete abbia un singolo indirizzo IP. In realtà gli indirizzi sono assegnati alle interfacce di rete, quindi:

Gli indirizzi IP sono assegnati da autorità nazionali (NIC, Network Information Center) coordinate a livello mondiale.

I formati possibili degli indirizzi sono i seguenti:


Figura 5-10: Formati degli indirizzi IP

Inoltre, esistono alcuni indirizzi con un significato speciale:


Figura 5-11: Indirizzi IP speciali

Quando si utilizza il loopback, il pacchetto non viene inviato sulla rete ma viene elaborato come se fosse in arrivo: questo è molto utile, ad esempio, per effettuare localmente dei test su un software di rete in fase di sviluppo.

Ricapitolando, poiché alcune configurazioni binarie per gli indirizzi sono impegnate per gli indirizzi speciali, possono esistere:

Gli indirizzi sono usualmente espressi nella dotted decimal notation, cioè i valori dei singoli byte sono espressi in decimale e sono separati da un punto, come nell'indirizzo:

141.192.140.37

In tale notazione, è possibile rappresentare separatamente il network number e l'host number. Per distinguerli, il primo è seguito da un punto. Ad esempio, nel caso dell'indirizzo IP precedente (che è relativo ad una network di tipo B), si ha:

5.6.3) Routing IP

Il collegamento fra due router non avviene direttamente, ma attraverso una network (in realtà di solito una subnet, come vedremo poi) che li collega, e che di fatto è costituita dalle due interfacce di rete e dalla linea di comunicazione che le collega:


Figura 5-12: Collegamento di router IP

Ogni router possiede una tabella (costruita e mantenuta dinamicamente dall'algoritmo di routing in esercizio) che contiene elementi del tipo:

  1. (this network number, host number) per ciascun host della network a cui il router è direttamente collegato;
  2. (network number, 0) per ciascuna network lontana di cui il router conosce l'esistenza.

Associate a tali elementi ci sono le informazioni sull'interfaccia di rete da usare per instradare il pacchetto e, nel caso delle linee punto punto, l'indirizzo del router che si trova dall'altra parte.

Inoltre, viene mantenuto l'indirizzo di un default router (e la corrispondente linea seriale da usare per raggiungerlo) a cui inviare tutti i pacchetti destinati a network sconosciute.

Nell'esempio della figura precedente, il router X si comporta come segue:

5.6.4) Subnet

Al fine di economizzare nel numero di network da usare (utilizzando al meglio quelle che possono contenere migliaia o milioni di host) una network può essere divisa in varie subnet, ciascuna contenente i suoi host.

Questo è un fatto privato della network che viene suddivisa, e non ha bisogno di essere comunicato all'esterno.

Il meccanismo usato è di considerare, nell'indirizzo IP originario, l'host number come una coppia di valori: un subnet number e l'host number. Ciò avviene sulla base di una maschera di bit, detta subnet mask, che deve essere unica per tutta la network e che delimita la parte di host number che viene usata come subnet number.

Ad esempio, per una rete di classe A si potrà avere:


Figura 5-13: Indirizzo IP con subnet (a) e relativa subnet mask (b)

A seconda dell'ampiezza del campo dedicato alla subnet, si possono ottenere molte subnet contenenti ciascuna pochi host oppure poche subnet che però potranno contenere molti host.

Nei router si aggiungono elementi del tipo:

con le relative informazioni sulle interfacce di rete da usare.

La rete di figura 5-12, che nella sua formulazione originaria impegnava ben tre network di classe B, può essere realizzata con un sola network di classe B suddivisa in tre subnet. A tal fine, usiamo un network number uguale a 150.1. ed una subnet mask (espressa in dotted decimal notation) uguale a 255.255.255.0, cioé:

Il risultato è il seguente:


Figura 5-14: Collegamento di router IP mediante uso di subnet

5.6.5) Protocolli di controllo

Assieme a IP esistono diversi protocolli per il controllo del funzionamento della subnet.

ICMP (Internet Control Message Protocol, RFC 792)

L'operatività della subnet è controllata continuamente dai router, che si scambiano informazioni mediante messaggi conformi al protocollo ICMP (tali messaggi viaggiano dentro pacchetti IP).

Esistono molti tipi di messaggi, fra i quali:

ARP (Address Resolution Protocol, RFC 826)

Il protocollo ARP serve per derivare, dall'indirizzo IP dell'host di destinazione, l'indirizzo di livello data link necessario per inviare il frame che incapsulerà il pacchetto destinato all'host di cui all'indirizzo IP.

Esso opera appoggiandosi direttamente sul livello data link e non su IP:

Se l'indirizzo IP è relativo ad un'altra network:

RARP (Reverse Address Resolution Protocol, RFC 903)

Il protocollo RARP risolve il problema inverso, cioè consente di trovare quale indirizzo IP corrisponda a un determinato indirizzo data link.

Esso è utile nel caso di stazioni senza disco, che al momento dell'avvio caricano l'immagine del codice binario del sistema operativo da un server.

Il vantaggio che si ottiene è che una sola immagine binaria va bene per tutte le stazioni: ogni stazione personalizza poi l'immagine binaria con la determinazione del proprio indirizzo IP mediante una richiesta RARP, nella quale invia il proprio indirizzo data link (che è cablato nell'interfaccia di rete).

5.6.6) Protocolli di routing

Come già detto, Internet è una collezione di AS connessi da backbone ad alta velocità.

Ciò che caratterizza un AS è il fatto di essere gestito da una singola autorità.

Esempi tipici di AS sono:

Il routing complessivo è organizzato in modo gerarchico:

Interior Gateway Protocol per Internet

Il protocollo originario era il RIP (Routing Information Protocol, RFC 1058) di tipo distance vector, ormai sostituito da OSPF (Open Shortest Path First, RFC 1247), che è di tipo link state.

OSPF consente fra l'altro un routing gerarchico all'interno dell'AS, che viene suddivisa in diverse aree:


Figura 5-15: Suddivisione di un AS in aree

I router di un AS possono essere:

Exterior Gateway Protocol per Internet

Il protocollo EGP, usato dai router sul confine dell'AS e da quelli sui backbone ad alta velocità che connettono gli AS, si chiama BGP (Border Gateway Protocol, RFC 1654).

E' fondamentalmente di tipo distance vector, con due novità:

5.6.7) IP versione 6

Dopo un lungo lavoro, IETF ha approvato il successore di IP versione 4, cioè la versione 6 (IPv6, RFC 1883, 1884, 1885, 1886, 1887).

I requisiti principali di progetto erano:

Le principali differenze rispetto alla versione 4 sono:


Torna al sommario | Vai avanti