Sunti di telematica - Prof. Augusto Ciuffoletti
Internet: una vista d'insieme
Telematica significa fare informatica a distanza. Internet è la rete che noi utilizziamo, strutturata in modo gerarchico: la sua struttura e le sue componenti sono andate aumentando nel tempo, in modo caotico, fino al punto in cui si è manifestato il bisogno di sviluppare un modo per riuscire a controllare tutto l'insieme. L'Internet si è quindi sviluppata secondo livelli di astrazione, ovvero rappresentazioni relativamente semplici di una realizzazione più complessa e "nascosta"; questi livelli di astrazione si sviluppano l'uno sopra l'altro e aggiungono via via nuove funzionalità; quando si parla di rete si deve sempre far riferimento a livelli di astrazione, poiché a seconda del livello a cui si fa riferimento, i processi e le funzionalità cambiano.
Dal punto di vista degli utenti, potremmo fare l'esempio della lettura di un quotidiano online e osservare la stratificazione dei livelli di astrazione partendo dal più superficiale:
- Browser che permette il collegamento al sito del giornale
- Scambio di messaggi (pacchetti) fra il dispositivo usato e il server della testata giornalistica; i messaggi vengono scambiati grazie a un protocollo chiamato HTTP
- Lina telefonica, abbonamento e modem che si collega alla centralina della compagnia telefonica fornitrice tramite un protocollo chiamato ADSL; il modem gestisce la comunicazione fra il dispositivo e il fornitore della rete
Tutto questo avviene nella "periferia" della rete, caratterizzata da un traffico relativamente moderato, mentre esiste un centro con un traffico più elevato; i dispositivi al centro della rete, fatto di collegamenti e centraline più potenti, sono controllati da imprese (fornitori o provider) che cedono servizi agli utenti.
La rete globale è suddivisa quindi in più reti locali (perché i fornitori sono molteplici), interconnesse tramite dispositivi detti router. Una rete periferica (quella che esce dal telefono di casa, per intenderci) è caratterizzata da una funzionalità punto a punto (peer to peer), ovvero con un'unica connessione modem-centralina. Invece, la connessione che raggiunge i dispositivi è servita da una rete locale che ammette più connessioni simultanee; i dispositivi collegati dalla rete si chiamano nodi. Al giorno d'oggi la situazione è diventata leggermente più complessa: al modem è associato un router, quindi i dispositivi sono connessi a una rete locale gestita dal router, il quale è collegato al modem che, attraverso la rete telefonica, lo mette in collegamento con uno switch nella rete del fornitore.
Gli switch sono collegati fra di loro tramite una sottorete, che solitamente ha un ambito territoriale (una centralina di un quartiere o una più grande regionale, ecc.). Su queste sottoreti si concentra il traffico proveniente dai nodi periferici e sono collegate fra di loro tramite una sottorete più grande detta backbone, nel quale il traffico sarà estremamente intenso, poiché ogni sottorete è collegata tramite uno switch alla stessa "spina dorsale" che è in grado di sopportare il traffico.
L'insieme delle sottoreti e del backbone viene chiamato sistema autonomo; esistono molti sistemi autonomi che comunicano fra loro tramite accordi commerciali, e che possono essere collegati fra loro in una rete con collegamenti punto a punto. Gli AS sono identificati con un numero da 16 bit (fra 0 e 65.500 circa), ma dato il grande sviluppo di Internet negli ultimi anni si sta pensando a una transizione a due numeri da 16 bit; ad esempio, Telecom Italia ha un sistema autonomo con numero 6762, mentre il GARR (sistema delle reti accademiche e di ricerca italiane) è il numero 137. Tramite il numero si possono individuare informazioni sul traffico in entrata e in uscita, il ranking mondiale, il tipo, ecc. Esistono sistemi autonomi detti stub, che sono più periferici e normalmente collegati a un solo altro sistema.
Introduzione a IP e al routing
Tramite il protocollo IP, i nodi di una rete comunicano scambiandosi pacchetti che contengono sequenze di ottetti (8 bit). Il pacchetto è un frammento di informazione autocontenuto, la lunghezza massima è di qualche KByte e dipende dalla tecnologia di rete usata. Comunicazioni complesse richiedono sequenze lunghe di pacchetti.
Deve esistere un metodo di indirizzamento dei nodi, il mittente deve indicare il destinatario verso cui è diretto: per questo i singoli nodi sono indicati con indirizzi IP, composti da 4 numeri di 8 bit, quindi in tutto 32 bit (è in corso la transizione a 8 numeri), rappresentate con il metodo dotted quad. Un esempio: 102.34.6.154. Spesso questi indirizzi vengono associati a indirizzi mnemonici del tipo www.ecc.com.
Una singola sottorete IP è un insieme di indirizzi di nodi che hanno in comune un prefisso (sequenza di bit iniziale); per rappresentarla si indicano il numero di bit del prefisso e l'indirizzo IP ottenuto completando la sequenza dei bit comuni con degli 0 fino a raggiungere 32 bit. Un altro metodo di rappresentazione consiste nell'indicare tutto il prefisso a 1 e il resto a 0 fino a raggiungere 32 bit. La lunghezza del prefisso determina quanti indirizzi appartengono alla classe, il numero massimo di nodi inclusi in quella sottorete (lunghezza e numero di indirizzi sono inversamente proporzionali). Si possono usare gruppi caratterizzati da un prefisso di 8, 16 o 24 bit (classi A, B, C), ma solitamente la modalità di rappresentazione degli indirizzi IP lascia la lunghezza del prefisso libera. Alcuni range di indirizzi sono poi riservati a usi specifici, in particolare per reti private.
Ad un certo sistema autonomo vengono assegnati un certo numero di indirizzi IP, che possono essere assegnati dal gestore a nodi (clienti); questi indirizzi vengono organizzati in sottoreti che a loro volta possono essere frammentate in sottoreti più piccole. Di quelle sottoreti fanno parte gli indirizzi IP consegnati ai clienti nel momento in cui il router entra a far parte di Internet e necessita di un indirizzo.
Il protocollo IP viene definito "best effort", dal momento che Internet è esposto a problemi di natura tecnica (guasti, interferenze, ecc.) Qualcuno di questi inconvenienti può riflettersi in diversi comportamenti dei nodi: il nodo destinazione può rifiutarsi di trattare il pacchetto, oppure può essere spento, una rete intermedia può essere inagibile (cavo rotto, ecc.), un pacchetto potrebbe essere troppo lungo per passare in una rete, oppure il traffico è sovraccarico, ecc. Il protocollo IP non si cura di compensare la perdita di un pacchetto, fa del suo meglio per recapitarlo, ma lo scarta in condizione avverse. A questo livello di astrazione si accetta la perdita di pacchetti.
Con il routing si può descrivere Internet come un insieme di sottoreti comunicanti tramite protocollo IP. Si tratta della funzione che deve determinare una route (percorso) per raggiungere un certo nodo, partendo da un altro, con un certo numero di hop (salti). Il routing è relativo al singolo pacchetto, non a una comunicazione complessa (anche se pacchetti simili possono essere accomunati dalla stessa route).
Vogliamo costruire un livello di astrazione che nasconda la route e semplicemente dica che A e B sono connessi; esistono due protocolli che realizzano l'astrazione, che rappresentano il flusso della comunicazione: UDP parla di una comunicazione a pacchetti (datagrammi) unidirezionale, TCP organizza un flusso bidirezionale (stream) di comunicazione fra due nodi distanti. Quando si parla di pacchetti a livello del routing non si parla di pacchetti IP, sono altri tipi di pacchetti (molti pacchetti IP possono formare un datagramma UDP, ecc.) In ogni caso, a un livello inferiore, entrambi i protocolli utilizzano la comunicazione offerta da IP (UDP/TCP = comunicazione complessa, IP = comunicazione semplice).
La route è costituita da una serie di nodi intermedi detti router, che vengono attraversati dal pacchetto. Ciascun hop collega un router a un altro router, per questo i router sono associati a una o più sottoreti, poiché per spostarsi un pacchetto deve passare da una sottorete all'altra. La route da intraprendere viene decisa passo per passo, ad ogni passo il router applica criteri decisionali per permettere il prossimo passo per raggiungere un altro router; normalmente il router cerca di ottimizzare la distanza, ma possono anche presentarsi problemi di traffico che condizionano la scelta (un po' come viaggiare in macchina).
All'interno dello stesso sistema autonomo, il gestore determina dei criteri per scegliere la route migliore (generalmente si cerca di distribuire il traffico in modo da non sovraccaricare i router); questo può portare a cambi di route per uno stesso percorso da A a B, poiché ogni pacchetto è gestito indipendentemente. Fra sistemi autonomi diversi, invece, i criteri corrispondono ad accordi commerciali fra i gestori.
Il protocollo IP
La comunicazione in Internet avviene attraverso lo scambio di pacchetti, ovvero frammenti di informazione autocontenuti che contengono in sé la propria descrizione. La struttura di un pacchetto è solitamente composta da uno header che contiene tutte le informazioni del pacchetto stesso, e da un payload, ovvero dal contenuto vero e proprio che non fornisce alcuna descrizione del pacchetto; prendiamo una busta e una lettera, sulla prima noi mettiamo varie informazioni (mittente, destinatario, ecc.), mentre dentro mettiamo la lettera: nel nostro caso la busta è lo header, mentre la lettera è il payload. Il payload contiene informazione appartenente ad un livello di astrazione superiore.
A livello inferiore si ha uno strato di link in cui i pacchetti sono detti Frame Ethernet: il payload del pacchetto Ethernet è il pacchetto IP intero. A livello superiore si ha uno strato trasporto i cui pacchetti sono detti segmenti TCP: il payload dei pacchetti IP va a formare una parte del segmento TCP. Il livello di IP si chiama anche strato di network (ISO/OSI) o livello 3.
Ciascuna delle righe in rosa nell'immagine sottostante rappresenta un pacchetto scambiato fra due nodi, si ha una sorgente, una destinazione e altri dati. Vediamo che uno dei due nodi è il ricevente (request) e l'altro è il mittente (reply). Nella sezione di mezzo vediamo chiaramente la stratificazione spiegata prima: Frame 2 è un protocollo a livello fisico che trasporta i Frame Ethernet, poi abbiamo lo strato Ethernet, lo strato IP e un ultimo protocollo ICMP leggermente superiore a IP. Nella sezione inferiore si ha il contenuto del pacchetto in esadecimale, e possiamo vedere che contiene dati di riempimento del tipo 1234567.
Il protocollo IP è un'astrazione fondamentale di Internet, e il modo in cui viene realizzata dipende dalla tecnologia utilizzata: ogni tecnologia propone una propria astrazione e una propria realizzazione. Dove qui parliamo di astrazioni, in genere si parla di strati o livelli (layer). In Internet abbiamo molti modi di comunicazione (wireless, cavo, ecc.), ma vogliamo che alla fine, a livelli superiori, tutta questa molteplicità venga gestita in maniera uniforme. Al giorno d'oggi vengono introdotte sempre nuove tecnologie di comunicazione e scambio di dati, per questo è utile che ad un certo livello di astrazione, queste vengano raccolte e si offrano in modo uniforme; possiamo concludere dicendo che lo strato IP serve a unificare tutte le tecnologie fornendo un'unica astrazione, ed ha quindi una funzione di convergenza.
Header del pacchetto IP
Come abbiamo detto, nello header troviamo le informazioni che descrivono il pacchetto. I campi fondamentali sono quelli che descrivono i due indirizzi del mittente e del destinatario (che sono indirizzi IP a 32 bit). Ogni tecnologia di comunicazione impone un limite alla lunghezza dei pacchetti (MTU, Maximum Transfer Unit), per cui un pacchetto può essere frammentato: due campi sono destinati a ricostruire pacchetti frammentati, indicando l'identità del pacchetto (id) e la posizione del frammento (offset); in genere si cerca di evitare la frammentazione consegnando a IP payload di lunghezza minore al limite MTU. L'operazione è alquanto rischiosa, poiché perdere un solo frammento significa compromettere l'intera comunicazione.
Immaginiamo di essere dentro a un router. Come si vede dall'immagine, la prima sottorete A ha un MTU che consente un trasporto di 1500 ottetti. Ne riceve uno da 1480 e lo memorizza internamente. Il modulo IP capisce che il pacchetto deve essere spedito verso una certa sottorete B con MTU 576. Quindi il pacchetto viene frammentato, poi ogni frammento viene passato al modulo driver per essere trasportato alla sottorete.
I pacchetti possono essere elaborati in modo diverso a seconda della funzione: un campo dell'header indica il protocollo con cui deve essere elaborato il contenuto (payload) del pacchetto. Per evitare che il pacchetto vaghi per sempre in rete, viene inserito un contatore di scadenza (time to live o TTL), che è un valore decrementato ad ogni hop: quando il valore diventa 0, il router che riceve il pacchetto lo scarta senza rispedirlo.
Altri due campi indicano la lunghezza del pacchetto e una checksum dello header, ovvero un codice di controllo calcolato sommando tutti gli oggetti del pacchetto, in modo che il ricevente calcoli la somma e controlli che sia uguale a quella calcolata dal mittente (per evitare perdita di informazione). Altri campi minori indicano la priorità del pacchetto e la versione del protocollo IP utilizzata.
Protocollo ICMP
In molti casi è utile affiancare un protocollo di controllo a quello di comunicazione, per evitare interferenze fra le due funzioni e mantenerli separati su due binari: il protocollo ICMP (Internet Control Message Protocol) svolge questa funzione per IP, e i suoi messaggi sono incapsulati come payload di un pacchetto IP. Le sue funzionalità principali sono: segnalare la non raggiungibilità della destinazione (un pacchetto ICMP contenente la porzione iniziale del pacchetto che ha generato il problema viene inviato al mittente), e inviare pacchetti di controllo (il pacchetto di controllo viene inviato all'indirizzo da controllare, che ne invia uno di conferma. Questi messaggi vengono utilizzati dal mittente per informare sullo stato di comunicazione.
Proprietà importanti del protocollo IP
- Può scartare un pacchetto senza notificarlo: ad esempio se supera la MTU e non è frammentabile, oppure se il TTL arriva a 0;
- Non è in grado di determinare se un pacchetto viene perduto;
- Non è in grado di recapitare i messaggi nello stesso ordine in cui sono stati spediti;
- Non consente di riconoscere pacchetti duplicati;
- Esistono due versioni del protocollo IP attualmente in uso: la versione 4 (che abbiamo visto) e la versione 6 (maggiore lunghezza degli indirizzi IP, appartenenza dei pacchetti a un flusso).
Riepilogo struttura pacchetti IP
- Header
- Indirizzo IP mittente
- Indirizzo IP destinatario
- Identificatore Id
- Offset per la frammentazione
- Protocollo usato per l'elaborazione
- TTL per la scadenza
- Lunghezza del pacchetto
- Checksum dello header
- Priorità assegnata al pacchetto
- Versione di IP usata
- Lunghezza dello header
- Payload
Il Link Layer
Protocollo Ethernet
Lo strato sottostante a IP viene definito strato di data link, o livello 2; per link si intende un collegamento diretto fra nodi di una stessa sottorete (anche se la definizione dipende dalla tecnologia utilizzata). Mentre l'astrazione IP è unica, le astrazioni a livello link sono molteplici, e dipendono dalla tecnologia usata (hardware); tutte le tecnologie convergono in IP.
Il protocollo forse più diffuso per scambiare pacchetti all'interno della stessa sottorete è Ethernet (IEEE 802.3), un protocollo che introduce un altro tipo di indirizzo detto MAC Address (48 bit, 6 ottetti), rappresentato in forma esadecimale; questo indirizzo viene associato dal costruttore alla scheda di rete (non esistono due schede con lo stesso MAC, in modo da essere sicuri che nella stessa sottorete non esistano due schede con stesso indirizzo) e i primi tre ottetti indicano il produttore.
Questo tipo di indirizzamento serve per rendere indipendente l'indirizzo IP dall'hardware: se cambio il server, l'IP resta lo stesso, quindi su una stessa macchina possono essere installate di volta in volta schede con MAC differenti. Per essere trasferito su Ethernet, il pacchetto IP viene racchiuso in un nuovo genere di pacchetto chiamato frame Ethernet, con un'operazione che corrisponde ad un incapsulamento: il payload di un frame Ethernet è un pacchetto IP.
Il frame ha una struttura più semplice del pacchetto IP: si apre con una lunga sequenza di 1 e 0 (per rilevare la trasmissione di un frame), poi si indicano i due indirizzi MAC relativi a mittente e destinatario, successivamente si specifica il tipo di payload lungo massimo 1500 ottetti (nel nostro caso IP) e infine nel trailer troviamo una checksum dell'intero frame ed un periodo di silenzio di lunghezza determinata.
Per giustificare il formato del frame consideriamo i due sistemi usati per gestire un frame in uno switch: col metodo store and forward il pacchetto viene registrato nella memoria dello switch e poi inoltrato verso la destinazione, mentre col metodo cut-through viene inoltrato appena è nota la destinazione, risparmiando dal punto di vista del tempo di trattamento e della memoria necessaria. Il vantaggio del primo metodo sta nella possibilità di fermare un frame errato nel momento in cui viene registrato nella memoria, mentre non è possibile interromperne la comunicazione con il secondo metodo. È per questo che è necessario un formato che presenti prima gli indirizzi e che infine presenti la check.
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.
Scarica il documento per vederlo tutto.
-
Riassunto esame Reti di calcolatori, Prof. Petricola Alberto, libro consigliato Computer Networking: a top-down app…
-
Riassunto esame Reti di calcolatori e internet, Prof. De Paola Alessandra, libro consigliato Reti di Calcolatori e …
-
Riassunto esame Reti I
-
Reti di Elaboratori e Architettura di Internet