Capitolo 9 Strato di Rete in Internet 1 Sommario del Capitolo Servizi offerti dallo Strato di Rete Funzioni svolte dallo Strato di Rete: o Inoltro o Instradamento Il protocollo IP e l’indirizzamento in Internet Algoritmi e Protocolli di Instradamento Inter-connessioni di sotto-reti e inter-lavoro in rete Prestazioni delle Reti IP: o Ritardo o Throughput o Perdite 2 Servizio e Funzioni di Strato di Rete 3 Il Servizio-Base e le Funzioni-Base dello Strato di Rete (1/3) Supponiamo che i segmenti (messaggi) generati dallo Strato di Trasporto di una Applicazione-Sorgente (AS) debbano essere trasferiti allo Strato di Trasporto di una ApplicazioneDestinazione (AD) attraverso un cammino (percorso) costituito da: i. nodi di commutazione (Router) ii. canali trasmissivi. Il servizio principale che lo Strato di Rete offre allo Strato di Trasporto è quello di: i. incapsulare i segmenti da trasferire in datagrammi; ii. provvedere a trasferire i datagrammi dal Terminale-Sorgente (in cui risiede l’Applicazione-Sorgente) al TerminaleDestinazione (in cui risiede l’Applicazione-Destinazione). Le due funzioni di base mediante le quali lo Strato di Rete attua il trasferimento di Datagrammi tra i terminali sono quelle di: i. inoltro (Forwarding) ii. instradamento (Routing) 4 Il Servizio-Base e le Funzioni-Base dello Strato di Rete (2/3) Lo Strato di Rete prende i segmenti dallo Strato di Trasporto nell’Host mittente. Sul lato mittente, incapsula i segmenti in datagrammi. Sul lato destinazione, consegna i segmenti allo Strato di Trasporto. Protocolli dello Strato di Rete in ogni host e router. Il router esamina i campi intestazione di tutti i datagrammi che lo attraversano e procede all’instradamento verso il successivo router. application transport network data link physical network data link physical Terminale-Sorgente (TS) network data link physical network data link physical network data link physical network data link physical network network data link data link physical physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Terminale-Destinazione (TD) 5 Il Servizio-Base e le Funzioni-Base dello Strato di Rete (3/3) Inoltro (Forwarding): o trasferisce i pacchetti in ingresso ad un router verso l’uscita appropriata del router stesso. Instradamento (Routing): o determina il percorso che deve essere seguito dai pacchetti dal Terminale-Sorgente al Terminale-Destinazione Analogia: o o Instradamento: processo di pianificazione di un viaggio dall’origine alla destinazione Inoltro: processo di attraversamento di un determinato svincolo 6 La funzione di Inoltro (Forwarding) (1/3) locale effettuata all’interno di ciascun singolo nodo di commutazione (router) di trasferire (inoltrare) un datagramma in arrivo da una delle sue porte di ingresso verso una (opportuna) sua porta di uscita. La funzione di Inoltro si riferisce all’azione Per poter effettuare la funzione di Inoltro, ciascun router ha memorizzata al suo interno una Tabella di Inoltro che associa l’indirizzo contenuto nell’intestazione del datagramma in arrivo con il numero d’ordine della porta di uscita al quale il router deve trasferire il datagramma stesso. 7 La funzione di Inoltro (Forwarding) (2/3) Nelle reti a Circuito Virtuale, l’indirizzo contenuto nell’intestazione del datagramma è l’identificatore del CV (CVI) al quale il datagramma appartiene. Nelle reti a Datagramma, l’indirizzo contenuto nell’intestazione del Datagramma è l’indirizzo IP del Terminale-Destinazione al quale il Datagramma deve, alla fine del percorso, pervenire. 8 La funzione di Inoltro (Forwarding) (3/3) Specificatamente, all’arrivo di ogni Datagramma, il router: i. ii. iii. legge l’indirizzo contenuto nell’intestazione (header) del Datagramma; accede alla propria Tabella di Inoltro e legge il numero d’ordine della porta di uscita corrispondente all’indirizzo del datagramma; trasferisce (inoltra) il Datagramma verso la suddetta porta di uscita. 9 La funzione di Instradamento (Routing Function) La funzione di Instradamento (routing) si riferisce al processo che coinvolge tutti i nodi della rete mediante il quale è individuato il cammino (path o route) che i datagrammi debbono seguire per essere trasferiti dal Terminale-Sorgente al Terminale-Destinazione. È l’intera rete che, mediante l’esecuzione di un (opportuno) Algoritmo di Instradamento (Routing Algorithm), calcola l’intero cammino che ciascun Datagramma deve seguire per trasferirsi dal Terminale-Sorgente al TerminaleDestinazione. Ciascun router ha memorizzato al suo interno una Tabella di Instradamento che associa ad ogni indirizzo IP di destinazione il numero d’ordine del successivo router (next-router) al quale inviare i datagrammi ricevuti. 10 Interazione delle Funzioni di Instradamento e di Inoltro (1/2) Le funzioni di Instradamento e di Inoltro interagiscono tra di loro. Tabella di Inoltro residente in ciascun router è calcolata e aggiornata dall’Algoritmo di Instradamento. Specificatamente, ciò significa che la 11 Interazione delle Funzioni di Instradamento e di Inoltro (2/2) Algoritmo d’instradamento Tabella di instradamento Tabella di inoltro Valore Porta di d’intestazione Uscita 0100 0101 0111 1001 0111 Valore nell’intestazione del pacchetto in arrivo 3 2 2 1 1 3 2 12 Nodi di CommutazioneClassificazione Bridge/Router generale di Commutatore (switch) si indica un nodo di rete che è in grado di trasferire un pacchetto (frame o datagramma) da una delle sue porte di ingresso verso una (opportuna) sua porta di uscita. I Bridge sono commutatori che eseguono l’inoltro di trame sulla base degli Indirizzi MAC. Come vedremo meglio in seguito, i router sono commutatori che eseguono l’inoltro di Datagrammi sulla base degli Indirizzi IP. Col termine Bridge Commutatore (Switch) Router 13 Modello di Servizio dello Strato di Rete (1/2) aggiunta al servizio di base di trasferimento di segmenti mediante datagrammi, a seconda della tecnologia di rete considerata, lo Strato di Rete potrebbe o meno offrire al corrispondente Strato di Trasporto altri servizi. In Modello di Servizio di Rete definisce le caratteristiche (proprietà) del trasferimento di dati che lo Strato di Rete offre allo Strato di Trasporto. Per definizione, il 14 Modello di Servizio dello Strato di Rete (2/2) Ad esempio, il servizio di trasferimento di datagrammi offerto dallo Strato di Rete potrebbe essere di tipo affidabile oppure di tipo non affidabile. Il servizio di trasferimento di datagrammi offerto dallo Strato di Rete potrebbe o meno garantire un tasso minimo di datagrammi/sec. trasferiti dalla Rete. Il servizio di trasferimento di datagrammi offerto dallo Strato di Rete potrebbe garantire o meno che l’intervallo di tempo tra le trasmissioni di due (qualsiasi) datagrammi al Terminale-Sorgente è uguale all’intervallo di tempo tra le ricezioni dei suddetti datagrammi al Terminale-Destinazione. 15 Modello di Servizio dello Strato di Rete di Internet Il Servizio offerto dallo Strato di Rete di Internet è di tipo Best-Effort (ossia, senza alcuna garanzia), con ciò intendendo dire che: i. il trasferimento di datagrammi non è affidabile ; ii. non è garantito un limite superiore al tempo necessario per trasferire un assegnato numero di datagrammi; iii. non è garantito che l’intervallo di tempo tra gli istanti di trasmissione di due datagrammi al TerminaleSorgente sia uguale all’intervallo di tempo tra i corrispondenti istanti di ricezione al TerminaleDestinazione. 16 Modelli di Servizio nelle Reti ATM (1/3) A seconda del tipo di Canale Virtuale attivato, lo Strato ATM delle Reti ATM è in grado di offrire modelli di servizio con caratteristiche diverse. Specificatamente, i due principali modelli di servizio offerti dalle Reti ATM sono: i. ii. Il servizio a tasso binario costante (Constant Bit Rate (CBR) Service) Il servizio con tasso minimo binario garantito (Available Bit Rate (ABR) Service) 17 Modelli di Servizio nelle Reti ATMCBR (2/3) Il modello di Servizio CBR garantisce che: i. il trasferimento dati (celle ATM) è affidabile; ii. il tasso di trasferimento (ossia, il numero di celle trasferito nell’unità di tempo) è costante in ogni istante della durata della connessione; iii. gli intervalli tra le trasmissioni di celle consecutive sono uguali ai corrispondenti intervalli tra gli istanti di ricezione (no jitter). 18 Modelli di Servizio nelle Reti ATMABR (3/3) Il modello di servizio ABR garantisce solamente che: i. in ogni istante, il tasso di trasferimento delle celle ATM (celle/sec) non è mai inferiore ad un tasso minimo prefissato; ii. Le celle sono consegnate allo Strato ATM del Terminale-Destinazione nello stesso ordine (sequenza) con le quali sono state generate dallo Strato ATM del TerminaleSorgente. 19 Modelli di Servizio- Riassunto Network Architecture Internet Service Model Guarantees ? Congestion Bandwidth Loss Order Timing feedback best effort none ATM CBR ATM ABR no constant yes rate guaranteed minimum no no no yes yes yes no no (inferred via loss) no congestion yes 20 Reti a Datagramma- Generalità (1/2) Per definizione, una Rete a Datagramma è una Rete a Commutazione di pacchetto (cioè, che impiega la Multiplazione Statistica) nella quale: i. ii. l’indirizzamento di ogni datagramma è effettuato specificando gli indirizzi del Terminale-Sorgente e del Terminale-Destinazione; Il trasferimento dei datagrammi è privo di connessione. Ciò significa che non ci sono le fasi di instaurazione e di abbattimento di una connessione e, inoltre, che i datagrammi generati dal Terminale-Sorgente possono raggiungere il Terminale-Destinazione seguendo percorsi (path o route) diversi all’interno della rete. 21 Reti a Datagramma- Generalità (2/2) application transport network data link 1. Send data physical application transport 2. Receive data network data link physical 22 Reti a Datagramma- Indirizzamento e Inoltro (1/5) Tipicamente, nell’attuale Rete Internet, gli indirizzi degli utenti-destinazione (IP Destination Address) sono lunghi 32 bit. Ciò significa che, in linea di principio, ogni Tabella di Inoltro dovrebbe contenere 232 indirizzi diversi. Per ridurre le dimensioni delle Tabelle di Inoltro, si fa ricorso al così detto Indirizzamento su base Prefisso. Questa strategia di indirizzamento prevede che: i. ii. tutti gli indirizzi degli utenti-destinazione ai quali corrisponde una stessa porta di uscita del router sono rappresentati dalla parte comune dei loro indirizza IP, ossia mediante il prefisso comune a tutti i loro indirizzi; La Tabella di Inoltro memorizza solo le coppie <prefisso, porta di uscita>. 23 Reti a Datagramma- Indirizzamento e Inoltro (2/5) All’arrivo di un datagramma da una delle porte di ingrasso, il router opera il suo inoltro svolgendo le seguenti operazioni: i. ii. iii. iv. estrae dal datagramma l’indirizzo del TerminaleDestinazione (stringa di 32 bit); estrae dall’indirizzo la parte di prefisso (può essere di lunghezza variabile) Dalla Tabella di Inoltro, il router legge il numero d’ordine della porta di uscita associata al prefisso in oggetto; inoltra il datagramma verso la porta di uscita individuata. 24 Reti a Datagramma- Indirizzamento e Inoltro (3/5) Può accadere che all’(intero) indirizzo dell’utente-destinazione presente nell’intestazione di un datagramma ricevuto dal Router corrispondano più prefissi (di lunghezze diverse) memorizzati nella Tabella di Inoltro del Router. In questo caso, per inoltrare il datagramma, il router segue la così detta “Regola del Prefisso più lungo” (Longest Prefix Matching Rule) e cioè: i. All’interno della Tabella di Inoltro, il Router individua il prefisso ivi memorizzato che costituisce la parte iniziale dell’(intero) indirizzo contenuto nel datagramma e che, tra tutti i prefissi memorizzati che costituiscono la parte iniziale dell’indirizzo in oggetto, è quello più lungo; ii. Il router inoltra il datagramma verso la porta di uscita corrispondente al prefisso più lungo individuato al passo precedente. 25 Reti a Datagramma- Indirizzamento e Inoltro- Esempio (4/5) Supponiamo che la Tabella di Inoltro di un Router contenga le seguenti coppie < prefisso, porta di uscita>. Prefisso Porta di uscita 110010000001011100010 110010000001011100011000 110010000001011100011 Altro prefisso 0 1 2 3 Supponiamo che, all’ingrasso del Router, arrivi un datagramma con Indirizzo di Destinazione (di 32 bit): 11001000000101110001011010100001 Poiché i primi 21 bit di questo indirizzo coincidono col prefisso riportato nella prima riga della Tabella di Inoltro, il datagramma è inoltrato verso la porta di uscita numero 0. 26 Reti a Datagramma- Indirizzamento e Inoltro- Esempio (5/5) Supponiamo ora che, all’ingrasso del Router, arrivi un datagramma con indirizzo di Destinazione (di 32 bit): 11001000000101110001100010101010 Ora, abbiamo che: i. ii. i primi 21 bit dell’indirizzo coincidono col prefisso riportato nella prima riga della Tabella di Inoltro; i primi 24 bit dell’indirizzo coincidono col prefisso riportato nella seconda riga della Tabella di Inoltro. In accordo alla “Regola del Prefisso più lungo”, il Router prende in considerazione solo il prefisso posto nella seconda riga della Tabella di Inoltro e, quindi, trasferisce il datagramma in oggetto alla porta di uscita numero 1. 27 Come è fatto un RouterGeneralità (1/8) Come detto, la funzione di un Router è quella di inoltrare ciascun datagramma ricevuto da una porta di ingresso verso una opportuna porta di uscita. Dal punto di vista “hardware”, un router è costituito dalle seguenti 4 componenti: i. Porte di ingresso- sono in numero di m ≥ 2; ii. Porte di uscita- sono in numero di m ≥ 2; iii. Matrice di commutazione- collega ciascuna porta di ingresso a ciascuna porta di uscita; iv. Processore di Controllo- esegue l’Algoritmo di Instradamento e, quindi, o o Memorizza la Tabella di Instradamento; Aggiorna le Tabelle di Inoltro residenti in ciascuna delle Porte di Ingresso. 28 Come è fatto un RouterGeneralità (2/8) Input porta 1 Input porta m Output porta 1 Matrice di Commutazione Output porta m Processore di Controllo 29 Come è fatto un Router- Porte di Ingresso (3/8) Ciascuna porta di ingresso espleta: i. Funzioni di Strato Fisico- ricezione e rivelazione dei bit in ingresso; ii. Funzioni di Strato di Collegamento- ricostruzione delle trame a partire dai bit; iii. Funzioni di Inoltro- ogni porta ha memorizzata una copia della Tabella di Inoltro, in base alla quale effettua l’inoltro dei datagrammi ricevuti; iv. Funzioni di Memorizzazione- ogni porta di ingresso è dotata di un buffer nel quale memorizza temporaneamente i datagrammi ricevuti e che non sono stati ancora inoltrati. 30 Come è fatto un Router- Porte di Ingresso (4/8) Matrice di Commutazione Strato Fisico: Ricezione a livello di bit Strato Data-link: e.g., Ethernet 31 Come è fatto un Router- Matrice di Commutazione (5/8) Matrice di Commutazione di un router con m porte di ingresso e m porte di uscita è costituita da: i. 2m canali interni (buses); ii. m2 nodi di interconnessione La Porte di Ingresso Matrice di Commutazione Porte di Uscita 32 Come è fatto un Router- Matrice di Commutazione (6/8) Un datagramma che arriva all’s-ma porta di ingresso e deve essere inoltrato verso la k-ma porta di uscita i. ii. iii. viaggia lungo il bus orizzontale s-mo sino a che interseca il k-mo bus verticale; se il k-mo bus verticale è già occupato dall’inoltro di un altro datagramma, il datagramma in oggetto è memorizzato temporaneamente nel buffer dell’s-ma porta di ingresso; se il k-mo bus verticale è libero, il datagramma è trasferito alla k-ma porta di uscita e, eventualmente, memorizzato nel buffer della k-ma porta di uscita. 33 Come è fatto un Router- Porte di Uscita (7/8) Ciascuna Porta di Uscita espleta le seguenti funzioni: i. Memorizza temporaneamente nel buffer ad essa collegato i datagrammi che sono in attesa di essere trasmessi dal Router; ii. Frammenta i datagrammi e li incapsula in trame; iii. Immette serialmente i bit che compongono ciascuna trama nel canale fisico collegato alla porta stessa. 34 Come è fatto un Router- Porte di Uscita (8/8) Matrice di Commutazione 35 Code all’interno di un Router code sia nei buffer collegati alle porte di ingresso che nei buffer collegati alle porte di uscita. Si hanno code alle porte di ingresso quando la velocità (in datagrammi/sec) con cui i datagrammi arrivano alle porte di ingresso è superiore alla velocità con cui la Matrice di Commutazione riesce ad inoltrare i datagrammi arrivati verso le corrispondenti porte di uscita. Si hanno code alle porte di uscita quando la capacità C (in datagrammi/sec) di trasmissione dei canali collegati alle porte di uscita è inferiore alla velocità con cui la Matrice di Commutazione inoltra i datagrammi verso le porte di uscita. All’interno di un Router, si possono avere 36 Perdite di Datagrammi in un Router Ciascuno dei 2m buffer connessi alle porte di ingresso/uscita di un router è in grado di memorizzare un numero finito NMAX di datagrammi. Quando il numero di datagrammi da memorizzare in una delle porte supera il limite NMAX , i datagrammi in eccesso vengono scartati (cioè, non inoltrati) dal Router. I datagrammi scartati da un router non raggiungeranno mai il Terminale-Destinazione, dando così luogo al Fenomeno della Perdita di Datagrammi (Data Loss Event). 37 La Rete Internet- Struttura e Architettura Protocollare 38 Struttura della Rete Internet (1/5) Internet è un insieme di sotto-reti. o Sotto-rete: sistema di comunicazione delimitato da dispositivi di Strato di Rete (Router) o Una Internet consente a sistemi terminali (host) appartenenti a sottoreti eterogenee di scambiarsi informazioni tra di loro Internet è basata sulla pila protocollare TCP/IP. 39 Struttura della Rete InternetConnessione di sotto-reti (2/5) Router Sottoreti Terminali (Host) 40 Struttura della Rete InternetTerminali e Router (3/5) Applicazione Terminale (host) Indirizzo IP subnet Indirizzo MAC TCP UDP 191.133.5.98 IP IF 1 Architettura protocollare di un terminale Indirizzi IP Commutatore (router) Subnet A Subnet B Subnet C IP 191.133.5.7 123.45.6.93 112.4.234.9 IF 1 (ATM) IF 2 (Ethernet) IF 3 (FDDI) Architettura protocollare di un router Indirizzi MAC 41 Struttura della Rete Internet- La pila TCP/IP (4/5) La pila protocollare TCP/IP è logicamente situata al di sopra dei protocolli di Strato di Collegamento; o i protocolli TCP/IP assumono che lo Strato di Collegamento non esegua nessuna funzione, oltre a quella di trasferimento di trame tra nodi (terminali o Commutatori) adiacenti. 42 Struttura della Rete InternetElementi costituenti di base (5/5) Le entità base costituenti Internet sono gli Host (terminali d’utente) e i Router. Host: o o Sono le sorgenti e le destinazioni dei datagrammi; Sono univocamente identificati nella rete mediante indirizzi IP a 32 bit. Router: o o Instradano i pacchetti IP tra le sotto-reti; Hanno un’interfaccia per ogni sotto-rete a cui sono connessi. 43 Principio di Interconnessione (1/4) Principio di interconnessione: o le inter-connessioni tra diverse sotto-reti sono assicurate dai router. Interfaccia 1 H H o o Sotto-rete 1 H Interfaccia 2 Sotto-rete 2 H H in generale, i router instradano i datagrammi verso la sotto-rete di destinazione e non verso il singolo host di destinazione; in generali, una volta che il datagramma arriva alla sotto-rete di destinazione sono i protocolli di Strato di Collegamento di questa sotto-rete ad inoltrarlo verso lo specifico terminale di destinazione. 44 Principio di Interconnessione (2/4) Il terminale sorgente: forma il datagramma IP destinato al terminaledestinazione; determina se il terminale-destinazione si trova sulla sua stessa sotto-rete: 1) 2) i. ii. 5) se la sotto-rete è la stessa, il terminale-sorgente determina l’indirizza MAC del terminale-destinazione (instradamento diretto); se la sotto-rete è diversa, il terminale-sorgente determina l’indirizzo IP e l’indirizzo MAC del router verso cui inviare il datagramma (instradamento indiretto); consegna il datagramma alla sotto-rete che lo consegnerà, a sua volta, all’host di destinazione. 45 Principio di Interconnessione (3/4) Un router elabora l’indirizzo del datagramma IP ricevuto e determina la sotto-rete in cui si trova il terminaledestinazione i. ii. se il terminale-destinazione si trova in una delle sotto-reti a cui il router è direttamente connesso, allora affida il datagramma alla sottorete per la consegna; altrimenti, determina il router successivo (nextrouter) verso cui instradare il datagramma e instrada il datagramma verso il suddetto router. 46 Principio di Interconnessione (4/4) Una sotto-rete o inoltra i datagrammi IP incapsulandoli nelle proprie trame, utilizzando i propri protocolli di Strato di Collegamento. Interfaccia 1 H1 H2 Sotto-rete 1 Interfaccia 2 H3 Sotto-rete 2 H4 H5 47 Architettura Protocollare dello Strato di Rete in Internet (1/2) L’architettura protocollare dello Strato di Rete di Internet è riportato in Figura. Strato di Trasporto: TCP/UDP Protocolli di Routing • Instradamento • RIP,OSPF,BGP Protocollo IP • Indirizzamento • Formato del datagramma Protocollo ARP • Conversione indirizzi IP in indirizzi MAC Protocollo ICMP • Segnalazione di errori • Segnalazione di controllo Strato di Collegamento Strato Fisico 48 Architettura Protocollare dello Strato di Rete in Internet (2/2) Essenzialmente, lo Strato di Rete Internet è composto da 4 famiglie principali di protocolli: i. Protocolli per l’instradamento dei datagrammi (RIP, OSPF, BGP)- sono implementati mediante le Tabelle di Instradamento e provvedono ad aggiornare le Tabelle di Inoltro; ii. Protocollo IP- definisce la struttura e le regole per l’indirizzamento di utenti terminali, router e sotto-reti. Definisce il formato del datagramma IP; iii. Protocollo ICMP (Internet Control Message Protocol)definisce e gestisce i messaggi di segnalazione di errori/ malfunzionamenti tra router e utenti terminali; iv. Protocollo ARP (Address Resolution Protocol)- in ogni istante, permette di ricavare l’indirizzo MAC di un router o utente terminale dal corrispondente Indirizzo IP. 49 Il Protocollo IP 50 Il Protocollo IP- Generalità (1/3) Il Protocollo IP è uno dei protocolli di Strato di Rete di Internet: i. ii. iii. iv. v. i. ii. Offre un servizio Best-Effort di trasferimento di segmenti allo Strato di Trasporto; Opera con modalità di trasferimento senza connessione; Impiega la commutazione di pacchetto e la multiplazione statistica ; Esegue le funzioni di indirizzamento dei datagrammi; Definisce il formato del datagramma IP. Esistono due versioni del protocollo IP, note come: IPv4 IPv6 Nel seguito, faremo riferimento alla versione IPv4, di gran lunga più utilizzata. 51 Il Protocollo IP- Generalità (2/3) Essenzialmente, le funzioni principali del protocollo IP sono: a) In trasmissione i. ii. iii. iv. Incapsula in datagrammi i segmenti ricevuti dallo Strato di Trasporto; Aggiunge gli indirizzi IP degli utenti sorgente e destinazione; Attua gli Algoritmi di Routing per calcolare il cammino ottimo tra Utente-Sorgente e UtenteDestinazione; Provvede ad inviare il Datagramma verso il successivo nodo di rete (next router). 52 Il Protocollo IP- Generalità (3/3) b) In ricezione i. Verifica la validità (error detection) del datagramma ricevuto; ii. Legge l’indirizzo IP dell’UtenteDestinazione presente nell’header del datagramma ricevuto; iii. Consegna il segmento incapsulato nel datagramma allo Strato di Trasporto del terminale-destinazione 53 Il Formato del Datagramma IP (1/2) Il formato del Datagramma IPv4 è riportato in Figura. bit 0 4 HLEN 16 Type Of Service Identification Time To Live 31 Total Lenght Flag Fragment Offset (13 bit) Protocol Header Checksum Source IP Address 20 byte Header Vers 8 Destination IP Address Options Padding Dati (Payload) 54 Il Formato del Datagramma IP (2/2) Essenzialmente, un Datagramma IP è composto da: i. ii. Una intestazione (Header) - può essere di lunghezza variabile. La lunghezza minima è di 20 byte; Un campo dati (Payload)- può essere di lunghezza variabile. Contiene: o o Segmenti generati dallo Strato di Trasporto; Oppure, messaggi di controllo generati dai protocolli ICMP e/o ARP. 55 Il Formato dell’Header (1/6) L’Header contiene tutte le informazioni di indirizzamento necessarie per instradare il datagramma. La dimensione minima dell’Header è di 20 byte. L’Header può contenere o meno un campo Opzioni la cui lunghezza e il cui significato variano a seconda dell’applicazione considerata. 56 Il Formato dell’Header (2/6) Vers (4 bits): versione del protocollo usata; grazie a tale campo è possibile che più versioni di IP operino contemporaneamente. La versione attualmente in uso è la IPv4. HLEN (4 bits): lunghezza dell’Header in multipli di 32 bits. TOS (Type Of Service) (8 bits): specifica i parametri della qualità di servizio richiesti dall’Utente-Sorgente (ad es., affidabilità, velocità di trasferimento). Total Length (16 bits): specifica la lunghezza totale (incluso l’Header) del datagramma, misurata in byte. La lunghezza totale massima di un datagramma IP è di 65535 byte. 57 Il Formato dell’Header (3/6) Identification (16 bits): numero identificativo del datagramma. È assegnato dall’Utente-Sorgente al datagramma ed ereditato dagli eventuali frammenti. Flag (3 bits): usato per la frammentazione-X, DF e MF i. X: non usato e posto a 0; ii. DF (Don’t Fragment): se 0, indica che il datagramma può essere frammentato; se 1, no. iii. MF (More Fragment): se 0, indica che il datagramma è l’ultimo frammento; se 1, che ci sono altri frammenti. Fragment Offset (13 bits): indica la posizione del frammento all’interno dell’originario datagramma, espressa in multipli di 64 bits. 58 Il Formato dell’Header (4/6) TTL (Time To Live) (8 bits): indica il numero massimo di salti residui che il datagramma può effettuare in rete. È decrementato da ogni router attraversato dal datagramma. Quando assume il valore zero, il datagramma è scartato. Protocol (8 bits): indica a quale protocollo dello strato superiore deve essere trasferito il contenuto del campo payload del datagramma. Header Checksum (16 bit): campo per la rivelazione di eventuali errori presenti nel (solo) Header del Datagramma ricevuto. 59 Il Formato dell’Header (5/6) Source Address (32 bits): indirizzo IP del terminale-sorgente. Destination Address (32 bit): indirizzo IP del terminale-destinazione. 60 Il Formato dell’Header (6/6) Options : campo di lunghezza variabile (multipli di 8 bit) che può essere omesso. È composto da tanti ottetti quante sono le opzioni implementate, e cioè: o Record Route Option (RRO) : consente al mittente di creare una lista vuota di indirizzi IP in modo che ogni nodo attraversato inserisce il suo indirizzo in questa lista. o Source Route Option : consente al mittente di specificare i nodi attraverso i quali vuole che transiti il datagramma o Timestamp Option : come RRO con in più l’istante temporale in cui il datagramma attraversa i diversi nodi Padding: campo di lunghezza variabile. Serve a garantire che l’Header abbia una lunghezza multipla di 32 bit. 61 Frammentazione dei datagrammi IP (1/3) Quando lo Strato IP deve trasmettere un datagramma: i. ii. determina l’interfaccia fisica di uscita (inoltro) e la corrispondente Lunghezza Massima dell’Unità dati Trasferibile (MTU) In base alla dimensione del datagramma, stabilisce se frammentare o meno il datagramma in datagrammi più piccoli. La frammentazione può avvenire sia nel TerminaleSorgente che in un router intermedio. Il riassemblaggio dei frammenti può avvenire solo al Terminale di Destinazione. Quando un datagramma viene frammentato: i. ogni frammento è trasportato in rete come un normale datagramma IP, con una propria intestazione ed instradato in modo indipendente dagli altri frammenti. 62 Frammentazione dei datagrammi IP (2/3) Frammentazione: L’unità massima di trasmissione (MTU) è la massima quantità di dati che un frame a livello di collegamento può trasportare. o Ingresso:1 datagramma grande Uscita:3 datagrammi più piccoli Differenti tipi di link, differenti MTU Datagrammi IP grandi vengono frammentati in datagrammi IP più piccoli. o o o o o I frammenti saranno riassemblati solo una volta raggiunta la destinazione I bit dell’intestazione IP sono usati per identificare e ordinare i frammenti Se uno o più frammenti non viene ricevuto (a destinazione), verrà scartato l’intero Riassemblaggio datagramma La frammentazione può avvenire sia nell’host mittente che in un router intermedio Ogni frammento è trasportato come un normale datagramma IP con una propria intestazione ed è instradato in modo indipendente dagli altri. 63 Frammentazione dei datagrammi IP (3/3) Nella frammentazione vengono utilizzati i seguenti campi dell’header del Datagramma IP: o o o o Identification: identificativo del datagramma da frammentare; viene copiato in tutti gli header dei datagrammi frammentati; More fragments bit: posto ad 1 in tutti i datagrammi frammentati, tranne che nell’ultimo; Fragment offset: contiene la posizione (espressa in multipli di 64 bits) di ciascun datagramma frammentato rispetto all’inizio del datagramma da frammentare; Total length: contiene la dimensione di ogni datagramma frammentato. 64 Indirizzamento IP- Interfaccia Dato un nodo di rete (utente terminale o router), una sua interfaccia è costituita dall’insieme di una porta di ingresso e di una porta di uscita. In altri termini, una interfaccia di un nodo è una sua porta bi-direzionale (I/O port). Poiché un Terminale d’Utente (host) è, in genere, collegato alla rete mediante un solo canale trasmissivo, un Terminale d’Utente ha, in genere, una sola interfaccia. Poiché un router inter-connette due o più sotto-reti diverse, un router ha interfacce multiple, cioè un’interfaccia per ogni sotto-rete alla quale è collegato. 65 Indirizzamento IP delle Interfacce (1/2) Tutte le interfacce presenti in Internet sono univocamente identificate da un proprio Indirizzo IP. Un indirizzo IP è costituito da 32 bit, ovvero da 4 byte. Esso viene rappresentato ricorrendo alla così detta “notazione decimale con punto”, ossia, i. ii. Esprimendo il contenuto di ciascuno dei byte mediante il corrispondente numero intero, compreso tra 0 e 255; Separando mediante punti i 4 numeri interi così ottenuti. Esempio: 11000001 00100000 11011000 00001001>193.32.216.9 00011100 00000000 11111111 00000011->28.0.255.3 66 Indirizzamento IP delle InterfacceEsempio (2/2) 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223.1.3.1 223.1.3.2 223 1 1 1 67 Indirizzamento IP- Sotto-Reti (1/6) Come già visto, la rete IP è costituita da più sottoreti inter-connesse mediante Router. Per definizione, una sotto-rete è costituita da tutte e sole le interfacce che condividono uno specifico prefisso (lungo: x ≥ 1 bit) dei loro indirizzi IP. Ciò significa che tutte le interfacce di una stessa sotto-rete hanno i primi x bit (quelli più a sinistra) dei loro indirizzi IP coincidenti. Quindi, il massimo numero di interfacce distinte che possono far parte di una sotto-rete con prefisso lungo x bit è pari a: 2(32-x) ≡ 232/2x 68 Indirizzamento IP- Sotto-RetiEsempio1 (2/6) 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 La rete consiste di 3 sotto-reti 69 Indirizzamento IP-Sotto-Reti- Esempio2 (3/6) 223.1.1.2 223.1.1.1 Rete costituita da 6 sotto-reti 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 70 Indirizzamento IP- Sotto-Reti (4/6) La rete IP assegna a ciascuna sotto-rete un proprio unico indirizzo che, in generale, assume il seguente formato: a.b.c.d/x dove: i. a, b, c, d sono numeri interi compresi tra 0 e 255 che specificano l’indirizzo della sotto-rete; ii. /x, sta ad indicare che gli indirizzi IP di tutte le interfacce della sotto-rete condividono un medesimo prefisso lungo x ≥ 1 bit, prefisso che, a sua volta, coincide con gli x bit più a sinistra dell’indirizzo IP della sotto-rete stessa. Gli x bit che costituiscono il prefisso dell’indirizzo della sotto-rete e il prefisso degli indirizzi di tutte le interfacce che compongono la sotto-rete stessa si chiama “maschera della sotto-rete”. 71 Indirizzamento IP- SottoRetiEsempi (5/6) La sotto-rete di indirizzo 255.1.3.0/24 è costituita da tutte le interfacce i cui indirizzi IP condividono il seguente prefisso lungo 24 bit: 11111111 00000001 00000011 La sotto-rete di indirizzo 3.255.0.0/17 è costituita da tutte le interfacce i cui indirizzi IP condividono il seguente prefisso lungo 17 bit: 00000011 1111111 0 72 Indirizzamento IP- SottoRetiEsempi (6/6) La rete (costituita da sotto-reti) considerata nell’Esempio1 ha i seguenti indirizzi di sottorete: 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 73 Indirizzi di Sotto-Rete e Tabelle di Inoltro (1/2) Come già visto, al fine di minimizzare la memoria richiesta, la Tabella di Inoltro presente in ciascun router riporta le coppie <prefisso, porta di uscita> per ciascuna sotto-rete raggiungibile da una porta di uscita del Router. Specificatamente, i. ii. Prefisso è la sequenza di bit che costituisce il prefisso dell’indirizzo della sotto-rete in esame; Porta di uscita è il numero d’ordine della porta di uscita del router dalla quale la sotto-rete in oggetto è raggiungibile. Come già detto, ciascun datagramma in arrivo al router è inoltrato verso la corrispondente porta di uscita applicando la “Regola del prefisso più lungo” 74 Indirizzi di Sotto-Rete e Tabelle di Inoltro- Esempio (2/2) Porta di uscita Prefisso di sotto-rete 11001000 11001000 11001000 Altrimenti 00010111 00010111 00010111 00010 00011000 00011 0 1 2 3 Esempi: Con: 11001000 00010111 00010110 10100001 Qual è la porta di uscita? Con: 11001000 00010111 00011000 10101010 Qual è la porta di uscita? 75 Indirizzamento Gerarchico in Internet Ovviamente, al fine di minimizzare la dimensione di una Tabella di Inoltro, è necessario che il numero di sotto-reti raggiungibili da ciascuna delle porte di uscita di un router sia il più grande possibile. Ciò significa che, per quanto possibile, ciascuna sottorete dovrebbe essere costituita da interfacce con indirizzi IP il più possibile contigui (cioè, in sequenza). La strategia adottata da Internet per assegnare “opportunamente” gli indirizzi IP alle sotto-reti e alle corrispondenti interfacce è nota come: Classless InterDomain Routing (CIDR) 76 CIDR- Definizione (1/4) Nella strategia (CIDR) di assegnazione degli indirizzi IP abbiamo che: i. ii. iii. La rete è suddivisa in sotto-reti e, eventualmente, ogni sotto-rete è suddivisa in più sotto-sotto-reti. A ciascuna sotto-rete è assegnato un indirizzo del tipo: a.b.c.d/x A ciascuna sotto-sotto-rete è assegnato un indirizzo del tipo: a.b.c.d/y con y>x. 77 CIDR- Definizione (2/4) iii. A tutte le interfacce di una stessa sotto-sottorete sono assegnati indirizzi IP che condividono la prima parte lunga y bit dell’indirizzo (prefisso di sotto-sotto-rete). Esempio di applicazione CIDR: Indirizzo di Sotto-Rete: 255.0.1.0/24 11111111 00000000 00000001 Indirizzo di sotto-sotto-rete: 255.0.1.0/26 11111111 00000000 00000001 00 78 CIDR- Proprietà (3/4) Quindi, in accordo alla strategia CIDR, i 32 bit dell’indirizzo IP assegnato a ciascuna interfaccia è suddiviso in 2 parti: i. ii. Una prima parte costituita dai primi y ≥ 1 bit più a sinistra dell’indirizzo che individua il prefisso della sotto-sottorete alla quale l’interfaccia appartiene Una seconda parte costituita dagli ultimi (32-y) bit più a destra dell’indirizzo che è specifica dell’interfaccia considerata. sub-subnet part interface part 11001000 00010111 00010000 00000000 200.23.16.0/23 79 CIDR- Proprietà (4/4) La strategia di assegnazione degli indirizzi IP attuata da CIDR è, quindi, di tipo gerarchico. Ciò implica che: i. ii. i Router che interconnettono sotto-reti distinte possono effettuare l’inoltro dei datagrammi ricevuti dalle porte di ingresso esaminando solo i prefissi degli indirizzi IP di destinazione contenuti nei datagrammi; i router che si trovano all’interno di una sotto-rete possono effettuare l’inoltro dei datagrammi ricevuti dalle porte di ingresso esaminando solo i suffissi (cioè, gli ultimi (32-x) bit) degli indirizzi IP di destinazione contenuti nei datagrammi. 80 Indirizzo IP di tipo Broadcast Il protocollo IP impiega il seguente (particolare) indirizzo 255.255.255.255 11111111 11111111 11111111 11111111 per indicare che il datagramma corrispondente deve essere ricevuto da tutti i nodi che costituiscono la rete. Specificatamente, quando un router riceve da una delle sue porte di ingresso un datagramma che ha come indirizzo di destinazione: 255.255.255.255 allora inoltra il datagramma verso tutte le sue porte di uscita. 81 Come ottenere un Indirizzo IP Ogni interfaccia della Rete Internet deve possedere un indirizzo IP specifico, cioè globalmente unico. L’organizzazione internazionale ICANN (Internet Corporation for Assigning Names and Numbers) assegna blocchi di indirizzi IP contigui (cioè, con numerazione in sequenza) a ciascuna sotto-rete richiedente. L’Amministratore della sotto-rete assegna manualmente (ossia, configura manualmente) alcuni degli indirizzi IP a disposizione a tutte le interfacce dei router che fanno parte della sotto-rete in oggetto. I singoli Utenti-Terminali della sotto-rete possono richiedere indirizzi IP temporanei in modo automatico (ossia, senza intervento diretto dell’Amministratore di Rete), facendo ricorso al così detto: Dynamic Host Configuration Protocol (DHCP) 82 DHCP- Generalità (1/2) DHCP permette ad ogni utente che voglia connettersi ad una (specifica) sotto-rete di ottenere temporaneamente in Indirizzo IP tra quelli che la sotto-rete ha avuto assegnati ma, in quel momento, non sono utilizzati. Quando l’utente si disconnette dalla sottorete (utente nomade), l’indirizzo IP che gli era stato assegnato gli viene rimosso e torna a far parte di quelli a disposizione della sotto-rete. 83 DHCP- Generalità (2/2) Per poter essere implementato, DHCP richiede che nella sotto-rete sia presente un particolare server, detto Server DHCP. Il Server DHCP: i. memorizza gli indirizzi IP temporaneamente liberi (ossia, che possono essere assegnati); ii. gestisce le fasi di assegnazione di un indirizzo IP e di rilascio di un indirizzo IP. Per sua natura, DHCP è un esempio di protocollo clienteservente. Per ogni nuovo utente che richiede un indirizzo IP, il DHCP prevede l’espletamento di 4 fasi: i. Fase di DHCP Discover ; ii. Fase di DHCP Offer ; iii. Fase di DHCP Request ; iv. Fase di DHCP ACK. 84 DHCP- Architettura di Sistema Client-Server A B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.1 Server DHCP 223.1.1.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 E arriving DHCP client needs address in this sub-network 85 Fase di DHCP Discover (1/2) In questa fase, il cliente che vuole richiedere un indirizzo IP per connettersi alla sotto-rete effettua le seguenti azioni Costruisce un messaggio di richiesta di indirizzo IP, messaggio noto come DHCP Discovery message. Il suddetto messaggio contiene un identificatore di Transazione (ovvero, un numero di sequenza) che lo identifica univocamente. Il cliente incapsula il DHCP Discovery message nel campo payload di un datagramma IP. Il suddetto datagramma ha: i. ii. o o Source Address: 0.0.0.0 Destination Address: 255.255.255.255 (indirizzo broadcast) 86 Fase di DHCP Discover (2/2) iii. L’adattatore del cliente incapsula, a sua volta, il suddetto datagramma IP in una trama di Strato di Collegamento. La suddetta trama ha: o o v. MAC Source address: l’indirizzo MAC dell’adattatore del cliente; MAC Destination address: FF-FF-FF-FF-FF-FF (indirizzo MAC broadcast). L’adattatore del cliente invia la Trama nella sotto-rete alla quale vuole connettersi. 87 Fase di DHCP Offer (1/2) Dopo che il Server DHCP ha ricevuto e letto il DHCP Discovery message che gli è pervenuto, il DHCP Server effettua le seguenti azioni: 1) Costruisce un DHCP Offer Message nel quale indica: o o o o il numero di sequenza prelevato dal DHCP Discovery message; l’indirizzo IP proposto al cliente (yiaddr; vedi Figura); il tempo di vita dell’indirizzo IP proposto, ossia la quantità di tempo per cui il cliente può usare l’indirizzo IP proposto; il prefisso della sotto-rete alla quale il cliente sta chiedendo di connettersi. 88 Fase di DHCP Offer (2/2) Incapsula il DHCP Offer Message nel campo payload di un (nuovo) datagramma IP. Il suddetto datagramma ha: 2) o o L’adattatore del DHCP server incapsula il suddetto datagramma in una (nuova) Trama. La Trama ha: 3) o o 4) Source Address: l’indirizzo IP del Server DHCP; Destination Address: 255.255.255.255 (indirizzo IP broadcast); MAC Source address: l’indirizzo MAC del DHCP Server; MAC Destination address: FF-FF-FF-FF-FF-FF; L’adattatore del DHCP server invia la trama nella sotto-rete. 89 Fase di DHCP Request (1/2) Dopo che il cliente ha ricevuto e letto il DHCP Offer Message, il cliente effettua le seguenti azioni: 1) 3) costruisce un DHCP Request message nel quale indica: o il numero di sequenza del messaggio incrementato di una unità rispetto al numero di sequenza impiegato in precedenza; o l’accettazione dell’indirizzo IP proposto dal DHCP Server; incapsula il DHCP Request Message nel campo payload di un nuovo datagramma IP. Il suddetto datagramma ha: o Source Address: 0.0.0.0 o Destination Address: 255.255.255.255 (indirizzo IP broadcast) 90 Fase di DHCP Request (2/2) L’adattatore del cliente incapsula il suddetto datagramma IP in una (nuova) trama. La trama ha: 3) o o 5) MAC source address: l’indirizzo MAC del cliente; MAC destination address: FF-FF-FF-FF-FF-FF; L’adattatore invia la Trama nella sotto-rete. 91 Fase di DHCP ACK (1/2) Dopo che il DHCP Server ha ricevuto e letto il DHCP Request Message, il Server esegue le seguenti azioni: 1) costruisce un DHCP ACK Message nel quale: o conferma l’indirizzo IP proposto al cliente e il corrispondente tempo di vita; o indica lo stesso numero di sequenza riportato nel DHCP Request message ricevuto; 92 Fase di DHCP ACK (2/2) 2) Incapsula il DHCP ACK message in un nuovo datagramma IP. Il suddetto datagramma ha: o o L’adattatore del DHCP Server incapsula il datagramma in una (nuova) Trama. La trama ha: 4) o o 5) Source address: l’indirizzo IP del DHCP Server; Destination address: 255.255.255.255 (broadcast). MAC Source address: l’indirizzo MAC del DHCP Server; MAC Destination address: FF-FF-FF-FF-FF-FF. L’adattatore invia la Trama nella sott-rete. 93 DHCP- Conclusione Dall’istante in cui il cliente riceve il DHCP ACK message, può usare l’indirizzo IP offerto come proprio indirizzo IP per il Tempo di Vita pattuito. Allo scadere del Tempo di Vita pattuito, il DHCP Server considera l’indirizzo IP offerto al cliente come di nuovo libero (non più utilizzato) 94 DHCP- Riepilogo (1/2) Riepilogando, l’impiego del DHCP è utile quando: i. ii. iii. i clienti si connettono e disconnettono dalla sotto-rete frequentemente (nomadic clients); il numero di potenziali clienti supera il numero di indirizzi IP disponibili per la sotto-rete; si vuole rendere automatica l’assegnazione degli indirizzi IP di clienti richiedenti. 95 DHCP- Riepilogo (2/2) DHCP server: 223.1.2.5 DHCP discover arriving client src: 0.0.0.0 dest: 255.255.255.255 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer DHCP request tempo src: 0.0.0.0 dest: 255.255.255.255 yiaddr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 sec src: 223.1.2.5 dest: 255.255.255.255 yiaddr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 sec DHCP ACK src: 223.1.2.5 dest: 255.255.255.255 yiaddr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 sec 96 Domain Name System (DNS) (1/5) Gli indirizzi IP sono numerici e, quindi, di difficile memorizzazione. Per questo motivo, è stato definito un meccanismo di identificazione alfabetica degli indirizzi IP (di sotto-rete e di utente terminale) che va sotto il nome di Domain Name System (DNS). Il DNS definisce una struttura gerarchica di indirizzi alfabetici che sono univocamente associati ai corrispondenti indirizzi IP. I Server DNS provvedono alla traduzione alfabetico -> numerica e numerica-> alfabetica degli indirizzi 97 Domain Name System (DNS) (2/5) La struttura degli indirizzi alfabetici definita dal DNS è strettamente gerarchica e si articola (essenzialmente) su 4 livelli, di ordine via via decrescente: i. ii. iii. iv. v. radice (root): indica la radice dell’albero dei nomi; primo livello: individua il tipo di struttura, che può identificare una topologia di organizzazione, una nazione o entrambe; secondo livello: individua la specifica organizzazione all’interno della struttura; terzo livello: individua la struttura locale (dipartimento) all’interno dell’organizzazione; quarto livello: individua l’utente terminale finale all’interno della struttura locale 98 DNS (3/5) La struttura del primo e secondo livello è riportata in Figura. Root com edu gov mil net int org “ci” 99 DNS (4/5) Essa prevede (almeno) sette tipi di organizzazioni, e cioè: i. ii. iii. iv. v. vi. vii. viii. com: organizzazioni commerciali; edu: istituzioni di istruzione; gov: organizzazioni governative; mil: organizzazioni militari; net: organizzazioni di supporto alla rete Internet; int: organizzazioni internazionali; org: organizzazioni diverse dalla precedente; “ci”: country identifier (due lettere; it per l’Italia) 100 DNS (5/5) Nel DNS, gli indirizzi completi di utente vengono generati unendo in sequenza gli identificatori dei vari livelli, procedendo dal livello più basso sino al primo livello, e separando i vari identificatori mediante punti. Ad esempio, enzo.infocom.edu.it nick.elet.uniroma1.edu.it 101 Internet Control Message Protocol (ICMP) 102 ICMP- Motivazioni Il protocollo IP è senza connessione e non affidabile. Se un router non riesce ad instradare o a consegnare un datagramma o se riscontra situazioni anomale (tra cui congestione di rete) deve poterle notificare al mittente del datagramma, affinchè siano attuate opportune operazioni per correggere il problema. o o o o un dispositivo di rete non funziona correttamente o non funziona del tutto (incluse le linee di collegamento); l’host di destinazione è temporaneamente o permanentemente disconnesso dalla rete; il contatore del Time to Live del datagramma arriva a zero e il datagramma è scartato; i router o le linee intermedie sono talmente congestionate da non poter convogliare il traffico in transito. 103 ICMP- Generalità (1/2) Per consentire ai router di potersi scambiare informazioni su tali situazioni si usa ICMP (Internet Control Message Protocol). ICMP è parte integrante di IP e deve essere incluso in ogni implementazione di IP I messaggi ICMP sono: i. ii. trasportati in rete per mezzo dei datagrammi IP; incapsulati nella parte dati (campo payload) del datagramma IP. 104 ICMP- Generalità (2/2) In essenza, il protocollo ICMP è un protocollo che serve a: i. ii. iii. segnalare eventuali situazioni anomale nel trasferimento dei pacchetti IP; controllare il trasferimento dei pacchetti IP; notificare alle sorgenti eventuali problemi (ad esempio, errori di indirizzamento). 105 ICMP- Funzionamento In caso di malfunzionamento della rete, ICMP provvede ad uno scambio di messaggi fra i nodi coinvolti per segnalare l’errore. La funzione di ICMP è solo di notifica degli errori all’utente di origine e non specifica le azioni che devono essere prese per rimediare agli errori ed ai malfunzionamenti. Se causa del problema è un router intermedio, ICMP può solo notificare che esiste un problema, ma non da quale router dipenda. Ogni messaggio ICMP è in relazione ad uno specifico datagramma (contiene, quindi, anche un identificativo del particolare datagramma che ha generato l’errore). 106 ICMP- Formato dei messaggi campo tipo e un campo codice, e, inoltre, contengono l’header e i primi 8 byte del payload del datagramma che ha provocato l’errore. I Messaggi ICMP hanno un Tipo 0 3 3 3 3 3 3 4 8 9 10 11 12 Codice 0 0 1 2 3 6 7 0 0 0 0 0 0 Descrizione Risposta eco (a ping) rete destin. irraggiungibile host destin. irraggiungibile protocollo dest. irraggiungibile porta destin. irraggiungibile rete destin. sconosciuta host destin. sconosciuto riduzione (controllo di congestione) richiesta eco annuncio del router scoperta del router TTL scaduto errata intestazione IP 107 Conversione degli Indirizzi IP negli Indirizzi MAC- Address Resolution Protocol (ARP) 108 Indirizzi IP e Indirizzi MAC (1/2) Indirizzo IP a 32 bit: o o o indirizzo a livello di rete; analogo all’indirizzo postale di una persona: hanno una struttura gerarchica e devono esser aggiornati quando una persona cambia residenza; è associato ad una interfaccia o ad una sottorete. Indirizzo MAC a 48 bit: o o o analogo al numero di codice fiscale di una persona: ha una struttura “piatta” e non varia a seconda del luogo in cui l’utente si trasferisce; indirizzo a 48 bit è associato ad un adattatore. 109 Indirizzi IP e Indirizzi MAC (2/2) Poiché, quindi, ogni interfaccia (di utente e di router) dispone sia di un indirizzo IP che un indirizzo MAC, nasce il seguente problema: o dato un indirizzo IP, determinare l’indirizzo MAC corrispondente. Ad ogni nodo di rete (utente o route), l’Address Resolution Protocol (ARP) ivi implementato permette di determinare l’indirizzo MAC corrispondente ad un dato indirizzo IP. 110 ARP- Generalità (1/3) Lo scenario di applicazione tipico di ARP è riportato in Figura. 137.196.7.78 1A-2F-BB-76-09-AD 137.196.7.14 137.196.7.23 LAN 71-65-F7-2B-08-53 137.196.7.88 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 111 ARP- Generalità (2/3) Più specificatamente, ogni adattatore presente in un nodo di rete (utente o router) implementa ARP avvalendosi della Tabella ARP memorizzata localmente nell’adattatore stesso. Ciascuna riga della Tabella ARP memorizzata nell’Adattatore H contiene: i. ii. iii. l’indirizzo IP di una interfaccia che fa parte della stessa sotto-rete alla quale appartiene l’Adattatore H; l’indirizzo MAC corrispondente all’indirizzo IP; il Tempo di Vita Restante (Time-To-Live,TTL), ossia l’intervallo di tempo scaduto il quale la riga in oggetto verrà rimossa dalla Tabella ARP (tipicamente, 20 minuti). 112 ARP- Generalità (3/3) solo localmente nella sotto-rete di appartenenza dell’adattatore in cui è implementato. Assumiamo che l’Adattatore H richieda di conoscere l’indirizzo MAC corrispondente ad un assegnato indirizzo IP: 222.222.222.222. Allora, solo se l’interfaccia con indirizzo IP: 222.222.222.222 appartiene alla stessa sotto-rete alla quale appartiene l’adattatore H, il protocollo ARP (eseguito all’interno dell’adattatore H) sarà in grado di determinare l’indirizzo MAC associato al richiesto indirizzo IP: 222.222.222.222 ARP lavora 113 Auto-Configurazione delle Tabelle ARP (1/5) Inizialmente, la Tabella ARP memorizzata presso il (generico) adattatore H è vuota. Supponiamo che: o o o o l’adattatore H ha indirizzo MAC: 1A-23-F9-CD-06-9B; l’adattatore H fa parte dell’interfaccia con indirizzo IP: 222.222.222.220; l’adattatore H vuole conoscere l’indirizzo MAC di un altro adattatore (diciamo, l’adattatore F) il cui indirizzo IP è noto e pari a: 222.222.222.222; entrambi gli adattatori H e F fanno parte della stessa sotto-rete 114 Auto-Configurazione delle Tabelle ARP (2/5) Al fine di conoscere l’indirizzo MAC corrispondente all’indirizzo IP: 222.222.222.222, l’adattatore H procede come segue: 1) costruisce un particolare datagramma, noto come ARP Query Message all’interno del quale sono specificati: o o o o l’indirizzo MAC del nodo Sorgente : nel nostro caso, 1A-23-F9-CD-06-9B; l’indirizzo IP del nodo Sorgente : nel nostro caso, 222.222.222.220 l’indirizzo IP del nodo Target : nel nostro caso, 222.222.222.222 l’indirizzo MAC del nodo Target : vuoto. Sour. MAC Address (1A-23-F9-CD-06-9B) 6 byte Sour. IP Address (222.222.222.220) 4 byte Target IP Address (222.222.222.222) 4 byte Target MAC Address (vuoto) 6 byte 115 Auto-Configurazione delle Tabelle ARP (3/5) Incapsula l’ARP Query Message in una trama che ha: 2) o o Indirizzo MAC Sorgente: quello dell’adattatore H, cioè 1A-23-F9-CD-06-9B; Indirizzo MAC Destinazione: FF-FF-FF-FF-FF-FF Invia in broadcast la trama a tutti gli adattatori della sotto-rete di appartenenza. 4) Tutti gli adattatori della sotto-rete ricevono la Trama. Solo l’adattatore (diciamo, l’adattatore F) che fa parte del nodo con indirizzo IP pari a quello specificato nel campo Target IP Address del Query Message elabora la trama ricevuta. 3) 116 Auto-Configurazione delle Tabelle ARP (4/5) Specificatamente, l’adattatore F procede come segue: 1) 2) 3) estrae dalla trama ricevuta il Query Message; introduce nel campo: Target MAC Address del Query Message il proprio indirizzo MAC, ossia l’indirizzo: 49-BDD2-C7-56-2A; incapsula il Query Message così completato in una trama che ha: o o 7) Source MAC address pari a quello dell’adattatore F, ossia 49BD-D2-C7-56-2A; Destination MAC address pari a quello dell’adattatore H, ossia 1A-23-F9-CD-06-9B invia la trama nella sotto-rete. 117 Auto-Configurazione delle Tabelle ARP (5/5) L’adattatore H, riceve la trama ad esso indirizzata e: i. ii. estrae dalla trama il Query Message; aggiorna la propria Tabella ARP sulla base dei contenuti dei campi: Target IP Address e Target MAC Address del Query Message. Dopo l’Aggiornamento, la Tabella ARP dell’Adattore H contiene una riga del tipo: Indirizzo IP . . . 222.222.222.222 . . . Indirizzo MAC . . . 49-BD-D2-C7-56-2A . . . Tempo di Vita . . . 20 minuti . . . 118 Trasferimento di Datagrammi tra nodi- Generalità Gli indirizzi IP e MAC svolgono un ruolo importante quando due nodi vogliono scambiarsi datagrammi incapsulandoli nelle trame dei corrispondenti adattatori. Supponiamo che le Tabelle ARP di tutti gli adattatori coinvolti siano già state aggiornate e che, quindi, contengano tutte le coppie < indirizzo IP, indirizzo MAC > necessarie per effettuare il trasferimento. Consideriamo separatamente due casi: i. i due nodi che si vogliono scambiare datagrammi appartengono alla stessa sotto-rete; ii. i due nodi che si vogliono scambiare datagrammi appartengono a due sotto-reti distinte, interconnesse mediante un router. 119 Trasferimento di Datagrammi nella stessa Sotto-Rete (1/2) Supponiamo che il nodo-Sorgente con indirizzo IP: 222.222.222.220 voglia inviare un datagramma al nodoDestinazione con indirizzo IP: 222.222.222.222 Supponiamo che i due nodi appartengano alla stessa sotto-rete (non vi sono router che interconnettono i due nodi) Supponiamo che l’adattatore S presente al nodoSorgente abbia indirizzo Mac: 1A-23-F9-CD-06-9B e l’adattatore D presente al nodo-Destinazione abbia indirizzo MAC: 49-BD-D2-C7-56-2A. Supponiamo che la Tabella ARP memorizzata all’adattatore S contenga la coppia: 222.222.222.222 49-BD-D2-C7-56-2A 120 Trasferimento Dati nella stessa Sotto-Rete (2/2) i. Il Trasferimento procede come segue: ii. iii. iv. v. il nodo-Sorgente genera un datagramma con IP Source Address = 222.222.222.220 IP Destination Address = 222.222.222.222; il nodo-Sorgente passa il datagramma al suo adattatore, ossia all’adattatore S; l’adattatore S consulta la sua Tabella ARP e trova che all’indirizzo IP Destination Address = 222.222.222.222 corrisponde il MAC Destination Address = 49-BD-D2C7-56-2A; l’adattatore S incapsula il datagramma in una trama e ne compila i campi indirizzo come segue: MAC Source Address = 1A-23-F9-CD-06-9B MAC Destination Address = 49-BD-D2-56-2A. L’adattatore S invia la trama nella sotto-rete. 121 Trasferimento di Datagrammi tra Sotto-Reti diverse (1/6) Consideriamo ora il caso riportato in Figura, in cui il nodo-S vuole inviare un datagramma al nodo-D. I due nodi appartengono a due sotto-reti diverse , che sono interconnesse mediante un router che ha due interfacce (e, quindi, due Tabelle ARP). 74-29-9C-E8-FF-55 S 88-B2-2F-54-1A-0F A 111.111.111.111 E6-E9-00-17-BB-4B Subnet 1 111.111.111.112 CC-49-DE-D0-AB-7D 1A-23-F9-CD-06-9B 222.222.222.220 111.111.111.110 Sub-net 2 222.222.222.221 222.222.222.222 B D 49-BD-D2-C7-56-2A 122 Trasferimento di Datagrammi tra Sotto-Reti diverse (2/6) Assumiamo che: i. ii. iii. il nodo-S conosca l’indirizzo IP del nodo-D, ma non ne conosca l’indirizzo MAC. Poiché il nodo-D non appartiene alla stessa sotto-rete del nodo-S, il nodoS non può applicare ARP per acquisire l’indirizzo MAC del nodo-D; le Tabelle ARP presenti in ciascuno degli adattatori sono aggiornate, ossia contengono tutte le coppie < indirizzo IP, indirizzo MAC > delle interfacce che appartengono alla stessa sotto-rete della quale fa parte l’adattatore; ciascuna delle due interfacce del router ha memorizzata una propria Tabella ARP con le coppie di indirizzi < IP, MAC> di tutte le interfacce della sottorete corrispondente. 123 Trasferimento di Datagrammi tra Sotto-Reti diverse (3/6) Il trasferimento del datagramma da nodo-S al nodo-D procede come segue: 1) 2) 3) il nodo-S genera un datagramma con : IP Source Address = il proprio, ossia 111.111.111.111 IP Destination Address = quello del nodo-D, ossia 222.222.222.222; il nodo-S usa la Tabella ARP per ricavare l’indirizzo MAC dell’interfaccia del router con indirizzo IP: 111.111.111.110. Questo indirizzo MAC è: E6-E9-00-17BB-4B; Il nodo-S passa il datagramma e l’indirizzo MAC E6E9-00-17-BB-4B al proprio adattatore. 124 Trasferimento di Datagrammi tra Sotto-Reti diverse (4/6) 4) 5) 6) l’adattatore del nodo-S incapsula il datagramma in una trama, e pone i campi indirizzo della trama pari a: MAC Source Address = 74-29-9C-E8-FF-55, MAC Destination Address = E6-E9-00-17-BB-4B; l’adattatore al nodo-S invia la trama nella sottorete; l’adattatore di sinistra del router riceve la trama ad esso indirizzata, ne estrae il datagramma, ne legge l’indirizzo IP di destinazione e, sulla base di quest’ultimo, inoltra (forward) il datagramma verso l’adattatore connesso con la sotto-rete 2. 125 Trasferimento di Datagrammi tra Sotto-Reti diverse (5/6) 7) Il suddetto adattatore (quello a destra del router) fa ricorso alla propria Tabella ARP e trova che all’indirizzo IP: 222.222.222.222 contenuto nel datagramma corrisponde l’indirizzo MAC: 49-BDD2-C7-56-2A. 8) L’adattatore a destra del router incapsula il datagramma ricevuto in una trama, i cui campi indirizzo sono posti a: MAC Source Address = 1A-23-F9-CD-06-9B, MAC Destination Address = 49-BD-D2-C7-56-2A; 126 Trasferimento di Datagrammi tra Sotto-Reti diverse (6/6) 9) l’adattatore a destra del router invia la trama nella sotto-rete 2; 10) l’adattatore al nodo-D riceve la trama ad esso indirizzata, ne estrae il datagramma e lo passa al nodo-D al quale è connesso. 127 Algoritmi di InstradamentoIntroduzione 128 La funzione dell’Instradamento (1/2) L’instradamento è una funzione decisionale: o avente lo scopo di guidare i datagrammi verso la destinazione voluta; o svolta secondo un opportuno criterio; o attuabile mediante un opportuno algoritmo. Nello Strato di Rete, l’instradamento viene attuato mediante la costruzione di apposite Tabelle di Instradamento in ciascun router nelle quali Tabelle ciascuna riga si riferisce ad una rotta, cioè ad un cammino tra sorgente e destinazione. 129 La funzione dell’Instradamento (2/2) Le Tabelle di Instradamento vengono costruite tramite Algoritmi di Instradamento implementati da Protocolli di Instradamento per i quali si individuano come fattori critici: complessità rapidità di convergenza traffico addizionale generato All’interno di ciascun router, la Tabella di Inoltro è calcolata sulla base della corrispondente Tabella di Instradamento. 130 Classificazione degli Algoritmi di Instradamento Un modo per classificare gli Algoritmi di Instradamento è funzione del fatto che si tratti di: 1) un algoritmo di instradamento globale (o centralizzato) che è chiamato anche algoritmo basato sullo stato dei collegamenti (link-state algorithm): o ciascun nodo usa conoscenze sulla rete complete e globali; o dati di partenza sono le connettività fra tutti i nodi e i costi dei relativi rami; 3) un algoritmo di instradamento decentralizzato: o i nodi operano in modo interattivo e distribuito; o ogni nodo comincia con la conoscenza del costo dei soli collegamenti che ad esso fanno capo e scambia, via via nel tempo, informazioni di instradamento solo con i nodi ad esso direttamente collegati. 131 Grafi non orientati e pesati (1/5) Tipicamente, gli Algoritmi di Instradamento lavorano facendo riferimento alla rappresentazione mediante un grafo (non orientato) G della rete in oggetto. Per definizione, un grafo non orientato G(N, E) è costituito da un insieme N di nodi e un insieme E di rami, dove ciascun ramo è una coppia (a,b) non ordinata di nodi appartenenti ad N. 132 Grafi non orientati e pesati (2/5) Il numero dei nodi che compongono N è indicato con |N|. Il numero di rami che compongono E è indicato con | E |. Nel contesto della rete Internet, i. ii. i nodi del grafo rappresentano i router (cioè, i nodi di commutazione della rete); i rami del grafo rappresentano i canali trasmissivi che interconnettono i router. 133 Grafi non orientati e pesati (3/5) 5 V 3 W 2 5 2 U 1 X 1 3 1 Y Z 2 Come indicato in Figura, ad ogni ramo (x,y) di G è associato un numero reale non negativo c(x,y) detto costo del ramo. Poiché il grafo non è orientato, i rami (x,y) e (y,x) hanno lo stesso costo, ossia: c(x,y) = c(y,x). Per convenzione, se il ramo (x,y) non fa parte del grafo G, allora si pone c(x,y) = +∞ 134 Grafi non orientati e pesati (4/5) Per definizione, i vicini di un nodo x sono tutti e soli i nodi del grafo che hanno un ramo che li collega a x. L’insieme dei nodi vicini di un nodo x verrà indicato con V(x). Supponiamo che x e w siano due nodi di G(N, E). Per definizione, un cammino da x a y è una sequenza ordinata di nodi << n0, n1, n2,…, nL > tale che: i. ii. x ≡ n0 e w ≡ nL (il cammino inizia in x e termina in y), la coppia (ni-1, ni) è un ramo del grafo G, per ogni i=1,…,L, ossia (ni-1, ni) ∊ E, per ogni i = 1,…,L. 135 Grafi non orientati e pesati (5/5) Per definizione, il costo di un cammino < x ≡ n0, n1, n2,…, nL ≡ w > è la somma dei costi dei rami che compongono il cammino stesso, ossia: c(x = n0, n1)+ c(n1, n2)+ …+ c(nL-1, cL ≡ w ). Per definizione, un ciclo in un grafo G è un cammino: < x ≡ n0, n1, n2,…, nL ≡ x > che ha inizio e fine in uno stesso nodo x del grafo. Per definizione, un grafo G<N, E > si dice connesso se , assegnati due qualunque nodi distinti x e w del Grafo, c’è almeno un cammino che collega x a w. 136 Alberi (1/3) Supponiamo assegnato un grafo G<N, E > . Per definizione, il grafo G costituisce un albero se: è connesso; non ha cicli. i. ii. Si può dimostrare che se G<N, E > è un albero, allora: i. ii. iii. il numero di rami | E | è pari a | N |-1; ogni nodo dell’albero può essere preso come radice; i nodi dell’albero possono essere partizionati in livelli, in cui il livello m-mo è costituito da tutti i nodi dell’albero che distano m-rami dal nodo radice. 137 Alberi- Esempio (2/3) Il Grafo seguente è un esempio di albero a 3 livelli. Radice 3 5 2 x 2 A H y z livello 1 3 livello 2 B livello 3 138 Alberi- Esempio (3/3) Per definizione, le foglie di un albero sono i nodi terminali, ossia quelli che non hanno nodi discendenti. L’albero dell’esempio precedente ha come foglie i nodi: x, z, H, B 139 Alberi Ricoprenti un Grafo (1/2) Supponiamo assegnato un grafo G<N, E > di struttura arbitraria. Per definizione, un “albero ricoprente il grafo G ” è un grafo <N, > che gode delle seguenti tre proprietà: i. ii. iii. è un albero; ha lo stesso insieme N di nodi del grafo G; l’insieme dei rami è un sotto-insieme dell’insieme E dei rami del grafo G, ossia: 140 Alberi Ricoprenti un Grafo (2/2) Un grafo G <N, E > può avere più alberi che lo ricoprono. Per definizione, un albero G* ricoprente G è detto essere albero ricoprente minimale se, tra tutti gli alberi che ricoprono G, G* è quello per cui è minima la somma dei costi associati ai rami che compongono l’albero. 141 Algoritmi per l’Instradamento Ottimo 142 Algoritmi di Instradamento Ottimo (1/2) Supponiamo assegnato un grafo G <N, E > connesso e indichiamo con x, w due nodi distinti di N. In generale, esistono più cammini nel grafo G che connettono il nodo x al nodo w. Ciascuno di questi cammini ha un suo costo. Il Problema dell’Instradamento Ottimo è quello di individuare il cammino a costo minimo tra x e w, per ogni coppia di nodi x, w che appartiene a N, con x ≠ w. 143 Algoritmi di Instradamento Ottimo (2/2) Assegnato un grafo G <N, E > connesso, gli algoritmi che permettono di individuare i cammini a costo minimo tra una qualsiasi coppia di nodi (x, w) di N sono detti Algoritmi di Instradamento Ottimo. Nella Rete Internet, vengono impiegati due algoritmi di instradamento ottimo: i. L’Algoritmo di Dijkstra ii. L’Algoritmo Distance Vector. 144 Algoritmo di Dijkstra- Generalità (1/3) Supponiamo assegnato un grafo G<N, E > non orientato, pesato e connesso. Indichiamo con x̄ ∊ N uno (qualsiasi) dei nodi di G. L’Algoritmo di Dijkstra permette di individuare gli (|N|-1) cammini a costo minimo da x̄ a tutti gli altri (|N|-1) nodi del grafo G. L’Algoritmo di Dijkstra è un algoritmo di instradamento globale (ovvero centralizzato, ovvero di tipo Link-State (LS)). Ciò significa che: o Il nodo x̄ deve conoscere l’intero grafo G <N, E > della rete a cui appartiene per poter applicare l’algoritmo di Dijkstra. 145 Algoritmo di DijkstraGeneralità (2/3) iterativo che si compone (esattamente) di |N| passi. Al passo k-mo, sono individuati i k cammini a costo minimo congiungenti a k nodi distinti di G. Tali k nodi costituiscono l’insieme Sk. Al passo (k+1)-mo, si forma l’insieme Sk+1 aggiungendo un ulteriore nodo all’insieme Sk. Specificatamente, si aggiunge a Sk quel nodo di N che è raggiungibile da attraverso il cammino a costo minore che transita esclusivamente attraverso i nodi dell’insieme Sk. L’ Algoritmo di Dijkstra è un algoritmo 146 Algoritmo di Dijkstra- Generalità (3/3) Viene aggiunto x2 Xk-1 n x1 Insieme Sk xi Insieme Sk+1 all’insieme Sk il nodo n caratterizzato dal cammino di lunghezza minima con il nodo sorgente e che transita esclusivamente in nodi dell’insieme S k. Situazione al passo k+1 147 Algoritmo di Dijkstra – Strutture dati Supponiamo che l’algoritmo di Dijkstra sia eseguito al nodo-Sorgente . Supponiamo che conosca il grafo G <N, E> dell’intera rete di cui fa parte. Indichiamo con: i. D(v) il costo del cammino dal nodo al nodo v individuato alla iterazione corrente dell’algoritmo; ii. p(v) il nodo predecessore di v lungo il cammino da a v individuato alla iterazione corrente dell’algoritmo; N* il sotto-insieme dei nodi per i quali sono stati calcolati definitivamente i cammini a costo minimo dal nodo sorgente . 148 Algoritmo di Dijkstra – Descrizione dettagliata 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. /* Inizializzazione */ N* := { }; Per tutti i nodi v (N \ N*) se v è adiacente ad allora D(v) := c ( altrimenti D(v) := +∞ ,v) e p(v):= { e p(v):=Ø; }; Loop /* ciclo ripetuto (|N|-1 volte) */ Individua un nodo w N* tale che D(w) è minima; Aggiungi w a N*; Aggiorna D(v) e p(v) per tutti i nodi v adiacenti a w e che non sono in N* come segue: D(v) := min {D(v), D(w) + c (w,v)}; p(v) := Until N*= N. p(v), se D(v) non è cambiato w, se D(v) è cambiato ; 149 Algoritmo di Dijkstra - Commenti L’algoritmo termina in esattamente |N| passi. Le (|N| -1) coppie {D(v), p(v), v (N - { })} ottenute alla fine dell’algoritmo danno: i. Il costo del cammino a costo minimo da a v ; ii. Il nodo predecessore di v sul cammino a costo minimo da a v. I Passi 8 e 11 dell’algoritmo richiedono che il nodo conosca l’intero grafo G < N, E > della rete alla quale è connesso. A sua volta, questo richiede che ciascun nodo w N comunichi a tutti gli altri nodi della rete i costi di tutti i rami ad esso direttamente connessi. 150 Algoritmo di Dijkstra Complessità Il Ciclo in linea 7 viene ripetuto (|N| -1) volte. Alla k-ma iterazione, il passo in linea 8 esegue la ricerca di un nodo w su un insieme di (|N| - k) nodi. Quindi, il costo computazionale complessivo per l’esecuzione del Ciclo è di: (|N| - 1) + (|N| - 2) + (|N| - 3) + … + 2 + 1 = (|N| -1)|N|/2 In definitiva, eseguire l’Algoritmo di Dijkstra al nodo comporta un peso computazionale dell’ordine di O(|N|2) , che, quindi, cresce con il quadrato del numero di nodi che compongono la rete. 151 Algoritmo di Dijkstra – Esempio (1/2) passo N* D(v), p(v) D(w), p(v) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2,u 5,u 1,u ∞ ∞ 1 ux 2,u 4,x 2,x ∞ 2 uxy 2,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 5 uxyvwz 4,y 5 2 u v 2 1 x 3 w 3 5 z 1 2 Baccarelli, y 1 Cordeschi, Patriarca, Polli 152 Algoritmo di Dijkstra – Esempio (2/2) Cammini a costo minimo risultanti dal nodo u v w u z x y Tabella di instradamento risultante in u Destinazione Nodo successivo v x v x y x w x z x 153 Algoritmo Distance Vector (DV) Generalità Supponiamo assegnato un grafo G < N, E > e indichiamo con un suo nodo. Come l’Algoritmo di Dijkstra, anche l’algoritmo DV è un algoritmo per l’instradamento ottimo che consente di calcolare i cammini a costo minimo da a tutti gli altri ((|N| -1) nodi del grafo. A differenza dell’Algoritmo di Dijkstra, l’Algoritmo DV è un algoritmo di instradamento di tipo: i. Distribuito : ciascun nodo di rete scambia informazioni (Tabelle di instradamento) solo ed esclusivamente con i suoi nodi vicini; ii. Iterativo : il processo di scambio di informazioni di instradamento tra nodi adiacenti continua sin tanto che l’informazione scambiata in due passi consecutivi è la stessa; iii. Asincrono : lo scambio di informazioni (Tabelle di Instradamento) tra coppie diverse di nodi adiacenti può avvenire in istanti temporali diversi. 154 Il Principio di Bellman-Ford (BF)Enunciato (1/2) L’algoritmo DV applica iterativamente il così detto Principio di Bellman-Ford. Siano: – – – – – e y due nodi (distinti) del grafo G; v un nodo vicino di ; V( ) l’insieme di tutti i nodi vicini di ; d (y) il costo del cammino a costo minimo da a y; dv (y) il costo del cammino a costo minimo da v a y. 155 Il Principio di Bellman-Ford (BF) : Enunciato (2/2) Principio di Bellman-Ford asserisce quanto segue: Allora, il il cammino a costo minimo da a y non può che essere la prosecuzione del cammino a costo minimo da uno dei nodi v vicini di al nodo y. 156 Il Principio di BF – Formula (1/2) In formule, il Principio di BF è rappresentato dalla relazione seguente: La relazione precedente è detta Equazione di BF. 157 Il Principio di BF – Formula (2/2) La prova della validità dell’Equazione di BF è piuttosto diretta. Infatti, i. ii. Dopo essere andati da a v, se seguiamo il cammino a costo minimo da v a y, il costo complessivo del cammino risultante è: c( ,v) + dv(y); Poiché il cammino da a y deve per forza prevedere il passaggio da ad un qualche vicino di , ne deriva che il costo minimo da a y è il minimo delle somme {c( ,v) + dv(y)} al variare di v nell’insieme V( ) dei vicini di . 158 Il Principio di BF - Esempio I nodi vicini del nodo u sono: v, x, w; Chiaramente: dv(z) = 5, dx(z) = 3, dw(z) = 3 L’equazione di BF ci dice che: 5 du(z) = min { c(u,v) + dv(z), 3 v w 5 2 c(u,x) + dx(z), u 2 1 z c(u,w) + dw(z) } 3 1 = min {2 + 5, 2 x y 1 1 + 3, 5 + 3} = 4 Il valore minimo precedente è ottenuto: i. Passando da u a x; ii. Seguendo il cammino a costo minimo da x a z; quindi, nella Tabella di Instradamento del nodo u, il nodo x è indicato come nodo successivo (next-node) per il raggiungimento del nodo z. 159 L’equazione di BF e la Tabella di Instradamento Il nodo v* soluzione dell’equazione di BF: è il successivo nodo verso il quale il nodo deve instradare (dirigere) i suoi datagrammi per raggiungere il nodo destinazione y attraverso il cammino a costo minimo. Quindi, la costruzione della Tabella di Instradamento al nodo richiede che il nodo risolva l’equazione di BF per ogni altro nodo-destinazione y presente nella rete. L’algoritmo DV non è altro che una procedura di tipo iterativo, asincrono e distribuito per risolvere le Equazioni di BF ad ogni nodo della rete. 160 L’Algoritmo DV – La Struttura dei Dati Per poter applicare l’algoritmo DV, ciascun nodo del grafo G < N, E > deve memorizzare al suo interno i seguenti dati: i. L’insieme {c( ,v), v V( )} dei costi dei canali che collegano a ciascuno dei suoi nodi vicini; ii. Il vettore contenente le stime dei costi dei cammini da ad ogni altro nodo y del grafo; iii. L’insieme dei vettori delle stime dei costi dei cammini da v ad ogni altro nodo y del grafo, per ogni nodo che è un vicino di . 161 L’Algoritmo DV – L’idea di base (1/2) In linea di massima, l’algoritmo DV procede come segue: i. Di tanto in tanto, ciascun nodo v della rete invia il proprio vettore delle distanze a tutti e soli io suoi nodi adiacenti; ii. Quando un nodo riceve un nuovo vettore delle distanze da uno qualsiasi dei suoi nodi adiacenti, il nodo salva il vettore delle distanze ricevuto, e, poi, aggiorna il contenuto del proprio vettore delle distanze in accordo all’equazione di BF, ossia in accordo a: 162 L’Algoritmo DV – L’idea di base (2/2) iii. Se e solo se il contenuto del risultante vettore delle distanze è variato (in una o più delle sue componenti) per effetto dell’aggiornamento effettuato, allora il nodo invia il suo nuovo vettore delle distanze a tutti e soli i suoi nodi adiacenti v V( ). iv. Si può dimostrare che, quando non c’è più alcuno scambio di vettori delle distanze memorizzato in ciascun nodo contiene proprio i costi dei percorsi a costo minimo che connettono a tutti gli altri nodi y N della rete. 163 L’Algoritmo DV eseguito al nodo x 1. 2. /* Inizializzazione */ Per tutti i nodi y N - { 3. Poni 5. 6. 7. 8. Per ciascun nodo adiacente v V( ) di poni Dv(y):= + ∞, per ogni y N - {v }; Per ciascun nodo adiacente v V( ) di invia il vettore Distanze 13. 14. Loop /* fase iterativa e asincrona */ Attendi (la ricezione di un Vettore Distanze inviatoti da un tuo vicino oppure il cambiamento del costo di uno dei canali a te collegati); Per ciascun y N - { } calcola aggiorna /* è la soluzione dell’eq BF */ costruisci Se è cambiato dal passo precedente Allora invia a tutti i tuoi vicini v V( ); Torna alla riga 9 del programma. 15. 16. 17. 18. 19. 20. 21. } a v; 164 L’Algoritmo DV - Commenti Il nodo quando: aggiorna il suo vettore delle distanze solo i. Riceve un nuovo Vettore delle Distanze da uno dei suoi nodi vicini; ii. Si verifica una variazione in uno dei costi {c( ,v), v V ( )} dei canali ad esso direttamente connessi (vedi Linea 9); in Linea 12 è aggiornato col nodo v* soluzione dell’Equazione di BF per il cammino ottimo da a y; quindi v* è il nodo successivo al quale deve inviare i datagrammi diretti a y. v* è, quindi, memorizzato nella Tabella di Instradamento del nodo come nodo successivo del cammino ottimo da a y. Nell’algoritmo DV, lo scambio dei Vettori delle Distanze avviene solo tra coppie di nodi adiacenti (vedi le Linee 6, 7, 15). Per questo motivo, l’algoritmo DV è di tipo distribuito. 165 Esempio di applicazione dell’Algoritmo DV (1/2) from Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 x 2 y 1 7 z from from from Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 node x table cost to cost to x y z x y z x 0 2 7 x 0 2 3 y 2 0 1 y ∞∞ ∞ z 7 1 0 z ∞∞ ∞ node y table cost to x y z x ∞∞∞ y 2 0 1 z ∞∞ ∞ node z table cost to x y z x∞∞ ∞ y ∞∞ ∞ z 71 0 Baccarelli, Cordeschi, Patriarca, Polli time 166 Esempio di applicazione dell’Algoritmo DV (2/2) x y z from from x y z cost to x y z 0 2 3 2 0 1 7 1 0 cost to x y z 0 2 7 2 0 1 7 1 0 cost to x y z 0 2 7 2 0 1 3 1 0 from from x y z from from from from node x table cost to x y z x 0 2 7 y ∞∞ ∞ z ∞∞ ∞ node y table cost to x y z x ∞ ∞ ∞ y 2 0 1 z ∞∞ ∞ node z table cost to x y z x ∞∞ ∞ y ∞∞ ∞ z 7 1 0 from Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 x y z x y z x y z Baccarelli, Cordeschi, Patriarca, Polli Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 cost to x y z 0 2 3 2 0 1 3 1 0 cost to x y z 0 2 3 2 0 1 3 1 0 cost to x y z 0 2 3 2 0 1 3 1 0 time x 2 y 7 1 z 167 Confronto tra gli algoritmi Dijkstra e DV I due algoritmi convergono alla stessa soluzione ottima. L’algoritmo DV è (teoricamente) più complesso; ma nei casi pratici i due algoritmi si equivalgono. L’algoritmo di Dijkstra richiede che un nodo conosca l’intera topologia della rete e il peso (stato) di tutti i rami • Necessità di colloquio tra tutte le coppie di nodi L’algoritmo DV richiede la conoscenza dello stato dei rami uscenti da un nodo insieme alle informazioni provenienti dai soli nodi vicini • Possibilità di colloquio solo tra nodi adiacenti (implementazione distribuita) 168 Algoritmi per l’instradamento gerarchico 169 Instradamento gerarchico – Motivazioni (1/2) Fino ad ora, abbiamo considerato la Rete Internet come un insieme omogeneo di sottoreti interconnesse da router che espletano le medesime funzioni ed applicano un medesimo algoritmo per l’instradamento dei datagrammi. Questa visione omogenea delle Rete Internet in cui tutti i router sono “alla pari” tra di loro e svolgono le stesse funzioni è detta visione non gerarchica (o piatta) della Rete Internet. 170 Instradamento gerarchico – Motivazioni (2/2) Con il crescere del numero di nodi (router e utenti) interconnessi alla Rete Internet, la visione piatta è risultata sempre più inadeguata, per almeno due motivi: i. ii. Motivi di scala (ovvero, di dimensioni) Ad oggi, la rete Internet consiste di circa 200 milioni di utenti. E’ quindi impensabile che ciascuno dei router che interconnette gli utenti memorizzi Tabelle di Instradamento che indirizzino esplicitamente tutti i possibili utenti di Internet; Motivi di autonomia amministrativa Internet è costituita da sotto-reti e, tipicamente, ciascuna sottorete è gestita da uno (specifico) amministratore. In genere, amministratori distinti tendono a gestire e organizzare le proprie sotto-reti secondo modalità (politiche) distinte. Ad esempio, amministratori distinti possono voler attribuire significati diversi ai costi da associare ai canali presenti nelle proprie sotto-reti, o possono voler applicare algoritmi di instradamento diversi nell’ambito delle sotto-reti di competenza. 171 Sistemi Autonomi (1/2) Queste due esigenze hanno portato a sviluppare una visione (modello) gerarchico della Rete Internet, in cui i router sono organizzati in una gerarchia di più livelli, con i router di livello più basso che svolgono funzioni più semplici di quelli di livello più elevato. Specificatamente, nel modello gerarchico, la rete Internet è partizionata in Sistemi Autonomi (Autonomous Systems - ASs). Per definizione, un Sistema Autonomo è caratterizzato da: i. Essere composto da una o più sottoreti interconnesse da router che applicano uno stesso algoritmo di instradamento per scambiarsi datagrammi; ii. Essere amministrato (gestito) da un unico amministratore (entità legale). 172 Sistemi Autonomi (2/2) uno o più router che connettono il Sistema Autonomo ad altri (uno o più) Sistemi Autonomi. Questi router sono detti “Gateway Router” (Router di Porta). L’algoritmo di instradamento che ciascun Sistema Autonomo impiega al suo interno è detto Algoritmo di Instradamento Intra-Sistema Autonomo (Intra-AS Routing Algorithm). Sistemi Autonomi distinti possono impiegare differenti protocolli d’ instradamento intraAS. L’algoritmo di instradamento che i Gateway Router di tutti i Sistemi Autonomi debbono condividere per poter scambiarsi datagrammi tra di loro è detto Algoritmo di Instradamento Inter-Sistema Autonomo (Inter-AS Routing Algorithm). In ciascun Sistema Autonomo, sono presenti 173 Sistemi Autonomi – Esempio 1 (1/2) Sottorete A.1 Sotto-rete B.1 R1 R2 R3 Sottorete A.2 Sistema Autonomo A R5 R4 R6 Sottorete B.2 Sistema Autonomo B 174 Sistemi Autonomi – Esempio 1 (2/2) Nell’Esempio 1, i. Il sistema autonomo A ha tre routers (R1, R2, R3) e due sotto-reti. I router R2 e R3 sono i Gateway Router del Sistema Autonomo A; ii. Il sistema autonomo B ha tre routers (R4, R5, R6) e due sotto-reti. I router R5 e R6 sono i Gateway Router del Sistema Autonomo B; iii. I router R1, R2, R3 comunicano mediante un medesimo algoritmo di Instradamento intra-AS. I Router R4, R5, R6 comunicano mediante un medesimo algoritmo di Instradamento intra-AS. I due algoritmi di instradamento intra-AS adottati possono essere diversi tra di loro. iv. Le coppie di Gateway Routers (R2, R5) e (R3, R6) comunicano adottando un medesimo algoritmo di instradamento inter-AS per entrambe le coppie. 175 Sistemi Autonomi – Esempio 2 (1/2) 3c 3b 3a AS3 1a 2a 1c 1d 1b Intra-AS Routing algorithm 2c AS2 2b AS1 Inter-AS Routing algorithm Tabella di Instradamento 176 Sistemi Autonomi – Esempio 2 (2/2) La Rete dell’Esempio 2 è costituita da tre Sistemi Autonomi. i. Il sistema AS1 è composto dai router 1c, 1a, 1d, 1b ed ha 1b e 1c come Gateway Router; ii. Il sistema AS2 è composto dai router 2a, 2b, 2c ed ha 2a come Gateway Router; iii. Il sistema AS3 è costituito dai router 3a, 3b, 3c ed ha 3a come Gateway Router; iv. Le coppie (3a, 1c) e (1b, 2a) di Gateway Router comunicano tra loro mediante l’Algoritmo di Instradamento inter-AS. 177 Funzioni dell’Algoritmo di Instradamento Inter-AS Un algoritmo (o, meglio, protocollo) di Instradamento Inter-AS deve adempiere a 3 funzioni principali: i. Deve permettere a ciascun AS di apprendere quali sono le sotto-reti della intera Rete Internet raggiungibili attraverso i Sistemi Autonomi direttamente collegati (adiacenti) ad AS stesso (informazioni di raggiungibilità); ii. Deve propagare l’informazione di raggiungibilità a tutti i router che costituiscono il sistema autonomo AS, così che ogni router interno ad AS conosca a quale sistema autonomo adiacente debba inoltrare un datagramma con un prefissato indirizzo IP di destinazione (propagazione delle informazioni di raggiungibilità); iii. Indicare a ciascun router interno ad AS a quale Gateway Router di AS inviare ciascun datagramma di assegnato indirizzo IP di destinazione (informazione di rotta). 178 Interazione tra gli algoritmi di Instradamento Inter-AS e Intra-AS (1/5) Da quanto esposto, ne deduciamo che la Tabella di Instradamento di ciascun router appartenente ad un Sistema Autonomo è aggiornata congiuntamente sulla base sia dell’algoritmo di Instradamento Intra-AS che di quello Inter-AS. Infatti, i. ii. L’algoritmo di Instradamento intra-AS specifica a ciascun router di un Sistema Autonomo A come raggiungere destinazioni che sono all’interno del Sistema Autonomo A stesso; L’algoritmo di instradamento inter-AS specifica a ciascun router del Sistema Autonomo A quale sia il Gateway Router di A al quale inviare un datagramma con assegnato indirizzo IP di destinazione. 179 Interazione tra gli algoritmi di Instradamento Inter-AS e IntraAS: la strategia “hot potato” (2/5) Con riferimento alla figura seguente, 3c 3a 3b AS3 … 1a x 2a 1c 1d 1b 2c AS2 2b AS1 180 Interazione tra gli algoritmi di Instradamento Inter-AS e Intra-AS: la strategia “hot potato” (3/5) Supponiamo che: o o AS1 abbia appreso dall’algoritmo di instradamento inter-AS che la sotto-rete x è raggiungibile sia attraverso AS3 (mediante il Gateway router 1c) sia attraverso AS2 (mediante il Gateway router 1b); Il router 1d (interno a AS1) voglia inviare un datagramma alla sotto-rete di destinazione x; Nasce il seguente problema: Il router 1d dovrebbe inviare il suo datagramma al Gateway router 1c oppure al Gateway router 1b? 181 Interazione tra gli algoritmi di Instradamento Inter-AS e Intra-AS: la strategia “hot potato” (4/5) Il router 1d opera al seguente modo: i. Applica l’algoritmo di instradamento intra-AS per calcolare i costi dei cammini a costo minimo da 1d a 1c e da 1d a 1b; ii. Sceglie dei due cammini quello col costo minimo più basso. La politica di instradamento ora descritta consiste, quindi, nell’inviare il datagramma al Gateway router più vicino tra quelli che consentono di trasferire il datagramma alla destinazione finale desiderata e viene detta “politica di instradamento della patata bollente” (hot potato routing strategy). 182 Interazione tra gli algoritmi di Instradamento Inter-AS e Intra-AS: riepilogo (5/5) In definitiva, le operazioni che ciascun router di un Sistema Autonomo compie per aggiornare la propria Tabella di instradamento sulla base delle informazioni fornitegli dagli algoritmi di instradamento intra-AS e inter-AS possono essere così riassunte: i. Dall’algoritmo di instradamento inter-AS, il router apprende che la sottorete con indirizzo IP z è raggiungibile attraverso più gateway; ii. Il router applica l’algoritmo di instradamento intra-AS per calcolare i costi dei percorsi a costi minimi verso i suddetti gateway; iii. Il router sceglie il gateway al quale corrisponde il cammino a costo minimo inferiore (hot potato strategy); iv. Dalla Tabella di instradamento in esso memorizzata, il router individua la porta di uscita I che lo connette al gateway prescelto. Il router aggiorna la propria Tabella di instradamento aggiungendovi la riga con contenuto: < z,I >. 183 I protocolli di Instradamento di Internet 184 I Protocolli di Instradamento – Generalità (1/2) Nello Strato di Rete di Internet, gli algoritmi di Instradamento precedentemente esaminati vengono attuati mediante opportuni Protocolli di Instradamento. I Protocolli di Instradamento più usati sono: o Il Routing Information Protocol (RIP) e l’Open Shortest Path First (OSPF) come Protocolli di Instradamento intra-AS; o Il Border Gateway Protocol (BGP) come Protocolli di Instradamento inter-AS. 185 I Protocolli di Instradamento – Generalità (2/2) Indipendentemente dall’ Algoritmo di Instradamento implementato, il fine ultimo di ogni Protocolli di Instradamento è quello di: i. Modificare/aggiornare la Tabella di Instradamento presente in ciascun router; ii. Permettere a ciascun router di: o Consegnare il datagramma ad una delle sottoreti alle quali il router è direttamente connesso; oppure o Indirizzare il datagramma al successivo router (next-router) lungo il cammino verso la destinazione finale. 186 Tabelle di Instradamento (1/2) Il meccanismo per l’instradamento in IP è basato su una Tabella che ogni utente o router mantiene allo scopo di conoscere le possibili destinazioni e le modalità per raggiungerle. Una Tabella di Instradamento contiene delle coppie (R, I) dove R è l’indirizzo IP della rete di destinazione e I è l’indirizzo del prossimo router (next-router) lungo la strada che porta alla rete di destinazione. La Tabella di Instradamento specifica quindi solo un passo lungo il cammino verso la destinazione; un router non conosce quindi il cammino completo che il datagramma dovrà compiere. 187 Tabelle di Instradamento (2/2) Al fine di limitare le dimensioni delle le Tabelle di Instradamento, le Tabelle contengono solo informazioni sulle reti di destinazione e non sui singolo nodi (prefissi delle reti di destinazione). Se un router non trova una rotta nella sua Tabella di Instradamento, allora indirizza i suoi datagrammi verso un “router di default” (generalmente un router più potente, destinato principalmente ad operazioni di instradamento). 188 Aggiornamento delle Tabelle di Instradamento Le Tabelle di Instradamento sono dinamiche, ossia: – ogni router ed ogni terminale “impara” nel tempo ed aumentano le informazioni di instradamento in loro possesso aggiornandole nel tempo. La necessità di un aggiornamento dinamico è dovuta al fatto che Internet non può essere considerata stabile. – In caso di guasti alcune rotte non sono più utilizzabili. Infine, se l’instradamento usa un algoritmo adattativo, allora l’aggiornamento deve anche tener conto dello stato di occupazione delle risorse di rete: – Le Tabelle di Instradamento devono quindi tenere conto di tutti questi cambiamenti ed essere aggiornate continuamente (anche ad intervalli di pochi secondi). 189 Struttura generale di un Protocollo di Instradamento al nodo x 1. 2. 3. 4. 5. 6. 7. 8. Estrai l’indirizzo IP di destinazione dal datagramma in arrivo; Se tale indirizzo coincide con quello X (cioè con se stesso), estraine il contenuto informativo e consegnalo agli strati superiori per l’ulteriore elaborazione; Altrimenti, determina la sotto-rete di destinazione e decrementa il TimeTo-Live del datagramma: se il Time-To-Live è arrivato a zero, scarta il datagramma; Se la sotto-rete di destinazione coincide con quella della rete a cui è direttamente connesso il router X (cioè se stesso), invialo direttamente (cioè con istradamento diretto; ciò implica tradurre l’indirizzo IP in indirizzo MAC ed incapsularlo nell’unità dati della rete in questione); Altrimenti, se è stata richiesta una rotta specifica, invialo su tale rotta; Altrimenti, se la sotto-rete di destinazione è compresa nella Tabelle di Instradamento, indirizza il datagramma come specificato nella Tabella; Altrimenti, se è stata specificata una strada di default, invia il datagramma al “default gateway”; Altrimenti dichiara un errore di instradamento e scarta il datagramma. 190 Protocollo RIP - Generalità Il Routing Information Protocol (RIP) implementa l’algoritmo di instradamento Distance Vector (DV). Come tale, RIP è: i. Asincrono; ii. Iterativo; iii. Distribuito: ciò significa che ogni router invia/riceve le Tabelle di Instradamento solo dai router ad esso adiacenti. Per definizione, nel gergo di RIP, due router sono adiacenti se sono connessi mediante una singola sotto-rete. Per definizione, RIP pone pari a 1 il costo di ciascun collegamento tra una qualsiasi coppia di router adiacenti. Ciò implica che i percorsi a costo minimo calcolati da RIP sono quelli a numero minimo di connessioni (cioè quelli a numero minimo di “hop”). RIP può essere applicato all’interno di Sistemi Autonomi di dimensioni limitate, con ciò si intende dire che il massimo numero di “hop” tra due router del Sistema Autonomo non può essere superiore a 15. 191 Le Tabelle di Instradamento di RIP - Struttura Consideriamo un (generico) router D facente parte di un assegnato Sistema Autonomo. La Tabella di Instradamento del router D ha tante righe quante sono le sotto-reti raggiungibili (in uno o più hop) del router D. Ogni riga della Tabella contiene: i. ii. iii. L’identificatore (ossia, il prefisso IP) della sotto-rete di destinazione; L’identificatore (indirizzo IP) del router successivo (nextrouter) sul cammino a costo minimo dal router D alla sottorete di destinazione; Il numero di salti (ossia, la distanza, espressa come numero di sotto-reti da attraversare) dal router D alla sotto-rete di Destinazione lungo il cammino a costo minimo. 192 Le Tabelle di Instradamento di RIP - Interscambio Il router D invia la sua tabella di instradamento a tutti e soli i router adiacenti una volta ogni 30sec. Se i router adiacenti a D non ricevono la tabella di D per un intervallo di tempo superiore ai 180sec, allora essi: i. Dichiarano il router D non più attivo; ii. Rimuovono dalle proprie tabelle di instradamento tutte le rotte (cammini) che avevano il router D come nextrouter. Il router D invia ai vicini la sua Tabella di Instradamento mediante un RIP Response Message (detto anche RIP Advertisement Message) che, a sua volta, è trasportato dal campo payload di un comune datagramma IP. Ciascun RIP Response Message può contenere sino ad un massimo di 25 sotto-reti destinazioni (25 righe estratte dalla Tabella di Instradamento correntemente memorizzata al router D). 193 Aggiornamento delle Tabelle di Instradamento di RIP (1/3) Supponiamo che il router D riceva, ad un certo istante t0, la Tabella di Instradamento del router adiacente A. Allora, il router D aggiorna (una o più righe) della sua Tabella di Instradamento se e solo se si verificano l’uno e/o l’altro dei due seguente eventi a), b): a) b) Nella Tabella di Instradamento ricevuta da A c’è una (o più) sotto-reti di destinazione che correntemente non sono presenti nella Tabella di Instradamento del router D; Nella Tabella di Instradamento ricevuta da A c’è una (o più) sotto-reti di Destinazione che già sono presenti nella Tabella di Instradamento del router D, ma la distanza da A alla sotto-rete di Destinazione è inferiore di almeno due unità della corrispondente distanza di D dalla stessa sotto-rete di destinazione. 194 Aggiornamento delle Tabelle di Instradamento di RIP (2/3) Nel caso in cui si verifichi l’evento a), il router D aggiunge una riga alla sua Tabella di Instradamento in cui specifica: i. L’identificatore (prefisso IP) della sotto-rete raggiungibile attraverso il router A; ii. Identificatore (indirizzo IP) del router A come next-router del cammino a costo minimo da D alla sotto-rete in oggetto; iii. Il numero di “hop” (numero di sotto-reti da attraversare) del cammino a costo minimo da D alla sotto-rete in oggetto, numero di hop che è pari a quello riportato nella Tabella ricevuta dal router A aumentato di una unità. 195 Aggiornamento delle Tabelle di Instradamento di RIP (3/3) Nel caso in cui si verifichi l’evento b), il router D modifica la riga della sua Tabella di Instradamento corrispondente alla sotto-rete di destinazione in oggetto come segue: Lascia inalterato l’identificatore (prefisso IP) della sotto-rete di destinazione; ii. Pone come identificatore del next-router del cammino da D alla sotto-rete di destinazione l’indirizzo IP del router A; iii. Pone come numero di “hop” (numero di sotto-reti da attraversare) del cammino a costo minimo da D alla sotto-rete in oggetto il corrispondente numero presente nella Tabella ricevuta da A ma aumentato di una unità. i. 196 Aggiornamento delle Tabelle di Instradamento di RIP - Esempio Dest Succ. Router hops w 1 x 1 z C 4 … … ... w A Tabella di A inviata a D x D C Sotto-rete di destinazione Router successivo w y z x … A B BA -… B … y z Num. salti verso la destinazione 2 2 75 1 ... Baccarelli, Tabella di instradamento al nodo D Cordeschi, Patriarca, Polli 197 Protocollo OSPF - Generalità Il protocollo di instradamento Open Shortest Path First (OSPF) è un protocollo di instradamento i. Intra –AS ii. Di tipo Link-State iii. Che implementa l’algoritmo di instradamento di Dijkstra. Quindi, OSPF è un protocollo di instradamento di tipo globale (o centralizzato). Ciò richiede che, prima di applicare il protocollo OSPF, ogni nodo R del Sistema Autonomo conosca l’intero grafo pesato G <N,E> che descrive il Sistema Autonomo stesso. 198 Protocollo OSPF – Messaggi di segnalazione (1/2) – – Per acquisire la conoscenza del grafo G <N,E> che descrive il Sistema Autonomo, ogni router del Sistema Autonomo invia periodicamente a tutti gli altri router del Sistema Autonomo (non solo a quelli adiacenti) un messaggio di Link State Update (LSU Message). Il messaggio LSU inviato dal router A contiene: Gli identificatori (indirizzi IP) dei router e delle sotto reti adiacenti del router A; I costi dei collegamenti tra il router A e ciascuno dei router e sotto-reti ad esso adiacenti. Ciascun router del Sistema Autonomo che riceve un messaggio LSU da una delle sue porte di ingresso, opera come segue: i. ii. Invia indietro al router dal quale ha ricevuto il messaggio LSU un messaggio di riscontro positivo (Link State Acknowledgement (LSA) Message); Inoltra il messaggio LSU ricevuto verso tutte le sue porte di uscita, tranne la porta di uscita con lo stesso numero d’ordine della porta di ingresso dalla quale ha ricevuto il messaggio LSU. 199 Protocollo OSPF – Messaggi di segnalazione (2/2) Se il grafo G <N,E> del Sistema Autonomo è connesso, allora, dopo un tempo massimo pari a quello necessario per trasferire datagrammi lungo il cammino di lunghezza massima presente nel Sistema Autonomo, ogni router del Sistema Autonomo ha ricevuto i messaggi LSU generati da tutti gli altri router del Sistema Autonomo stesso. Quindi, ogni router è in grado di costruire al suo interno il grafo G <N,E> pesato del Sistema Autonomo al quale appartiene. I grafi costruiti dai vari router coincidono tra di loro. Quindi, ogni router è in grado di implementare localmente l’algoritmo di Dijkstra per individuare il cammino a costo minimo tra se stesso e tutti gli altri nodi (router e sotto-reti) del Sistema Autonomo di appartenenza 200 Caratteristiche del protocollo OSPF (1/2) principale del protocollo OSPF è la possibilità, da parte dell’Amministratore del Sistema Autonomo, di adottare differenti metriche per indicare il costo di un collegamento. Possibili metriche di costo sono: La caratteristica i. Il numero di “hop” (costo unitario per tutti i collegamenti); ii. La capacità (in bit/sec) del collegamento; iii. Il ritardo (in sec) di trasferimento di un datagramma attraverso il collegamento. metrica da adottare per definire il costo dei collegamenti è specificato (o deducibile) dal contenuto del campo Type Of Service (TOS) presente nell’Header di ciascun datagramma IP trasferito. Spesso, il tipo di 201 Caratteristiche del protocollo OSPF (2/2) Il protocollo OSPF consente anche: quando presenti, di suddividere il traffico generato da un router R verso una destinazione D tra più cammini a costo minimo, così da bilanciare il traffico dai vari cammini presenti nella rete; ii. di adottare scambi di messaggi di segnalazione tra router di tipo autenticato, così da aumentare il livello di sicurezza dell’intera rete; iii. di definire all’interno di un Sistema Autonomo una struttura gerarchica (suddivisione del Sistema in sotto-sistemi di dimensioni via via decrescenti), così da poter applicare il protocollo OSPF con metriche di costo diverse in ciascun sotto-sistema in cui è stato scomposto il Sistema Autonomo di partenza. i. 202 Il BGP – Generalità (1/2) inter-AS che i (soli) Gateway Router implementano per scambiarsi tra di loro informazioni di raggiungibilità. La versione attuale del BGP è la 4ª (BGPv4). Con riferimento ad un insieme di Sistemi Autonomi (ASs) interconnessi mediante Gateway Router, il BGP permette a ciascun Sistema Autonomo di: Il Border Gateway Protocol (BGP) è il protocollo i. Acquisire informazioni di raggiungibilità dai Sistemi Autonomi adiacenti, ossia da quelli ad esso direttamente connessi mediante un collegamento Gateway Router-Gateway Router; ii. Propagare le informazioni di raggiungibilità a tutti i router interni al Sistema Autonomo; iii. Calcolare “buone” rotte (cammini) tra ciascun router interno al Sistema Autonomo e le sotto-reti di destinazione di interesse. anche a ciascuna nuova sotto-rete che vuole connettersi ad Internet di notificare a tutta la rete Internet la propria esistenza e prefisso di sotto-rete (sub-net mask). Il BGP permette 203 Il BGP – Generalità (2/2) Poichè BGP è un protocollo di instradamento inter-AS e poiché ciascun Sistema Autonomo inter-connesso da BGP ha una sua autonomia amministrativa, allora: i. ii. BGP non utilizza metriche per calcolare i cammini ottimi, ossia non assegna alcun tipo di costo alle rotte interconnettenti sistemi autonomi diversi; BGP utilizza esclusivamente informazioni di raggiungibilità, che consistono nello specificare: o o Quali sotto-reti sono raggiungibili da ogni Gateway router; Quali Sistemi Autonomi debbono essere attraversati lungo ogni specifico cammino tra un router e la corrispondente sotto-rete di destinazione. 204 BGP: acquisizione e propagazione delle informazioni di raggiungibilità (1/3) Per concretezza, facciamo riferimento all’inter-connessione dei 3 Sistemi Autonomi riportati in figura. eBGP session 3c 3a 3b AS3 1a AS1 iBGP session 2a 1c 1d 1b 2c AS2 2b 205 BGP: acquisizione e propagazione delle informazioni di raggiungibilità (2/3) Per definizione, “l’informazione di raggiungibilità” generata da un Sistema Autonomo (ad es., AS1) consiste nello specificare: i. quali sono le sotto-reti di destinazione raggiungibili attraverso il Sistema Autonomo (ad es., le sotto-reti o che fanno parte di AS1 o che sono raggiungibili attraverso AS1); ii. Per ogni sotto-rete di destinazione raggiungibile attraverso il Sistema Autonomo (ad es., attraverso AS1), quale è il Gateway Router del Sistema Autonomo che permette di raggiungere la sotto-rete di destinazione di interesse. 206 BGP: acquisizione e propagazione delle informazioni di raggiungibilità (3/3) Il BGP usa due tipi di connessioni dette: i. External BGP session (eBGP); ii. Internal BGP session (iBGP). per acquisire e propagare le informazioni di raggiungibilità generate da ciascun Sistema Autonomo. Una coppia di Gateway Router appartenenti a Sistemi Autonomi distinti (vedi la figura) impiega una connessione eBGP per scambiarsi le informazioni di raggiungibilità generate dai Sistemi Autonomi di appartenenza. Una coppia di router appartenenti allo stesso Sistema Autonomo impiega una connessione iBGP per scambiarsi (propagare) le informazioni di raggiungibilità acquisite dai Gateway Router del Sistema Autonomo di appartenenza. Quando un router (interno o di Gateway) riceve una informazione di raggiungibilità (mediante una sessione eBGP o iBGP) esso aggiorna la propria Tabella di instradamento. 207 Struttura dei messaggi BGP (1/4) Per permettere l’aggiornamento delle suddette Tabelle presso i vari router di rete, oltre alle informazioni di raggiungibilità precedentemente definite , i messaggi BGP scambiati attraverso le sessioni eBGP e iBGP contengono anche ulteriori informazioni, dette Attributi dei messaggi BGP. I due Attributi più importanti sono: o o AS-PATH; NEXT-HOP. 208 Struttura dei messaggi BGP (2/4) Ciascun Sistema Autonomo è identificato da un numero globalmente unico detto AS Number (ASN). L’organizzazione internazionale ICANN rilascia l’opportuno ASN a ciascun sistema autonomo che lo richieda. L’attributo AS-PATH è l’elenco ordinato dei numeri (ASNs) dei Sistemi Autonomi attraverso cui l’informazione di raggiungibilità di una specifica sotto-rete di destinazione è transitata. Ciascun Sistema Autonomo che riceve il suddetto messaggio di raggiungibilità, appende in coda il proprio numero (ASN) al campo AS-PATH già presente nel messaggio di raggiungibilità ricevuto. 209 Struttura dei messaggi BGP (3/4) Esempio, i. Supponiamo che il Sistema Autonomo AS15 riceva in messaggio di raggiungibilità relativo alla sotto-rete di destinazione con prefisso IP aaa.bbb.ccc.ddd/x. ii. Supponiamo che l’attributo AS-PATH del suddetto messaggio di raggiungibilità sia: AS-PATH=AS6, AS20, AS30. allora, il Sistema Autonomo ricevente (cioè, AS15) acquisisce l’informazione che la sotto-rete di destinazione aaa.bbb.ccc.ddd/x è raggiungibile da AS15 attraverso la sequenza di Sistemi Autonomi AS30 AS20 AS6. 210 Struttura dei messaggi BGP (4/4) L’attributo NEXT-HOP di un messaggio di raggiungibilità relativo ad una specifica sottorete di destinazione è utilizzato dai router interni ad un Sistema Autonomo. L’attributo NEXT-HOP specifica il GatewayRouter del Sistema Autonomo dal quale il messaggio di raggiungibilità in oggetto è stato ricevuto e ritrasmesso verso i router interni del Sistema Autonomo. 211 Selezione del cammino (rotta) in BGP (1/2) Può allora accadere che un router interno ad un AS abbia ricevuto più messaggi di raggiungibilità per una stessa sotto-rete di destinazione, messaggi che differiscono per il contenuto del campo NEXT-HOP. Ciò significa che il router interno ha a disposizione più rotte diverse per raggiungere la sotto-rete di destinazione, rotte che transitano attraverso Gateway Router distinti del Sistema Autonomo al quale il router interno appartiene. Quale, tra le rotte a disposizione, il router interno dovrebbe scegliere? 212 Selezione del cammino (rotta) in BGP (2/2) più rotte per raggiungere una assegnata sotto-rete di destinazione, seleziona la rotta migliore applicando in sequenza le Regole di Eliminazione elencate: Un nodo, interno ad AS e che conosca che esistono i. A ciascuna rotta ammissibile viene assegnata, come ulteriore attributo, un valore di preferenza locale da parte dell’amministratore del Sistema Autonomo. Allora, il router interno seleziona quelle, tra le rotte ammissibili, col più alto valore di preferenza locale; ii. Tra le rotte restanti, il router interno seleziona quelle con il campo AS-PATH costituite dal più piccolo numero di elementi (le rotte più brevi); iii. Tra le rotte restanti, il router interno seleziona quelle col minimo valore dei costi dei cammini a costo minimo tra il router stesso e i next-router (Gateway router ammissibili). Ovvero, il router interno applica la politica dell’instradamento hot-potato per selezionare il miglior Gateway router tra quelli ammissibili. 213 Perché usare differenti protocolli per l’instradamento inter-AS e intra-AS? Motivazioni di natura amministrativa Mediante i protocolli inter-AS, gli amministratori vogliono poter esercitare un controllo sul traffico da far transitare e/o ammettere nel proprio Sistema Autonomo. Motivazioni di dimensioni Gli instradamenti inter-AS e intra-AS attuano l’instradamento gerarchico richiesto da Internet per limitare le dimensioni delle Tabelle di Instradamento da memorizzare in ciascun router della rete. Motivazioni di natura prestazionale Dal punto di vista delle prestazioni di natura prettamente ingegneristica (non di natura politica), i protocolli per l’instradamento intra-AS sono migliori, in quanto garantiscono l’individuazione dei cammini a costo minimo. D’altra parte, i protocolli di instradamento inter-AS sono più focalizzati sul soddisfacimento di requisiti politico/amministrativi. 214 Instradamento di tipo Broadcast (Diffusione) 215 Instradamento di tipo Broadcast - Generalità Supponiamo assegnata una rete descritta mediante il corrispondente grafo pesato G <N, E>. Indichiamo con sN un nodo (terminale o router) del grafo. Lo scopo di un algoritmo di instradamento Broadcast è quello di far pervenire a tutti i nodi v N \ {s} (diversi da s) della rete i datagrammi generati da s. 216 L’Algoritmo di Inondazione (Uncontrolled Flooding) (1/2) L’Algoritmo di Broadcast più semplice è quello che va sotto il nome di Uncontrolled Flooding. Per definizione, l’Algoritmo di Uncontrolled Flooding opera come segue: i. ii. Il nodo sorgente s inoltra datagramma verso tutte le sue porte di uscita; Ciascun nodo v≠s che riceve il datagramma da una delle sue porte di ingresso, inoltra il datagramma verso tutte le sue porte di uscita, tranne la porta di uscita con lo stesso numero d’ordine della porta di ingresso dalla quale ha ricevuto il datagramma. 217 L’Algoritmo di Inondazione (Uncontrolled Flooding) (2/2) Aspetti positivi Se il grafo G è connesso, ciascun nodo vN \ {s} della rete riceverà il datagramma generato da s, dopo un tempo che, al più, è uguale al tempo necessario per trasferire un datagramma attraverso il cammino più lungo presente nella rete. Aspetti negativi i. Se il grafo G ha cicli, il datagramma generato da s può permanere indefinitamente all’interno di un ciclo; ii. Un nodo vN \ {s} che ha già ricevuto e inoltrato il datagramma, può riceverlo di nuovo da una delle sue porte di ingresso e, quindi, lo inoltra di nuovo a tutte le sue porte d’uscita. Questo fenomeno (detto Broadcast Storm) fa si che uno stesso datagramma venga inutilmente inoltrato più volte da uno stesso nodo di rete. 218 L’Algoritmo di Inondazione Controllata (Controlled Flooding) Lo scopo dell’Algoritmo di Controlled Flooding è quello di evitare che un nodo di rete inoltri più volte uno stesso datagramma, ossia di evitare il fenomeno del Broadcast Storm. L’Algoritmo di Controlled Flooding opera come segue: i. il nodo sorgente s pone: a) il suo indirizzo IP; e b) un numero di sequenza progressivo in ogni datagramma che genera; ii. il nodo s inoltra il datagramma così numerato su tutte le sue porte di uscita; iii. ciascun nodo v=N \ {s} della rete mantiene una Lista Aggiornata dei datagrammi che ha già ricevuto, duplicato e inoltrato verso tutte le sue porte di uscita; iv. quando il nodo v=N \ {s} riceve da una delle sue porte di ingresso un datagramma da “broadcastare” (diffondere), allora: o controlla se il datagramma è già nella sua Lista; o se è nella Lista, v scarta il datagramma ricevuto; o se non è nella Lista, v aggiorna la Lista con l’identificatore del nuovo datagramma e, poi, inoltra il datagramma verso tutte le sue porte di uscita, tranne quella dalla quale aveva ricevuto il datagramma. 219 Elementi di interconnessione: Riepilogo e confronto 220 Elementi di interconnessioneRiepilogo (1/2) Abbiamo appreso che Internet è un insieme di sotto-reti debitamente interconnesse. Gli elementi di interconnessione possono essere di 3 tipi: – Hub – realizzano solo i protocolli di Strato Fisico; – Bridge - realizzano solo i protocolli di Strato Fisico e di Collegamento; – Router - realizzano solo i protocolli di Strato Fisico, di Collegamento e di Rete; 221 Elementi di interconnessioneRiepilogo (2/2) 3 2 2 1 1 1 HUB BRIDGE ROUTER HUB BRIDGE ROUTER Traffic isolation no si si Plug and play si si no Optimal routing no no si 222 Confronto tra Bridge e Router (1/3) Con riferimento alla seguente figura, Terminale Sorgente Terminale di Destinazione ricordiamo che: i. I Bridge implementano i protocolli di strato Fisico e di Collegamento; i Router implementano i protocolli di Strato Fisico, di Collegamento e di Rete; ii. I Bridge effettuano l’inoltro di trame basandosi sul loro indirizzo MAC; i Router effettuano l’inoltro di datagrammi basandosi sull’indirizzo IP. 223 Confronto tra Bridge e Router (2/3) iii. I Bridge mantengono Tabelle di Inoltro; i Router mantengono Tabelle di Instradamento e di Inoltro. iv. I Bridge sono autoconfiguranti (selflearning) ed effettuano le funzioni di inoltro e di filtrazione. I Router richiedono l’attuazione di Algoritmi di Instradamento per configurare le relative Tabelle e effettuano la funzione di instradamento. 224 Confronto tra Bridge e Router (3/3) v. o o o vii. Infine, poiché i Bridge non attuano algoritmi di instradamento, la topologia di una rete interconnessa tramite un Bridge deve essere necessariamente ad albero (cioè, un grafo connesso e privo di cicli), in cui: Le foglie dell’albero sono i terminali di utente; I nodi intermedi sono hub; La radice è un bridge. Poiché i router attuano Algoritmi di Instradamento che permettono di individuare il cammino (ottimo) tra due qualunque nodi della rete, la topologia di una rete interconnessa mediante router può essere arbitraria e può anche contenere cicli. 225 Prestazioni “end-to-end” di una Rete a Commutazione di Pacchetto 226 Prestazioni - Generalità La Rete Internet è una infrastruttura che fornisce il servizio di trasferimento di datagrammi a coppie Sorgente-Destinazione di Router ad essa interconnessi. Poiché il Modello di Servizio offerto dalla Rete Internet è best-effort, i datagrammi generati dal Router-Sorgente e diretti al Router-Destinazione possono: i. subire ritardi di trasferimento; ii. essere, in parte, persi (scartati) ai nodi intermedi della rotta; iii. essere trasferiti ad una velocità (bit/sec) finita e spesso variabile nel tempo. 227 Modello di collegamento “end-toend” (1/2) Con riferimento alla figura seguente, l(1) R 1 DATA RN-1 R C1 2 R CN-1 l(N-1) DATA RN 3 supponiamo che una sequenza di datagrammi debba essere inviata dal Router-Sorgente R1 al Router- Destinazione RN attraverso una prefissata rotta (cammino) costituita da N nodi di commutazione (Router) interconnessi da (N-1) collegamenti. La rete considerata è a commutazione di pacchetto e, quindi, il tipo di multiplazione adottata ai Router (nodi di commutazione) è statistico. Il collegamento tra due router adiacenti può (eventualmente) anche attraversare una (o più) sotto-reti (non esplicitamente indicata in figura). 228 Modello di collegamento end-to-end (2/2) Con riferimento alla figura precedente, indichiamo con: o o o o L (bit) = la lunghezza (supposta fissa) di ciascun datagramma trasferito; v(i) (m/s) = la velocità di propagazione del segnale elettrico sul collegamento (canale) i-mo, 1 ≤ i ≤ N-1; Ci (bit/sec) = la capacità del collegamento (canale) i-mo, 1 ≤ i ≤ N-1; l(i) (m) = la lunghezza del collegamento (canale) imo, 1 ≤ i ≤ N-1. 229 Parametri di prestazione Definizione In generale, i parametri (principali) che vengono considerati per caratterizzare le prestazioni dell’intero collegamento end-to-end da: R1 a: RN sono: i. Il throughput end-to-end – è definito come il numero di bit al secondo (bit/sec) che RN riceve all’uscita del collegamento; ii. Il ritardo end-to-end – è definito come l’intervallo di tempo che intercorre tra l’istante t0 in cui il datagramma entra in R1 e l’istante t1 in cui lo stesso datagramma esce da RN. Si misura in sec; iii. La probabilità di perdita end-to-end – è la probabilità che un datagramma che entra in R1 non esce da RN, perché scartato ad uno dei nodi intermedi del cammino end-to-end. Equivalentemente, la suddetta probabilità è la frazione di datagrammi arrivati in R1 che non sono mai usciti da RN. 230 Il ritardo “end-to-end” 231 Il ritardo “end-to-end” Per definizione, in una rete a commutazione di pacchetto, il ritardo end-to-end dEE (sec) di un datagramma da R1 a RN è la somma dei ritardi dn(i) (sec), 1 ≤ i ≤ N-1, che il datagramma subisce ad ogni singolo nodo di commutazione, ossia: dove: dn(i) (sec) ritardo al nodo i-mo ≡ ritardo di trasferimento da: Ri a Ri+1. 232 Modello di Nodo di Commutazione In linea di massima, un nodo di commutazione di una rete a commutazione di pacchetto (router, bridge, commutatore ATM) è costituito da 3 elementi di base (vedi la figura): Elaboratore Coda (buffer) i. ii. iii. Servente Canale di Capacità C e di lunghezza L Elaboratore – legge l’header di ciascun datagramma in arrivo al nodo, lo elabora e inoltra il datagramma; Coda – memorizza temporaneamente i datagrammi in attesa di essere trasmessi dalla porta di uscita del nodo; Servente – modula e trasmette (un bit alla volta) il datagramma che si trova in cima alla coda. 233 Componenti del Ritardo ad un (singolo) nodo Ne segue, allora, che, in generale, il ritardo dn (sec) a ciascun singolo nodo di commutazione è la somma di 4 componenti, ossia: dn ≡ dElab + dcoda + dtr + dprop (sec) dove: - dElab (sec) è il ritardo di elaborazione; - dcoda (sec) è il tempo che il datagramma passa in attesa in coda; - dtr (sec) è il ritardo di trasmissione, ossia il tempo che il datagramma passa nel servente; - dprop(sec) è il ritardo di propagazione, ossia il tempo che impiega ciascun singolo bit che costituisce il datagramma per trasferirsi dall’’ ingresso all’’ uscita del canale trasmissivo connesso al servente. 234 Singolo Nodo: Il Ritardo di Elaborazione ritardo di elaborazione dElab (sec) tiene conto del tempo che il nodo di commutazione impiega per Il – Leggere l’header di un ciascun datagramma; – Inoltrare il datagramma verso una delle porte di uscita; – Aggiornare il contenuto dell’header del datagramma. Ritardo di Elaborazione dipende dal particolare router considerato, è di natura deterministica (ossia, non aleatoria) e, tipicamente, è dell’ordine di alcuni µs. Il 235 Singolo Nodo: Il Ritardo di Trasmissione Ritardo di Trasmissione dtr(sec) è il tempo che impiega il Servente per trasmettere tutti gli L bit che compongono un (singolo) datagramma nel canale trasmissivo di capacità C (bit/sec) ad esso connesso. Quindi, per definizione, il Ritardo di Trasmissione introdotto da un singolo nodo è pari a: dtr = L/C (sec) Esso è un ritardo di tipo deterministico (non aleatorio). Il 236 Singolo Nodo: Il Ritardo di Propagazione Assumiamo che il canale trasmissivo connesso al servente i. Abbia una lunghezza di l metri; ii. Il segnale elettrico si propaghi nel canale con una velocità v (m/sec); Allora, il ritardo di propagazione dprop (sec) introdotto dal nodo è il tempo necessario a ciascun singolo bit di un datagramma per trasferirsi dall’ ingresso all ’uscita del canale trasmissivo, e quindi: dprop = l/v (sec). Anche il ritardo di propagazione è di natura deterministica, ossia non aleatoria. 237 Singolo Nodo: Ritardi di Trasmissione e di Propagazione transmission A propagation B nodal processing queueing 238 Singolo Nodo: Il Ritardo di coda – Generalità (1/4) ritardo di coda dcoda (sec) che un nodo di commutazione introduce varia da datagramma a datagramma. Infatti, il ritardo di coda sperimentato da ciascun singolo datagramma dipende dal numero variabile di datagrammi che sono già presenti in coda. A sua volta, il numero dei datagrammi che sono già presenti in coda dipende: A differenza degli altri tipi di ritardo, il i. dal numero medio λ (datagrammi/sec) di datagrammi che arrivano (entrano) nel buffer in un intervallo temporale di 1 sec; ii. dalla modalità con cui i datagrammi arrivano (entrano) nel buffer, ossia dalla dimensione dell’intervallo di tempo che passa tra gli istanti in cui due datagrammi consecutivi arrivano (entrano) nella coda (Intervalli di inter-arrivo). 239 Singolo Nodo: Il Ritardo di coda – Generalità (2/4) Indichiamo con : il numero medio di bit che entrano nel buffer nell’unità di tempo (λL) diviso per il numero di bit C che escono dal buffer nell’unità di tempo. Ovviamente, C è la capacità in bit/sec del canale trasmissivo connesso al servente del nodo di commutazione. La quantità ρ si chiama “Intensità di Traffico” offerto al nodo di commutazione. E’ un numero puro, e si misura in Erlang. Poiché dcoda è aleatorio, indichiamo con: il ritardo medio statistico di coda, ossia il valore atteso della variabile aleatoria dcoda. 240 Singolo Nodo: Il Ritardo di coda – Generalità (3/4) indipendentemente dalle dimensioni dei tempi di inter-arrivo dei datagrammi in ingresso al buffer, il risultante tempo medio di coda ha il seguente comportamento generale: Si può dimostrare che, i. ii. iii. Quindi, ad ogni nodo di commutazione deve essere sempre verificata la condizione seguente: ρ < 1. 241 Singolo Nodo: Il Ritardo di coda – Generalità (4/4) L’andamento qualitativo di in funzione di ρ è, quindi, il seguente. Ritardo medio di coda (sec) 1 ρ 0 ρ 242 Singolo Nodo – Modello di Coda M/ D/1 (1/2) Per poter calcolare esplicitamente , dobbiamo specificare la legge (di tipo probabilistico) con cui i datagrammi arrivano (ossia, entrano) nella coda. Assumiamo, allora, che la probabilità PA(k) che k ≥ 0 datagrammi arrivino all’ingresso della coda in un assegnato intervallo temporale T0 (sec) sia data dalla Distribuzione di Poisson, ossia che: dove: λ(datagrammi/sec) numero medio di datagrammi che arrivano all’ingresso della coda nell’intervallo temporali di 1 sec. 243 Singolo Nodo – Modello di Coda M/ D/1 (2/2) Sotto la precedente assunzione di distribuzione degli arrivi di Poisson, la coda si dice di tipo: M/D/1. Si può dimostrare che, per una coda M/D/1, il tempo medio che un datagramma aspetta nel buffer del nodo di commutazione è calcolabile come segue: dove, ricordiamo che: L (bit) dimensione del datagramma; C (bit/sec) capacità del canale trasmissivo connesso al servente del nodo di commutazione; intensità di traffico offerto (ossia, in ingresso) al nodo di commutazione. 244 Ritardo Medio di Nodo Da quanto detto, ne deriva che il ritardo medio introdotto totalmente dall’i-mo nodo di commutazione presente nella rotta R1RN è pari a: dove: 245 Ritardo Medio “end-to-end” Poiché abbiamo visto che il ritardo “end-to- end dEE (sec)” è la somma dei ritardi introdotti dai nodi sul cammino R1 RN, il ritardo medio è la somma dei corrispondenti ritardi medi di nodo, ossia: 246 Probabilità di Perdita di Datagramma 247 Probabilità di Perdita ad un Singolo Nodo (1/2) i. Nel cammino da R1 a RN, ciascun datagramma è: ii. iii. elaborato; memorizzato in un buffer; ritrasmesso a ciascuno degli (N-1) nodi di commutazione R1, R2, …, RN-1. Ora, può accedere che il datagramma che arriva all’i-mo nodo Ri trovi il buffer di Ri già pieno. In questo caso, il datagramma è scartato al nodo Ri e non arriverà mai al nodo di destinazione RN. Indichiamo con PL(i), 1 ≤ i ≤ (N-1), la Probabilità che il datagramma sia scartato al nodo Ri. 248 Probabilità di Perdita ad un Singolo Nodo (2/2) buffer (waiting area) A B packet being transmitted packet arriving to full buffer is lost Baccarelli, Cordeschi, Patriarca, Polli 249 Probabilità di Perdita End-to-End all’intero cammino da: R1 a: RN, indichiamo con PLE la Probabilità di Perdita end-toend, ossia la probabilità che un datagramma che entra nel nodo R1 non sia mai ricevuto dal nodo RN. Ovviamente, un datagramma che entra in R1 sarà ricevuto da RN se non viene scartato né a R1, né a R2, né a R3, né … né a RN-1. Quindi, la probabilità di perdita end-to-end PLE può essere calcolata a partire dalle probabilità di perdita {PL(i), 1 ≤ i ≤ (N-1)} ai singoli nodi di commutazione della rotta R1 RN che segue il datagramma in accordo alla seguente relazione: Con riferimento Baccarelli, Cordeschi, Patriarca, Polli 250 Il Throughput end-to-end 251 Il Throughput “end-to-end” Definizioni Consideriamo ancora il trasferimento di un datagramma di L bit dal nodo-sorgente R1 al nodo-destinazione RN attraverso la rotta: R1 R2 R3 . . . RN-1 RN . Per definizione, il “Throughput end-to-end all’istante t ” Th(t) è il numero di bit che il nodo-destinazione RN riceve nell’unità di tempo all’istante t, ossia è la velocità (bit/sec) con cui il nododestinazione RN riceve bit all’istante t. Supponiamo che, per trasmettere l’intero datagramma di L bit, ci siano voluti Δ secondi. Allora, il “Throughput end-to-end medio” è definito come: Esso rappresenta la velocità media con cui il nodo di destinazione RN riceve i bit trasmessi dal nodo sorgente R1. 252 Il Throughput “end-to-end” di più canali in cascata (1/3) rotta da R1 a RN costituita da (N-1) canali trasmissivi, con N ≥ 1. Indichiamo con Ci (bit/sec), 1 ≤ i ≤ (N-1), la capacità dell’i-mo canale della rotta. Supponiamo di avere una R1 C1 R2 C2 RN-1 CN-1 RN Ci chiediamo : qual è il valore massimo del Throughput end-to-end istantaneo a cui RN può ricevere i bit generati da R1? 253 Il Throughput “end-to-end” di più canali in cascata (2/3) Ovviamente, il canale trasmissivo i-mo non potrà mai trasferire bit ad una velocità superiore alla sua capacità Ci. Poiché questo è vero per tutti gli (N-1) canali che compongono la rotta, la velocità (bit/sec) a cui può ricevere bit non potrà mai essere superiore alla più piccola delle capacità C1, …, CN-1. Quindi, per il Throughput end-to-end istantaneo Th(t) abbiamo il seguente limite superiore, valido per ogni t: 254 Il Throughput “end-to-end” di più canali in cascata (3/3) inutile connettere un canale ad alta capacità con uno a bassa capacità, perché in ogni caso, il Throughput massimo ottenibile è pari alla più piccola delle capacità dei canali trasmissivi. In una connessione in cascata di (N-1) canali di capacità {Ci, 1 ≤ i ≤ (N-1)}, il canale con la più bassa capacità è chiamato canale Collo-dibottiglia (Bottleneck Link) della connessione. La precedente formula indica che è 255