Corso di Reti II Materiale del corso

Transcript

Corso di Reti II Materiale del corso
Corso di Reti II
• Luca Becchetti
– [email protected]
• Ricevimento
– via Salaria 113, II piano, stanza 227
– Venerdi’, ore 11.00-13.00
http://www.dis.uniroma1.it/~becchett/reti2/reti.html
1
Materiale del corso
• Difficile trovare un unico testo adatto alle
esigenze del corso
• Testi di riferimento (nessuno adottato)
– L. Peterson e B. Davie. Computer Networks: a system
approach (ed. in Inglese), terza edizione. Morgan
Kaufmann
– D. Comer. Internetworking con TCP/IP. AddisonWesley
• http://www.netbook.cs.purdue.edu/index.htm
• Preparazione di base (v. programma del corso di
Reti I - Becchetti)
– J. F. Kurose e K. W. Ross "Reti di Calcolatori e Internet"
terza ed. Pearson
2
Materiale del corso/cont.
• Ulteriore materiale
– Articoli suggeriti dal docente
– Documentazione on - line suggerita dal docente
• Ricerca di informazioni in rete
– Molte buone fonti ma anche parecchia spazzatura
– Wikipedia puo’ essere un buon puntatore iniziale ma
poi e’ meglio risalire alle fonti (no copy & paste)
– Google Scholar e’ un motore di ricerca per articoli
specialistici
– I siti di alcune aziende (CISCO, IBM… possono
contenere materiale interessante
• Distinguere materiale informativo (articoli, white paper…)
dalla pubblicita’
http://www.dis.uniroma1.it/%7Ebecchett/reti2/prog.html
3
Programma di massima
• Breve sintesei su TCP/IP
• Aspetti avanzati
dell’instradamento in reti
IP (OSPF, RIP)
• Aspetti avanzati
dell’indirizzamento IP
• Indirizzi privati, NAT, reti
private virtuali, tunnel
• Firewall
• Sistemi autonomi e
instradamento tra essi BGP
• Cenni a Mobile IP
• Tecniche di controllo
della congestione
end-to-end e ai
router
• Reti peer-to-peer
4
Organizzazione del corso
• Argomenti di base sviluppati con il
docente
• Approfondimenti su materiale consigliato
dal docente
– Costituiscono parte integrante del
programma di esame
5
Cosa si assume
• Conoscenze base di sistemi operativi
• Conoscenze base di reti
– Strato fisico
– Strato di collegamento
• Ethernet e dispositivi di livello 1 e 2 (hub, switch…)
• Controllo/correzione di errore
– Strati di rete e di trasporto
• Principi di funzionamento delle reti IP
• Nozioni di base sui protocolli UDP/TCP e IP
• Trasferimento affidabile, meccanismi di base (protocolli
sliding window)
• Controllo di congestione
– Strati applicativi
• Principali protocolli di applicazione
6
IP recap
Slides based on Prof. L.
Peterson’s course slides
Princeton University
7
Funzioni dello strato di rete
• Determinazione del cammino: percorso
(route) che i pacchetti seguono da sorg. a
dest. Algoritmi di routing -> tabelle di
routing
• Forwarding (inoltro): trasferimento dei
pacchetti dalla porta di ingresso alla
corretta porta di uscita del router
• Indirizzamento
• Instaurazione chiamata (se serve)
– Assente in Internet
8
Strato di rete in Internet
Strato di trasporto : TCP, UDP
Protocollo IP
•Indirizzamento
•Formato dei datagrammi
•Gestione dei pacchetti
Protocolli di rout.
•Selezione camm.
•RIP, OSPF, BGP
Tabella di
routing
Protocollo ICMP
•Segnalaz. errore
•“Segnalaz.” router
Strato di link (collegamento)
Strato fisico
• Insieme di protocolli, non solo IP!
9
IP Internet
• Concatenazione di reti
Network 1 (Ethernet)
– Cosa e’ una internetwork?
H1
H2
H7
H3
R3
H8
Network 4
(point-to-point)
Network 2 (Ethernet)
R1
R2
• Protocol Stack
H4
Network 3 (FDDI)
H6
H5
H1
H8
TCP
R1
IP
ETH
R2
IP
ETH
R3
IP
FDDI
FDDI
IP
PPP
PPP
TCP
IP
ETH
ETH
10
Modello di servizio
• Connectionless (datagram-based)
• Best-effort delivery (unreliable service)
–
–
–
–
packets are lost
packets are delivered out of order
duplicate copies of a packet are delivered
packets can be delayed for a long time
• Datagram format
0
4
Version
8
HLen
16
31
Length
Ident
TTL
19
TOS
Flags
Protocol
Offset
Checksum
SourceAddr
DestinationAddr
Options (variable)
Pad
(variable)
Data
11
Soluzione alternativa circuito virtuale
“Il percorso sorgente-destinazione si comporta come un circuito
telefonico ”
– Tiene traccia delle prestazioni
– Lo strato di rete è attivo lungo tutto il percorso sorgentedestinazione
– ATM, Frame-Relay, X.25
• Instaurazione e abbattimento delle chiamate
• Ogni pacchetto ha un identificatore di VC (e non dell’host di
destinazione
• Ogni router router sul cammino sorg.-dest. mantiene info di
stato su ogni connessione che lo attraversa
– Una connessione di trasporto coinvolge solamente gli host
terminali
• Possibile allocazione di risorse dedicate a un VC (banda, buffer)
12
Circuito virtuale: protocolli di
segnalazione
• Usati in fase di instaurazione, abbattimento e
mantenimento di VC
• Usati in ATM, frame-relay, X.25
• Non usati nell’attuale Internet
application
transport 5. Inizio flusso dati
4. Connessione
network
1. Inizio chiamata
data link
physical
application
3. Acc. chiamata transport
2. chiamata
network
data link
physical
6. Ric.dati
13
Formato datagramma IP
32 bit
Lunghezza header
(32 bit word)
“Tipo” dei dati
type of
ver head.
len service
length
fragment
16-bit identifier flgs
offset
No. max hop rimanenti time to upper
Internet
(decrementato in ogni
layer
live
checksum
router)
32 bit source IP address
Protocollo di trasporto
al quale consegnare i
dati (payload)
Lunghezza totale
Datagramma
Per
frammentazione/
ricostruzione
32 bit destination IP address
Options (if any)
dati
(lungh. variabile,
di solito un segmento TCP
o UDP)
Es. timestamp,
Mem. percorso,
Specifica lista
dei router da
visitare.
14
Fragmentation and
Reassembly
• Each network has some MTU
– Ethernet -> 1500 byte
• Design decisions
–
–
–
–
–
–
fragment when necessary (MTU < Datagram)
try to avoid fragmentation at source host
re-fragmentation is possible
fragments are self-contained datagrams
delay reassembly until destination host
do not recover from lost fragments
15
Frammentazione/cont.
• Offset di 16 bit
Inizio/fine
pacchetto
Start of header
Ident = x
Flag
Offset = 0
Rest of header
Identificativo
pacchetto
Spiazzamento
512 data bytes
16
Example
Start of header
Ident = x
0 Offset = 0
Rest of header
(a)
H1
R1
R1
R2
R2
1400 data bytes
H8
R3
R3
Start of header
Ident = x
ETH IP (1400)
FDDI IP (1400)
PPP IP (512)
ETH IP (512)
PPP IP (512)
ETH IP (512)
PPP IP (376)
ETH IP (376)
1 Offset = 0
Rest of header
512 data bytes
(b)
Start of header
Ident = x
1 Offset = 64
Network 1 (Ethernet)
Rest of header
H1
H2
H7
H3
R3
512 data bytes
H8
Network 4
(point-to-point)
Network 2 (Ethernet)
Start of header
R1
Ident = x
R2
H4
376 data bytes
Network 3 (FDDI)
H5
0 Offset = 128
Rest of header
17
H6
Global Addresses
• Properties
– globally unique
– hierarchical: network + host
• Dot Notation
– 10.3.2.4
– 128.96.33.81
– 192.12.69.77
(a)
7
0
24
Network
Host
14
(b)
(c)
1 0
16
Network
Host
21
1
1
0
Network
8
Host
18
IP subnetworks
• Sistema
interconnesso di
? reti IP
• Indirizzi IP
associati a
interfacce
223.1.1.2
223.1.1.1
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
19
Datagram Forwarding
• Strategy
–
–
–
–
–
–
every datagram contains destination’s address
if connected to destination network, then forward to host
if not directly connected, then forward to some router
forwarding table maps network number into next hop
each host has a default router
each router maintains a forwarding table
• Example (R2)
H1
H2
Network 1 (Ethernet)
H7
H3
R3
Network 4
(point-to-point)
Network 2 (Ethernet)
R1
R2
H4
H8
Network Number
1
2
3
4
Next Hop
R3
R1
interface 1
interface 0
Interface 0
Network 3 (FDDI)
H5
H6
Interface 1
20
Address Translation within a
LAN
• Map IP addresses into physical addresses
– destination host
– next hop router
• Techniques
– encode physical address in host part of IP address
– table-based
• ARP
–
–
–
–
table of IP to physical address bindings
broadcast request if IP address not in table
target machine responds with its physical address
table entries are discarded if not refreshed
21
Address Resolution Protocol
• Ogni nodo IP (Host, Router) sulla LAN ha
un modulo ARP e una tabella
• Tabella ARP: mapping IP->MAC per
alcuni nodi della LAN
< IP address; MAC address; TTL>
<
………………………….. >
• TTL (Time To Live):
timer, di solito
20 min)
22
ARP/cont.
• A vuole inviare un pacchetto all’indirizzo IP di
destinazione XYZ su una certa LAN
• A prima controlla la tabella ARP locale
• Se non esiste una entry corrispondente a XYZ, il modulo
ARP invia un pacchetto ARP in broadcast:
< XYZ, MAC (?) >
• TUTTI i nodi della LAN accettano e analizzano il pacchetto
ARP
• Il nodo XYZ risponde con un pacchetto ARP unicast
contenente il proprio indirizzo MAC:
< XYZ, MAC (XYZ) >
• La tabella ARP svolge la funzione di una cache
Il protocollo ARP può essere usato con tecnologie diverse
23
ARP Packet Format
Puo’ funzionare con protocolli di strato 2 diversi da Ethernet
0
8
16
Hardware type = 1
HLen = 48
PLen = 32
31
ProtocolType = 0x0800
Operation
SourceHardwareAddr (bytes 0_ 3)
SourceHardwareAddr (bytes _4 5)
SourceProtocolAddr (bytes _0 1)
SourceProtocolAddr (bytes 2_ 3)
TargetHardwareAddr (bytes_0 1)
TargetHardwareAddr (bytes_2 5)
TargetProtocolAddr (bytes 0
_ 3)
24
ARP Details
• Request Format
– HardwareType: type of physical network (e.g., Ethernet)
– ProtocolType: type of higher layer protocol (e.g., IP)
– HLEN & PLEN: length of physical and protocol
addresses
– Operation: request or response
– Source/Target-Physical/Protocol addresses
• Notes
– table entries timeout in about 10 minutes
– refresh table if already have an entry
– otherwise
• update table with source when you are the target
• do not update table if not target
25
Es.: Routing verso una LAN diversa
• Pacchetto da ind. IP <111.111.111.111> a ind.
<222.222.222.222>
• Nella tabella di routing, trova l’ind. IP del router
(111.111.111.110)
• Nella tabella ARP, trova il corrispondente indirizzo MAC
(E6-E9-00-17-BB-4B)
26
ARP proxy (promiscuo, hack)
• Permette di definire piu’ reti locali
– Rete principale nota all’esterno
– Reti locali aggiunte successivamente nascoste
• Router speciale che:
– Funziona da switch tra le diverse reti locali
– Funziona da router da/verso l’esterno
• I router ignorano la presenza di subnet
fisicamente distinte
• Usato in passato
• Attualmente usato per scopi particolare (es. IP
mobile)
27
ARP proxy - cont.
principale
nascosta
IP1
IP4
IP5
IP6
R
IP2
IP3
• Dgram IP1-->IP4
– R cattura richiesta ARP bcast di IP1 e restituisce
proprio MAC address
– Datagrammi da IP1 a IP4 sono spediti a R che li
inoltra a IP4
28
Internet Control Message
Protocol (ICMP)
•
•
•
•
•
•
•
Echo (ping)
Redirect (from router to source host)
Destination unreachable (protocol, port, or host)
TTL exceeded (so datagrams don’t cycle forever)
Checksum failed
Reassembly failed
Cannot fragment
29
Riferimenti
• Testo di Kurose e Ross
– Cap.4, in particolare 4.1 - 4.5
• Testo di Peterson e Davie
– Cap. 4, in particolare 4.1
30