Il ruolo del livello di rete è, in maniera semplicistica,
muovere i pacchetti dall’host mittente all’host destinatario usando due importanti funzioni: Inoltro: quando un pacchetto arriva ad uno degli ingressi di un router questo deve indirizzarlo all’uscita corretta Instradamento: il livello di rete deve definire il percorso che il pacchetto compie nel passaggio dall’host mittente a quello destinatario, ossia a quale router successivo il pacchetto deve essere spedito I termini inoltro ed instradamento sono usati indifferentemente per descrivere l’intero servizio del livello di rete ma: Inoltro si riferisce all’azione di trasferimento da, parte del router, del pacchetto da un ingresso a una determinata uscita Instradamento indica il processo che coinvolge l’intera rete di definizione del percorso su cui il pacchetto viene instradato Tabelle inoltro Sono presenti all’interno del router e sono definiti da algoritmi di routing Il router inoltra un pacchetto esaminando il valore contenuto in un determinato campo dell’header e lo confronta con quelli contenuti nella tabella ai quali corrisponde una ed una sola uscita. Possono essere centralizzati: eseguiti da un sito centrale e scaricati sul router Distribuiti all’interno del router Modelli di servizio Definisce le caratteristiche del trasporto dei pacchetti tra il mittente e il destinatario Il livello rete può fornire al livello trasporto i seguenti servizi. Consegna garantita: garantisce che il pacchetto arriva a destinazione Consegna garantita con ritardo limite definito: garantisce che il pacchetto giungerà a destinazione con un ritardo inferiore ad un tempo definito Ad un flusso di pacchetti possono essere offerti i seguenti servizi Consegna ordinata: garantisce i pacchetti giungano a destinazione nella stessa sequenza con cui sono stati inviati Banda minima garantita: emula il comportamento di una connessione a bit rate costante. Finché il mittente invia pacchetti a velocità inferiore del bit rate non si hanno perdite e ogni pacchetto arriva con un ritardo predefinito Jitter massimo garantito: garantisce che l’intervallo di trasmissione sia uguale all’intervallo di ricezione Servizi di sicurezza: usando una chiave segreta di sessione conosciuta dai due host il livello di rete può crittografare e decrittare i dati contenuti nei datagram al momento dell’invio e della ricezione Reti a circuito virtuale Un VC consiste in un percorso tra mittente e destinatario con un numero VC assegnato per ogni tratta e valori nelle tabelle di inoltro del router Nell’attività di una rete VC si possono identificare tre fasi temporali: Setup: il livello di trasporto contatta il livello rete e attende la generazione del circuito virtuale Trasferimento dati: una volta stabilito il VC i pacchetti iniziano a fluire lungo il circuito virtuale Teardown(smantellamento): il livello rete informa della fine della connessione e aggiorna le tabelle di inoltro dei router per indicare che VC non esiste più I messaggi di segnalazione: passano tra due host per iniziare o terminare un VC e per modificare lo stato delle connessioni nelle tabelle di routing I protocolli di segnalazione sono i protocolli usati per lo scambio. Reti datagram In una rete datagram ogni pacchetto viene marcato con l’indirizzo del destinatario e lo spinge nella rete. Ogni router confronta l’indirizzo con la propria tabella di inoltro per poi inoltrarlo sulla tratta successiva In una rete datagram le tabelle di inoltro vengono modificate ogni pochi minuti da algoritmi di routing. Una serie consecutiva di pacchetti può seguire percorsi diversi ed arrivare quindi in maniera disordinata Router architettura generale Router componenti base Quattro componenti base Porte di ingresso: svolgono diverse funzioni a diversi livelli. 1. Fisico: termina la tratta fisica in ingresso 2. Connessione: gestisce le funzioni necessarie per interoperare con il livello link dall’altro lato con della tratta. 3. Rete: effettua la ricerca nella tabella di inoltro per definire a quale uscita spedire i pacchetti Router componenti base Switching fabric (tessuto di commutazione): connette le porte di ingresso del router alle porte di uscita. Funziona come una rete dentro la rete instradando i pacchetti da una porta all’altra. Porte di uscita: accumula i pacchetti ricevuti dallo switching fabric e li trasmette alla tratta in uscita. Opera come le porte di ingresso anche a livello fisico e di connessione Processore di routing: è una particolare CPU che esegue i protocolli di routing mantiene le tabelle di routing e le relative informazioni sullo stato delle connessioni Esempio Rotonda(router) a cui fanno capo molte strade a senso unico(I/O) con un casellante ad ogni entrata che indica ad ogni auto in entrata a quale uscita recarsi. Un’auto quando giunge all’uscita designata la può trovare chiusa e quindi accodarsi(collo di bottiglia) Possono verificarsi varie situazioni: 1. Auto arriva veloce ma casellante lento 2. Casellante veloce ma rotonda piena e traffico lento 3. Molte auto vogliono lasciare la rotonda dalla stessa uscita 4. Necessario dare priorità a determinati veicoli 5. Necessario impedire a determinati veicoli di entrare in rotonda per primi Elaborazione di ingresso e di uscita Le porte di ingresso effettuano la ricerca nella tabella di inoltro per indirizzare i pacchetti Una volta che è stata determinata la porta di uscita il pacchetto viene inviato nello switching fabric In alcuni router il pacchetto può essere bloccato se lo switching fabric è pieno. Verrà reinserito in un momento successivo. In uscita la porta si limita a selezionare i pacchetti che si trovano nello switching fabric e disaccodarli per la trasmissione Commutazione Lo switching fabric è il vero cuore del router. Ne esistono di diverse strutture che veicolano i pacchetti in maniera diversa, mediante una memoria, una matrice o un bus. Via memoria I primi router erano PC tradizionali ed effettuavano l’inoltro direttamente tramite CPU utilizzando la RAM. Le porte funzionavano come I/O tradizionali. La CPU copiava il pacchetto in memoria, ne estraeva l’indirizzo di destinazione e trovava la porta di uscita. Copiava il pacchetto dalla memoria al buffer della porta di uscita. Processo lento limitato dalla velocità di lettura e di scrittura della memoria I router di questo tipo non trattano una grande quantità di dati Via bus La porta di ingresso trasferisce direttamente i pacchetti alla porta di uscita attraverso un bus condiviso senza intervento del processore di routing. Al pacchetto viene attribuita un’etichetta che indica la porta di uscita. Il pacchetto viene instradato un in bus Tutte le porte di uscita ricevono il pacchetto ma solo quella designata lo trattiene ed elimina l’etichetta. Il bus trasporta solo un pacchetto alla volta La velocità di commutazione è limitata dalla velocità del bus Architettura adatta a reti locali Via matrice Usata per superare le limitazioni del bus condiviso Struttura a matrice dotata di 2N bus che connettono N porte di ingresso con N porte di uscita Ogni nodo tra i bus corrisponde ad uno switch che può essere aperto o chiuso da logica interna dello switching fabric È possibile inoltrare più pacchetti contemporaneamente purché siano usati bus liberi Se due porte cercano di inviare ad una stessa porta di uscita una di esse deve aspettare Esistono architettura di matrici più complesse che possono ovviare a questo problema Colli di bottiglia La posizione e la dimensione delle code dipendono dal carico di traffico , dalla velocità dello switching fabric, delle linee di entrata ed uscita Se le code crescono eccessivamente i pacchetti possono perdersi Siano le velocità delle linee di ingresso ed uscita uguali Il router sia costruito in modo che abbia N porte di ingresso ed N di uscita. Sia la velocità di trasferimento dello switching fabric N volte più veloce delle velocità di linea L’accodamento nelle porte di ingresso è trascurabile Mentre quella nelle porte di uscita la situazione è peggiore i pacchetti arrivano tutti contemporaneamente. La coda crescerà N-1 pacchetti per ogni gruppo La porta si satura velocemente i pacchetti vengono scartati e persi Sono necessari buffer di grandi dimensioni calcolati secondo la formula B=RTT*C/SQRT(N) RTT tempo medio di andata e ritorno C capacità del link N numeri di flussi Nel caso RTT di 250ms, C 10Gbps N 100 si ottiene una capacità di 250Mb Conseguenza del fenomeno di accodamento è quella di definire un criterio in base a quale scegliere il pacchetto da inviare FCFS(First Come First Served) primo entrato primo uscito WFQ(Weighted Fair Queueing) distribuire la scelta tra tutti i flussi che hanno pacchetti accodati Analogamente se l’accodamento avviene nelle porte di ingresso In alcuni casi è vantaggioso scartare un pacchetto prima che la coda sia piena in modo da inviare un segnale di avviso al mittente La scelta viene fatta attraverso algoritmi detti di “gestione attiva delle code” o AQM (Active Queue Management) Lo switching fabric può generare code sulla porta di ingresso questo fenomeno è detto di “blocco in cima alla fila” HOL (Head Of the Line blocking) Protocolli Il livello rete dell’Internet presenta tre componenti principali: 1. Protocollo IP: provvede all’instradamento, a livello rete. Non garantisce alcun controllo di errore, di flusso e di connessione, controlli che sono demandati ai protocolli del livello superiore 2. Protocolli di routing: determinano il percorso che i datagram seguiranno dal mittente al destinatario e calcolano le tabelle di inoltro 3. Protocollo ICMP: riporta gli errori nei datagram e informazioni riguardanti il livello di rete Protocollo IP Ne esistono due diverse versioni IPv4, quella utilizzata sino ad oggi, e IPv6 destinata a sostituire IPv4 nei prossimi anni con un processo graduale iniziato nel 2012. Analizziamo il formato del datagram utilizzato da IPv4 Datagram IP Numero versione: dichiara le versione del protocollo IP, il router leggendola determina come interpretare il datagram Tipo di servizio(TOS Type Of Service): diversifica il DG in modo da permettere al router di fornire diversi servizi in funzione dell’informazione trasportata; streaming video, VoIP o FTP Lunghezza del DG: indica la dimensione totale del DG Identificatore, flag e offset di frammentazione: forniscono indicazioni ai router riguardanti la frammentazione dei DG Datagram IP Tempo di vita (TTL Time Of Live): tempo massimo di permanenza del DG per evitare che circoli all’infinito nel caso non venga instradato correttamente Protocollo superiore: una volta raggiunto il destinatario permette di decidere quale protocollo di livello trasporto deve prendere in carico i dati. Se il valore è 6 i dati sono passati a TCP se è 17 a UDP. È il collante che unisce i livelli 3 e 4 Checksum dell’header: aiuta il router a individuare bit errati in un DG ricevuto. Datagram IP Source IP address e destination IP address: vi sono inseriti gli IP mittente e destinatario Opzioni: consente di estendere la lunghezza dell’header Dati: contiene i dati da trasportare Frammentazione Nel livello di connessione non tutti i protocolli sono in grado di trasportare pacchetti del livello rete delle stesse dimensioni MTU(Maximum Transmission Unit) è la massima quantità di dati che un frame può trasportare Pone un grosso limite alle dimensioni dei DG trasportati da un router all’altro Un router riceve un DG da una connessione MTU alta e lo instrada su una connessione MTU bassa Bisogna frammentare il DG in dimensioni(frammenti)minori e incapsularli in frame più piccoli Il riassemblaggio del segmento viene effettuato dall’host destinatario che deve sapere se il DG è un frammento, quanti sono i frammenti e il loro ordine, notizie presenti nel campi identificatore,flag e offset Indirizzamento IPv4 Vediamo come i router e gli host sono connessi all’interno di una rete. Un host ha una sola connessione alla rete e IP lo fa attraverso quella. Il confine tra host e rete si chiama interfaccia Un router ha più interfacce dal momento che ha il compito di instradare i DG in direzioni diverse Ogni interfaccia essendo associata ad una connessione diversa ha un proprio indirizzo. Tecnicamente l’indirizzo IP è associato all’interfaccia e non all’apparato che la contiene Indirizzo IP È formato da 4 byte ovvero da 32 bit ovvero sono disponibili 4294967296 indirizzi diversi Ogni byte è scritto in forma decimale ed è separato da un punto Gli indirizzi vanno quindi da 0.0.0.0 a 255.255.255.255 che sono però riservati Non sono accoppiati all’interfaccia in maniera casuale Gli indirizzi vengono accorpati in gruppi che presentano parte di byte identici e vengono assegnati ad interfacce connesse direttamente tra di loro si crea quindi una sottorete Maschera di sottorete Indica il numero di bit,partendo da sinistra, che fanno parte dell’indirizzo. Nella figura sono presenti tre sottoreti 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 Nel caso i bit fossero stati 20 o 16 la maschere di sottorete sarebbe stata del tipo: 255.255.240.0/20 255.255.0.0/16 È possibile suddividere la rete in macroblocchi ognuno dei quali è suddiviso in blocchi più piccoli e così via fino a giungere alle sottoreti più piccole I bit più significativi della forma a.b.c.d/x costituiscono la porzione di rete dell’IP e sono denominati il prefisso dell’indirizzo stesso ISP 233.1.0.0/16
Organizzazioni 233.1.240.0/20
16 sottoreti con terzo numero da 240 a 255
Gli IP sono gestiti dall’ICANN(Internet Corporation for
Assigned Names and Numbers) che gestisce i root server DNS DHCP(Dynamic Host Configuration Protocol) Una volta che un’organizzazione ha ricevuto il pacchetto di indirizzi deve assegnarli ai vari host e router. Può essere fatto manualmente dall’amministratore ma il compito viene effettuato dal protocollo DHCP Il protocollo può essere configurato in modo che l’host abbia sempre lo stesso indirizzo o che possa cambiare ogni volta che l’host si connette alla rete DHCP viene usato dalle reti domestiche e WLAN nelle quali gli host entrano ed escono frequentemente dalla rete È un protocollo client server e il processo di allocazione avviene in quattro passi. DHCP discovery Client cerca server DHCP ed invia una richiesta in un pacchetto UDP incapsulato in un DG Client non conosce né l’IP del server né il suo Entrano in gioco i due indirizzi IP riservati 255.255.255.255 e 0.0.0.0 Il primo detto indirizzo di broadcast inserito nel campo destination IP causa la propagazione in tutti gli host della rete Il secondo o source IP è l’indirizzo provvisorio dell’host DHCP offer, request e ack Tutti i server DHCP riservano all’host un IP e lo comunicano a tutti i nodi della sottorete sempre attraverso il broadcast L’host sceglie quale richiesta accettare
Scelta l’offerta l’host risponde al server di cui conosce
adesso IP ripetendo i parametri di configurazione
Il server risponde con messaggio di accettazione
confermando i parametri richiesti Difetti DHCP DHCP presenta difetti in caso di connessione da dispositivi mobili In ogni cambio di cella è necessario rinegoziare l’indirizzo IP dato che cambia sottorete e ciò comporta la caduta della connessione
È stata realizzata una estensione al protocollo che
permette di mantenere lo stesso IP anche con il cambio di celle ICMP (Internet Control Message Protocol) Usato da host e router per comunicare tra loro informazioni riguardanti il livello rete Risiede sopra IP ed è trasportato all’interno dei DG come TCP o UDP Non trasporta solo messaggi di errore Il messaggio 4-0 source quench(controllo di congestione di solito poco utilizzato) consente al router in congestione di inviare un messaggio all’host per farli rallentare e smaltire le code IPv6 Nel tempo l’indirizzamento a 32 bit potrebbe rilevarsi insufficiente È stata quindi generata una nuova versione del protocollo Il datagram dell’IPv6 è diverso da quello IPv4 ed è incompatibile con esso Valutiamo le differenze Datagram IPv6 Maggiori capacità di indirizzamento anziché 32 bit ne sono disponibili 128 ovvero 2^128, pari a un numero a 38 cifre, numeri disponibili Header snellito Etichettatura dei flussi e priorità: permetterà di gestire i datagram provenienti da host diversi in modo personalizato Numero di versione: dichiara la versione del protocollo Classe di traffico: sostituisce il TOS di IPv4 e ne condivide le funzioni Lunghezza del carico utile: riporta il numero di byte contenuti nel DG Header successivo: identifica il protocollo di livello superiore cui i dati saranno consegnati Limite di balzi: subisce il decremento di 1 ad ogni passo attraverso un router giunti a 0 il DG viene eliminato Source e destination IP address: hanno lunghezza di 128 bit Dati: contiene i dati da trasportare Idntificatore,flag,offset di frammentazione: la frammentazione e il riassemblaggio avviene solo presso mittente e destinatario. Se un router non può instradare un DG lo scarta ed invia messaggio di errore al mittente Cheksum dell’header: serve per diminuire i tempi di transito Opzioni: questo campo è stato eliminato per mantenere fissa la lunghezza dell’header Gestire gli indirizzi IP a 128 bit in notazione decimale puntata porterebbe ad una lunghezza ingestibile Gli IP vengono quindi divisi in otto gruppi da 16 bit in notazione esadecimale separati da : Esempio: 2001:0DB8:AC10:FE01 Dal momento che i primi quattro gruppi corrispondono a un indirizzamento di oltre 16miliardi di miliardi i secondi quattro gruppi possono essere 0:0:0:0 Algoritmi e protocolli routing Gli algoritmi lavorano all’interno dei router per configurare le tabelle di inoltro Un host è tipicamente collegato ad un router di default Quando un host invia un pacchetto esso è trasferito al router di default Sia source router il router di default del mittente e destination router quello del destinatario L’algoritmo di routing deve trovare il percorso ottimale tra il source e destination router Percorso ottimale Tipi di algoritmi Possiamo indicare due categorie: Algoritmo globale: calcola il percorso ottimale tra mittente e destinatario utilizzando una conoscenza globale della rete, prende in considerazione tutte le connessioni possibili e ne conosce i costi Algoritmo decentrato: calcola il percorso in modo distribuito e iterativo.