CdS in INFORMATICA e
COMUNICAZIONE DIGITALE
Anno Accademico 2012-2013
Corso di
Reti di Calcolatori e Comunicazione Digitale
Modulo 3 : TCP/IP Lo strato di rete
Prof. Sebastiano Pizzutilo
Dipartimento di Informatica
ISO-OSI e TCP/IP
In TCP/IP i livelli 1 e 2 non sono specificati per cui è possibile utilizzare per le LAN
i protocolli Ethernet, Token Ring, FDDI e per le WAN i protocolli X.25, Frame Relay,
ATM,….
Application
Presentation
Session
Transport
Network
Data Link
Physical
OSI
Telnet
NFS
FTP
XDR
SMTP
RPC
SNMP
TCP e UDP
ICMP
Arp e Rarp
IP
Protocolli
di routing
Non Specificati
Internet Protocol
Suite
Lo strato 3 Internet del TCP/IP, in
cui viene implementato il protocollo
IP, corrisponde al livello 3 del
modello OSI: entrambi si occupano
dell’instradamento (routing) dei dati.
  Lo strato 4 di trasporto nei due
modelli è analogo, ed entrambi
permettono che tra i processi dei due
host si stabilisca una sessione.
  Lo strato 5 dell’applicazione TCP/
I P, c o m p r e n d e g l i s t r a t i d i
applicazione, presentazione e
sessione del modello OSI
1
TCP/IP layers
Message
Layers
Application
Transport
rete
Internet
Network interface
Underlying network
FTP, Telnet, SMTP,...
Messages (UDP) or Streams (TCP)
UDP, TCP
UDP or TCP packets
IP, ICMP, ARP, RARP, RIP,...
IP datagrams
SLIP PPP, Ethernet, Token ring, RS232, FDDI, ATM, …..
Network-specific frames
Bits stream
Header (con relativi
address) aggiunti ai
diversi livelli per poter
TCP header
svolgere le attività
IP header
TCP
previste da ciascun
livello
Ethernet header
IP
Application message
port
Ethernet frame
TCP/IP : Protocolli nello strato
Internet (livello 3)
Lo strato di RETE si occupa della consegna di pacchetti dati da un nodo mittente ad un
nodo destinatario attraverso varie reti, determinando il modo migliore per spostare i dati
da un host all’altro.
Lo strato 3 della suite TCP/IP si occupa quindi dei problemi legati al routing dei
pacchetti (con l’utilizzo di un sistema di indirizzamento logico dei pacchetti, detto IP) e
dei problemi relativi al passaggio dei pacchetti al livello inferiore di data link ed al livello
superiore di trasporto e viceversa.
Il protocollo IP non svolge alcun tipo di controllo per assicurarsi del buon esito dei trasferimento dei
dati, è infatti connectionless ed inaffidabile (servizio di consegna detto best-effort). Quindi i pacchetti
di questo livello OSI possono andare perduti o non arrivare in sequenza.
Il ruolo svolto da IP è quello di aggiungere a ciascun pacchetto una intestazione contenente una
serie di informazioni per poter effettuare il corretto instradamento dei dati.
L’attività di instradamento dei pacchetti tra le reti avviene
attraverso PSE dedicati detti router.
Il sistema di indirizzamento logico utilizzato in questo
livello deve prevedere forme di indirizzi che consentano
un efficiente operazione di instradamento.
2
Indirizzamento IP
L’indirizzo IP identifica univocamente un host (computer, router, AP, …) su una rete.
Gli indirizzi IP sono indirizzi LOGICI strutturati in maniera tale da agevolare
l’operazione di routing. Hanno infatti un formato tale da consentire la netta
separazione dell’indirizzo di rete da quello dell’host sulla rete.
Gli indirizzi IP su Internet sono assegnati da un comitato internazionale (IANA – Internet
Assigned Number Authority ).
A livello nazionale italiano l’autorità che assegna le classi di indirizzi IP è il GARR/NIS.
In genere però i privati non si rivolgono a tale ente ma al proprio provider (ISP – Internet
Service Provider) che ha precedentemente provveduto a richiedere all’autorità nazionale
un insieme di indirizzi che mette a disposizione dei propri clienti in maniera dinamica.
Questo non è strettamente valido nel caso delle cosiddette Intranet aziendali, che non
hanno accesso diretto alla rete pubblica Internet mondiale. In questo caso si può utilizzare
teoricamente qualsiasi indirizzo, anche se per le Intranet esistono delle raccomandazioni
relative agli indirizzi logici privati da utilizzare (in genere 10.0.0.1,…).
Forme di indirizzamento
u  Indirizzamento con classi (CLASSFUL )
Sistema di indirizzamento adottato dal 1981
fino al 1993.
Originariamente l’indirizzamento IP prevede
il concetto di CLASSE, che consiste in :
  suddivisione dello spazio degli indirizzi IP in cinque CLASSI ciascuna con un
numero diverso di indirizzi IP utilizzabili e …
  netta separazione tra indirizzo di rete ed indirizzo dell’host all’interno della
rete .
u  Indirizzamento senza classi (CLASSLESS)
L’indirizzamento SENZA CLASSI (1993) riduce il problema dell’esaurimento degli
indirizzi IP e permette di gestire in maniera più efficiente gli indirizzi IP assegnati
ad una organizzazione, introducendo il concetto di SUBNETTING/
SUPERNETTING ed una notazione detta CIDR ( Classless Inter-Domain
Routing ).
3
Indirizzi IP
Rappresentazione binaria e dot notation
Gli indirizzi IP sono lunghi 32 bit (4 byte) e si scrivono come 4 numeri decimali separati
dal carattere “.” ; Ogni numero rappresenta il contenuto di un byte ed è quindi compreso
tra 0 e 255.
Ø  L’indirizzo IP è rappresentato nella forma: x.y.z.w dove x, y, z e w sono dei numeri
decimali compresi tra 0 e 255.
Ø  In pratica un indirizzo IP è composto dalla sequenza di 32 bit (quindi un long integer che
rende possibile generare fino a 232 – 1 possibili indirizzi) anche se esso viene sempre
rappresentato nella cosiddetta dot notation.
Per esempio:
L’indirizzo IP=127.0.0.1 corrisponde in “dot notation binaria” a :
01111111.00000000.00000000.00000001
Questi 32 bit, se fossero rappresentati “senza dot notation”, sarebbero uguali a
01111111000000000000000000000001 che corrisponde al valore decimale
2130706433.
L’indirizzo in dot notation rappresenta quindi il valore di ciascuno dei quattro byte
componenti l’indirizzo IP e serve a discriminare l’indirizzo di rete dall’indirizzo
degli host presenti in quella rete.
Indirizzi IP Classful
Gli indirizzi IP Classful si suddividono in cinque classi di appartenenza,
identificate con le lettere da A ad E.
î  Classe A___Un indirizzo di classe A riserva il primo byte all’indirizzamento della rete, e gli
altri tre byte all’indirizzamento degli host.
Il primo bit del byte che individua la rete è imposto essere 0, di conseguenza è possibile
indirizzare teoricamente solo 127 reti, ciascuna con un massimo teorico di 16.777.216 host.
In pratica le reti sono 126 in quanto la rete 127 è riservata per gli indirizzi di loopback, e gli host
sono 16.777.214, in quanto gli indirizzi x.0.0.0 e x.255.255.255 non sono ammessi.
î  Classe B____Gli indirizzi di classe B riservano 16 bit alla rete e 16 agli host.
Dei 16 bit riservati alla rete, i primi due sono obbligatoriamente 1 e 0, e questo di conseguenza
implica che il primo byte possa avere valore tra 128 e 191. Il numero di reti ammesso in questa
classe è quindi 16.384, e gli host 65.534 (non essendo ammessi anche in questo caso gli host x.y.
0.0 e x.y.255.255.
î  Classe C____La classe C riserva i primi tre byte alla rete ed il quarto agli host.
Poiché i primi tre bit del primo byte sono fissati a 110, il numero di reti univoche in questa
classe e superiore a 2 milioni. Il primo byte può assumere valore tra 192 e 223.
Il numero di host per ciascuna rete è di 254.
4
Struttura di un indirizzo IP Classful
ind rete ind. host
Dimensione dei campi in bit
Range degli indirizzi
Classe A
0 1010000
11001101
01010101
110011000
Da 1.0.0.0 a
128 reti e
127.255.255.255
16.777.214 host
Classe B
10 101010
11100110
00000110
11101010
Da 128.0.0.0 a 16.384 reti e
191.255.255.255
65.534 host
Classe C
110  10111
10101011
11100000
10101010
Da 192.0.0.0 a
2.097.152 reti e
223.255.255.255
254 host
Multicast
1110 0000
10101010
11100110
10101010
Da 224.0.0.0 a 239.255.255.255
Riservati
1111 0000
11100011
11111111
10101001
Da 240.0.0.0 a 255.255.255.255
Byte 1
Byte 2
Byte 3
Byte 4
Indirizzi riservati
q  Network: quando i bit dell'ottetto che rappresenta l'host hanno tutti valore 0, l'indirizzo è
detto di rete (Network Address): l’indirizzo 192.168.5.0 oppure in binario
11000000.10101000.00000101.00000000, rappresenta la rete 192.168.5;
- Quando tutti i bit hanno valore zero (0.0.0.0), si identifica "questo host“.
q  Broadcast: quando i bit del numero che rappresenta l'host hanno tutti valore 1, l'indirizzo
è detto di broadcast o broadcast address, e rappresenta tutti gli host di quella rete:
Inviare un pacchetto all'indirizzo 192.168.5.255 (11000000.10101000.00000101.11111111 )
equivale a mandare un pacchetto a tutti gli host della rete 192.168.5.0
q  Broadcast di rete: abbiamo questo tipo di indirizzo quando tutti i bit, sia della parte relativa
all'host sia della parte relativa alla rete hanno valore 1 :
Inviare un pacchetto a 255.255.255.255 o in binario 11111111.11111111.11111111.11111111
significa inoltrarlo verso tutti gli host della rete corrente.
q  Loopback: è utilizzato per funzioni di test del protocollo TCP/IP, non genera traffico di rete e
corrisponde all'indirizzo 127.0.0.1.
q  Indirizzi di rete locale : una serie di indirizzi IP sono dedicati all’uso su reti locali,
all’interno di firewall e server proxy. Questi indirizzi sono:
da ….
a….
10.0.0.0
10.255.255.255
172.16.0.0
172.31.255.255
192.168.0.0
192.168. 255.255
5
Maschere di sottorete
Le maschere di sottorete servono ad individuare quali byte dell’indirizzo IP
indirizzano la rete e quali gli host.
Le maschere di sottorete utilizzate dalle varie classi sono:
Classe A > 255.0.0.0
Classe B > 255.255.0.0
Classe C > 255.255.255.0
Ogni macchina va dunque configurata con due informazioni :
1) netmask per individuare la rete (sottorete) a cui la macchina appartiene,
2) numero IP della macchina all’interno della rete (sottorete).
Con un’operazione di AND tra netmask ed IP number si ottiene dunque la parte di indirizzo che identifica la
sottorete cui è collegata la macchina.
Ad es.
Host number : 193.204.187.33 AND
11000001.11001100. 10111011. 00100001 AND
Netmask
: 255.255.255.00
111111 11.111111 11. 11111111. 00000000
----------------------------------------------------------------------Rete cui è collegato l’host : 193.204.187.00
11000001.11001100. 10111011. 00000000
Il processo consiste nel confrontare il risultato dell'operazione di AND bit a bit tra il proprio
indirizzo e la propria subnet mask con quello tra l'indirizzo del destinatario e la sua subnet mask
per determinare se il destinatario dei propri pacchetti si trova sulla stessa rete .
esempio
Avendo un Host A con IP 192.168.3.5 con subnet mask 255.255.255.0 che vuole inviare dei
pacchetti ad un Host B 192.168.3.25 con subnet mask 255.255.255.0, occorre determinare se B
è sulla stessa rete di A:
AND
Host A: 192.168.3.5
11000000 . 10101000 . 00000011 . 00000101 : Ip address Host A
11111111 . 11111111 . 11111111 . 00000000 : Subnet mask Host A
11000000 . 10101000 . 00000011 . 00000000 = Risultato operazione AND bit a bit
AND
Host B: 192.168.3.25
11000000 . 10101000 . 00000011 . 00011001 : Ip address Host B
11111111 . 11111111 . 11111111 . 00000000 : Subnet mask Host B
11000000 . 10101000 . 00000011 . 00000000 = Risultato operazione AND
Il risultato è identico, quindi, i due host possono inviarsi direttamente i pacchetti in quanto
sulla stessa rete ( cioè senza impegnare il router per l’instradamento).
Qualora il processo di AND avesse evidenziato valori diversi, i due host non avrebbero potuto
comunicare direttamente, ma sarebbe stato necessario utilizzare un router tra di essi.
6
Il routing
Algoritmi di routing =
per la gestione
(creazione e uso) delle
routing table
Attività di routing
= inoltro
Il routing classful
n 
n 
n 
la procedura di routing (instradamento) dei pacchetti IP è
molto semplice, in quanto nell’indirizzo IP di un pacchetto è
codificato il numero della rete alla quale appartiene l’host
destinazione,
ogni router possiede una tabella di routing aggiornata
staticamente (nel caso delle reti più piccole) o
dinamicamente,
la tabella di routing serve a determinare i percorsi verso
intere reti, non verso singoli host. Infatti da ciascun
indirizzo IP è sempre possibile determinare la classe sulla
base dei primi bit dell’indirizzo e ricavare quindi la netmask
ed il numero della rete.
7
SUBNETTING
Può essere necessario dover suddividere la rete in ulteriori sottoreti.
Il subnetting consiste nel suddividere il campo host di un indirizzo IP in due
parti : subnet ed host.
193
204
176
0
3x 8 +2 =26 bit per l’indirizzo di rete e si scrive:
193.204.176.0 / 26
00
01
Notazione CIDR (Classless Inter-Domain Routing)
10
11
Ad esempio : 193.204.176.0/24 è la notazione CIDR
000000
000000
000000
000000
di un indirizzo classful di classe C.
Si noti che la notazione CIDR consente la rappresentazione delle netmask
/24 per la classe C, /8 per classe A, /16 per classe B.
Esempio Subnetting
Ad es. dividere una rete di classe C in 4 subnet ciascuna con al max 60 host
193
204
176
0
Le 4 subnet ricavate avranno ciascuna al max 64 indirizzi di host da 000000 a 111111 ( 62
utilizzabili per gli host : da togliere i due indirizzi riservati > 000000 per la rete e 111111 per
il broadcast).
Indirizzi generati:
Da :
00 000000
01 000000
10 000000
11 000000
a:
00 111111
01 111111
10 111111
11 111111
indirizzo di rete
00000000
01000000
10000000
11000000
La netmask per le subnet sarà : 255.255.255.192 indir. di broadcast
00111111
01111111
10111111
11111111
11000000
Si ricordi che la netmask è = 11111111.11111111.11111111.11000000 = /26 e cioè
la notazione CIDR rappresenta il numero dei valori pari a 1, cioè la netmask
della rete.
8
Subnetting e supernetting
193.204.176.0 / 26
11000001.11001100.10110000. 00…00
Netmask
255.255.255.192
n.subnet
4
ind.rete
ind. Broadcast
IP da … a
n.host
0
63
1
62
62
64
127
65
126
62
128
191
129
190
62
192
255
193
254
62
tot.
248
E’ possibile anche raggruppare 2 subnet in un’unica supernet composta di due
sottoreti .
Ad es. si vuole creare una super rete raggruppando la 193.204.176.128 e la 193.204.176.192
Netmask
255.255.255.192
255.255.255.128
n.subnet
3
ind.rete
ind. Broadcast
IP da … a
n.host
0
63
1
62
64
127
65
126
62
62
128
255
129
254
126
tot.
250
Subnetting
Il subnetting di una rete comporta diversi vantaggi:
- Riduzione del traffico di rete: in quanto si riduce il dominio di broadcast
(broadcast domain);
- Miglioramento delle performance della rete: in conseguenza della
riduzione del traffico;
•  IP assume una corrispondenza biunivoca tra reti fisiche e subnet:
–  routing implicito all’interno di una rete;
–  più subnet sulla stessa rete fisica;
–  mai invece, più reti fisiche sulla stessa subnet.
•  Il routing tra subnet diverse è esplicito è cioè gestito dai router
tramite tabelle di instradamento.
•  All’interno della subnet l’instradamento deve essere fornito dalla
rete fisica.
9
…da indirizzi Classful… a indirizzi Classless
L’indirizzamento classful crea problemi di spreco di indirizzi : l’indirizzamento classful
cioè è troppo rigido (numero prefissato di classi e di indirizzi => A=/8, B=/16 e C=/24) e
non riesce a soddisfare nuove o diverse richieste di assegnazione di indirizzi IP.
La soluzione al problema è quella di passare dal concetto di classe a quello di
blocco (indirizzamento Classless), consentendo la gestione di blocchi di
dimensione qualsiasi pari a 2i con 1 ≤ i ≤ 31.
La notazione CIDR, del tipo x.y.w.z/n, consente di rappresentare molto
sinteticamente un blocco di dimensione qualsiasi.
Ad esempio: se si ha bisogno di 300 indirizzi IP (300 host), una classe C ( /24=256 host) è
insufficiente, per cui occorre chiedere un blocco pari a /23 == 512 indirizzi per gli host ( 23
bit per la rete e 32-23 = 9 per ind. degli host = 29 = 512 indirizzi diversi ).
Oppure, se ne servono meno di 256, ad esempio solo 60 host, allora basta definire un
blocco /26, cioè un blocco con indirizzo di rete di 26 bit ed i rimanenti 6 bit
(32-26 = 6 -> 26 = 64 ) per gli indirizzi riservati ai 60 host su quella rete + ind. di broadcast
e di rete.
Indirizzamento Classless
In questa forma di indirizzamento un blocco di indirizzi (consecutivi) viene
identificato con x.y.w.z/n con x.y.w.z qualsiasi indirizzo di host appartenente
al blocco e /n (notazione CIDR per definire la netmask).
Per poter gestire blocchi di dimensione 2 i (con 0 ≤ i ≤ 31) è quindi sufficiente
generare una netmask = /32-i.
Ad es. 193.204.176.30/26 identifica un host con indirizzo di rete di 26 bit e
indirizzo di host di 6 bit.
11000001.11001100.10110000.00011110
indirizzo di rete
indirizzo di host
Ø Mettendo a 0 i 6 bit (32-n) più a destra si ottiene l’indirizzo del primo ind. del blocco,
che viene normalmente utilizzato per identificare la rete (e non un nodo) del blocco .
Ø Mettendo a 1 gli stessi 6 bit a destra si ottiene l’ultimo indirizzo del blocco, che viene
normalmente utilizzato per fare il broadcast limitato a tutti i nodi del blocco.
Ø Il numero di indirizzi del blocco è 232-n = 232-26 = 26
Ø  /n (cioè /26) identifica la netmask 11111111.11111111.11111111.11000000 .
10
Classless InterDomain Routing
  Nel 1993 l’IETF ha standardizzato il subnet masking ed il subnet routing, chiamandoli
Classless InterDomain Routing (CIDR) (RFC 1519)
  oltre al subnetting, questa tecnica consente anche di gestire il supernetting, ovvero
gestire diverse reti o internetwork locali come una singola entità (in questo modo, ad una
azienda si possono dare diversi indirizzi di rete di classe C).
A tale scopo è necessario che tutti i bit dell’indirizzo IP relativi agli indirizzi di rete non siano
mischiati ai bit dell’indirizzo di host, ovvero la rete deve essere caratterizzata da un unico prefisso
(net+subnet):
 
Es1: questa subnet mask è illegale: 255.255.0.128
Es2: 193.204.176.0/20 Mask 255.255.240.0  16 Classi C > da x.y.176.0 a x. y. 191. 255
193.206.32.0/20 Mask 255.255.240.0  16 Classi C > da x.y.32.0 a x. y. 47. 255
192.167.56.0/21 Mask 255.255.248.0  8 Classi C > da x.y.56.0 a x .y. 63. 255
  La notazione breve degli indirizzi IP con subnet mask: 160.80.20.120/24 equivale
all’indirizzo 160.80.20.120 con subnet mask 255.255.255.0 (24 bit di indirizzo network).
CIDR (per il classless routing)
 
Il Classless Inter-Domain Routing (CIDR) è basato su una Variable-Length Subnet
Masking (VLSM), che permette di suddividere una rete in subnet differenti.
 
Una importante caratteristica dei protocolli di routing è la maniera in cui essi comunicano i
percorsi dei pacchetti (routing advertisement).
I protocolli più vecchi (RIP e IGRP) trasmettono ai router collegati solamente l’indirizzo di
rete, quale per es. "193.150.21.0" assumendo la maschera di rete come maschera di default
della classe corrispondente (classful routing) .
I protocolli di rete moderni (OSPF, IS-IS, EIGRP,…) invece trasmettono in notazione
CIDR esplicitamente anche la netmask, senza presupposti a priori sulla classe. Questa
tipologia di routing viene detta classless, in quanto non tiene conto della divisione in classi ma
solo della netmask che permette la suddivisione in blocchi.
 
 
 
La VLSM ( Variable Lenght Subnet Mask ) è lo strumento che permette di utilizzare
differenti sottoreti all'interno di un blocco di indirizzi assegnati ad una organizzazione
(per es. 2 uffici possono utilizzare al loro interno una rete /24 e per la connessione puntoa-punto tra di loro una rete /30).
11
CIDR e VLSM
Nel classless routing (notazione CIDR) la Variable Length Subnet Mask (VLSM)
esprime il fatto che una rete può essere configurata con differenti netmask : ciò
rende più flessibile la suddivisione di reti in più sottoreti mantenendo un adeguato
numero di host in ogni sottorete.
Per esempio,
se il GARR NIS ha assegnato una classe C pari a 192.214.11.0 e si vuole suddividere la
rete assegnata in 3 subnet con 100 host in una e 50 host nelle restanti due = tot. 200
host. Teoricamente è possibile farlo, perchè una classe C permette di avere al massimo
256 host.
Abbiamo le seguenti possibilità per poter suddividere la rete:
Mask 255.255.255.252 (64 subnet con 4 host ) 192.214.11.0/30 con 2 bit per indirizz. host
Mask 255.255.255.248 (32 subnet con 8 host ) 192.214.11.0/ 29 con 3 bit per indir. host
Mask 255.255.255.240 (16 subnet con 16 host ) 192.214.11.0/28 con 4 bit per indir. host
Mask 255.255.255.224 (8 subnet con 32 host ) 192.214.11.0/27 con 5 bit per indir. host
Mask 255.255.255.192 (4 subnet con 64 host ) 192.214.11.0/26 con 6 bit per indir. host
Mask 255.255.255.128 (2 subnet con 128 host) 192.214.11.0/25 con 7 bit per indir. Host
INVECE CON LA VLSM
VLSM
Con l' utilizzo del routing classless (notazione CIDR e VLSM) posso usare due
netmask diverse : e' possibile utilizzare 192.214.11.0/25 (mask 255.255.255.128)
per ottenere 2 subnet da 128 indirizzi, la 192.214.11.0 e la 192.214.11.128 e
suddividere la seconda in ulteriori 2 subnet da 64 indirizzi ciascuna :
192.214.11.0 = 11000000. 11010110. 00001011. 00000000
/25 = 11111111. 11111111. 11111111 . 10000000 = 255.255.255.128
2 subnet: la 192.214.11.0 0000000 con ind. da 192.214.11.0 a 192.214.11.127 =128 ind
e la 192.214.11.10000000 con ind. da 192.214.11.128 a 192.214.11.255 =128 ind
In seguito posso definire la 192.214.11.0/26 (sulla seconda subnet) per ottenere 2
ulteriori subnet da 64 host ciascuna :
192.214.11.128 = 11000000. 11010110. 00001011. 10000000
/26 = 11111111. 11111111. 11111111 . 11000000 = 255.255.255.192
suddivisa in 2 sub-subnet da 64 indirizzi ciascuna:
la 192.214.11. 10000000 con ind. da 10000000 (128) a 10111111 (171) = 64 ind.
e la 192.214.11. 11000000 con ind. da 11000000 (192) a 11111111 (255) =64 ind
12
VLSM
Subnet
192.214.11.0 0000000
group 192.214.11.0 /25
Mask 255.255.255.128
Da...192.214.11.0
=128 indirizzi
a...192.214.11.127
Subnet
192.214.11.1 0000000
group 192.214.11.0 / 26
Mask 255.255.255.192
Subnet
192.214.11. 10 000000
192.214.11.128
Subnet
192.214.11.11 000000
192.214.11.192
Da...192.214.11.128
a...192.214.11.171
Da...192.214.11.192
Da...192.214.11.255
= 64
indirizzi
= 64
indirizzi
/25 = 11111111. 11111111. 11111111 . 10000000 = 255.255.255.128 suddivisibile in 2 subnet
la 192.214.11. 0 0000000 con indirizzi da 192.214.11.0 a 192.214.11.127 = 128 indirizzi
e la 192.214.11. 1 0000000 con indirizzi da 192.214.11.128 a 192.214.11.255 = 128 indirizzi
/26 = 11111111. 11111111. 11111111 . 11000000 = 255.255.255.192 suddivisibile in 2 subnet
la 192.214.11. 10 000000 con indirizzi da 10000000 (128) a 10111111 (171) =64 ind.
e la 192.214.11. 11 000000 con indirizzi da 11000000 (192) a 11111111 (255) =64 ind
Esempio di notazione CIDR (classless)
L'ampiezza dei campi “Network Prefix” e “Host-ID” viene definita tramite il
parametro netmask. La netmask contiene bit a uno in corrispondenza dei
campi “Network Prefix” (Net-ID e Subnet-ID) e a zero in corrispondenza del
campo “Host-ID”.
  Es.1: In una rete , l’indirizzo IP 160.80.27.1/24 utilizza la maschera 255.255.255.0 e rappresenta:
255.255.255.0 = 11111111. 11111111. 11111111. 00000000 netmask
160. 80. 27. 1 = 10100000. 01010000. 00011011. 00000001 host
160.80.27: ind. della net locale, .1: primo indirizzo dell’host in una rete con 256 ind.
  Es.2: 193.204.176.0/20 utilizza una Netmask 255.255.240.0 = 255.255.11110000.00000000
193.204.176.0 = 11000001.11001100. 10110000. 00000000 indirizzo blocco o subnet locale
255.255.240.0 = 11111111.11111111. 11110000. 00000000 netmask
193.204 = ind. Rete, .176 = ind. Subnet locale, .0 = primo ind. Host in Subnet locale con 16x256 ind.
  Es.3: 193.206.32.0/21 utilizza una Netmask 255.255.248.0 =255.255.11111000.00000000
193.206.32.0 = 11000001.11001110. 00100000. 00000000
255.255.248.0 = 11111111.11111111. 11111000. 00000000
193.206 = ind. Rete, .32 = ind. Subnet locale, .0 = primo ind. Host in Subnet local > 8x256 ind.
13
Indirizzamento e routing
L’attività di routing si dice CLASSFUL se l’instradamento viene fatto sulla base della
classica suddivisione in classi dell’indirizzo IP (algoritmi di routing class-full sono RIP1,
IGRP,..) .
Se si prevede di operare tenendo in considerazione la notazione CIDR (la presenza di
subnet), il routing è detto CLASSLESS. (algoritmi di routing class-less sono RIP2,
EIGRP, OSPF,…) .
Ø  Il classless addressing complica la procedura di routing dei pacchetti; ogni
record della tabella di routing ha 3 campi principali:
1.  un network address
2.  una maschera di subnet
3.  l’indirizzo IP di un router (raggiungibile con un hop)
Ø  la tabella contiene sempre un record per ciascuna rete connessa
direttamente al router, ed un record per il router di default,
Ø  la tabella può anche contenere record per reti non direttamente connesse al
router.
Routing table
Una tavola di routing deve contenere le informazioni necessarie all’instradamento dei pacchetti
verso l’host destinatario:
  Percorso completo verso il destinatario
  Next hop verso il router del destinatario
La tavola di routing viene costruita mediante diverse operazioni
di “routing advertisement” , cioè scambio di dati su host collegati
e percorsi possibili scambiati tra i router.
• 
• 
I Classful routing
protocol non includono
la subnet mask nei
routing advertisement
All’interno dello stesso
network, si presume la
consistenza delle subnet
mask
•  I Protocolli di routing
Classless includono la
subnet mask nei routing
advertisement
•  I protocolli di routing
Classless supportano
subnet mask di lunghezza
variabile (VLSM) per
suddividere una rete in 2
o piu’ blocchi.
14
Tabelle di routing
La tabella di routing
La tabella di routing dunque contiene:
¡ 
¡ 
¡ 
• 
• 
• 
un record per ciascuna rete collegata direttamente al router, insieme con l’indicazione
della relativa interfaccia di rete
un numero variabile di record per reti non collegate direttamente al router, insieme con
l’indicazione di un router adiacente a cui i pacchetti devono essere inviati
un record per un router adiacente di default, a cui inviare i pacchetti destinati a reti
sconosciute.
l'ampiezza dei campi “Network Prefix” e “Host-ID” viene definita tramite il parametro
netmask. La netmask contiene bit a uno in corrispondenza dei campi “Network
Prefix” (Net-ID e Subnet-ID) e a zero in corrispondenza del campo “Host-ID”.
l'importanza di comprendere se due indirizzi appartengono o no alla stessa subnet è
fondamentale, in quanto nel primo caso l'host mittente del pacchetto lo invierà
direttamente verso il destinatario (routing diretto), nel secondo caso lo invierà ad un
router a valle verso la destinazione (routing indiretto)
questo comportamento deriva dall'assunzione implicita che ad ogni rete logica (subnet
IP) corrisponda una stessa rete fisica.
15
ALGORITMO DI INSTRADAMENTO
①  Estrazione dell’indirizzo IP del destinatario dallo header del pacchetto e
operazione di AND con la netmask (per ottenere l’indirizzo della rete)
②  Se la rete è la stessa del mittente si traduce l’indirizzo IP in indirizzo MAC e
si manda il pacchetto sulla stessa rete senza impegnare il router.
③  Se la rete è diversa, si invia il pacchetto al router della propria rete, che
cerca l’indirizzo dell’host destinatario nella sua tabella di routing
( operazione di resolving).
• 
Se la tabella di routing del router non contiene l’indirizzo dell’host
destinatario, si esamina l’indirizzo di rete (dell’host destinatario) per poi
inviare il pacchetto al router della rete individuata.
• 
Se il router non contiene neanche l’indirizzo di rete del destinatario, il
router invia il pacchetto al default router vicino per tentare l’operazione
di resolving.
Routing classless
Per ricavare l’indirizzo del router a cui va inviato un pacchetto destinato all’host con indirizzo IP D:
A) per ciascun record della tabella di routing con maschera di subnet M, indirizzo di rete N e indirizzo
di router R:
 
 
 
 
 
calcola l’AND logico (bit a bit) tra D e M
se il risultato è uguale a N, invia il pacchetto a R (o direttamente all’host se è in una rete connessa
direttamente al router)
se il risultato non è uguale a N, continua con il prossimo record della tabella
le voci nella tabella sono analizzate cominciando da quelle aventi network address più lunghi (Longest Prefix
Matching)
in una routing table un blocco di indirizzi può essere rappresentato da un unico elemento corrispondente al
prefisso (Supernetting)
11000000. 00100000. 10001000. 00000000 = 192.32.136.0 (class C address)
11111111. 11111111. 11111000. 00000000 = 255.255.248.0 (network mask)
================================= logical_AND
11000000. 00100000. 10001 = 192.32.136 (IP prefix)
11000000. 00100000. 10001111. 00000000 = 192.32.143.0 (class C address)
11111111. 11111111. 11111000. 00000000 = 255.255.248.0 (network mask)
================================= logical_AND
11000000. 00100000. 10001 = 192.32.136 (stesso IP prefix)
B) il record per il router di default è sempre analizzato per ultimo.
16
Differenti versioni del protocollo IP
La crescita esponenziale dei dispositivi collegati in rete ha portato
da un lato alla utilizzazione della forma di indirizzamento classless
(ottimizzazione dell’indirizzamento classful), dall’altro alla
utilizzazione di una nuova forma di indirizzamento l’IPv6 che (a
differenza dell’IPv4 che prevedeva indirizzi divisi in 4 byte =32
bit) prevede l’uso di indirizzi a 16 byte =128 bit = 8 sezioni
esadecimali di 2 byte separate da “:”
Ad esempio :
A0D3 : FB43 : 4EFB : AA41 : FF88 : 41AD : 0000 : FD23
IPv4 packet layout
L’intestazione IPv4 di un datagramma contiene:
þ  l’indirizzo IP del mittente,
þ  l’indirizzo IP del destinatario,
þ  il protocollo di trasporto (TCP o UDP): serve ad indicare all’host
destinatario il tipo di trasporto e di conseguenza il modo in cui manipolare i
dati ricevuti,
þ  lo header checksum: è il CRC (Cyclic Redundancy Check) che permette
di verificare l’integrità dell’header,
þ  il TTL (Time-To-Live): il tempo di durata in vita di un datagram; alla
partenza viene assegnato un valore predefinito che diminuisce ad ogni
attraversamento di un router; quando il TTL raggiunge il valore zero il
datagram viene tolto dalla rete.
17
IP packet layout
priorità del datagramma + ICMP,
Telnet, Ftp, DNS,…
Da 20 a 60 byte
per la
frammentazione
Internet Header
Version (4bit) length (4bit)
Type of
Service (8bit)
Total Length (16 bit)
Identification (16 bit)
Time to Live (8)
Max=216 -1 byte
Flags(3bit )
Protocol(8) (dei livelli superiori)
Fragment Offset (13 bit)
Header Checksum (16)
Source Address (32 bit)
IPv4
Destination Address (32 bit)
Options (optional)
Data
Version (4 bits)
Priority (4 bits)
Payload length (16 bits)
IPv6
da 40 a 65535
bytes
Flow label (24 bits)
Next header (8 bits)
Hop limit (8 bits)
Source address
(128 bits)
Destination address
(128 bits)
18