Livello Rete Spostamento dei pacchetti dal mittente al destinatario, attraverso subnet intermedi (router) Occorre: conoscere la topologia della rete scegliere di volta in volta il cammino migliore (routing) gestire il flusso dei dati e le congestioni (flow control e congestion control) gestire le problematiche dovuti alla presenza di reti diverse (internetworking) Decidere: servizi offerti al livello transport organizzazione interna della subnet di comunicazione Servizi Servizi orientati alla connessione - solitamente affidabile le peer entitiy stabiliscono una connessione, negoziandone i parametri (di qualità, di costo,...), alla quale viene associato un identificatore tale identificatore viene inserito in ogni pacchetto da inviare comunicazione bidirezionale, i pacchetti viaggiano in sequenza lungo il cammino assegnato alla connessione il controllo di flusso è fornito automaticamente (parametri, es: dimensione delle finestre scorrevoli) Complessità ---> nodi della sottorete Servizi senza connessione la sottorete è considerata inerentemente inaffidabile,gli host devono provvedere alla correzione degli errori e al controllo di flusso il servizio offerto dal livello network è datagram, non si duplicano sui livelli le funzioni di controllo degli errori e del flusso i pacchetti viaggiano indipendentemente; tutti devono contenere un identificatore (l'indirizzo) della destinazione Complessità ---> host (livello trasporto) RT4.2
Tipi di servizio e organizzazione subnet Servizi: - con/senza connessione - con/senza affidabilità Frequenti: con connessione e affidabile - senza connessione e non affidabile Subnet - organizzazione basato su connessioni (detti circuiti virtuali): la subnet stabilisce un circuito virtuale: crea un cammino fra la sorgente e la destinazione (sul quale si avrà tipicamente traffico di un servizio con connessione) tutti i router lungo il cammino ricordano, in una apposita struttura dati, la parte di loro competenza di tale cammino (linea in e out) quando arrivano pacchetti con l' ID di tale circuito virtuale, vengono instradati di conseguenza (tutti nello stesso modo) senza connessioni i router instradano ogni pacchetto in base all indirizzo di destinazione, decidendo ogni volta come farlo proseguire i router hanno tabelle di instradamento (routing table)che indicano, per ogni destinazione la linea in uscita (nel caso sopra solo per setup) se offre un servizio con connessione, il livello 3 lo fa credere al livello superiore, ma i pacchetti viaggiano indipendentemente e sono riordinati dal livello 3 solo a destinazione, prima della consegna al livello 4 RT4.3 Subnet - confronto Subnet basata su connessioni Subnet connectionless Banda trasmissiva Minore (piccole ID in ogni pacchetto) Maggiore (intero indirizzo di dest. in ogni pacchetto) Spazio sui router Maggiore Minore (strutture dati per i circuiti virtuali) Ritardo per il setup Presente Assente Ritardo per il routing Assente Presente Congestione Minore (risorse allocate Maggiore (possibile in ogni momento) in anticipo) Vulnerabilità Alta Bassa i servizi offerti sono indipendenti dalla realizzazione interna della subnet servizi con connessione su circuiti virtuali servizi senza connessione su subnet datagram servizi con connessione su subnet datagram servizi senza connessione su circuito virtuale (es: IP su subnet ATM) RT4.4
Algoritmi di routing Instradare i pacchetti sulla subnet multi hop fra router Algoritmo di routing in una subnet datagram l'algoritmo è riapplicato ad ogni pacchetto in una subnet basata su circuiti virtuali, solo nel setup del circuito - session routing Proprietà - requisiti: correttezza semplicità robustezza (cadute di linee e/o router e riconfigurazioni della topologia) stabilità equità ottimalità Definizione di criteri: minimizzare il ritardo medio pacchetti massimizzare il throughput totale dei pacchetti Trade-off RT4.5 Algoritmi di routing - classificazione algoritmi non adattivi (static routing) le decisioni di routing sono prese in anticipo, all'avvio della rete, e comunicate ai router che poi vi si attengono sempre algoritmi adattivi (dynamic routing) le decisioni di routing sono riformulate (traffico, topologia della rete,...) molto spesso differiscono per come ricevono le informazioni > localmente > dai router adiacenti > da tutti i router quanto spesso rivedono le decisioni > a intervalli di tempo prefissati > quando il carico cambia > quando la topologia cambia quale metrica di valutazione adottano > distanza > numero di hop > tempo di transito stimato RT4.6
Principio di ottimalità se il router j è nel cammino ottimo fra i e k, allora anche il cammino ottimo fra j e k è sulla stessa strada i j k Cammino ottimo fra i e k l'insieme dei cammini ottimi da tutti i router a uno specifico router di destinazione costituiscono un albero, detto sink tree per quel router Gli algoritmi di routing - cercano e trovano i sink tree per tutti i possibili router destinazione - instradano i pacchetti esclusivamente lungo tali sink tree RT4.7 Tipi di routing Algoritmi (o politiche) isolate routing calcolato con sole informazioni locali, indipendentemente dal resto (stato degli altri nodi e stato della rete) es. SNA/IBM distribuite i nodi cooperano e comunicano frequentemente il proprio stato e quello della rete es. Internet centralizzate un centro di controllo conosce lo stato globale e calcola il cammino ottimo per ogni coppia (mittente,destinatario) e dirama le tabelle es. TYMNET miste combinazione di politiche isolate e centralizzate es. TRANSPAC Es. isolata: algoritmo hot potato RT4.8
shortest path routing flooding flow-based routing Algoritmi statici 1/3 Shortest path routing un host di gestione della rete mantiene un grafo che rappresenta la subnet nodi --> router, archi --> linee punto-punto All'avvio della rete applica al grafo un algoritmo per il calcolo del cammino minimo fra ogni coppia di nodi (es. algoritmo di Dijkstra ('59) ) invia le informazioni a tutti i router Misura da minimizzare, tipicamente: numero di hop (archi) da attraversare lunghezza dei collegamenti tempo medio di accodamento e trasmissione una combinazione di lunghezza, banda trasmissiva, traffico medio,... Algoritmi statici 2/3 Flooding invio a tutte le linee eccetto a quella da cui il pacchetto è arrivato tecniche per limitare il traffico generato: inserire in ogni pacchetto un contatore decrementato ad ogni hop, quando il contatore arriva a zero, il pacchetto viene scartato; inizializzazione inserire la coppia (source router ID, sequence number) in ogni pacchetto; ogni router esamina tali informazioni e ne tiene traccia, e quando le vede per la seconda volta scarta il pacchetto selective flooding: i pacchetti vengono duplicati solo sulle linee che vanno all'incirca nella giusta direzione (mantenendo apposite tabelle) Non è utilizzabile in generale come algoritmo di routing, però è utile: in campo militare o di situazione critiche (massima affidabilità e robustezza) per l'aggiornamento contemporaneo di informazioni distribuite come strumento di paragone per altri algoritmi, poichè trova sempre anche il cammino minimo RT4.9 RT4.10
Algoritmi statici 3/3 Flow-based routing calcola in anticipo il traffico atteso su ogni linea deriva una stima del ritardo medio atteso per ciascuna linea su tali informazioni basa le decisioni di routing Informazioni necessarie: topologia matrice delle quantità di traffico T(i,j) stimate fra ogni coppia (i,j) di router capacità (es in bps) delle linee punto a punto Assunzioni: traffico stabile nel tempo e noto a priori ritardo su ciascuna linea proporzionale al traffico sulla linea e inversamente proporzionale alla velocità della linea (leggi della teoria delle code) Ritardo medio dell'intera rete (somma pesata dei singoli ritardi), con peso di una linea L (traffico su L / traffico totale ) scelta di un algoritmo di routing determinazione dei percorsi per il collegamento fra ogni coppia di router calcolo del traffico su ogni linea L (somma dei T(i,j) instradati su L) calcolo del ritardo di ogni linea calcolo del ritardo medio della rete ripete il procedimento con vari algoritmi di routing, scegliendo alla fine quello che minimizza il ritardo medio dell'intera rete RT4.11 Algoritmi dinamici 1/3 Distance vector routing In ogni router mantiene una tabella (vector) con, per ogni router, distanza (# hop, ritardo,...) dal router linea in uscita - Per i vicini immediati stima diretta della distanza dei collegamenti tramite invio e misura del tempo di ritorno di speciali pacchetti ECHO - A intervalli regolari ogni router manda/riceve la tabella a/da tutti i vicini - Quando un router riceve nuove informazioni, ricalcola la tabella migliore come minore somma di: distanza fra il router ed un suo vicino immediato (misurazione diretta) distanza fra quel vicino immediato ed il router destinazione (tabella ricevuta dal vicino immediato) - Algoritmo buono ma molto lento nell adattamento (topologia non nota) Algoritmo di routing di ARPANET usato anche in Internet col nome di RIP (Routing Internet Protocol) nelle prime versioni di DECnet e IPX RT4.12
Esempio Algoritmi dinamici 2/3 A B C D E 3 2 3 4 (dopo 1 scambio) 3 4 3 4 (dopo 2 scambi) 5 4 5 4 (dopo 3 scambi) 5 6 5 6 (dopo 4 scambi) Tutti i router vedono lentamente aumentare sempre più la distanza per arrivare ad A - problema del count-to-infinity Se distanza = # hop, limite diametro della rete se distanza = ritardo, l'upper bound molto alto per non interrompere cammini Problema non risolto efficacemente 1 2 3 4 distanze da A A B C D E RT4.13 Algoritmi dinamici 3/3 Link state routing ogni router mantiene informazioni sullo stato dei collegamenti con i vicini immediati (misura del ritardo di linea) e distribuisce tali informazioni a tutti ogni router ricostruisce localmente la topologia completa della rete e calcola il cammino minimo fra se e tutti gli altri 1. scoprire i vicini e identificarli 2. misurare il costo (ritardo o altro) delle relative linee 3. costruire un pacchetto con tali informazioni 4. mandare il pacchetto a tutti gli altri router 5. previa ricezione degli analoghi pacchetti che arrivano dagli altri router, costruire la topologia dell'intera rete 6. calcolare il cammino più breve a tutti gli altri router - Invio di pacchetti HALLO - pacchetto: id mittente, # sequenza, età pacchetto, lista vicini - costruzione e invio ad intervalli regolari e/o quando accade un evento - flooding, età per scartare Usato in Internet OSPF (Open Shortest Path First) IS-IS (Intermediate System-Intermediate System), per DECnet e poi adottato da OSI. Gestisce indirizzi di diverse architetture (OSI, IP, IPX) per reti miste o multiprotocollo RT4.14
Routing gerarchico Per reti grandi - Rete divisa in zone (regioni) - router interni : sanno come arrivare a tutti gli altri router della regione - router di confine: particolari router a cui i router interni che devono spedire a router di un'altra regione inviano i dati i router di confine si conoscono Due (o più) livelli di routing: un primo livello di routing interno ad ogni regione un secondo livello di routing fra tutti i router di confine Router di confine Regione Tabelle di routing: router interni una entrata per ogni altro router interno (linea) una entrata per ogni altra regione (router di confine) Tabelle di routing: router di confine una entrata per ogni altra regione (prossimo router di confine) Router interni RT4.15 Controllo della Congestione Problema di gestione della rete Congestione del traffico, degradazione delle prestazioni Pacchetti consegnati Massima capacità della rete Situaz. ideale Situaz. desiderabile Congestione Pacchetti spediti buffer limitati nel router processore troppo lento nel router linea di trasmissione troppo lenta Propagazione controllo della congestione controllo di flusso nei livelli 2,3 e 4 (singola connessione sorgente-destinazione) Approcci : open loop (senza controreazione) - closed loop (con controreazione) RT4.16
Open Loop - Leaky bucket Open loop - Algoritmo Token bucket Regolazione del traffico - prevenzione Algoritmo Leaky bucket (secchio che perde) Regolazione dell input a ritmo costante Host: (nell'interfaccia di rete o in sw) - leaky bucket per regolare i pacchetti in rete con data rate fissato (b bps) - mantiene nel buffer i pacchetti accodati per la trasmissione - possibile perdita Anche traffico bursty non crea problemi in rete se data rate medio b bps altrimenti si ha perdita pacchetti Interfaccia con alg. leaky bucket Rete Host Flusso irregolare Flusso regolare (secchio di gettoni) Consente irregolarità controllate nel flusso in uscita sulla rete - si accumula un credito trasmissivo con un certo data rate quando non si trasmette nulla - quando si trasmette si sfrutta tutto il credito disponibile, alla massima velocità consentita dalla linea - secchio di token, creati con cadenza prefissata entro un max (M) - per tramettere un pacchetto deve essere disponibile un token - dati k token nel secchio e h > k pacchetti da trasmettere, i primi k sono trasmessi subito e gli altri aspettano Velocità di trasmissione velocità di generazione dei token Trasmissione burst I pacchetti non vengono mai scartati Se necessario, si avverte il livello superiore per fermare la produzione dati Algoritmi per regolare il traffico host-router e router-router Se il router sorgente deve fermarsi e non ha spazio sufficiente, si può aver perdita RT4.17 RT4.18
Open Loop - Flow Specification Accordo di mittente-subnet-destinatario sul traffico tramite specifica delle caratteristiche del traffico da inviare (data rate, burstiness,...) della qualità del servizio (max ritardo, % perdita,...) Struttura dati per descrive tali grandezze Accordo prima della trasmettere Controllo della congestione nelle reti basate su circuiti virtuali In generale più facile per la preallocazione delle risorse admission control : politica di ammissione di nuovi circuiti virtuali Close Loop - Choke packet Un router controlla il grado di utilizzo delle sue linee di uscita, misurando l'utilizzo istantaneo U e accumulando la storia passata in una media esponenziale M M nuovo = a M vecchio + (1 - a)u a in [ 0,1] peso della storia passata (1 - a) peso dell'informazione recente Se M è vicina ad una soglia di pericolo prefissata, il router esamina i pacchetti in ingresso se sono destinati alla linea d'uscita in allarme invia all'host di origine del pacchetto un choke packet per diminuire il flusso Se l'host sorgente riceve il choke packet diminuisce il flusso (es. lo dimezza) ignora i successivi choke packet per un tempo prefissato successivamente si rimette in attesa di altri choke packet Se ne arrivano altri, riduce ancora il flusso, altrimenti lo aumenta di nuovo Reazione lenta RT4.19 hop-by-hop choke packet Miglioramento: ogni router sul percorso, appena riceve i choke rallenta subito Più veloce, ma richiede più spazio nei router sul percorso RT4.20
Connessione di reti eterogenee: diversi formati di pacchetti e indirizzi meccanismi di controllo dell'errore meccanismi di controllo della congestione max dimensione dei pacchetti Internetworking Diverse architetture di rete servizi offerti dai vari livelli modalità di indirizzamento max dimensione dei pacchetti Tecniche Bridge - livello data link router multiprotocollo: gestione contemporanea di più pile di protocolli Rete OSI Pacchetti OSI Rete OSI Tunneling Connessione di reti uguali tramite una diversa rete Rete di tipo A Rete di tipo B Tunnel Rete di tipo A Router Multiprotocollo B non ha router multiprotocollo un router designato nelle due reti A è multiprotocollo e incapsula i pacchetti delle reti di tipo A dentro pacchetti di tipo B, consegnandoli alla rete di tipo B Rete IP Rete di Router Multiprotocollo Pacchetti IP Rete IP RT4.21 Rete di tipo A Header rete A... Header rete B Rete di tipo B Header rete A... Rete di tipo A Header... rete A RT4.22
Internetworking Frammentazione - pacchetti troppo grandi - il livello rete della rete di origine deve spezzare i pacchetti in frammenti prima di consegnarli alla rete di transito - il livello rete della rete destinazione deve ricomporre i frammenti appena arrivano dalla rete di transito (es. IP) Circuiti virtuali concatenati Se tutte le reti offrono servizi connessi nel livello network si può costruire un circuito virtuale le reti eterogenee come concatenazione di circuiti virtuali : attraverso i router multiprotocollo - creano le porzioni di circuito virtuale - vi instradano poi i pacchetti Transport gateway - simile meccanismo a livello trasporto Application gateways - conversione di dati a livello applicazione Es: invio di un e-mail da host Internet a un utente OSI - composizione secondo il formato Internet, indirizzo OSI - invio con consegna a mail gateway (server di e-mail - conversione dei formati) - estrazione testo, inserzione in un nuovo msg di formato OSI (standard X.400) - invio su rete OSI ( a livello 4) RT4.23 Internetwork routing Singole reti componenti: entità autonome AS (Autonomous System) Routing complessivo a due livelli primo livello - Interior Gateway Protocol (IGP) algoritmo di routing interno ad AS Diversi AS possono utilizzare diversi IGP Anche gerarchico per grandi AS secondo livello - Exterior Gateway Protocol (EGP) algoritmo di routing fra AS tipicamente riguarda i router multiprotocollo deve spesso tener conto di specifiche leggi nazionali (es., divieto di transito dati), le decisioni di routing devono adattarsi a tali direttive RT4.24
Internet - livello rete Internet: collezione di AS interconnessi - componenti backbone principali (linee ad alta velocità) reti regionali (USA) reti nazionali (Europa e resto del mondo) reti locali US backbone Regional network Europe backbone National network Internet - IP Architettura TCP/IP IP (Internet Protocol, RFC 791) protocollo datagram e non affidabile riceve i dati dal livello transport, li incapsula in pacchetti di dimensione massima pari a 64 Kbyte (usualmente circa 1.500 byte) instrada i pacchetti sulla subnet con eventuale frammentazione a destinazione > riassembla (se necessario) i frammenti in pacchetti > estrae i dati del livello transport > li consegna al livello transport nell'ordine di arrivo (anche disordinati) Version IHL Type of service Total length Identification 32 bit 4 4 8 1 1 1 D F M F Fragment offset Time to live Protocol Header checksum Source address Formato header IP Destination address IP LAN IP LAN Options RT4.25 RT4.26
Pacchetto IP - Header Version numero di versione del protocollo (4) IHL lunghezza header in parole di 32 bit [5,15] Type of service affidabilità e velocità richieste - ignorato dai router Total length lunghezza del pacchetto (inclusi dati), massimo 65.535 byte. Identification i frammenti di uno stesso pacchetto hanno ugual valor DF don't fragment =1, non frammentare anche scegliendola via più lenta MF more fragments =1, il pacchetto non è ancora finito Fragment offset indice del frammento nel pacchetto. Time to live contatore (iniz. 255) decrementato ad ogni hop (o sec) se=0 il pacchetto viene scartato Protocol codice del protocollo di livello transport per consegna dei dati Header checksum somma le parole dell header e si complementa ad uno si ricalcola ad ogni hop (time to live cambia) Source e destination address Options solo cinque oggi definite Formato security: quanto è segreto il pacchetto; header IP Security quanto è segreto il pacchetto strict source routing cammino da seguire loose source routing lista di router da non mancare record route ogni router appende il suo indirizzo Timestamp e un timestamp RT4.27 Pacchetto IP - Indirizzi 32 bit - codifica unica network number.host number Gli indirizzi sono assegnati alle interfacce di rete - un host con X interfacce di rete (es. router connesso ad una LAN e ad X-1 linee punto-punto) ha X indirizzi - un host con una interfaccia di rete ha un unico indirizzo IP Assegnamento indirizzi: autorità nazionali (NIC, Network Information Center) coordinate a livello mondiale 32 bit Classe della rete IP A B C D E 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 8 8 8 8 Network Network Network Host Multicast address (indirizzo di gruppo) Riservato per uso futuro Host Host Formati degli indirizzi RT4.28
Rappresentazione decimale di indirizzi IP Pacchetto IP - Indirizzi speciali Loopback: pacchetto non inviato ma elaborato come in arrivo - per test di rete 32 bit Byte 1 Byte 2 Byte 3 Intervallo di indirizzi 8 Class A: Network ID 1 to 127 0 to 255 Host ID 0 to 255 0 to 255 Network ID Host ID Class B: 128 to 191 0 to 255 0 to 255 0 to 255 Network ID Host ID Class C: 192 to 223 0 to 255 0 to 255 1 to 254 Multicast address Class D (multicast): 224 to 239 0 to 255 0 to 255 1 to 254 Class E (riservata): 240 to 255 0 to 255 0 to 255 1 to 254 1.0.0.0 a 127.255.255.255 128.0.0.0 a 191.255.255.255 192.0.0.0 a 223.255.255.255 224.0.0.0 a 239.255.255.255 128.0.0.0 a 247.255.255.255 Questo host Un host su questa network Broadcast su questa network Broadcast a una altra netw. Loopback 0 Network 127 0 Host Tutti uni Tutti uni Qualunque numero Classe A: 126 reti di 16 milioni di host Classe B: 16.382 reti di ca. 64.000 host Classe C: 2 milioni reti di 254 host Es. indirizzo IP Rete. Host 157.138.20.17 RT4.29 RT4.30
IP - Protocolli di controllo e di routing ICMP (Internet Control Message Protocol, RFC 792) Controllo dell operatività delle subnet - scambio msg fri i router, destination unreachable Redirect timestamp request, reply time exceeded echo request, reply ARP (Address Resolution Protocol, RFC 826) deriva dall'indirizzo IP dell'host di destinazione, l'indirizzo di livello data link necessario per inviare il frame RARP (Reverse Address Resolution Protocol, RFC 903) trovare quale indirizzo IP corrisponda a un dato indirizzo data link Interior Gateway Protocol (IGP) RIP (Routing Information Protocol) di tipo distance vector OSPF (Open Shortest Path First), di tipo link state - anche routing gerarchico Interior Gateway Protocol (IGP) BGP (Border Gateway Protocol) di tipo distance vector può gestire politiche di instradamento configurate manualmente nei router mantiene (e scambia) il costo e il cammino completo per le altre destinazioni - risolvere il problema del count to infinity (scarto dei cammini in caso di guasto di linea) RT4.31 IPv6 versione 6 : successore di IP versione 4 (IPv6, RFC1883-1887, standard IETF) principali requisiti di progetto Aumento del numero di indirizzi maggiore efficienza nei router (tavole più piccole, routing più veloce) Miuglior supporto del traffico real time maggiore sicurezza ai dati riservati principali differenze rispetto a IPv4 indirizzi di 16 byte -> 2 128 indirizzi IP, ovvero 7*10 23 ind. IP per mq header semplificato: 7 campi contro 13 funzioni di autentificazione e privacy, basate su crittografia gestione della QoS attraverso un campo flow label, per istituire pseudoconnessioni negoziate in anticipo RT4.32