Funzioni:

  • forwarding dei pacchetti,
  • consegna dei datagrammi al livello di rete (host to host),
  • frammentazione dei pacchetti (nota: non c’è in IPv6)

È inaffidabile, è senza connessione e basato su datagrammi.

Formato dei datagrammi

  • Numero di versione: IPv4 o IPv6,
  • Lunghezza dell’intestazione,
  • Tipo di servizio (realtime o meno), per distinguere diversi datagrammi con requisiti di qualità del servizio diverse,
  • Lunghezza del datagramma (intestazione inclusa),
  • Identificatore, flag e offset di frammentazione (per la frammentazione),
  • Protocollo di trasporto (TCP (Transmission Control Protocol), UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol), IGMP, OSPF),
  • Checksum dell’intestazione (calcolata solo sull’intestazione, su tutti i router),
  • Indirizzi IP origine e destinazione,
  • Altre opzioni,
  • Dati.

Frammentazione

Dato che la Maximum Transfer Unit (massima quantità di dati che un frame a livello di collegamento può trasportare) varia in base al tipo di collegamento, i datagrammi troppo grandi possono essere frammentati in più piccoli.

Servono:

  • identificatore del pacchetto originale,
  • 3 bit di flag:
    • riservato,
    • si può frammentare/non si può frammentare,
    • ha frammenti intermedi/non ha frammenti intermedi.

Indirizzi IP

IPv4

Esistono (4 miliardi) di Indirizzi IPv4 (Internet Protocol version 4). Sono stringhe di 4 byte (scritti spesso in notazione decimale puntata) per indirizzare i datagrammi (livello di rete).

I quattro byte sono separati da un punto e sono organizzati in una struttura gerarchica che indica la rete di appartenenza e l’indirizzo del nodo.

Dagli URL vengono estratti gli indirizzi IP usando il DNS (Domain Name System).

Ogni interfaccia di host e router ha un indirizzo IP.

I blocchi di indirizzi si comprano dagli ISP, che a loro volta li comprano dalla ICANN, la corporazione che gestisce anche i server DNS radice.

Gli indirizzi si assegnano agli host o manualmente, o automaticamente con il DHCP (Dynamic Host Configuration Protocol), nonostante venga usato molto nelle reti dove gli host si aggiungono e si rimuovono molto velocemente, consente gli indirizzi IP persistenti.

Indirizzamento con classi e senza classi

Esistono due tipi di indirizzamento:

  • Indirizzamento con classi: l’IP si divide in prefisso di lunghezza fissa (che individua la rete) e suffisso (che individua il nodo). Esistono cinque classi di IP, ma la classe A può essere assegnata solo a 128 organizzazioni al mondo, ognuna con un numero spropositato di nodi; lo stesso vale per la classe B e il contrario vale per la C, che ha solo 256 nodi per rete.
    • Gli IP di classe A hanno 1 byte di prefisso (0…) e 3 di suffisso;
    • Gli IP di classe B hanno 2 byte di prefisso (10…) e 2 di suffisso;
    • Gli IP di classe C hanno 3 byte di prefisso (110…) e 1 di suffisso;
    • Gli IP di classe D sono indirizzi multicast (1110…);
    • Gli IP di classe E (1111…) sono riservati per uso futuro.
  • Indirizzamento senza classi: è più flessibile, il prefisso ha grandezza variabile e la sua lunghezza in bit viene aggiunta all’indirizzo dopo uno slash (notazione CIDR: Classless InterDomain Routing). Però un indirizzo non è in grado di definire da solo la rete o il blocco a cui appartiene. Il numero di indirizzi nel blocco è dato da .

Problema: le organizzazioni vogliono blocchi di IP contigui e espandibili per indirizzare le loro reti, ma i blocchi successivi possono essere stati comprati da altre società. Ciò si può risolvere con gli indirizzi privati + NAT (Network Address Translation).

Maschera dell’indirizzo

Una maschera di un indirizzo IP è un numero di 32 bit in cui i primi bit sono importati a 1 e il resto a 0. Viene usata nel routing.

  • Numero di indirizzi nel blocco =
  • Primo indirizzo del blocco =
  • Ultimo indirizzo del blocco =

Indirizzi speciali

IPv6

  • Ha indirizzi IP lunghi 16 byte. Ne esistono quindi molti di più di quanti ne supporta IPv4.
  • Ha un nuovo formato dell’header IP e supporta nuove opzioni, soprattutto di sicurezza, con anche la possibilità di estenderle.
  • È più efficiente perché non ha frammentazione nei router intermedi e ha etichette di flusso per il traffico audio e video.

La transizione da IPv4 e IPv6 è ancora in corso ed è molto localizzata. Esistono diversi meccanismi per gestirne la coesistenza:

  • Dual stack: gli host hanno un livello di rete doppio, uno per IPv4 e uno per IPv6. L’host interroga il DNS e in base all’IP ricevuto determina il protocolo da usare.
  • Tunneling: due host IPv6 devono comunicare attraverso una regione IPv4, quindi incapsulano il datagramma IPv6 nel payload di uno IPv4. l’IP sorgente e destinazione sono gli estremi del tunnel IPv4.
  • Traduzione da IPv6 a IPv4: un mittente IPv6 manda il datagramma a un router intermedio che lo traduce prima di mandarlo all’host IPv4 di destinazione.