Lezione (2025-11-28)
Indirizzi IP speciali
Section titled “Indirizzi IP speciali”Esistono alcuni tipi di indirizzi IP speciali che non possono essere assegnati agli host:
Indirizzi di tutta la rete
Section titled “Indirizzi di tutta la rete”Sono usati per riferirsi al prefisso usato per una certa rete e si indicano impostando l’hostID a 0.
Indirizzo broadcast di una rete
Section titled “Indirizzo broadcast di una rete”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.
Indirizzo broadcast di rete locale
Section titled “Indirizzo broadcast di rete locale”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.
Questo computer
Section titled “Questo computer”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.
Localhost
Section titled “Localhost”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.
Indirizzi multicast
Section titled “Indirizzi multicast”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.
Indirizzi link local
Section titled “Indirizzi link local”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.
Indirizzi IP per i router.
Section titled “Indirizzi IP per i router.”Ad ogni router si assegnano 2 o più indirizzi IP, dato che per definizione essi devono collegare almeno 2 reti.
Address Resolution Protocol (ARP)
Section titled “Address Resolution Protocol (ARP)”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:
- L’indirizzo IP del destinatario è C, il mittente invia in broadcast una richiesta per cercare il MAC del host con IP C.
- La richiesta raggiunge tutti gli host sulla rete.
- 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.
Messaggio ARP
Section titled “Messaggio ARP”Il formato del messaggio ARP è semplice:
| sezione | lunghezza (in bit) |
|---|---|
| hardware address type | 16 |
| protocol address type | 16 |
| haddr len | 8 |
| paddr len | 8 |
| operation | 16 |
| sender haddr | 48 |
| sender paddr | 32 |
| target haddr | 48 |
| target paddr | 32 |
Il messaggio viene incapsulato direttamente in un frame di livello 2.
ARP caching
Section titled “ARP caching”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.
ARP proxying
Section titled “ARP proxying”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.
Internet Control Message Protocol (ICMP)
Section titled “Internet Control Message Protocol (ICMP)”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.
Messaggio ICMP
Section titled “Messaggio ICMP”| sezione | lunghezza (in bit) |
|---|---|
| tipo | 8 |
| codice | 8 |
| checksum | 16 |
Il tipo di messaggio denota il contenuto:
| tipo | descrizione |
|---|---|
| Destination unreachable | Il pacchetto non può essere consegnato |
| Port unreachable | Il destinatario non ha processi che ascoltano sulla porta specificata |
| Time exceeded | Il TTL dell’header IP è sceso a 0 |
| Parameter problem | L’header IP contiene valori non validi |
| Source quench | Chiede alla sorgente di rallentare l’invio dei dati |
| Redirect | Dice al router a quale host inoltrare il datagramma |
| Echo request/reply | Il ricevente risponde con lo stesso valore usato nella richiesta |
| Timestamp request/reply | Come echo ma il valore è l’orologio locale del router |
| Router advertisement/solicitation | Per proporsi come router o rilevare i router nelle vicinanze |
| Fragmentation needed | Datagramma 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:
- L’host invia un messaggio DHCP discover.
- Il server DHCP risponde con DHCP offer.
- L’host richiede un indirizzo con DHCP request.
- 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.
Messaggio DHCP
Section titled “Messaggio DHCP”DHCP usa UDP, in caso di perdita del messaggio, semplicemente lo reinvia.
| sezione | lunghezza |
|---|---|
| op | 8 |
| htype | 8 |
| hlen | 8 |
| hops | 8 |
| transaction id | 32 |
| seconds elapsed | 16 |
| flags | 16 |
| client IP | 32 |
| your IP | 32 |
| server IP | 32 |
| router IP | 32 |
| client MAC | 128 |
| server hostname | 512 |
| boot file name | 1024 |
| options | 0 - ?? |
- 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;