5 IP-05-p2

Transcript

5 IP-05-p2
Protocollo IP
!
Definisce un meccanismo non connesso non
affidabile
"
Parte Seconda
"
"
unità
unità di trasferimento (datagram)
funzioni di routing
regole tipiche di un servizio non affidabile
!
messaggi di errore, condizioni per scartare pacchetti, ...
Protocollo IP
FDL 2006
2
FDL 2006
formato
Imbustamento
1.
2.
Frame Header
Frame Dati
3.
CRC
4.
5.
Datagram
Header
FDL 2006
Datagram Dati
3
FDL 2006
6.
7.
8.
9.
10.
Version (4 bit) versione di IP (ora 4)
Length (4 bit), lunghezza intestazione come
numero di parole di 32 bit: senza opzioni,
intestazione formata da 5 parole (20 byte).
ServiceType (8 bit) i pacchetti possono essere
trattati in modo diverso per esigenze
applicazione: ex. un pacchetto deve essere
sistemato in una coda speciale che abbia
basso ritardo. Di solito “0”.
TotalLength (16), numero di byte contenuti,
inclusa l’intestazione: dimensione massima
65535 byte
La rete fisica potrebbe non essere in grado
di supportare pacchetti così lunghi: per
questa ragione, IP esegue un processo
di frammentazione e riassemblaggio (seconda
parola dell’intestazione)
Time to Live (TTL)
Protocol
Checksum
IP Souce & Destination Address
Options (if any …)
4
esempio
frammentazione
!
!
Come scegliere la dimensione di un datagram?
Ogni rete fisica ha un suo frame size massimo
"
"
!
!
A
MTU = Maximum Transfer Unit (dimensione massimo datagram)
Ethernet: 1500 B (payload del frame)
Net-3 MTU =1500
Quando un datagram deve attraversare una rete con MTU
inferiore alla dimensione del datagram: frammentazione ad
opera del router.
Frammentazione non trasparente
"
"
"
Net-1 MTU =1500
R1
5
"
!
"
"
"
!
"
(3 bit)
MTU
(inutilizzato)
DF: don’
don’t fragment
MF: more fragment (“
(“1” frammenti iniziali; “0” frammento
finale)
FDDI
R3
P2P
H8
ETH
(b)
ETH: 1500
FDDI: 4500
P2P:532
Pkt: 1400 ; datagram: IP+1400
ETH+IP+1400
FDDI+IP+1400
P2P+IP+512
P2P+IP+512
P2P+IP+376
ETH+IP+512
ETH+IP+512
ETH+IP+376
(a) ID=x;MF=0;Offset=0;DATI=1400B
puntatore all’
all’inizio del frammento nel datagram completo
in unità
unità di 8 byte
(b) ID=x;MF=1;Offset=0;DATI=512B
ID=x;MF=1;Offset=512;DATI=512B (*) Offset= 64
ID=x;MF=0;Offset=1024;DATI=376B (*) Offset= 128
ID=xxx ; MF=0 ; Offset=0
FDL 2006
R2
(a)
datagram non frammentato
"
R1
ETH
(16 bit)
Fragment Offset (13 bit)
"
!
H1
tutti i frammenti di uno stesso datagram hanno lo stesso ID
Flags
6
FDL 2006
esempio
gestione frammentazione e
riassemblaggio
IDentification
R2
Net-2
MTU = 620
i frammenti viaggiano come datagram separati
riassemblati solo a cura dell’
dell’host di destinazione
vantaggi?
FDL 2006
!
B
(*) dettaglio di implementazione: il campo Offset conta ottetti di byte e non byte individuali; un datagramma
deve essere frammentato in corrispondenza di multipli di 8
7
FDL 2006
8
Frammentazioni
!
(a) Frammentazione di un datagram
"
"
!
riassemblaggio: problemi?
!
MF = 1 per tutti i frammenti risultanti eccetto l’l’ultimo
Tutti i frammenti (eccettuato l’l’ultimo) devono avere lunghezza
multipla di 8 byte
"
(b) Frammentazione di un frammento
"
OFFSET sempre riferito all’
all’inizio del datagram completo
"
Frammento non finale
"
Frammento finale
!
!
fino a quando IP aspetta l’l’arrivo di tutti i frammenti
di un datagram?
!
uso di un timer di riassembly
che fa IP allo scadere del timeout?
tutti i sotto-frammenti hanno MF = 1
MF = 0
9
FDL 2006
10
FDL 2006
Checksum
Time to Live
!
!
"
limitare il tempo-di-vita dei datagram nella rete
"
terminare i loop di routing
"
!
"
Metrica: numero di hop
Ogni router lo decrementa
!
TTL = 0
"
Assicura l’l’integrità
integrità delll’
delll’intestazione (header)
1. somma (in complemento a 1) dei campi dell’
dell’ header, considerati come
sequenza di interi a 16 bit
2. Checksum = complemento a 1 di questa somma
Per quanto tempo il datagram può
può rimanere nella
rete?
"
!
!
Il campo TTL ha due funzioni:
!
router scarta il datagram
"
11
poco potente: perché
perché?
Non controlla la parte DATI
Deve essere ricalcolato da ogni router, in quanto cambia sempre
(almeno) il campo TTL
"
FDL 2006
-x è rappresentato come complemento di x, in cui ogni bit è invertito.
invertito.
Quando si sommano numeri in questa aritmetica, il riporto generato dai bit più
più
significativi deve essere addizionato al risultato.
! esempio: (-5) + (-3) = 1010 + 1100 = 0110 + ® = 0111 = (-8)
algoritmo semplificato per il ricalcolo
RFC 1624: Computation of the Internet Checksum via Incremental Update
FDL 2006
12
ICMP
!
!
ping & traceroute
Protocollo di controllo e di segnalazione, usato dai
router
incapsulato dentro IP
"
"
"
"
"
"
"
!
Ping:
Ping: Used to test
"
"
destination unreachable
time exceeded ( TTL = 0 ) ( vedi traceroute )
parameter problem
redirect
echo request e reply ( vedi ping e traceroute )
timestamp request e reply
source quench (congestione)
"
"
!
Reply from 164.107.144.3: 48 bytes in 47 msec. TTL: 253
Traceroute:
Traceroute: Exploit TTL and ICMP
"
"
"
"
13
FDL 2006
destination reachability,
compute round trip time
count the # of hops to destination
may provide record route option. Sample output:
Send the packet with time-to-live = 1 (hop)
The first router discards the packet and sends an ICMP “time-tolive exceeded message”
message”
Send the packet with time-to-live = 2 (hops) etc…
etc…
When stops?
traceroute
homework
!
comandi da sperimentare (Unix o Windows)
"
"
"
"
traceroute
flowchart
!
!
"
http://netgroup-serv.polito.it/windump/
http://www.tcpdump.org/
!
ntop
!
pathchar
"
"
15
arp
netstat
ping
traceroute (tracert)
installare e sperimentare almeno uno dei seguenti tool di rete
windump per Windows (o tcpdump per Unix)
"
FDL 2006
14
FDL 2006
http://www.ntop.org/ntop.html
http://www.caida.org/tools/utilities/others/pathchar/
FDL 2006
16