Esercizio - notazione decimale puntata, classi e blocchi
In questa pagina 6
Testo.
- Passare dalla notazione binaria alla notazione decimale puntata: .
- Passare dalla notazione decimale puntata alla notazione binaria: (a) ; (b) .
- Trovare la classe degli indirizzi: (a) ; (b) ; (c) ; (d) .
- Trovare classe, blocco e intervallo degli indirizzi: (a) ; (b) ; (c) .
Punto 1: da binario a decimale
Un indirizzo IPv4 ha 32 bit divisi in 4 byte. Ogni byte si converte da solo in un numero tra 0 e 255, sommando le potenze di 2 corrispondenti ai bit a 1 (pesi da sinistra a destra). È la regola dei sistemi posizionaliin base 2 la cifra in posizione i da destra, a partire da 0, pesa 2 elevato a iSistemi di numerazione posizionali → ed è spiegata con altri esempi in Basi di numerazione e conversioni - binario, ottale ed esadecimaleUn numero in base $r$ vale $\sum a_i r^i$ (cifre $a_i\in{0,\dots,r-1}$). Conversioni: base $r\to$ decimale con la somma pesata; decimale $\to$ base $r$ per divisioni successive (parte intera, resti letti dal basso) e moltiplicazioni successive (parte frazionaria, parti intere lette dall'alto); binario $\leftrightarrow$ ottale/esadecimale a gruppi di 3/4 bit. Somma, differenza e prodotto binari seguono le regole decimali con cifre 0 e 1; la differenza ha prestiti, il prodotto somma prodotti parziali traslati.Basi di numerazione e conversioni - binario, ottale ed esadecimale →. Il massimo di un byte è , perché la somma dei pesi è .
| byte | bit a 1 | valore |
|---|---|---|
Risultato: .
Punto 2: da decimale a binario
(a) Si converte ogni numero in 8 bit, scomponendolo nei pesi . Metodo: si parte dal peso più grande; se sta nel numero lo si sottrae e si scrive 1, altrimenti si scrive 0 e si passa al peso successivo (per : ; , resta ; , resta ; ; , resta ; , resta ; , resta ; , resta : ).
- ;
- ;
- ;
- .
Risultato: .
(b) : il terzo numero, , supera , cioè il massimo che si scrive con 8 bit (). Un byte non può valere , quindi l'indirizzo non è valido e non esiste una sua rappresentazione binaria.
Punto 3: la classe
Nell'indirizzamento con classi la classe si legge dai primi bit (o, in decimale, dal primo byte):
| classe | primi bit | primo byte |
|---|---|---|
| A | – | |
| B | – | |
| C | – | |
| D | – | |
| E | – |
- (a) Il primo bit è : classe A (in decimale è ).
- (b) I primi due bit sono e il terzo è (prefisso ): classe C (in decimale ).
- (c) Il primo byte è , tra e : classe D (multicast).
- (d) Il primo byte è , tra e : classe C.
Punto 4: classe, blocco e intervallo
La classe fissa la lunghezza del prefisso ( per A, B, C). Il blocco è l'insieme degli indirizzi con lo stesso NetID; l'intervallo va dal NetID con HostID tutto a 0 al NetID con HostID tutto a 1.
| indirizzo | classe (primo byte) | NetID | intervallo | indirizzi |
|---|---|---|---|---|
| A () | () | – | ||
| B () | () | – | ||
| C () | () | – |
Confronto con la soluzione ufficiale
Tutti i risultati coincidono con quelli ufficiali (punto 1: ; punto 2: e indirizzo non accettabile per ; punto 3: A, C, D, C; punto 4: gli intervalli della tabella). Le conversioni sono state ricalcolate con Python.
Errori comuni
- Accettare un numero maggiore di in un byte.
- Dimenticare il peso dei bit nei byte con molti (per esempio ).
- Per la classe, guardare un byte qualsiasi invece del primo.
- Dire che il blocco di ha indirizzi: sono (i danno gli host utilizzabili).
Versione ripasso
Dati. Conversioni binario/decimale di , , ; classe di quattro indirizzi; classe, blocco e intervallo di , , . Teoria: Livello di rete e indirizzamento IPIl livello di rete (network layer) porta i datagrammi da host a host attraverso i router: incapsula (framing), sceglie il percorso (routing) e sposta il pacchetto da un ingresso a un'uscita del router (forwarding); in Internet lascia ai livelli superiori controllo d'errore, di flusso e di congestione. Un indirizzo IPv4 è di 32 bit, diviso in prefisso (rete, $n$ bit) e suffisso (host, $32-n$ bit). L'indirizzamento a classi (A, B, C, D, E) è obsoleto; oggi si usa quello senza classi (CIDR): data una notazione $a.b.c.d/n$ si ricavano $N=2^{32-n}$ indirizzi, indirizzo di rete (suffisso tutto 0) e di broadcast (suffisso tutto 1), oppure con la netmask: rete $=$ indirizzo AND maschera, broadcast $=$ indirizzo OR (NOT maschera).Livello di rete e indirizzamento IP →.
- Binario a decimale (pesi ): ; ; . Risultato .
- Decimale a binario: ; ; ; . In è : non valido.
- Classe dal primo byte: A – (), B – (), C – (), D –, E –. Risposte: A, C, D (multicast), C.
- Blocchi: (A) –, indirizzi; (B) –, ; (C) –, .
- Errori: byte ; guardare il byte sbagliato per la classe; come dimensione del blocco ( solo per gli host).