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.