Architettura di TCP/IP
a.a. 2002/03
Š L’architettura di Internet è organizzata intorno
IP
a tre servizi organizzati gerarchicamente
Prof. Vincenzo Auletta
Servizi Applicativi
[email protected]
http://www.dia.unisa.it/~auletta/
Università degli studi di Salerno
Laurea e Diploma in Informatica
Servizio di trasporto affidabile
TCP
Servizio inaffidabile di consegna di pacchetti
IP
2
IP: Internet Protocol
IP:Internet Protocol
Š È il livello di Network di TCP/IP
„
Š Il livello Network si occupa di:
consente a due entità di protocollo di
trasporto, residenti su macchine differenti, di
scambiare messaggi in modo trasparente
„
„
„
„
Un protocollo datato ...
... ma non obsoleto
„
„
„
3
FTP, telnet, ...
4
servizi di rete
indirizzamento
istradamento
qualità del servizio
dimensione massima dei pacchetti
controllo degli errori
controllo del flusso
Delegati al livello di
trasporto TCP
IP: Internet Protocol
IP: Internet Protocol
IP fornisce un servizio
Š non connesso
Š Il protocollo IP provvede a:
„
„
„
Ogni datagram (pacchetto IP) è trattato separatamente
Pacchetti relativi alla stessa sessione potrebbero seguire
percorsi differenti nell’internet
„
„
Š inaffidabile
„
La consegna del datagram al destinatario non è garantita
„
Š al meglio delle possibilità (best try)
„
definire il formato delle unità elementari di dati
(datagram) trasferiti su una rete TCP/IP
fornire un metodo di indirizzamento universale per
l’internet
scegliere il percorso che un datagram segue nell’internet
per giungere a destinazione
definire le regole che servono a implementare il concetto
di consegna inaffidabile di datagram
Il protocollo non decide mai deliberatamente di eliminare
un datagram
5
6
Esempio di Architettura di Rete
FTP client
Interazioni di IP con altri Protocolli
User Proc.
FTP server
TCP
TCP
IP
IP
7
User Proc.
TCP
router
802.3
driver
User Proc.
802.3
driver
UDP
User Proc.
Application
Transport
IP
802.5
driver
ICMP
IP
IGMP
Network
ARP
HW Intrfc
RARP
Link
802.5
driver
8
Indirizzi IP
Formato degli Indirizzi IP
Š Un indirizzo IP identifica univocamente un utente
Š Sono ampi 32 bit (4 byte)
Š Si scrivono come 4 numeri decimali separati dal
dei servizi di rete
„
„
„
L’indirizzo è assegnato all’interfaccia di rete
un host può avere più indirizzi IP (multihomed), uno per
ogni interfaccia di rete
il formato dell’indirizzo è indipendente dal tipo di rete
fisica a cui l’host è collegato
carattere “.”
Š Ogni numero rappresenta il contenuto di un byte ed
è quindi compreso tra 0 e 255
Š Esempi
Š Gli indirizzi sono assegnati da una autorità unica che
„
ne garantisce l’univocità
„
„
9
Fino al 98 una persona si occupava di tutto
Attualmente la Internet Corporation for Assigned Names
and Numbers (ICANN) si occupa di assegnare gli indirizzi
ed i nomi
„
„
10
Indirizzi IP
Schema di Indirizzamento con le
Classi
Š Ogni indirizzo è formato da due parti
Š Meccanismo di indirizzamento originario
„
„
identificativo di rete
identificativo di host
„
„
Š Gli indirizzi a due livelli facilitano la politica di
„
„
Pensato per l’internet degli anni 80
Non ha retto alla enorme diffusione di Internet
Š Prevede 5 classi di indirizzi
gestione degli indirizzi e l’istradamento dei datagram
sull’internet
11
131.190.0.2
1.1.2.17
200.70.27.33
„
I gateway utilizzano l’identificativo di rete per far arrivare
il datagram alla rete fisica del destinatario
Il gateway della rete del destinatario utilizza l’identificativo
di host per trasferire il datagram al destinatario
„
„
12
Le classi differiscono per la lunghezza degli identificativi di
rete e di host
La lunghezza complessiva è sempre 32 bit
La classe di un indirizzo è identificata dai primi 4 bit
Formato degli Indirizzi di classe A,
BeC
0 1
0
7 8
Formato degli Indirizzi di classe D
ed E
0 1 2 3
31
Rete
1 1 1 0
Host
0 1 2
15 16
31
Rete
0 1 2 3
Host
1 1 11
Classe B
0 1 2 3
Rete
Reserved for Future Use
Host
Classe C
14
Classe A
Classe B
Š Identificativo di rete
Š Identificativo di rete
„
„
„
7 bit
max 128 reti
valori compresi tra 0.0.0.0 e 127.255.255.255
„
„
„
„
„
24 bit
max 16M host
0 1
0
„
„
7 8
Rete
14 bit
max 16K reti
valori compresi tra 128.0.0.0 e 191.255.255.255
Š Identificativo di host
Š Identificativo di host
15
31
Classe E
31
23 24
1 1 0
13
Multicast Address
Classe D
Classe A
1 0
31
16 bit
max 64K host
0 1 2
31
Host
16
1 0
15 16
Rete
31
Host
Classe C
Classe D
Š Identificativo di rete
Š destinato per un insieme di host che appartengono
„
„
„
21 bit
max 2M reti
valori compresi tra 192.0.0.0 e 223.255.255.255
ad un gruppo multicast
„
Š ...lo vedremo in dettaglio in seguito
Š Identificativo di host
„
„
valori compresi tra 224.0.0.0 e 239.255.255.255
8 bit
max 256 host
0 1 2 3
1 1 0
Rete
0 1 2 3
31
23 24
1 110
Host
17
31
multicast group ID
18
Classe E
Assegnazione degli Indirizzi
Š destinato per usi futuri
Š L’autorità centrale assegna gli identificativi di rete
„
valori compresi tra 240.0.0.0 e 255.255.255.255
„
l’utente fa richiesta per una classe di indirizzi
Š L’amministratore di rete assegna gli identificativi di
host
„
0 1 2 3
1 111
31
la responsabilità sull’univocità degli indirizzi di host è
delegata ad un’autorità locale
Š E’ possibile assegnare arbitrariamente indirizzi a
riservato per usi futuri
host senza richiederli all’ICANN
„
19
20
...questi indirizzi non possono essere utilizzati sull’Internet
Indirizzi di Rete e Indirizzi di Host
Ordine di Trasmissione
Š Un indirizzo IP si può riferire sia ad un singolo host
Š network byte order:
che ad un’intera rete
„
„
„
l’indirizzo di host 0 è riservato e identifica la rete nel suo
complesso
utilizzato nelle tabelle di routing
„
„
„
Š Esempio
„
„
0-7
8-15
16-23
24-31
Š Byte ordering per interi binari:
192.41.218.10 identifica l’host 10 della rete di classe C
192.41.218
192.41.218.0 identifica la rete di classe C 192.41.218
21
bit
bit
bit
bit
„
„
Macchine con Big Endian: o.k.
Macchine con Little endian...devono fare la conversione
a network byte order
22
IP Routing: Cenni
IP Routing: Tavola di Routing
Š Se la destinazione è connessa direttamente all’host
Š Lo strato di IP di un sistema può essere configurato
come un host oppure come host+router
Š Lo strato di IP ha una tavola di routing (che usa
ogni volta che riceve un datagram) contenente:
o su una rete condivisa (e.g. ethernet/token ring):
„
il datagram è mandato direttamente a destinazione
„
Š Altrimenti l’host manda il datagram ad un router di
„
default che lo spedirà a destinazione
„
„
è tutto semplice?...
Indirizzo IP di destinazione: di rete o completo
Indirizzo di next-hop router o di net-id direttamente
connessa
Flag: specificano il tipo dei due indirizzi precedenti
specifiche di quale interfaccia di rete su cui immettere il
datagram per la trasmissione
Š /sbin/route (...Unix) – route PRINT (NT)
23
24
Indirizzi Riservati
Utilizzo della Tavola di Routing
Š matching con l’indirizzo di host completo
„
tutti 0
manda il pacchetto al next-hop router o all’interf. connessa
direttamente (indicati)
Š point-to-point
tutti 0
Š matching con l’indirizzo di rete
„
manda il pacchetto al next-hop router o all’interf. connessa
direttamente (indicati)
Š ethernet
host
rete
manda il pacchetto al next-hop router indicato
broadcast limitato
tutti 1
Š altrimenti... packet undeliverable
„
25
„
host unreachable
network unreachable
26
any (in genere 0.0.1)
tutti gli host di rete
broadcast diretto
loopback
Indirizzi di Broadcast
Indirizzo di Loopback
Š Un indirizzo con tutti i bit dell’ identificativo di host
Š L’indirizzo 127.0.0.1 è riservato per il loopback
uguali ad 1 identifica tutti gli host di una rete:
net-id broadcast
„
„
„
un datagram spedito ad un indirizzo broadcast verrà
consegnato a tutti gli host della rete
su alcune reti può essere molto costoso
„
„
Š Esempio
„
„
27
127
host su questa rete
tutti gli host della rete
tutti 1
Š default route
„
questo host
l’indirizzo identifica lo stesso host che ha spedito il
datagram
utile per test e debugging
consente di gestire la comunicazione tra processi sulla
macchina locale allo stesso modo che tra processi remoti
Š lo standard IP vieta di definire indirizzi con
192.41.218.255 identifica tutti gli host della rete
192.41.218.0
identificativi di rete 127
L’indirizzo 255.255.255.255 identifica tutti gli host della
rete a cui è collegato il mittente:
28
Reti Logiche e Fisiche: Esempio
di classe C
Indirizzi Locali
Š Alcuni identificativi di rete sono stati riservati per
uso privato
„
„
192.41.218.0
Ogni organizzazione è libera di assegnare questi indirizzi ai
suoi host
I router non istraderanno mai datagram da e verso host
con questi indirizzi
.254
Router
193.205.162.0
„
„
193.205.162.0
.1
.2
30
Esaurimento degli Indirizzi di
classe B
Debolezze dello Schema di
Indirizzamento
Š una rete di 256 host richiede un indirizzo di classe
Š L’indirizzo IP si riferisce alla connessione alla rete
„
„
B
se un host cambia rete deve cambiare indirizzo
Problematico gestire utenti mobili
„
Š Se un host ha più indirizzi il comportamento del
„
protocollo IP dipende dall’indirizzo utilizzato
Š se una rete di classe C supera i 255 host tutti gli
indirizzi devono essere riconvertiti a classe B
„
„
31
.4
Bridge
10.0.0.0
172.16.0.0
192.168.0.0
29
.254
.3
Š Indirizzi disponibili
„
.2
.1
„
Cambia l’identificativo di rete
Tutti i router dovrebbero aggiornare le tabelle di routing
Nessuno richiede indirizzi di classe C
32
oltre 65000 indirizzi inutilizzati
gli indirizzi di classe B sono quasi esauriti
Come migliorare l’utilizzo dello spazio degli indirizzi
di IP, mantenendo la compatibilità con il vecchio
sistema?
Assegnare lo stesso identificativo di rete a più reti
fisiche...subnetting
Subnetting
Uso del Subnetting
Š L’indirizzo IP è diviso in una parte pubblica (ex rete)
Š La dimensione dell’identificativo di rete della parte
locale non è fissata
ed una parte locale (ex host)
parte pubblica
„
parte locale
„
parte pubblica
„
rete
host
Š 254 sottoreti da 254 host (8 bit net-id + 8 bit host)...-2
Š 6 sottoreti da 8190 host (3 bit net-id + 13 bit host)...-2
il routing nell’internet è fatto sulla parte pubblica
Š 8190 sottoreti da 6 host (13 bit net-id + 3 host)...-2
Š Compatibile con il vecchio schema
Š Per interpretare correttamente gli indirizzi c'è
Š dimensione ridotta delle tavole sull’Internet
33
• la parte locale è divisa in un identificativo di rete fisica ed
un identificativo di host
34
bisogno di distinguere tra identificativo di rete e
host
Netmask
Esempio di Netmask
Š Un amministratore che vuole partizionare una rete
Š Partizionare la rete di classe B 140.252.0.0 in
in sottoreti deve definire una netmask
„
„
„
14 subnet da 4094 host
maschera di 32 bit
bit a 1 in corrispondenza dei campi network e subnetwork
bit a 0 in corrispondenza del campo host
• Netmask 255.255.240.0 o 140.252.0.0/20
• 11111111 11111111 11110000 00000000
Š Lo standard ammette tutte le sequenze di 32 bit
come maschere
Š nella realtà vengono utilizzate solo maschere
costituite da una sequenza di 1 seguita da una
sequenza di 0
„
35
consente la massima flessibilità per la gestione dello
spazio degli indirizzi
una rete di classe B può essere divisa per esempio in
Es.
11111111
(255.255.248.0)
11111111
11111000
00000000
36
• Notazione alternativa
• {network, subnet, host}
• La sottorete 2 ha indirizzo (140.252, 2, 0)
• L’indirizzo di broadcast della sottorete 2 è
(140.252, 2, -1)
Subnet Classe C: 192.41.218.0/28
NET ID
PRIMO HOST
ULTIMO
NET ID
PRIMO HOST
ULTIMO
.0
.1
.14
.128
.129
.142
Indirizzi di Broadcast per Sottoreti
Š Lo standard stabilisce che con k bit si possono
specificare 2k indirizzi di sottoreti
„
.16
.17
.30
.144
.145
.158
.32
.33
.46
.160
.161
.174
.48
.49
.62
.176
.171
.190
.64
.65
.78
.192
.193
.206
.80
.81
.94
.208
.209
.224
.96
.97
.110
.224
.225
.238
.112
.113
.126
.240
.241
.254
37
Š Ogni sottorete ha un proprio indirizzo di rete ed un
indirizzo di broadcast
„
indirizzo di host formato da tutti 0 o tutti 1
Š E’ possibile associare anche un indirizzo di rete ed
un indirizzo di broadcast all’insieme delle sottoreti
„
„
38
però non si possono usare gli indirizzi di sottorete 0 e 2k-1
la soluzione dipende dal router
Š i router CISCO vietano l’uso di 0 e 2k-1 come indirizzi di sottorete
Indirizzi di Subnet di Lunghezza
Variabile
Schema di Indirizzamento senza
Classi (CIDR)
Š E’ possibile costruire sottoreti con netmask di
Š Agli inizi degli anni 90 ci si è resi conto che gli
lunghezza differente
„
indirizzi disponibili si stavano esaurendo
Es. divide una rete di classe C in una sottorete con 126
host e due sottoreti con 62 host
„
„
più difficile la gestione dell’instradamento ed è
sconsigliata
„
la soluzione del subnetting aveva solo rinviato il problema
Š Soluzioni
Š L’utilizzo di netmask di lunghezza differente rende
39
anche la sottorete 0 e la sottorete 2k-1
„
si possono creare indirizzi ambigui (soprattutto per
broadcast)
40
Allargare lo spazio di indirizzamento a 128 bit (IP6) – a
larga scadenza
Rendere più flessibile l’utilizzo degli indirizzi a 32 bit
(indirizzi senza classi CIDR) – a breve scadenza
Supernetting
Indirizzi CIDR e Bitmask
Š Lo schema CIDR consente di assegnare alla stessa
Š Lo schema CIDR consente di assegnare blocchi di
indirizzi di dimensione 2k, per ogni k
rete fisica un blocco di indirizzi di rete consecutivi
„
(net, count)
„
Š count indirizzi di rete a partire da net
„
„
41
identifica le reti di classe C 192.41.218.0 e 192.41.219.0
permette di assegnare ad una rete di 256 host due
indirizzi di classe C consecutivi invece che un indirizzo di
classe B
„
„
„
42
bit
4
8
Hlen
16
Time To Live
ogni sottoblocco sarà identificato da un prefisso comune
ed una bitmask
19
Serv. Ty.
Identification
Fl.s
Protocol
Fragment Offset
Header Checksum
Destination IP Address
Options
44
31
Total Length
Source IP Address
Š L’istradamento è più facile
43
0
Vers
sottoblocchi contigui da assegnare ai suoi clienti
„
il prefisso è utilizzato nelle tabelle di routing come indirizzo
di rete
Formato del Datagram IP
ad ogni ISP è assegnato un blocco di indirizzi contigui
distinto
un router conosce le rotte solo agli host del suo blocco
tutto il traffico rimanente è inviato al router del
superblocco che lo contiene
Servono 11 bit per identificare ogni host
Indirizzo CIDR Æ 128.211.168.0/21
comune identificato dalla bitmask
Š Ogni ISP subnetta il suo blocco di indirizzi in
„
per
Š Tutti gli indirizzi di un blocco hanno un prefisso
Š L’accesso all’internet è gestita dagli ISP
„
netmask)
partire da 128.211.168.0
Filosofia di CIDR
„
a
Š Esempio: assegnare un blocco di 2048 indirizzi a
Consente anche di ridurre le dimensioni delle tavole di
routing
Š Esempio: (192.41.218.0, 2)
„
Utilizza una bitmask (equivalente
identificare la dimensione dei blocchi
20 byte
Formato del Datagram IP
Utilizzo del Type of Service
(I word)
Š Version
„
bit
numero di versione del protocollo: 4 (IPv4)
„
„
„
„
tipo di servizio richiesto (molti router non lo supportano)
...dettagli Æ slide successive
„
non usa
R
high per informazioni di servizio, low per traffico normale
„
D = minima distanza
T = massimo throughput
R = massima affidabilità
consentire la gestione da parte dei router di gruppi di servizi
differenziati (DiffServ)
45
46
Valori di Type of Service (TOS)
47
T
7
Š Recentemente l’utilizzo del TOS è stato ridefinito per
lunghezza del datagram in byte
Application
D
5 6
Š Uno solo di D, T e R è settato
Š Total Lenght
„
4
Š Ogni router dovrebbe supportare almeno due classi di priorità
lunghezza dell’header in parole a 32 bit
normalmente 5, quando non ci sono opzioni
Š Type of Service (TOS)
„
2 3
prio
Š HLEN
„
0
1
0
0
0
FTP Control
1
0
0
0
FTP Data
0
1
0
0
SNMP
0
0
1
0
DNS (UDP)
1
0
0
0
DNS (TCP)
0
1
0
0
NNTP
0
0
0
1
Compatibile con il vecchio formato
Incapsulamento dei Datagram
Š Il datagram deve essere incapsulato nei frame
Min. Delay Max Thr. Max Rel. Min. Cost
Telnet
„
della rete fisica
Datagram
header
Frame header
Datagram Data
Frame data
• Per questioni di efficienza vorremmo datagram che entrano
in un frame, ma ...
48
•la dimensione dei frame (MTU) cambia da rete a rete
• la sorgente non conosce l’MTU delle reti fisiche che il datagram
deve attraversare
Frammentazione dei Datagram
Frammentazione dei Datagram
Š Per trasmettere un datagram sulla rete fisica
Š IP si preoccupa di frammentare il datagram e di
bisogna inserirlo nei frame
„
„
ricomporlo
Ogni rete fisica definisce un proprio limite superiore
alla lunghezza dei frame (MTU)
Se il datagram ha dimensione maggiore del frame deve
essere frammentato
49
„
Š Il destinatario deve essere in grado di ricostruire il
datagram originario
Š La seconda parola (word) dell’header di ogni
frammento contiene le informazioni relative alla
frammentazione
50
Formato del Datagram IP (II word):
Esempio Frammentazione
Š Identification
„
intero che identifica univocamente il datagram originario,
mandato dal sender host
Š Fragment offset
„
posizione del frammento nel datagram originario,
calcolata in ottetti (byte) a partire dall’inizio del campo
dati
Š Flags
„
informazioni di controllo della frammentazione
Š DO NOT FRAGMENT
51
ogni frammento ha lo stesso formato di un datagram
Š MORE FRAGMENTS
52
Datagram header
I blocco
II blocco
Frammento 1
header
I blocco
Offset 0
Frammento 2
header
II blocco
Offset 600
Frammento 3
header
III blocco
Offset 1200
III blocco
Formato del datagram IP (III word):
Formato del Datagram IP
Š Time to Live (TTL)
„
„
„
(IV-V word)
Š Source IP destination
max numero di router che datagram può attraversare nella
rete
iniz. a 32 o 64, ogni router decrementa il valore di 1
previene loop tra router (quando arriva a zero il datagram
è soppresso)
„
indirizzo IP dell’host che ha spedito il datagram
Š Destination IP destination
„
indirizzo IP dell’host a cui il datagram è diretto
Š Protocol
„
nome del protocollo che ha richiesto il servizio
Š Header checksum
„
53
„
controllo degli errori calcolato solo sull’header, se ci sono
errori è scartato. (il TTL modificato dai router Æ si deve
incrementare CS)
protocolli strati sup. hanno la loro CS per coprire i loro header e dati.
54
Campi Opzionale dell’Header
Formato Opzione Record Route
Š Il campo Options contiene informazioni facoltative
„
„
bit
utili per test e debug
la dimensione di OPTIONS è variabile
Timestamp
Š Ogni router inserisce il proprio indirizzo in coda alla lista
Source Route
Š il mittente specifica i router che deve/può attraversare
Pointer
...
Š registra sia l’IP del router che il tempo
55
Length
31
Second IP Address
Record Route
Š registra l’IP number di ogni router attraversato
„
24
16
First IP Address
Š Principali opzioni
„
8
CODE
Š Ricavabile dal campo LENGTH dell’header del datagram
„
0
56
se c’è spazio
Š Length indica la lunghezza della lista
Š Pointer la posizione dove inserire
Configurazione Interfaccia di Rete
Formato Opzione Source Route
bit
0
8
CODE
24
16
Length
Š Il
comando (UNIX/LINUX) utilizzato per configurare
l’interfaccia di rete e controllarne lo stato è /sbin/ifconfig
31
Pointer
„
Š argomenti
IP Address of first hop
„
„
IP Address of second hop
„
57
„
„
„
„
„
58
„
„
Esempio di Uso ifconfig
eth0
lo
59
nome dell’interfaccia da controllare o configurare
famiglia di indirizzi
Š principali parametri
...
Š Due tipi di source routing
Š Strict (specifica tutti gli hop)
Š Loose (specifica solo alcuni hop)
ipconfig per sistemi Windows
up/down (attivazione e disattivazione dell’interfaccia)
arp (abilita o disabilita uso di ARP)
allmulti (abilita o disabilita modalità promiscous)
mtu N (fissa a N la massima dimensione di un frame)
netmask addr (setta netmask)
multicast (abilita il multicasting)
hw (setta indirizzo fisico)
dstaddr addr (setta indirizzo dest. per linea poit-to-point)
Statistiche sullo Stato della Rete
Š E’ possibile ottenere informazioni sullo stato del sottosistema
di comunicazione con il comando netstat
Link encap:Ethernet HWaddr 00:A0:CC:53:D6:EF
inet addr:192.41.218.37 Bcast:192.41.218.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:320193 errors:1 dropped:0 overruns:0 frame:0
TX packets:36528 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:51057286 (48.6 Mb) TX bytes:4326559 (4.1 Mb)
Interrupt:5 Base address:0xd000
„
„
„
„
stato delle connessioni aperte
tabelle di istradamento
stato delle interfacce attive
statistiche relative ad un certo protocollo
Š Per conoscere lo stato delle interfacce usare netstat –in
„
„
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
….
mostra indirizzi numerici
indica numero di pacchetti trasmessi e ricevuti correttamente, con
errori o rimossi
Kernel Interface table
60
Iface MTU Net RX-OK RX-ERR TX-OK TX-ERR
Flg
eth0 1500 0 323616
1
36993
0
BMRU
lo
0
289
0
LRU
16436 0
289
Scarica

Architettura di TCP/IP IP: Internet Protocol IP:Internet Protocol