Skip to content

Lezione (2025-11-28)

Esistono alcuni tipi di indirizzi IP speciali che non possono essere assegnati agli host:

Sono usati per riferirsi al prefisso usato per una certa rete e si indicano impostando l’hostID a 0.

Si usa per inviare un pacchetto a tutti gli host di una rete. Questo pacchetto viaggia su internet come un singolo pacchetto. Il router di destinazione lo distribuisce a tutti gli host sulla sua rete.

Si indica mettendo l’hostID a tutti 1.

Si usa per inviare un pacchetto a tutti gli host della rete locale. I pacchetti inviati a questo indirizzo non escono mai dalla rete locale.

Si indica con l’indirizzo 255.255.255.255, che corrisponde a 32 bit a 1.

Quando un host non ha un indirizzo IP valido (e quindi non conosce su che rete si trova), allora esso manda i datagrammi all’indirizzo broadcast locale.

Quando un host si accende, deve ricevere un indirizzo IP prima di essere in grado di usare i protocolli superiori. Però anche la comunicazione con il router richiede IP, quindi inizialmente l’host usa l’indirizzo 0.0.0.0.

Gli indirizzi localhost, che corrispondono a quelli nella subnet 127.0.0.0/8 si usano per connettere applicazioni di rete sullo stesso computer.

Nessun pacchetto inviato sull’interfaccia di loopback lascia il computer.

Gli indirizzi multicast servono ad inviare pacchetti ad un gruppo di host distribuito su internet. Questi indirizzi hanno prefisso binario 1110, ovvero sono quelli da 224.0.0.0 a 239.255.255.255.

I router si occupano di copiare il traffico su diverse sottoreti quando necessario.

La sottorete 169.254.0.0/16 viene riservata per consentire le comunicazioni quando un host non riesce a trovare un indirizzo IP.

Ogni host sulla rete sceglie a caso un IP da questa sottorete e diventa in grado di comunicare con gli altri della stessa rete, ma non con l’esterno.

Ad ogni router si assegnano 2 o più indirizzi IP, dato che per definizione essi devono collegare almeno 2 reti.

Quando l’host destinatario di un datagramma si trova sulla stessa rete, è meglio inviarlo direttamente anziché passare per il router. In questo caso bisogna conoscere l’indirizzo MAC del ricevente.

Il protocollo ARP si occupa di cercare qual’è l’indirizzo MAC dell’host da raggiungere:

  1. L’indirizzo IP del destinatario è C, il mittente invia in broadcast una richiesta per cercare il MAC del host con IP C.
  2. La richiesta raggiunge tutti gli host sulla rete.
  3. L’host con l’indirizzo cercato risponde con il suo indirizzo MAC.

Il protocollo ARP si usa solo per comunicazioni punto-punto sulla stessa rete (eccetto in casi particolari). Altrimenti si invia il pacchetto al router, usando ARP per trovare il suo indirizzo MAC.

Il formato del messaggio ARP è semplice:

sezionelunghezza (in bit)
hardware address type16
protocol address type16
haddr len8
paddr len8
operation16
sender haddr48
sender paddr32
target haddr48
target paddr32

Il messaggio viene incapsulato direttamente in un frame di livello 2.

Per evitare di inviare messaggi ARP per ogni datagramma da inviare, ogni host mantiene in memoria le risposte ricevute.

L’invalidazione avviene periodicamente, di solito ogni 30 secondi si eliminano le corrispondenze più vecchie.

Un proxy ARP è un host che restituisce un indirizzo MAC facendo le veci di un host che si trova su una rete diversa.

Ad esempio abbiamo la stessa rete ma con 2 gruppi di host. Il router si occupa di rispondere con il MAC degli host da separare, in modo che esso possa effettuare un controllo dell’accesso.

Il protocollo ICMP è usato in parallelo a quello IP e si usa per notificare errori al mittente di un datagramma e per eseguire operazioni di gestione della rete.

I messaggi ICMP viaggiano anch’essi su datagrammi IP.

sezionelunghezza (in bit)
tipo8
codice8
checksum16

Il tipo di messaggio denota il contenuto:

tipodescrizione
Destination unreachableIl pacchetto non può essere consegnato
Port unreachableIl destinatario non ha processi che ascoltano sulla porta specificata
Time exceededIl TTL dell’header IP è sceso a 0
Parameter problemL’header IP contiene valori non validi
Source quenchChiede alla sorgente di rallentare l’invio dei dati
RedirectDice al router a quale host inoltrare il datagramma
Echo request/replyIl ricevente risponde con lo stesso valore usato nella richiesta
Timestamp request/replyCome echo ma il valore è l’orologio locale del router
Router advertisement/solicitationPer proporsi come router o rilevare i router nelle vicinanze
Fragmentation neededDatagramma ha flag ‘non frammentare’ ma esso eccede l’MTU

I messaggi ICMP in rete si comportano come altri dati contenuti in un datagramma IP, ad eccezione che gli errori causati da essi vengono scartati (per non congestionare la rete).

DHCP è un protocollo che consente di assegnare un indirizzo IP ad un host in maniera automatica.

Funzionamento:

  1. L’host invia un messaggio DHCP discover.
  2. Il server DHCP risponde con DHCP offer.
  3. L’host richiede un indirizzo con DHCP request.
  4. Il server invia un DHCP ack.

La risposta DHCP offer può essere memorizzata in cache e diventa opzionale la volta dopo.

L’indirizzo fornito da DHCP rimane valido per un tempo limitato (lease). Quando il prestito finisce, il client può negoziare un estensione del prestito o cambiare IP.

Se il server nega l’estensione del lease, il client deve smettere di usare l’IP.

DHCP usa UDP, in caso di perdita del messaggio, semplicemente lo reinvia.

sezionelunghezza
op8
htype8
hlen8
hops8
transaction id32
seconds elapsed16
flags16
client IP32
your IP32
server IP32
router IP32
client MAC128
server hostname512
boot file name1024
options0 - ??
  • op: specifica se il messaggio è una richiesta o una risposta;
  • htype e hlen: tipo di hardware e lunghezza indirizzo di livello 2;
  • hops: quanti server hanno inoltrato la richiesta;
  • transaction id: uguale tra richiesta e risposta;
  • seconds elapsed: tempo passato da quando l’host è attivo;
  • your IP: indirizzo offerto al client DHCP;
  • router IP: usato per comunicare il default gateway;