Il protocollo IP
Internet Protocol RFC 791
N. 1
La famiglia dei protocolli TCP/IP
Applicazioni
Application
Transport
Network
Strati superiori
e-mail,ftp,telnet,www…
TCP
ICMP
UDP
IP
Strato 4
ARP
Strato 3
Data Link
Non specificato (ad es.
IEEE 802-Ethernet-X25-Aloha ecc.)
Strato 2
Phisical
Non specificato
Collegamento fisico
Strato 1
© DEISnet
N. 2
1
La famiglia dei protocolli TCP/IP (2)
• Nessuna specifica per gli strati sotto IP, in
quanto relativi alla singola sottorete
• IP svolge funzioni di rete e instradamento dei
pacchetti
• TCP (o UDP) svolge le funzioni di trasporto e di
controllo della connessione end-to-end
• Lo strato di applicazione contiene applicativi
utilizzati per fornire servizi all’utente
© DEISnet
N. 3
Standard di Internet: Enti di gestione
• Non esistono veri e propri enti che svolgono la
funzione di gestione, ma solo enti di
coordinamento delle attività di ricerca e di
sviluppo che ora convergono nella Internet
Society
• Da questa ora dipende il cosiddetto Internet
Advisory Board (IAB) e si compone di due
sottogruppi principali
– Internet Engineering Task Force (IETF), con lo
scopo di coordinare le attività di ingegnerizzazione ed
implementazione
– Internet Research Task Force (IRTF), con lo scopo
di coordinare le attività di ricerca
© DEISnet
N. 4
2
RFC
• I protocolli sono frutto del lavoro di gruppi di
ricerca
• I vari protocolli sono definiti in documenti detti
Request For Comment (RFC)
• RFC sono documenti di pubblico dominio,
distribuiti liberamente a chiunque li richieda,
consultabili all’indirizzo
http://www.ietf.org/rfc.html
• Alcuni RFC diventano Internet Standard
– Prima Proposed Standards
– Poi Draft standards
© DEISnet
N. 5
Altri Enti importanti
• NSF ha fondato un ente chiamato InterNIC
(Network Information Center) allo scopo di
fornire alcuni servizi specifici relativi ad Internet:
– Registrazione di nuove reti e domini
– Manutenzione di indici e database degli enti
interconnessi
– Servizi di tipo informativo sulla rete
• IANA = Internet Assigned Number Authority
– Mantiene i database dei numeri che hanno significati
convenzionali nei protocolli di Internet
© DEISnet
N. 6
3
Internet Protocol (IP) - RFC 791
• Progettato per sistemi interconnessi a commutazione di
pacchetto
• Si prende carico della trasmissione di datagrammi da
sorgente a destinazione, identificati da indirizzi di
lunghezza fissa.
• Frammenta i datagrammi e li riassembla quando
necessario
– I frammenti di datagramma sono detti pacchetti
• E’ esplicitamente limitato per fornire le sole funzioni
necessarie alla consegna dei pacchetti
– non sono previsti meccanismi per aumentare l’affidabilità del
collegamento end-to-end,
– per il controllo di flusso e della sequenza..
© DEISnet
N. 7
Funzioni base dell’ IP
• Indirizzamento: tramite indirizzo IP, si stabilisce a
quale sottorete è connesso un host e su quale percorso
instradare i datagrammi
• Frammentazione e riassemblamento: ogni modulo
Internet ha la capacità di gestire datagrammi di almeno
68 byte e di riceverne di lunghezza almeno 576 byte,
anche in più frammenti
La funzione di instradamento all’interno delle
singole sottoreti non è di pertinenza dell’IP, ma dei
protocolli della sottorete stessa.
© DEISnet
N. 8
4
Funzioni base dell’ IP (2)
• Ogni datagramma viene trattato come entità a se
stante, scorrelata da qualunque altro
datagramma
• Siamo quindi in presenza di una rete di tipo
connectionless secondo la terminologia OSI
Come già visto parlando della commutazione a
datagramma e come anche enunciato nella
definizione precedente, l’IP non fornisce un servizio di
comunicazione affidabile..
© DEISnet
N. 9
Formato del pacchetto IP
1 byte
Version
1 byte
IHL
Type of
Service
Identification
Time to live
1 byte
1 byte
Total Lenght
Flags
Protocol
Fragment Offset
Header Checksum
Source Address
Destination Address
Options
Padding
Dati di utente
© DEISnet
N. 10
5
Formato del pacchetto IP (2)
• Version : indica la versione di IP usata per l’intestazione,
attualmente la versione in uso è la 4 (IPv4)
• IHL (IP Header Length): lunghezza dell’intestazione,
espressa in parole di 32 bit; lunghezza minima = 5
• Type of service : indicazione sul tipo di servizio richiesto
– Ha cambiato uso rispetto alle prime proposte
– Ora è usato per identificare una Classe di servizio secondo il
paradigma Differentiated Service
• Total length : lunghezza totale del datagramma,
misurata in bytes;
– lunghezza massima = 65535 bytes,
– non è detto che tutte le implementazioni siano in grado di gestire
questa dimensione
– In futuro le Gbit networks potrebbero richiedere più bytes
© DEISnet
N. 11
Formato del pacchetto IP (3)
• Identification : valore intero che identifica univocamente
il datagramma; si usa per risalire a quale datagramma
appartengono i fragments
• Flag
– bit 0 : non usato, sempre a 0
– bit 1 : DF = Dont Fragment
• DF = 1
• DF = 0
non si può frammentare
si può frammentare
– Bit 2 : MF = More Fragment
• MF = 1
• MF = 0
frammento intermedio (ce ne sono ancora)
ultimo frammento
• Fragment offset: indica quale è la distanza di questo
frammento dall’inizio del datagramma, misurata in blocchi
di 64 bit (8 byte), dimensione del frammento elementare
© DEISnet
N. 12
6
Formato del pacchetto IP (4)
• Time to live : tempo massimo di permanenza del
datagramma nella rete, decrementato
– ogni secondo
– ogni volta che si attraversa un nodo (implementazioni odierne)
– il datagramma verrà distrutto dal primo nodo che trova TTL = 0
• Protocol : indica a quale protocollo di livello superiore
appartengono i dati del datagramma
– tabella è conservata da IANA
• Per TCP Protocol = 6
• Per UDP Protocol = 17
• Header checksum : controllo di errore della sola
intestazione, viene ricalcolato da ogni nodo attraversato
dal datagramma
• Source (Destination) Address : indirizzo sorgente
(destinazione)
© DEISnet
N. 13
Formato del pacchetto IP (4)
• Options : campo di lunghezza variabile che
contiene opzioni relative al trasferimento del
datagramma quali
–
–
–
–
Meccanismi di sicurezza (non usato)
Registrazione del percorso
Registrazione dell’istante di passaggio
Source routing
• Padding : bit privi di significato aggiunti per fare
in modo che il campo Options sia con certezza
multiplo di 32 bit
© DEISnet
N. 14
7
Checksum
• L’algoritmo di checksum è definito come segue:
The checksum field is the 16 bit one'
s
complement of the one'
s complement sum
(exclusive OR) of all 16 bit words in the header.
For purposes of computing the checksum, the
value of the checksum field is zero.
• Prestazioni un poco inferiori al codice
polinomiale con polinomio di grado 16
• L’uso sperimentale ha dimostrato la sostanziale
efficacia di questo algoritmo.
© DEISnet
N. 15
Struttura degli indirizzi IP
• Indirizzi di lunghezza fissa pari a 32 bit
• Scritti convenzionalmente come sequenza di 4 numeri
decimali, con valori da 0 a 255 (8bit), separati da punto
(notazione dotted decimal)
137.204.212.1 -> 10001001.11001100.11010100.00000001
• Numero teorico max. di indirizzi 232 = 4.294.967.296
– in realtà si riesce a sfruttare un numero molto inferiore
• Per mezzo di una opportuna codifica dei bit più
significativi, indirizzi IP suddivisi in classi
© DEISnet
N. 16
8
Classi di indirizzo
Network ID
Host ID
0
Classe A
1 0
Classe B
1 1 0
Classe C
1 1 1 0
Classe D (multicast
(multicast))
1 1 1 1
Classe E (sperimentale)
• Network ID : identifica la rete (network)
• Host ID : identifica i singoli calcolatori della rete
© DEISnet
N. 17
Classi di indirizzo (2)
Classe
Classe
Max # reti
Max # host
A
126
16.777.124
B
16.348
65.534
C
2.097.152
254
Spazio degli indirizzi
A
1.0.0.0 - 126.0.0.0
B
128.1.0.0 - 191.254.0.0
C
192.0.1.0 - 223.255.254.0
D
224.0.0.0 - 239.255.255.255
E
240.0.0.0 - 254.255.255.255
© DEISnet
N. 18
9
Classi di indirizzo (3)
• Alcuni indirizzi no sono utilizzabili perché sono
riservati per scopi particolari, ad es.
– un numero IP di tutti 0 (0.0.0.0) significa “questo host”
(local host), per cui un pacchetto con tale indirizzo non
viene inviato in rete
– Un Net ID di tuuti 0 indica “questa rete”
– un Host ID di tutti 1 è l’indirizzo di broadcast per quella
rete
– Un Host ID di tutti 0 viene usato nelle tabelle di ruoting
per indicare la rete
– Il Net ID 127 indica in ogni computer la porta verso gli
strati superiori (loopback)
© DEISnet
N. 19
Indirizzi: connessioni di rete
• L’indirizzo è riferito ad una delle interfacce di rete
dell’host, pertanto non identifica un host individuale, ma
una interfaccia di rete
• Multi-homed hosts: computers con due o più
connessioni di rete
• Un router che collega N reti ha N distinti indirizzi IP, uno
per ogni interfaccia di rete
• Il routing in Internet è basato sulle Network: nelle tabelle
di routing ci sono gli indirizzi delle Network di
destinazione piuttosto che quelli degli Host
• L’attribuzione delle Reti IP agli enti che ne fanno
domanda è gestita dal NIC
© DEISnet
N. 20
10
Subnetting, Netmask
• Per motivi di flessibilità una Network IP può
essere spezzata in sottoreti (subnetwork)
• In tal caso l’indirizzo di host viene frammentato in
due sottoparti:
– la prima identifica la sottorete
– la seconda identifica i singoli host della sottorete
Network ID
Subnetwork ID
Host ID
10
Netmask
11111111 11111111 11111111 00000000
Netmask notazione dotted decimal : 255.255.255.0
© DEISnet
N. 21
CIDR = Classless InterDomain Routing
• Con il CIDR (RFC 1519) gli indirizzi possono
essere assegnati con qualunque suddivisione fra
Net ID e Host ID, senza badare alla classe
– Le tabelle di routing devono comprendere anche le
Netmask
• SUPERNETTING
– Con il CIDR è possibile anche raggruppare più reti con
indirizzi consecutivi (ad esempio 16 Network di classe
C) e indicarle nelle tabelle di routing con una sola
entry accompagnata dalla opportuna Netmask
(nell’esempio 255.255.240.0)
© DEISnet
N. 22
11
IP: instradamento dei datagrammi
• Nella terminologia di Internet si definisce
– Rete logica: la rete IP a cui un Host appartiene
– Rete fisica: la rete cui è effettivamente connesso (per
esempio una LAN)
• Direct delivery : host sorgente e destinatario
sulla stessa rete fisica; il sorgente associa
l’indirizzo IP ad indirizzo fisico e spedisce
direttamente al destinatario
• Indirect delivery : host sorgente e destinatario
non sulla stessa rete, quindi il sorgente invia i
pacchetti da consegnare ad un altro router
seguendo la Tabella di Instradamento
© DEISnet
N. 23
Relazione Indirizzi Fisici – Indirizzi IP
• Internet suppone che gli Host siano connessi
mediante una rete fisica (ad esempio una LAN) e
possano scambiarsi pacchetti conoscendo i
reciproci indirizzi fisici
Come hosts e routers realizzano tale relazione
per inviare pacchetti su di una rete fisica ?
• SW di basso livello nasconde gli indirizzi fisici e
consente ai livelli superiori di lavorare solo con
indirizzi IP
• Host A per mandare dati a B, di cui conosce solo
indirizzo IP, usa un protocollo detto Address
Resolution Protocol - ARP
© DEISnet
N. 24
12
Address Resolution Protocol - ARP
137.204.57.95
137.204.57.210
ARP request
137.204.57.100
per IP = 137.204.57.10
137.204.57.10
137.204.57.34
• Nodo sorgente invia un pacchetto broadcast
sulla LAN (“Who is”), contenente l’indirizzo IP del
nodo destinazione
• Tutte le stazioni della rete locale leggono il
pacchetto broadcast
© DEISnet
N. 25
Address Resolution Protocol - ARP (3)
137.204.57.95
137.204.57.210
ARP replay contenente indirizzo fisico
137.204.57.100
137.204.57.10
137.204.57.34
• L’Host di destinazione risponde (ARP Replay), inviando
un messaggio che contiene il proprio indirizzo fisico
• Con questo messaggio l’host sorgente è in grado di
associare l’appropriato indirizzo fisico all’IP destinazione
• Ogni host mantiene una tabella (ARP cache) con le
corrispondenze fra indirizzi logici e fisici
© DEISnet
N. 26
13
Nomi e indirizzi
• Per comodità degli utenti gli Host sono individuati
da Nomi organizzati in Domini
• I Domini sono organizzati in una gerarchia
(Domini di 1° livello, di 2° liv., ecc..)
• I nomi sono composti da stringhe di caratteri
separate da punti
– le stringhe individuano i Domini (a partire da quella più
a destra) e l’Host all’interno del dominio
– il numero livelli e quindi di stringhe è virtualmente
illimitato, al contrario del numero IP
© DEISnet
N. 27
Domain Name Server
• Esempio
deisnet.deis.unibo.it
–
–
–
–
it = Dominio di 1° livello associato all’Italia
unibo = dominio di 2° livello all’interno di it
deis = dominio di 3° livello all’interno di unibo
deisnet = particolare Host all’interno di deis
• Il Nome risultante deve essere unico in tutta la rete
– Servono delle Autorità per gestire dei Domini
– Per i domini di 1° livello l’autorità di registrazione à il NIC
• Domain Name Server (DNS) esegue la funzione di
Directory, associando ad ogni Nome di Host l’indirizzo di
rete a cui quel Host è attaccato
– I DNS sono organizzati in una gerarchia che segue quella dei
domini
© DEISnet
N. 28
14
Il Routing in Internet
N. 29
Aree di routing in Internet
• In Internet si usa il routing gerarchico e le aree di
routing sono dette Authonomous System (AS)
– Gli AS decidono autonomamente i protocolli e le
politiche di routing che intendono adottare
• I protocolli di routing all’interno di un AS sono
detti Interior Gateway Protocol (IGP)
• I protocolli di routing fra AS sono detti Exterior
Gateway Protocol (EGP) o Border Gateway
Protocol (BGP)
• Un AS può essere ulteriormente suddiviso in
Aree di routing (Routing Area)
© DEISnet
N. 30
15
Ruolo delle IP Network
• Ogni network IP è tutta contenuta in un AS e
Routing Area
• I router IP sono Multi-homed hosts con varie
interfacce di rete, ognuna delle quali ha un
proprio indirizzo IP su di una Network
• Per semplificare la gestione delle Tabelle di
routing, queste contengono le Network (o le
Subnetwork o le Supernetwork) di destinazione
piuttosto che gli Host
• All’interno della network l’Host viene raggiunto
con il protocollo ARP
© DEISnet
N. 31
Esempio di routing: un PC connesso ad una LAN
• Caso più semplice: un PC con una singola porta su una
rete Ethernet
• Deve conoscere innanzitutto
– Il proprio indirizzo fisico
– Il proprio indirizzo IP, appartenente ad una Network (o
Subnetwork) IP che supponiamo tutta contenuta nella LAN
– La Netmask
– L’indirizzo di un router che connette la LAN al resto di Internet: il
Default Gateway
• L’Host ha una tabella di routing in cui è indicato come
instradare un pacchetto
– Se il pacchetto è diretto ad un indirizzo della LAN viene
instradato direttamente con il protocollo ARP
– Se è diretto fuori viene inviato all’indirizzo del default gateway
che lo instraderà ulteriormente
© DEISnet
N. 32
16
Segue esempio
• Se la destinazione è specificata attraverso un
Nome occorre consultare il DNS
– Occorre conoscere anche l’indirizzo del DNS
– Il DNS può essere sulla stessa LAN (consegna diretta)
o essere raggiungibile attraverso il Gateway
• Un router ha una tabella di instradamento più
complicata perché in genere ha più porte di
uscita con cui raggiunge diversi altri router
– Per sapere a quale porta o router deve associare un
indirizzo di destinazione esegue i Protocolli di Routing
– Per gli indirizzi che non conosce può fare riferimento
ad un Default Gateway
© DEISnet
N. 33
Relazione fra reti IP e LAN
A
100.10.1.7
R
100.10.1.254
Rete 100.10.1.0
X
150.15.5.254
150.15.5.77
Rete 150.15.5.0
• Due reti IP sulla stessa LAN
– Ocorre un router che abbia una porta su ambedue le
LAN
– Il protocollo IP “non si accorge” che le due reti sono
sulla stessa LAN
– Si potrebbe intervenire manualmente sulla tabella di
routing ad es.dell’ Host A, suggerendogli la consegna
diretta dei pacchetti per la rete 150.15.5.0
© DEISnet
N. 34
17
Una singola rete IP su più segmenti LAN
A
I
X
• Interconnessione mediante Repeater o Bridge
– Il protocollo IP vede sotto di se un’unica LAN purché I
trasmetta i broadcast della LAN
• A per trasmettere a X può fare ARP e consegna diretta
• Il Bridge ha i seguenti vantaggi sul Repeater
– Ammette segmenti LAN di tipo diverso
– Separa i domini di collisione e di traffico
– In caso di rete complessa con vie alternative cerca gli
instradamenti con l’algoritmo spanning tree
© DEISnet
N. 35
Interconnessione mediante Routers
• Per sfruttarne i vantaggi occorre suddividere la
Network in Subnetworks
– I router instradano i pacchetti servendosi dei normali
protocolli di Internet
– Con una pianificazione ben fatta è possibile
ottimizzare il traffico sfruttando le vie alternative
• E la soluzione più flessibile e conveniente, anche
se più costosa e più difficile da gestire
© DEISnet
N. 36
18
Interior Gateway Protocol per Internet
• RIP:
RIP: Routing Information Protocol (RFC 1058)
– Protocollo distance vector, di implementazione vecchia (Giugno
1988), largamente usato agli inizi di Internet
• OSPF:
OSPF: Open Shortest Path First (RFC 1247)
– Protocollo di tipo link state
•
•
•
•
Invia in flooding pacchetti Link State Update
Questi vengono riscontrati con un Link State Ack
Un router può chiedere informazioni con Link State Request
Il pacchetto Database Description comunica a un altro router tutte le
informazioni Link State che un router possiede
– È il protocollo attualmente raccomandato
• All’interno degli IGP le subnetwork sono indirizzate come
reti
© DEISnet
N. 37
Protocolli fra Authonomous Systems
•
•
EGP utilizzato per comunicare la raggiungibilità delle reti IP fra
diversi AS
BGP più recente, inteso per rimpiazzare EGP, ora alla versione
BGP-4 (RFC 1771),
– protocollo Path Vector : i router notificano non solo la loro distanza ma
tutto il percorso completo verso una certa destinazione
•
Sulla base dell’indirizzo di destinazione i protocolli EGP/BGP
cercano di raggiungere l’AS che contiene quella particolare network
IP
– Un AS deve informare gli altri AS sulle network che contiene
annunciandole
– Ci deve essere una struttura di interconnessione di AS che prevede AS
di transito
•
•
Comunica utilizzando TCP, al fine di poter contare su di una
comunicazione affidabile
Nella sue decisioni sugli instradamenti tiene conto oltre che della
distanza anche delle politiche che ogni AS intende adottare
© DEISnet
N. 38
19
Debolezze dell’indirizzamento IP
• Indirizzi riferiti alla rete di appartenenza: se un host viene
spostato in un’altra rete, il suo indirizzo IP deve cambiare
• Limita la mobilità degli host:
– ad esempio i PC portatili devono essere riconfigurati ogni volta
che vengono connessi ad una rete diversa, non possono avere
indirizzo IP permanente perché questo identifica la rete
• Le dimensioni delle reti sono prefissate:
– il cambio di classe comporta fermare la rete e sostituire tutti gli
indirizzi
• Il numero di indirizzi possibili è troppo basso
– In seguito alla diffusione dei PC stiamo esaurendo gli idirizzi
© DEISnet
N. 39
Reti Private o Nascoste. Funzione NAT
• Per estendere la gamma di indirizzi utilizzabili si
possono usare indirizzi privati o nascosti
(hidden). Spazi riservati
– Tutta la rete 10 di Classe A
– 16 reti di classe B da 172.16.h.h a 172.31.h.h
– 256 reti di Classe C da 192.168.0.h a 192.168.255.h
• Per comunicare con il resto di Internet gli Host
sulla rete nascosta usano un server NAT
(Network Address Translation) (RFC 3022)
– Il NAT ha un indirizzo pubblico
– Su richiesta dei client si collega all’esterno aprendo
connessioni (tramite TCP) e ricorda a quale indirizzo
privato corrisponde ogni connessione
© DEISnet
N. 40
20
ICMP (RFC 791)
• Per alcune funzioni di gestione e monitoraggio
della rete IP è stato introdotto il Protocollo ICMP
(Internet Control Message Protocol)
• I messaggi ICMP sono trasportati come dati da
pacchetti IP
– Messaggi di errore, ad esempio
• Destinazione irraggiungibile
• Tempo di vita scaduto
– Messaggi di richiesta di informazioni, ad es.
• Echo e Echo replay
• Timestamp request
© DEISnet
N. 41
ICMP
• Sulla base di messaggi ICMP i sistemi operativi
offrono comandi di rete per ottenere informazioni
sullo stato della rete, ad es
– Ping
– Traceroute
• Le informazioni raccolte possono essere usate
da malintenzionati, pertanto molti router oggi
bloccano tutti i messaggi ICMP che arrivano loro.
© DEISnet
N. 42
21
IPv6
• Stanti i problemi dell’IPv4 attualmente in uso si è
lavorato su una nuova versione con i seguenti
obiettivi
–
–
–
–
–
–
–
Supportare molti miliardi di host
Semplificare il routing per avere backbone veloci
Offrire meccanismi di sicurezza
Offrire qualità di servizio (multimedialità)
Gestire bene multicast e broadcast
Consentire la mobilità
Fare tutto questo consentendo future evoluzioni e
garantendo compatibilità col passato
© DEISnet
N. 43
IPv6: principali caratteristiche
• Indirizzi più lunghi: 16 byte (4 righe o 128 bit)
• Semplificazione dell’intestazione obbligatoria
– Meno campi che nella v4
– Non permessa frammentazione
– Lunghezza minima comunque 10 righe
• Possibilità di diversi header opzionali
– Alcuni router, per esempio quelli di transito possono
ignorare le intestazioni che non li riguardano
• Meccanismi per la sicurezza e qualità di servizio
Non è ancora chiaro se e quando verrà veramente
adottato
© DEISnet
N. 44
22
Scarica

Il protocollo IP Internet Protocol RFC 791 La famiglia dei protocolli