1
Franco Callegati IC3N 2000 N. 1
Internet Protocol RFC 791
Franco Callegati
Franco Callegati IC3N 2000 N. 2
La famiglia dei protocolli TCP/IPLa famiglia dei protocolli TCP/IP
Applicazioni
e-mail,ftp,telnet,www…
TCP UDP
IPICMPARP
RARP
IEEE 802-Ethernet-X25-Aloha ecc.
Collegamento fisico
2
Franco Callegati IC3N 2000 N. 3
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 svolge le funzioni di controllo della connessione end-to-end
• strato di applicazione contiene applicativi utilizzati per fornire servizi all’utente
Franco Callegati IC3N 2000 N. 4
RFC
• Nessun organismo di standardizzazione internazionale ha definito i protocolli, ma questi sono frutto del lavoro di enti di ricerca
• I vari protocolli sono definiti in documenti detti Request For Comment (RFC)
• RFC sono documenti relativi a questioni inerenti all’Internet
• RFC sono documenti di pubblico dominio, distribuiti liberamente a chiunque li richieda
3
Franco Callegati IC3N 2000 N. 5
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 e riassembla i datagrammi quando necessario
• 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..
Franco Callegati IC3N 2000 N. 6
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.
4
Franco Callegati IC3N 2000 N. 7
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..
Franco Callegati IC3N 2000 N. 8
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 (rappresentazione dotted decimal)
137.204.212.1 -> 10001001.11001100.11010100.00000001
• Numero teorico max. di indirizzi 232 = 2.147.483.000, in realtà è inferiore,come si vedrà nel seguito
• Per mezzo di una opportuna codifica dei bit più significativi, indirizzi IP suddivisi in classi
5
Franco Callegati IC3N 2000 N. 9
Classi di indirizzo
• Network ID : identifica la sottorete• Host ID : identifica i singoli calcolatori della
sottorete
Network IDNetwork ID Host Host IDID
Classe AClasse A
Classe BClasse B
Classe CClasse C
Classe D (Classe D (multicastmulticast))
Classe E (sperimentale)Classe E (sperimentale)
0
0
0
0
1
1
1
1 1 1
1 1 1 1
Franco Callegati IC3N 2000 N. 10
Classi di indirizzo (2)Classi di indirizzo (2)ClasseClasse
A
B
C
126
16.348
2.097.152
16.777.124
65.534
254
Max # retiMax # reti Max # Max # hosthost
ClasseClasse
A
B
C
D
E
Spazio degli indirizziSpazio degli indirizzi
1.0.0.0 - 126.0.0.0
128.1.0.0 - 191.254.0.0
192.0.1.0 - 223.255.255.0
224.0.0.0 - 239.255.255.255
240.0.0.0 - 254.255.255.255
6
Franco Callegati IC3N 2000 N. 11
Classi di indirizzo (3)Classi di indirizzo (3)
• Per convenzione gli indirizzi composti di tutti 0 o tutti 1 sono riservati per scopi particolari, e non sono quindi considerati come “utilizzabili”
• Per convenzione 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
Franco Callegati IC3N 2000 N. 12
Indirizzi: connessioni di rete
• Indirizzi IP identifica sia la rete sia l’host• L’indirizzo è riferito ad una delle interfacce di rete
dell’host• L’indirizzo 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
7
Franco Callegati IC3N 2000 N. 13
SubnettingIndirizzo di host frammentato in due sottoparti:• la prima identifica una porzione della rete in questione• la seconda identifica i singoli host della sottorete
Network IDNetwork ID SubnetworkSubnetwork IDID HostHost IDID
Netmask
11111111 11111111 11111111 00000000
Netmask notazione dotted decimal
255.255.255.0
Franco Callegati IC3N 2000 N. 14
Subnetting
• Il subnetting è un operazione locale alla rete, non esistono specifiche sulla ripartizione dell’indirizzo in subnet-id e host-id
• La modalità di ripartizione è comunicata agli hosts tramite la netmask, che definisce la lunghezza del subnet-id
• La netmask è composta da 32 bit di indirizzo :- i bit ad 1 vanno interpretati come network e
subnetwork-id- i bit a 0 vanno interpretati come host-id
8
Franco Callegati IC3N 2000 N. 15
Subnetting : ripartizione logica e fisicaOperazione di subnetting in rete IP è solamente logica :• host di diverse subnet possono essere sulla medesima
rete fisica (LAN)• host della medesima subnet possono essere su diverse
reti fisiche (LAN)
Host localizzati sulla medesima LAN ma appartenenti a subnet diverse non possono comunicare direttamente
Franco Callegati IC3N 2000 N. 16
Subnetting: ripartizione logica e fisicaRete 137.204
Sottorete 137.204.59.0Netmask 255.255.255.0
Sottorete 137.204.57.0Netmask 255.255.255.0
9
Franco Callegati IC3N 2000 N. 17
Subnetting: restrizioni
• Maschera di subnet unica all’interno di una rete• Non si possono avere sottoreti con maschere
diverse all’interno della stessa rete• Le sottoreti di una rete devono essere “contigue”
ossia raggiungibili rimanendo all’interno della rete a cui appartengono, senza dover attraversare altre reti IP
Queste restrizioni sono legate alla modalità di gestione dell’instradamento nei router, in realtà esistono strumenti che permettono di oltrepassare queste limitazioni.
Franco Callegati IC3N 2000 N. 18
Indirizzi di rete e broadcast
• Il numero IP con host-id = 0 identifica l’intera rete• E’ possibile mandare un datagramma in modalità
broadcast con le seguenti regole:- host-id con tutti 1
- il datagramma viene inviato a tutti gli host della rete o della sottorete
- host-id e subnet-id con tutti 1- datagramma inviato a tutti gli host della rete
10
Franco Callegati IC3N 2000 N. 19
Formato del pacchetto IP
Dati di utente
Options Padding
Destination Address
Source Address
Fragment Offset
Protocol Header ChecksumTime to live
Identification
Total LenghtType of ServiceVersion IHL
Flags
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte1 byte
Franco Callegati IC3N 2000 N. 20
Formato del pacchetto IP (2)
• Version : indica il formato dell’intestazione, attualmente la versione in uso è la 4
• IHL : lunghezza dell’intestazione, espressa in parole di 32 bit; lunghezza minima = 5
• Type of service : indicazione sul tipo di servizio richiesto, usato anche come sorta di priorità
• Total length : lunghezza totale del datagramma, misurata in bytes; lunghezza masima = 65535 bytes, ma non è detto che tutte le implementazioni siano in grado di gestire questa dimensione
11
Franco Callegati IC3N 2000 N. 21
Formato del pacchetto IP (3)
• Identification : valore integer che identifica univocamente il datagramma; si usa per risalire a quale datagramma appartengono i fragments
• Flag : bit 0 -> sempre a 0bit 1 -> DF = 0 si può frammentare
DF = 1 non si può frammentarebit 2 -> MF = 0 ultimo frammento
MF = 1 frammento intermedio• Fragment offset: indica quale è la posizione di
questo frammento nel datagramma, come distanza in unità di 64 bit dall’inizio
Franco Callegati IC3N 2000 N. 22
Formato del pacchetto IP (4)
• Time to live : tempo massimo di permanenza del datagramma nella rete, decrementato da ogni nodo che attraversa; il datagramma verrà distrutto dal primo nodo che trova questo campo = 0
• Protocol : indica a quale protocollo di livello superiore appartengono i dati del datagramma
• Header checksum : controllo di errore della sola intestazione, viene ricalcolato da ogni nodo attraversatodal datagramma
• Source (Destination) Address : indirizzo sorgente (destinazione)
12
Franco Callegati IC3N 2000 N. 23
Formato del pacchetto IP (4)
• Options : contiene opzioni relative al trasferimento del datagramma (registrazione del percorso, meccanismi di sicurezza), è perciò di lunghezza variabile
• Padding : bit privi di significato aggiunti per fare in modo che l’intestazione sia con certezza multipla di 32 bit
Franco Callegati IC3N 2000 N. 24
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
13
Franco Callegati IC3N 2000 N. 25
Nomi e indirizzi, il Domain Name System
• Domain Name Server (DNS) associa ad ognihost un nome simbolico tale che:– esista una corrispondenza biunivoca tra nomi e
indirizzi IP• I nomi sono composti da stringhe di caratteri
separati da punti: – le stringhe sono abbreviazioni convenzionali che
indicano luogo fisico o ente di appartenenza dell’host– il numero di stringhe è virtualmente illimitato, al
contrario del numero IP
Franco Callegati IC3N 2000 N. 26
Domini
• Internet è partizionata in aree logiche dette domini,
• I singoli domini possono a loro volta essere suddivisi in sottodomini
• Non esiste limite al numero di ripartizioni di un dominio o sottodominio
• La struttura dei nomi segue questa organizzazione gerarchica a partire da destra, dove si trova la stringa di maggior valore (dominio primario)
14
Franco Callegati IC3N 2000 N. 27
Domini primariDomini primari
edu istituzioni scolastiche o di ricerca USAgov istituzioni governative USAcom organizzazioni commerciali USAmil gruppi militari USAorg altre organizzazioni USAnet centri di supporto alla retecountry code sigle standard per identificare le
nazioni (ISO 3166)
Franco Callegati IC3N 2000 N. 28
Gerarchia dei domini
Radice
edu com net it ukDOMINI DI PRIMO LIVELLO
stet unibo DOMINI DI SECONDO LIVELLO
dmdeis DOMINI DI TERZO LIVELLO
NOME HOST
deis10
deis10.deis.unibo.it
deis250
15
Franco Callegati IC3N 2000 N. 29
Come avere un numero dato il nome
• Il protocollo IP per funzionare correttamente deve conoscere l’indirizzo IP degli host, non il nome
• Negli host sono implementati metodi automatici per tradurre nomi in numeri
• Name resolver– è il programma negli host che si preoccupa di questa
traduzione, dialogando con il• Name server
– è un programma specializzato per la risoluzione di nomi appartenenti ad altri domini
Franco Callegati IC3N 2000 N. 30
Name Server: funzionamento
Utente NameResolver
Cache
Domain NameServerLocale
Base Dati
Domain NameServer
RemotoBase Dati
16
Franco Callegati IC3N 2000 N. 31
DNS - Caching
• Tutti i DNS servers utilizzano memoria cache per ridurre il traffico DNS sulla rete
• In Unix la cache è mantenuta nel server ma non nel resolver, affinchè i dati sopravvivano alle singole sessioni
• Di default il resolver cerca un name server sull’host locale (porta UDP 53 o TCP 53)
• Di default DNS usa UDP:– ma se la risposta supera 512 bytes, viene troncata e
si esegue una ulteriore interrogazione tramite TCP, che supporta la frammentazione
Franco Callegati IC3N 2000 N. 32
IP: instradamento dei datagrammi• Routing : scelta del percorso su cui inviare i dati• Direct delivery : host sorgente e destinatario sulla
stessa rete fisica; sorgente incapsula il datagram in un frame, associa indirizzo IP ad indirizzo fisico e spedisce direttamente al destinatario
• Indirect delivery : host sorgente e destinatario non sulla stessa rete, quindi il sorgente invia ad un router i pacchetti da consegnare
• I router formano struttura interconnessa e cooperante: i datagram passano dall’uno all’altro finché raggiungono quello che può consegnarli direttamente
17
Franco Callegati IC3N 2000 N. 33
Tabella di instradamento
• Ciascun host ha una sua tabella di instradamento
• La tabella associa all’indirizzo di un host o di una rete di destinazione un “gateway” attraverso il quale raggiungere tale destinazione
• Le destinazioni contenute nella tabella sono solamente quelle di interesse per quell’host, non tutte le possibili
• Si aggiunge una indicazione di default alla quale inviare tutti i datagrammi indirizzati a destinazioni non esplicitamente presenti in tabella
Franco Callegati IC3N 2000 N. 34
Esempio
Controller Network Indirizzo Altre retiil0 128.6.7 128.6.7.26 128.6.6pe0 128.6.4 128.6.4.61 none
Host connesso a due reti e tabella di instradamento :
Destination Gateway Flags Interface 127.0.0.1 127.0.0.1 UH lo0 128.6.5.3 128.6.7.1 UHGD il0 128.6.4.0 128.6.4.61 U pe0 128.6.6.0 128.6.7.26 U il0 128.6.7.0 128.6.7.26 U il0 128.6.2 128.6.7.1 UG il0 128.121 128.6.4.27 UG pe0 default 128.6.4.27 UG pe0
18
Franco Callegati IC3N 2000 N. 35
IP Routing AlgorithmDatagram IP pronto per essere inviato
Estrai D ed N dal datagram
N indirizzo di rete a cui S è direttam coll.
TR contiene un percorso per D
TR contiene un percorso per N
TR contiene un percorso di default
Invia datagramma direttamente in rete
Invia datagramma al gateway indicato in TR
Invia datagramma al gateway indicato in TR
Trasmissione completata
Trasmissione completata
Trasmissione completata
ERRORE
TR:tabella di instradamento D:indirizzo IP destinaz.S:indirizzo IP sorgente N:ind. rete di host destinazione
Franco Callegati IC3N 2000 N. 36
Relazione Indirizzi Fisici – Indirizzi IP
• Indirizzi IP usati per scambiare dati in rete Internet
• Hosts comunicano solo se conoscono reciprocamente indirizzi fisici di reteComeCome hostshosts ee routersrouters realizzano tale relazione realizzano tale relazione per inviare pacchetti su di una rete fisica ?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 vuole mandare dati a B, di cui conosce solo indirizzo IP, su stessa rete: come si ricava l’indirizzo fisico di B dal suo indirizzo IP ?
19
Franco Callegati IC3N 2000 N. 37
Problema della risoluzione dell’indirizzo
• Address mapping deve essere fatto step by step lungo il percorso sorgente-destinazione
• Primo caso: ultimo step e consegna all’hostdestinatario; ricavare indirizzo fisico del destinatario
• Secondo caso: step intermedio; ricavare indirizzo fisico del router intermedio a cui consegnare il pacchetto
Per evitare di mantenere tabelle diPer evitare di mantenere tabelle di mappingmappingoccorre usare un protocollo di basso livello occorre usare un protocollo di basso livello per risolvere dinamicamente gli indirizziper risolvere dinamicamente gli indirizzi
Franco Callegati IC3N 2000 N. 38
Address Resolution Protocol - ARP
• Un host deve incapsulare il datagramma IP in un pacchetto MAC e quindi inviarlo all’hostdestinazione
• Per fare ciò è necessario conoscere l’indirizzo MAC, ossia l’indirizzo della scheda di retedell’host destinatario
SeSe hosthost sorgente conosce solamente indirizzo IP sorgente conosce solamente indirizzo IP del destinatario,come fa ad associarlo ad del destinatario,come fa ad associarlo ad indirizzo MAC, necessario per raggiungere la indirizzo MAC, necessario per raggiungere la destinazione sulla rete locale ? destinazione sulla rete locale ?
Esiste un protocollo opportuno: ARPEsiste un protocollo opportuno: ARP
20
Franco Callegati IC3N 2000 N. 39
Address Resolution Protocol - ARP (2)
• Nodo sorgente invia pacchetto MAC broadcast, contenente indirizzo IP del nodo destinazione
• Tutte le stazioni della rete locale leggono il pacchetto broadcast
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARPARP requestrequest per IP = 137.204.57.10per IP = 137.204.57.10
Franco Callegati IC3N 2000 N. 40
Address Resolution Protocol - ARP (3)
• ARP locale risponde al remoto, inviando un messaggio che contiene indirizzo MAC dell’host destinazione
• Con questo messaggio host sorgente è in grado di associare appropriato indirizzo MAC all’IP destinazione
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP replay contenente indirizzo IPARP replay contenente indirizzo IP
21
Franco Callegati IC3N 2000 N. 41
Address Resolution Cache - ARP (4)
• E’ molto costoso inviare ad ogni trasmissione dati un pacchetto di broadcast per capire come raggiungere la destinazione
• Per ridurre i costi, hosts mantengono una cache delle più recenti relazioni indirizzo IP-indirizzo fisico, che consultano prima di trasmettere i dati
• Se A vuole comunicare con B, probabile che nell’immediato anche B comunicherà con A, perciò A mette nel suo ARP request pure il proprio legame indirizzo IP-indirizzo fisico
• Dato che un pacchetto broadcast,tutti gli hostslocali memorizzano tali dati in cache
Franco Callegati IC3N 2000 N. 42
Address Resolution Cache - ARP (5)• Durata normale di validità dei dati nella cache è
di 20 minuti dalla creazione delle entry• Contenuto della cache può essere visualizzato
tramite il comando arp -a• Se interfaccia di rete cambia, occorre informare
gli altri hosts del nuovo indirizzo fisico tramite pacchetto di ARP broadcast al bootstrap
• ARP considerato parte del livello fisico della rete e NON dei protocolli di internet
ARP consente di assegnare arbitrariamente indirizzi IP ARP consente di assegnare arbitrariamente indirizzi IP senza tener conto della implementazione della retesenza tener conto della implementazione della rete
22
Franco Callegati IC3N 2000 N. 43
Implementazione - ARP (6)ARP diviso in due parti:
• La prima associa indirizzi IP-fisici quando si invia un pacchetto
• La seconda risponde alle altre macchineComplicazioni:
• host destinatario spento o troppo carico per rispondere• Best Effort Delivery System
Conseguenze:• sorgente non può ricevere,neanche la replica ritardata• host deve memorizzare i pacchetti arrivati dai livelli
superiori in attesa di conoscere l’indirizzo fisico
Franco Callegati IC3N 2000 N. 44
Reverse Address Resolution Protocol RARP
• Il Reverse Address Resolution ProtocolReverse Address Resolution Protocol ha la ha la funzione duale a quella dell’ARP e permette di funzione duale a quella dell’ARP e permette di ottenere indirizzo IP di unottenere indirizzo IP di un hosthost di cui si conosce di cui si conosce solamente indirizzo MACsolamente indirizzo MAC
23
Franco Callegati IC3N 2000 N. 45
Proxy-ARP
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARPARP requestrequest per IP = 137.204.57.250per IP = 137.204.57.250
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
Franco Callegati IC3N 2000 N. 46
Proxy-ARP (2)
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
ARP replayARP replay con indirizzo MAC di 137.204.57.34con indirizzo MAC di 137.204.57.34
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
24
Franco Callegati IC3N 2000 N. 47
Proxy-ARP (3)
137.204.57.95137.204.57.95
137.204.57.34137.204.57.34137.204.57.10137.204.57.10137.204.57.100137.204.57.100
137.204.57.210137.204.57.210
Pacchetto IP perPacchetto IP per 137.204.57.250 con indirizzo MAC di 137.204.57.34137.204.57.250 con indirizzo MAC di 137.204.57.34
137.204.57.250137.204.57.250137.204.57.222137.204.57.222137.204.57.220137.204.57.220
Top Related