Il protocollo IPv6

IPv6 è il successore di IPv4. Il motivo di questo aggiornamento è la paura che gli indirizzi a 32 bit possano esaurirsi.
Pasted image 20231011095602.png
Differenze:

  • Indirizzamento esteso: IPv4 era 32 bit, IPv6 è 128 bit.
  • Intestazione ottimizzata di 40 byte, una serie di campi IPv4 è stata eliminata o resa opzionale.
  • Flow lable (Etichettatura dei flussi), vuole differenziare i flussi: un trasferimento audio video in tempo reale può essere considerato un flusso e avere così una priorità maggiore rispetto ad altri.

Campi:

  • Versione: 4 bit (versione 6)
  • Traffico: 8 bit (simile al campo TOS)
  • Lunghezza payload: 16 bit (senza segno)
  • Intestazione successiva (next hdr): ovvero se i pacchetti una volta consegnati saranno di tipo TCP o UDP al livello di trasporto
  • Limite di hop: decrementato di 1
  • Indirizzo di sorgente e destinazione a 128 bit
  • Dati: 40 byte

IPv6 non prevede frammentazione e riassemblaggio sui router, tali operazioni devono essere effettuate sugli host estremi. Dato che i segmenti a livello di trasporto hanno già i checksum, sono stati ritenuti ridondanti a questo livello. Il campo opzioni è stato rimosso dall'intestazione.

Passaggio da IPv4 a IPv6
...

Il passaggio di Internet da IPv4 a IPv6 è problematico.
IPv6 è retrocompatibile, ovvero possono essere instradati pacchetti IPv6 nella rete IPv4, ma non è fattibile il contrario.
Questo problema è affrontato con il tunneling.
L'idea alla base di questo approccio è la seguente: supponiamo che due nodi (B, E in figura sotto) IPv6 vogliano utilizzare datagrammi IPv6, ma che essi siano connessi ad un insieme di router intermedi IPv4 (chiameremo questi router intermedi tunnel).
Pasted image 20231103125735.png
Il nodo B, lato sinistro del tunnel, prende l'intero pacchetto IPv6 ricevuto da A e lo pone nel campo dati di un datagramma IPv4. Questo datagramma IPv4 viene indirizzato a E passando per la serie di router intermedi. Il pacchetto viene instradato come se fosse un qualsiasi altro datagramma IPv4, ignari del fatto che questo contenga nel payload un datagramma IPv6. Il nodo E IPv6 riceve il datagramma osservando il numero di protocollo indicato nel pacchetto IPv4 è 41, che è il numero di protocollo per indicare che il payload contiene un pacchetto IPv6, allora E lo estrae ottenendo il pacchetto IPv6 da gestire.

Il tunneling è molto importante anche per le VPN, il procedimento è molto simile per far si che un pacchetto IPv4 trasporti un altro pacchetto IPv4 cifrato secondo alcune procedure di sicurezza note come IPsec.