diff --git a/networking/009-ipv4.md b/networking/009-ipv4.md index cf54c4f..6a4c9d0 100644 --- a/networking/009-ipv4.md +++ b/networking/009-ipv4.md @@ -32,7 +32,7 @@ Quando si devono inviare dati che superano il limite della MTU, entra in gioco i Ogni frammento è identificato da un campo `Identifier`, che consente di raggruppare i frammenti appartenenti allo stesso datagramma originale. Inoltre, il campo `Fragment Offset` indica la posizione di ciascun frammento all'interno del datagramma originale, permettendo al destinatario di ricostruire correttamente l'ordine dei dati. -### Rappresentazione degli Indirizzi IPv4 +## Rappresentazione degli Indirizzi IPv4 Un host in una rete o sottorete viene identificato univocamente attraverso il suo indirizzo IPv4, il quale possiede tre principali rappresentazioni: @@ -45,3 +45,23 @@ L'indirizzo IPv4 è composto da due componenti fondamentali: il `prefisso` e il ### Annotazione CIDR Il `CIDR` (*Classless Inter-Domain Routing*), una modalità avanzata di espressione della netmask, rappresenta graficamente la divisione tra i bit di prefisso e quelli di suffisso. Questa notazione si esprime aggiungendo all'indirizzo IPv4 una barra (`/`) seguita da un numero *N*, compreso tra 0 e 32. Tale numero indica quanti dei 32 bit dell'indirizzo sono riservati al prefisso, mentre i restanti bit compongono il suffisso. + +## Indirizzi Speciali + +Dei 2^32-1 indirizzi IPv4 disponibili, alcuni sono riservati per scopi particolari. La IANA (Internet Assigned Numbers Authority) è responsabile dell'assegnamento degli indirizzi IP a livello globale, con alcuni intervalli destinati all'uso privato o a funzioni specifiche. + +### Indirizzi IP Privati + +Gli indirizzi IP privati sono destinati all'utilizzo all'interno delle reti locali (LAN) e non sono univoci a livello globale, non consentendo di identificare in modo univoco un host su Internet. Le principali classi di indirizzi privati sono: + +- `10.0.0.0/8` +- `172.16.0.0/12`: da 172.16.0.0 a 172.31.255.255 +- `192.168.0.0/16` +- `169.254.0.0/16`: questo intervallo è riservato per il protocollo `APIPA` (*Automatic Private IP Addressing*), che permette ad un host di autoconfigurarsi con un indirizzo IP privato quando un server DHCP non è disponibile. + +Altri *indirizzi speciali*: + +- `0.0.0.0/8`: l'indirizzo 0.0.0.0 è un caso particolare. Non è assegnabile ad un host e, a seconda del contesto, può assumere diversi significati. Ad esempio può essere usato per rappresentare *qualsiasi indirizzo* in certe configurazioni di rete o nelle tabelle di routing +- `127.0.0.0/8`: l'intervallo va da 127.0.0.0 a 127.255.255.255 ed è riservato agli indirizzi di *loopback* (o di ritorno). In particolare, l'indirizzo `127.0.0.1` viene comunemente usato per riferirsi al *localhost*. Questi indirizzi sono impiegati per testare localmente le applicazioni che utilizzano lo stack TCP/IP, permettendo al processo di comunicare con lo stesso host +- `224.0.0.0/4`: questo intervallo, che va da 224.0.0.0 a 239.255.255.255, è riservato agli indirizzi *multicast*, utilizzati per trasmettere pacchetti a un gruppo di host che hanno aderito a un determinato gruppo multicast +- *Indirizzi di broadcast*: ogni subnet possiede un indirizzo di broadcast specifico, noto come `directed broadcast`. Questo è l'ultimo indirizzo della subnet e permette di inviare pacchetti a tutti gli host che vi appartengono. Inoltre, esiste il `limited broadcast`, rappresentato dall'indirizzo `255.255.255.255`, che viene sempre usato per inviare un pacchetto a tutti gli host sulla rete locale. La differenza principale tra il *directed broadcast* e il *limited broadcast* è che il directed broadcast può essere instradato anche su reti differenti, mentre il limited broadcast è confinato esclusivamente alla rete locale e non viene inoltrato dai router.