Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
USER DATAGRAM PROTOCOL (UDP)
UDP
A differenza del protocollo TCP, il protocollo è un servizio di consegna a massimo sforzo (i
segmenti UDP possono essere perduti o consegnati fuori sequenza), senza connessione (niente
handshaking) e senza affidabilità (che però può essere aggiunta al livello applicativo); per cui è
meno complesso del TCP, in quanto offre meno servizi (trasferimento non bufferizzato, nessun
controllo di flusso, nessun controllo della congestione, niente timing), ma è più indicato in contesti
dove occorra un completo controllo della temporizzazione (applicazioni time-sensitive come la
trasmissione di dati multimediali).
– 8 byte di intestazione.
– la prima parte è uno pseudo-header (non viene trasmesso).
Porta:
– numeri di porta della comunicazione (per il demultiplexing è usato solo quello di
destinazione).
Checksum:
– è il checksum (opzionale) dell’intero pacchetto (compreso lo pseudo-header).
Ogni datagramma è autonomo ed è facile e leggero da gestire (non richiede particolari
meccanismi).
Dobbiamo ricorda che il TCP offre un servizio di trasporto a stream, quindi si può leggere da un
input di rete quanti bytes si desiderano; invece, l’UDP offre un servizio a messaggi (occorre quindi
leggere tutto il messaggio in arrivo) ed è adeguato per:
– processi che richiedono uno scambio di dati con volume limitato con scarso interesse al
controllo di flusso e degli errori.
– processi che hanno meccanismi interni di controllo di flusso e degli errori.
– trasmissioni multicast.
– applicazioni interattive in tempo reale che non tollerano ritardi variabili.
LO STRATO DI RETE
Lo strato di rete realizza una connessione logica fra host system diversi (interconnessione di reti
eterogenee), offre servizi allo strato di trasporto ed utilizza i servizi dello strato data link: l’entità a
livello di rete riceve i segmenti dal livello di trasporto nell’host mittente, e incapsula i segmenti in
datagrammi; sul lato destinatario, consegna i segmenti al livello di trasporto (demultiplexing TCP o
UDP).
INTERNET PROTOCOL (IP)
L’IP è un protocollo di tipo connection-less (non c’è circuito virtuale né fisico fra i due sistemi
terminali a livello IP), è non affidabile (non prevede meccanismi di recupero di errore) e non
prevede garanzie sulla qualità del servizio (QoS), sul tempo di consegna dei datagrammi e sul
controllo di flusso: è di tipo “Best Effort”.
Versione
– (4 bit): specifica la versione di IP usata (attualmente IPv4 o IPv6).
Hlen
– (lunghezza dell'header, 4 bit): lunghezza dell'intestazione espressa in parole da 32 bit.
Tipo di servizio
– (8 bit): serve per “colorare” il datagramma IP (basso ritardo, affidabilità,
ecc...).
Lunghezza del datagramma
– (16 bit): è la lunghezza di tutto il datagramma in byte, header
incluso.
Identificatore, Flag, Offset:
– sono campi per la frammentazione (li vedremo più avanti).
Tempo di vita
– (8 bit): ad ogni passaggio da un router viene decrementato, quando
raggiunge lo zero, il datagramma viene scartato (assicura che eventuali percorsi ad anello
non provochino traffico perpetuo nella rete).
Protocollo
– (8 bit): in ricezione all’host destinatario, indica quale protocollo dello strato
superiore deve ricevere i dati.
Checksum dell'header
– (16 bit): viene calcolato il checksum della sola intestazione
(ponendo questo campo pari a zero) ad ogni router; se si ottiene un errore si scarta il
datagramma.
Indirizzi sorgente e destinazione
– (32 bit): indirizzi IP del mittente e del destinatario.
Opzioni
– (lunghezza variabile, multiplo di 32 bit): campo usato molto raramente, era stato
inserito per fornire una espandibilità che, nella pratica, non è mai stata sfruttata appieno,
quindi, per questa ed altre ragioni, tale campo è stato eliminato da IPv6.
Dati:
– dati trasportati dal datagramma IP.
Dobbiamo precisare che la MTU (quantità massima di dati trasportata dal protocollo di
collegamento) pone un limite alla lunghezza dei datagrammi IP; per questo, il protocollo IP
meccanismo di frammentazione:
prevede un se il router riceve un datagramma la cui dimensione
supera l’MTU della rete verso cui deve inoltrare quel datagramma, lo frammenta in due o più
datagrammi più piccoli, detti frammenti; ciascun frammento è a sua volta una datagramma IP
completo che viene trasmesso attraverso una serie di reti fisiche indipendentemente dagli altri
frammenti e se qualcuno di essi non arriva a destinazione, allora si butta via tutto il datagramma.
Il riassemblaggio viene effettuato dall'entità rete nei sistemi terminali: per effettuarlo, si usano i
campi identificazione, flag e offset del datagramma:
Identificatore
– (16 bit): associato a IP sorgente e IP destinazione, identifica quel
datagramma in un intervallo di tempo ragionevolmente lungo, durante il quale i frammenti
di quel datagramma mantengono il valore di questo campo, così che il destinatario
riconosca i frammenti che vanno assemblati insieme.
Offset
– (13 bit): indica la posizione del frammento come multiplo di 8 byte e serve, quindi,
ad ordinare i frammenti nell’assemblaggio (i frammenti devono essere multipli di 8 byte ed
il primo frammento ha offset=0).
Flag
– (3 bit) serve ad identificare l’ultimo frammento:
il primo di questi bit è riservato (vale sempre 0).
o il secondo vale 0 se il pacchetto può essere frammentato, altrimenti vale 1.
o il terzo vale 0 se il pacchetto è l'ultimo del frammento, altrimenti vale 1.
o
Il processo di frammentazione può anche essere ripetuto, ad esempio, se un frammento deve
essere inoltrato su un collegamento con MTU ancora più piccolo (IPv6 non usa la
frammentazione).
Tra le funzioni del protocollo IP abbiamo l’indirizzamento, il forwarding (inoltro) ed il routing
(instradamento); vediamoli nel dettaglio.
Indirizzamento IP: ogni host è connesso ad Internet attraverso un'interfaccia di rete, ad ognuna
delle quali è assegnato un indirizzo IP, che è costituito da 32 bit (4 byte), rappresentati in
Network ID Host ID
notazione decimale puntata. Esso è diviso in due parti: + , che identificano una
rete IP su Internet e l’host su quella rete IP; ed anche due sono le strategie possibili per
l’indirizzamento:
Classful addressing:
– era la strategia utilizzata inizialmente, la quale prevede 5 classi di
indirizzi IP:
Classe A: (0.0.0.0 - 127.255.255.255)
o Classe B: (128.0.0.0 - 191.255.255.255)
o Classe C: (192.0.0.0 - 223.255.255.255)
o Classe D: riservata a multicasting (224.0.0.0 - 239.255.255.255)
o Classe E: riservata per usi futuri (240.0.0.0 – 255.255.255)
o
Classless addressing
– (CIDR): la subnetmask (maschera di sottorete)
distingue quale parte di un indirizzo IP
identifica la rete e quale l'host
Esempio: indirizzo IP 150.217.8.42 la rete “sarebbe” di classe B, ma su host telemat e'
definita la netmask 255.255.255.0 per cui la rete o subnet effettiva ha indirizzo
150.217.8.0/24 NB: per determinare l'indirizzo di
rete il calcolatore deve effettuare
un AND.
Da quanto detto gli indirizzi: 150.193.4.1/22 150.193.8.18/22 150.193.11.3/22
appartengono alla stessa sottorete o subnet? l'uomo, per verificare se i tre indirizzi IP appartengono
alla stessa sottorete confronta i 22 bit più a sinistra
delle tre diverse sequenze:
10010110 11000001 00000100 00000001
10010110 11000001 00001000 00010010
10010110 11000001 00001011 00000011
e verifica così che il primo indirizzo non è sulla stessa
sottorete degli altri due
Esistono, infine, degli indirizzi speciali:
This-host 0.0.0.0:
– usato quando un host ha necessità di inviare un datagramma ma non
conosce il proprio indirizzo IP (indirizzo sorgente).
Limited-broadcast 255.255.255.255:
– usato quando un router o un host devono inviare un
datagramma a tutti i dispositivi che si trovano all’interno della rete (i router bloccano,
quindi, la propagazione alla sola rete locale).
Loopback 127.0.0.1:
– il datagramma con questo indirizzo di destinazione non lascia l’host
locale (è usato per test e debug).
Indirizzi privati:
– quattro blocchi riservati per indirizzi privati (10.0.0.0/8, 172.16.0.0/12,
192.168.0.0/16, 169.254.0.0/16).
Indirizzi multicast:
– blocco 224.0.0.0/4
Un indirizzo IP viene poi assegnato all'interfaccia di un host secondo due distinte modalità:
Configurazione manuale:
– l'amministratore configura direttamente nell'host l'indirizzo IP ed
inserisce ulteriori informazioni di servizio (indirizzo gateway, netmask).
DHCP:
– l'host ottiene il proprio indirizzo e le altre informazioni in modo automatico.
Forwarding IP: ogni datagramma IP è soggetto a “forwarding” da parte dell'host di origine e del
router che sta attraversando; tale inoltro può essere di due tipi:
Inoltro diretto:
– il pacchetto IP ha come destinazione un host nella propria rete (o subnet)
IP e l'indirizzo di destinazione a livello link è quello del destinatario (MAC address); l'invio è
diretto sul destinatario, ovvero non viene interpellata nessun'altra entità:
l’entità IP di B deve spedire un pacchetto all’indirizzo IP-A B conosce l’indirizzo IP-B della
propria interfaccia e dal confronto con IP-A capisce che A si trova nella stessa rete B
consulta una tabella di corrispondenza tra indirizzi IP e indirizzi della rete (MAC nel caso di
rete locale) per reperire l’indirizzo MAC-A l’entità IP di B passa il pacchetto al livello
inferiore che crea un pacchetto con destinazione MAC-A
Inoltro indiretto:
– il pacchetto IP ha come destinazione un host di un'altra rete (o subnet) IP,
router
per cui l’invio viene delegato ad “un altro” che sarebbe il e l'indirizzo di destinazione
a livello link è quello del router, il quale legge gli indirizzi IP, consulta la propria tabella di
routing e decide dove mandare il pacchetto IP:
l’entità IP di B deve spedire un pacchetto all’indirizzo IP-D B conosce l’indirizzo IP-B della
propria interfaccia e dal confronto con IP-D capisce che D non si trova nella stessa rete B
deve dunque inoltrare il pacchetto ad un router B recupera l’indirizzo MAC del router
nella tabella di corrispondenza e passa il pacchetto al livello inferiore il pacchetto vi