Internet Protocol Versione 4:
aspetti generali
L’architettura di base del protocollo IP versione
4 e una panoramica sulle regole fondamentali
del mondo TCP/IP
1
Cenni storici
Introduzione della
tecnologia delle reti a
commutazione di
pacchetto
(packet switching)
1961 -Teorizzazione del
packet switching
-IMPs: i primi 4 nodi
-ARPAnet (USA)
1980
-BSD UNIX
Proliferazione delle
reti, primi aspetti
commerciali
(inter-domain
routing)
-Flag day:
NCP TCP / IP
- Internet Worm
1972 -NCP[RFC 001]
Nascita e
collegamento, su
base paritaria, di
nuove reti
(internetworking)
-ALOHAnet (Hawaii,
packet radio)
-Ethernet
- TCP/IP
1990
-NSFNET
Commercializzazione della rete
e Web
(facilità d’uso)
-Decommissionamento di
NFSNET
1980
Oggi
2
-W W W
La prima rete
3
Punti di forza
Standard aperti
RFC
Dibattito pubblico
Disponibilità di codice pubblico
Semplicità dell’architettura
4
Integrato nello stack BSD
Robustezza (nonostante non fosse uno degli obiettivi primari)
TCP/IP ed Internet
Internet
La più grande rete di calcolatori al mondo che usa i protocolli
TCP/IP
TCP/IP
Una architettura di rete che permette lo scambio di informazioni
a livello geografico
Definisce anche una serie di livelli applicativi
Sono due concetti diversi
Internet è una delle tante reti TCP/IP
5
La più grossa
Internet potrebbe anche non usare TCP/IP in futuro
Crescita di Internet
Numero di reti BGP
6
http://www.telstra.net/ops/, http://bgp.potaroo.net/
Standard: OSI vs TCP/IP
Application
NFS
Presentation
XDR
Session
RPC
Transport
Telnet, FTP
SMTP, HTTP
SNMP, DNS
RTP, ...
TCP e UDP
ICMP IGMP
Network
IP
Protocolli per la
comunicazione tra
applicativi:
le raisons d’etre
della rete
Flussi (stream) di dati
Protocolli
di routing
Arp e Rarp
Comunicazioni tra
host qualsiasi
Data Link
",X.25, LAN, FDDI,"
Comunicazioni nella
stessa rete
Physical
",UTP, FIBRA OTTICA, RADIO, "
Supporto mezzo
trasmissivo fisico
OSI
7
Internet Protocol Suite
Funzioni
Terminologia
Host
Router o Intermediate System (IS)
Host specializzato nell’interconnessione di reti IP
Dispone normalmente della capacità di interagire con i suoi simili
tramite i protocolli di routing
End-System (ES)
Host “terminale”, senza capacità
presente solo ai bordi della rete
ES e IS
8
Una qualunque entità che dispone dello stack protocollare TCP/IP
Terminologia di derivazione OSI
di
routing;
normalmente
Principali scelte architetturali (1)
Flusso dati: commutazione di pacchetto
Inoltro: Forwarding by network address
Ogni nodo agisce in “isolamento”
Forwarding isolato, routing “cooperativo”
Trasporto: Connectionless
L’inoltro di un pacchetto è indipendente da quelli che lo
hanno preceduto e non influenzerà quelli che lo seguiranno
No connection setup, no controllo di errori / flusso
Necessario l’inserimento del Destination Address in ogni
pacchetto
Admission Control: Assente
9
I dati sono “spezzettati” in entità autonome (pacchetti)
Connectionless + AC: particolarmente adatto al traffico burst
Principali scelte architetturali (2)
Trasporto connectionless implica recapito:
Best Effort
10
Se un dato viene scartato, non è per capriccio ma ci deve essere
un motivo sensato
Unreliable
La rete farà del suo meglio per portare i dati a destinazione
Non affidabile; non viene garantito il recapito corretto dai
pacchetti
I dati possono essere persi, duplicati, consegnati fuori sequenza
Caratteristiche
applicativo:
del
servizio
dal
punto
di
vista
Servizio di trasporto affidabile: realizzato in TCP/IP dal livello 4
Servizio di trasporto inaffidabile: nativo nel livello 3
Funzionalità principali
Gestione indirizzi a 32 bit a livello di rete e di host
Algoritmo di Forwarding
Routing: implementato in protocolli ad hoc
Configurazione di classi di servizio
Frammentazione e riassemblaggio dei pacchetti
Funzionalità accessorie
11
Monitoring della comunicazione (ICMP)
Interfaccia verso reti broadcast (ARP, RARP)
Gestione del traffico multicast (IGMP)
Header
0
4
8
16
Vers. HLEN Traffic Class
Identification
TTL
19
31
Total Length
0
Protocol
DM
Fragment Offset
F F
Header Checksum
Source IP Address
Destination IP Address
Flags
Options
12
PAD
Formato degli indirizzi IP
Ampi 32 bit
Scrittura di indirizzi IP: notazione decimale puntata
Ogni cifra decimale assume un valore compreso tra 0 e 255
Esempi
10.255.8.1: indirizzo valido
10.355.8.1: indirizzo non valido
10.255.8.1 = 00001010 11111111 00001000 00000001
10
13
.
255
.
8
.
1
Options
0
1
Code
0
n
Length
1
Copy Option Class
14
m
Value
3
7 (bit)
Option Number
Type of Service
Interpretazione originale
0
3
Precedence
D
4
5
T
6
R
Unused
Interpretazione DiffServ
0
6
Codepoint
15
Unused
Campi modificabili in transito
TTL
Header Checksum
Flags (nel caso di frammentazione)
Fragment Offset (nel caso di frammentazione)
Options
HLEN - Total Length – Pad
16
Ad esempio nel caso di opzione "record route“
Se la lunghezza del pacchetto, causa Options, è cambiata
Frammentazione
Tecnologie di rete di livello 1-2
Definiscono normalmente un pacchetto massimo trasportabile
(Maximum Trasport Unit)
Solitamente non supportano la frammentazione
Ethernet v.2.0: 1500 bytes
Ethernet non prevede campi per questo scopo
Frammentazione
Può essere necessaria quando un pacchetto deve venire inoltrato
su una rete con MTU inferiore
Length
1500
IP
Header
MTU = 1500
17
Max Data
IP
600
Header
MTU = 620
Frammentazione: esempio
Data - 1480 ottetti
Datagram
Header
600 ottetti
600 ottetti
280 ottetti
Identification = 777
Offset = 0
Flag = 0
MTU=620
Header
600 ottetti
Identification = 777
Offset = 0
MF Flag = 1
18
Header
600 ottetti
Identification = 777
Offset = 75 [600/8]
MF Flag = 1
Header
280 ottetti
Identification = 777
Offset = 150 [1200/8]
MF Flag = 0
Frammentazione: problematiche
In generale sconsigliata
Maggiore overhead di trasmissione
La perdita di un frammento invalida tutto il pacchetto
Maggior numero di bytes per gli headers
Impegna risorse (timer, buffer) nell’host ricevente
Possibili attacchi di tipo denial of service
19
Invio di molti frammenti “singoli”: il TCP/IP alloca risorse
aspettando l’arrivo deli frammenti rimanenti
Soluzioni
Esistono metodi per determinare la MTU più piccola esistente sul
percorso
Ormai quasi tutti supportano MTU pari a 1500 bytes
Funzionalità tolta in IPv6
Chi si occupa del riassemblaggio?
Next hop router ?
Il pacchetto può percorrere
delle reti che supportano
MTU più grandi
20
Banda (headers)
CPU (numero di pacchetti
inoltrati)
Si evita la perdita di singoli
frammenti
Singoli frammenti persi
invalidano comunque tutto
il pacchetto
Complessità ai bordi
La frammentazione non
sarebbe più necessaria
Minore overhead:
? o host destinazione
Non
è
necessario
complicare i router per
fargli
gestire
il
riassemblaggio
È semplice gestire il fatto
per cui pacchetti diversi
fanno percorsi diversi
Riassemblaggio
TCP/IP:
deframmentazione
riservata
destinatario del pacchetto (end node)
alla ricezione del primo
frammento l’end node fa
partire un reassembly timer
memorizza tutti i frammenti
in un buffer
t
se allo scadere del timer
il pacchetto non è completo
segnala un errore
21
al
nodo
IP: Internet Protocol
È il livello Network di TCP/IP
Offre un servizio non connesso
Semplice protocollo di tipo Datagram
Un protocollo datato ...
... ma non obsoleto
Oggi: IPv4
Domani: IPv6
22
Scarica

Internet Protocol Versione 4: aspetti generali