# Classi di indirizzi IP

Le classi di indirizzi IP (o classful addressing) sono una formalità per dividere lo spazio di indirizzamento IPv4 introdotta dal RFC 791 nel 1981 ed in uso fino all'introduzione del Classless Inter-Domain Routing (CIDR) nel 1993.

## Classi di indirizzi

Questo sistema di indirizzamento basato sulla classe prevede che dai primi bit di un indirizzo IP si possa determinare la classe e di conseguenza la maschera di sottorete.
Tabella riassuntiva delle classi di indirizzamento :
| | | Utilizzo bit (N: Network; H: Host) | Maschera di sottorete | Reti disponibili | Host disponibili per rete | Range decimale primo byte | Range binario primo byte | Note | Indirizzi totali |
| Classe | A | 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH | 255.0.0.0 /8 | 126 (2$^7$-2) (1° ottetto) | 16.777.214 (2$^{24}$-2) | 0-127 = 128 indirizzi | 00000001 - 01111111 | Loopback address | 2.147.483.646 (2$^{31}$-2) |
| Classe | B | 10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH | 255.255.0.0 /16 | 16.382 (2$^{14}$-2) (1° e 2° ottetto) | 65.534 (2$^{16}$-2) | 128-191 = 64 indirizzi | 10000000 - 10111111 | | 1.073.741.822 (2$^{30}$-2) |
| Classe | C | 110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH | 255.255.255.0 /24 | 2.097.150 (2$^{21}$-2) (1°, 2° e 3° ottetto) | 254 (2$^8$-2) | 192-223 = 32 indirizzi | 11000000 - 11011111 | | 536.870.910 (2$^{29}$-2) |
| Classe | D | 1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX | | non definito | non definito | 224-239 = 16 indirizzi | 11100000 - 11101111 | Indirizzo multicast | non definito |
| Classe | E | 1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX | | non definito | non definito | 240-255 = 16 indirizzi | 11110000 - 11111111 | Per usi futuri ed esperimenti | non definito |
In questo modo il tipo di classe si può determinare sulla base dei bit più significativi.
Vediamo come:

### Classe A

    Il primo byte rappresenta la rete; gli altri tre gli host per ogni rete.
    In notazione decimale gli IP variano nel modo seguente: 0-127.H.H.H;
    La maschera di rete è 255.0.0.0 (o anche detta /8 in quanto i bit di rete sono 8);
    Questi indirizzi in binario iniziano con il bit 0.

### Classe B

    I primi due byte rappresentano la rete; gli altri due gli host per ogni rete.
    In notazione decimale gli IP variano nel modo seguente: 128-191.N.H.H;
    N varia da 0 a 255.
    La maschera di rete è 255.255.0.0 (o anche detta /16 in quanto i bit di rete sono 16);
    Questi indirizzi in binario iniziano con i bit 10.

### Classe C

    I primi tre byte rappresentano la rete; l'ultimo gli host per ogni rete.
    In notazione decimale gli IP variano nel modo seguente: 192-223.N.N.H;
    La maschera di rete è 255.255.255.0 (o anche detta /24 in quanto i bit di rete sono 24);
    Questi indirizzi in binario iniziano con i bit 110.

### Classe D

    È riservata agli indirizzi multicast.
    In notazione decimale gli IP variano nel modo seguente: 224-239.x.x.x;
    Non è definita una maschera di rete, essendo tutti e 32 i bit dell'indirizzo utilizzati per indicare un gruppo, non un singolo host;
    Questi indirizzi in binario iniziano con i bit 1110.

### Classe E

    Riservata per usi futuri;
    In notazione decimale gli IP variano nel modo seguente: 240-255.x.x.x;
    Non è definita una maschera di rete;
    Questi indirizzi in binario iniziano con i bit 1111.
Esempio:
    Se occorresse analizzare l'indirizzo IP 130.165.4.2 privo di maschera di rete e fosse necessario trovarne la classe di appartenenza, si potrebbe iniziare considerando che convertito in binario il primo ottetto (il numero 130) risulterebbe 10000010, ovverosia un numero appartenente alla classe B proprio perché gli indirizzi di classe B iniziano con i primi bit a 10.
Esempio:
    Se fosse necessario calcolare a mano il numero di reti e di host disponibili negli indirizzi di classe B, si effettuano i seguenti calcoli:
       Numero di reti: 2$^{14(bitdirete)}$ = 16 384
       Numero di host: 2$^{16(bitdihost)}$ = 65 536 Sottraendo 2 (in quanto si escludono l'indirizzo di rete e quello di broadcast) = 65 534
    Per il calcolo della rete si effettua 2$^{14}$ in quanto questo è il calcolo per trovare tutte le combinazioni possibili su 14 bit. Infatti in classe B vi sono 16 bit utilizzati per la rete (vedere riferimenti alla tabella: In classe B il numero di bit per la rete N è 16) ma considerando che i primi 2 bit sono sempre fissi a 10, allora i bit che veramente possono variare scendono a 14.
    Analogo discorso per il calcolo degli host, dove si effettua 2$^{16}$ in quanto questo è il calcolo per trovare tutte le combinazioni possibili di host su 16 bit disponibili a tale scopo (vedere riferimenti alla tabella: In classe B il numero di bit per gli host H è 16). È molto importante sottolineare come non siano mai considerati host sia l'indirizzo di broadcast (tutti i bit degli host H a 1) che l'indirizzo di rete (tutti i bit degli host H a 0); per cui nel calcolo degli host si sottrae sempre 2 al risultato ottenuto proprio per escludere questi due indirizzi particolari che non sono host.

### Altre tabelle

L'intervallo di indirizzi utilizzati da ogni classe sono indicati nello schema successivo mediante notazione decimale puntata (dot-decimal notation).
| Classe | Bit iniziali | Inizio intervallo | Fine intervallo |
| A | 0 (00000001) | 1.0.0.0 | 127.255.255.255 |
| B | 10 | 128.0.0.0 | 191.255.255.255 |
| C | 110 | 192.0.0.0 | 223.255.255.255 |
| D (multicast) | 1110 | 224.0.0.0 | 239.255.255.255 |
| E | 1111 | 240.0.0.0 | 255.255.255.255 |
Alcuni indirizzi sono riservati per usi speciali (RFC 3330).
| Indirizzi | CIDR | Funzione | RFC | Classe | Totale # indirizzi |
| 0.0.0.0 - 0.255.255.255 | 0.0.0.0/8 | Indirizzi zero | RFC 1700 | A | 16.777.216 |
| 10.0.0.0 - 10.255.255.255 | 10.0.0.0/8 | IP privati | RFC 1918 | A | 16.777.216 |
| 127.0.0.0 - 127.255.255.255 | 127.0.0.0/8 | Localhost Loopback Address | RFC 1700 | A | 16.777.216 |
| 169.254.0.0 - 169.254.255.255 | 169.254.0.0/16 | Indirizzo link local | RFC 3330 | B | 65.536 |
| 172.16.0.0 - 172.31.255.255 | 172.16.0.0/12 | IP privati | RFC 1918 | B | 1.048.576 |
| 192.0.2.0 - 192.0.2.255 | 192.0.2.0/24 | Documentation and Examples | RFC 3330 | C | 256 |
| 192.88.99.0 - 192.88.99.255 | 192.88.99.0/24 | IPv6 to IPv4 relay Anycast | RFC 3068 | C | 256 |
| 192.168.0.0 - 192.168.255.255 | 192.168.0.0/16 | IP privati | RFC 1918 | C | 65.536 |
| 198.18.0.0 - 198.19.255.255 | 198.18.0.0/15 | Network Device Benchmark | RFC 2544 | C | 131.072 |
| 224.0.0.0 - 239.255.255.255 | 224.0.0.0/4 | Multicast | RFC 3171 | D | 268.435.456 |
| 240.0.0.0 - 255.255.255.255 | 240.0.0.0/4 | Riservato | RFC 1700 | E | 268.435.456 |

## Sostituzione delle classi

A lungo andare, le classi di tipo C si sono rivelate troppo poche per le esigenze di indirizzamento e si è dovuto assegnare subnet di grana più fine anche all'interno delle classi A e B. A partire dal 1993 si abbandonò quindi il concetto di classful routing in favore del Classless Inter-Domain Routing (CIDR).