Strato rete in Internet

Slides:



Advertisements
Presentazioni simili
Indirizzamento LAN e ARP
Advertisements

1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
INSTRADAMENTO IN INTERNET
Italo Losero S tray B ytes strane cose succedono nelle reti....
Classless Inter Domain Routing CIDR
Corso di laurea in INFORMATICA
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Indirizzamento a classi Alberto Polzonetti
Corso di laurea in INFORMATICA
Corso di laurea in INFORMATICA
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Messaggi di errore e di controllo Alberto Polzonetti
TCP/IP.
4-1 Il Livello di Rete in Internet Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
I modelli di riferimento OSI e TCP/IP
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Routing in Internet Crediti
La rete in dettaglio: rete esterna (edge): applicazioni e host
3-1 User Datagram Protocol: UDP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
Reti di Calcolatori Domande di riepilogo Quarta Esercitazione
Reti di Calcolatori Domande di riepilogo Quinta Esercitazione
Programmazione su Reti
Canale A. Prof.Ciapetti AA2003/04
Internet Control Message Protocol rfc. Error Reporting Testing di affidabilità Controllo di congestione Notifica di route-change Misurazione di performance.
Routing Gerarchico Gli algoritmi proposti non sono pratici:
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
Cos’è un problema?.
Reti di Calcolatori IL LIVELLO RETE.
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
ICMP - PING - TRACEROUTE
Corso di Informatica per Giurisprudenza Lezione 7
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.
Modulo 2 – U.D. 1 – Lez. 2 Ernesto Damiani – Sistemi di elaborazione dell'informazione.
Un trucchetto di Moltiplicazione per il calcolo mentale
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
Indirizzamento-routing-sottoreti
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Esempi risolti mediante immagini (e con excel)
TCP/IP.
L’architettura a strati
Indirizzi IP e Subnet mask
Internetworking – Subnet e Supernet
Greco Rodolfo 2002 Application Trasport Network Phisic HTTP IP UDPTCP DNS SNAP MAC ARP L’utente fa una richiesta di pagina.
Livello di trasporto Protocolli TCP e UDP.
Configurazione IP4a-1 Configurazione IP Reti II Stefano Leonardi.
IP Subnetting VLSM CIDR
Sistemi e Tecnologie della Comunicazione
1 Luigi Vetrano Esercitazione di Reti di Calcolatori A.A
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 4 -Gestione degli indirizzi Ernesto Damiani Lezione 1 – Assegnazione.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 3 – Instradamento statico Ernesto Damiani Università degli Studi di Milano – SSRI.
Seminario di Reti e Sicurezza algoritmi di instradamento Star: Davide Ferrone Prof. Stefano bistarelli.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 2 – Il protocollo TCP/IP Ernesto Damiani Università degli Studi di Milano - SSRI.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 3 – Da.
PROTOCOLLI DI INSTRADAMENTO: INTRA-AS e INTER-AS
Routing Overview Routing Protocol: protocollo di costruzione delle tavole di routing nei router. Routed Protocol: protocollo di instradamento dei messaggi,
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 2 – Instradamento.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 2 – Il protocollo TCP/IP Ernesto Damiani Università degli Studi di Milano - SSRI.
Reti II Stefano Leonardi
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 3 -Instradamento statico Ernesto Damiani Lezione 2 – ICMP.
Protocolli di rete. Sommario  Introduzione ai protocolli di rete  Il protocollo NetBEUI  Il protocollo AppleTalk  Il protocollo DLC  Il protocollo.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
- Token bucket - Addressing Exercises on. Si condideri il meccanismo di controllo del traffico in ingresso con token bucket il rate di generazione dei.
Ing. L. A. Grieco DEE – Telematics Lab. 1 Algoritmi e Protocolli di Routing – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Ing. L. A. Grieco DEE – Telematics Lab. 1 Internet Protocol (IP) – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica.
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Slide #: 1/232 Internet - Architettura, principali protocolli e linee evolutive Nicola Blefari Melazzi Copyright © 2005 – The McGraw-Hill Companies srl.
Transcript della presentazione:

Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it http://www.tlc-netwroks.polito.it/

Internet protocol suite Application Telnet FTP SMTP SNMP NFS Presentation XDR Session RPC Transport TCP e/o UDP Network IP ICMP Protocolli di routing ARP | RARP Data Link Non Specificati Physical OSI Internet Protocol Suite

IP: Internet Protocol Livello rete dell’architettura TCP/IP Offre un servizio non connesso inaffidabile best-effort senza garanzie di qualità di servizio

Il protocollo IP È un protocollo di strato rete (strato 3) Si occupa quindi dell’indirizzamento e instradamento dei pacchetti (detti datagram) La consegna dei pacchetti IP è: connectionless ogni pacchetto trattato in modo indipendente inaffidabile (unreliable) perdita, duplicazioni, ritardi non distingue tra diversi tipi di traffico (no priorità, tratta tutti in modo best-effort)

Protocollo IP Consegna inaffidabile Consegna connectionless In caso di guasti (es. un router fuori servizio, collegamento non disponibile) scarta il datagram cerca di inviare un messaggio di errore al mittente Consegna connectionless Non conserva informazioni di stato sui datagram in corso di trasmissione Ogni datagram instradato in modo indipendente Due pacchetti con stessa sorgente e destinazione possono seguire percorsi diversi

Intestazione pacchetto IP 4 8 16 19 24 31 Version HLEN Service Type Total Length Identification Flags Fragment Offset Time To Live Protocol Header Checksum Source IP Address Destination IP Address Options PAD

Intestazione pacchetto IP: i campi VER: versione del protocollo IP HLEN: lunghezza dell’header in parole da 32 bit (se opzioni assenti, vale 5) Type of service (TOS): tipo di servizio richiede il datagram (minimize delay, maximize throughput, maximize reliability, minimize cost ). Ignorato dai router. Total Length: lunghezza del datagram in byte (incluso header). Dimensione massima 65535 byte

Frammentazione Ogni rete ha massima dimensione ammessa MTU (Maximum Transfer Unit) Ethernet 1.5 kB Quando devo attraversare rete con MTU più piccola del datagram si deve frammentare Frammenti diventano datagram indipendenti, con intestazione quasi uguale a quella del datagram originario ricostruiti solo alla destinazione, mai nei router Frammentazione trasparente a sorgente e destinazione

Frammentazione La frammentazione è dannosa aumento overhead di intestazione, duplicato su ogni frammento perdita di un frammento comporta la perdita al ricvevitore di tutto il datagram; aumenta la probabilità di errore ricevitore deve attivare timer di attesa arrivo frammenti e riassemblare I router IP però non si devono occupare di riassemblare frammenti

Intestazione pacchetto IP: i campi Identification, Flags, Fragment offset: controllano operazioni di frammentazione Identification: permette di riconoscere a quale datagram il frammento appartiene (frammenti dello stesso datagram hanno stesso valore deciso da chi genera datagram) Fragment offset: specifica offset dati contenuti nel frammento, in multipli di 8 byte Flags (2 bit): don’t fragment e more fragments (identifico ultimo frammento)

Intestazione pacchetto IP: i campi TTL (time to live): tempo di vita (in hop) di un datagram Ogni router decrementa di 1 il valore di TTL Se TTL=0 scarta datagram ed invio messaggio di errore Protocol: formato dei dati specificando un protocollo di livello superiore Header Checksum (16 bit): controllo di errore sulla sola intestazione, non sui dati utente. Somma in complemento a 1 allineando header a 16 bit.

Intestazione pacchetto IP Source e Destination Address (32 bit): indirizzo sorgente e destinazione degli host Formato opzioni: option code (option number, option class, flag di copia nei frammenti) + lunghezza opzione + dati Opzioni record route: registro percorso del datagram source route (loose and strict): sorgente specifica percorso del datagram timestamp: permette di registrare tempo di elaborazione del datagram

Il protocollo ICMP ICMP (Internet Control Message Protocol ) è solitamente considerato parte del livello IP Comunica messaggi di errore o di controllo. Può trasportare richieste di informazioni e risposte alle richieste. I messaggi ICMP sono trasmessi all’interno di datagram IP

Formato del messaggio ICMP 0 7 15 31 type code checksum data

Esempi di messaggi ICMP messaggio type code echo reply 0 0 query echo request 8 0 query network unreachable 3 0 errore host unreachable 3 1 errore port unreachable 3 3 errore destn net unknown 3 6 errore destn host unknown 3 7 errore redirect 5 1 controllo time exceeded (TTL) 11 0 errore time exceeded (fragment reass)11 1 errore

Il comando ping Se un host non risponde al ping, non è raggiungibile. Spesso usato per rilevare guasti in rete E’ disponibile su macchine Unix e su PC Informazioni visualizzate da ping: numero di sequenza TTL round-trip-time (tempo impiegato a percorrere la tratta sorgente-destinatario-sorgente)

Applicazione: il comando ping Il nome è ispirato al rumore del sonar Esegue un test di raggiungibilità dell’interfaccia di rete di un host remoto Invia un messaggio ICMP echo request ad un host, aspettandosi un echo reply Di default, l’ ICMP viene inviato ogni secondo allo stesso host; è possibile tuttavia modificare la frequenza di invio

Il comando traceroute traceroute permette di seguire il percorso dei datagram IP hop-per-hop fino a destinazione Funzionamento: host invia datagram IP vuoti, con TTL crescenti e destinati alla porta 33434 dell’host remoto I router intermedi ritornano ICMP “time exceeded” La destinazione ritorna ICMP “port unreachable” Se non torna messaggio ICMP in risposta entro un timeout di 3 sec., si segnala errore

Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/ Indirizzi IP Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/

Indirizzamento IP: obiettivi e risultati Obiettivo originale: rendere efficienti le operazioni di routing (router lenti - anni ‘80) con indirizzi facilmente “classificabili” Spreco dello spazio di indirizzamento (esaurimento degli indirizzi - anni ‘90) Nuovo obiettivo: razionalizzare l’assegnazione degli indirizzi e la loro aggregazione nelle routing tables Riduzione delle dimensioni delle routing tables e riutilizzo di indirizzi già assegnati

Indirizzi IP: Principi Ogni host (interfaccia) è individuato da un indirizzo a 32 bit, assegnatogli univocamente Un indirizzo è caratterizzato da informazioni sulla rete (netid) e sull’host (hostid) L’instradamento si basa sul netid indirizzo non individua la macchina ma la rete  se sposto host di rete devo cambiare indirizzo Ogni router ha almeno due indirizzi IP Gli host solitamente uno solo

Multi-Homed Hosts Poiché l’indirizzo ha informazioni su rete e host, se ho più di una interfaccia di rete, devo avere due indirizzi Più che un host, un indirizzo individua una connessione ad una rete! Interfaccia #1 H Interfaccia #2

Classi di indirizzi 1 2 3 4 8 16 24 32 Classe A netid=7 bit 1 2 3 4 8 16 24 32 Classe A netid=7 bit hostid=24 bit Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts Classe B 1 netid=14 bit hostid=16 bit Indirizza 16384 reti, ciascuna delle quali può contenere 65536 hosts Classe C 1 1 netid= 21 bit hostid=8 bit Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts 1 1 1 Classe D Indirizzi multicast

Rappresentazione decimale L’indirizzo Internet viene comunemente rappresentato nella forma: xxx.xxx.xxx.xxx con xxx numero decimale tra 0 e 255 Il primo numero permette di riconoscere la classe dell’indirizzo: Classe A Classe B Classe C Classe D Classe E 0...127 128...191 192...223 224...239 240...255

Classi di indirizzi IP A: 105.20.38.165 B: 130.192.2.158 indirizzo di rete (netid)

Indirizzi di rete e Broadcast Indirizzo con hostid di tutti 0, individua la rete Indirizzo con hostid di tutti 1, rappresenta l’indirizzo broadcast della rete stessa (trasmetto in broadcast su quella rete) netid di tutti 1 indica questa rete. Trasmetto senza conoscere IP della rete (boot) Se il netid e` tutti 0, indirizzo all’host sulla rete cui sei collegato Indirizzi riservati (127.0.0.0 loopback, 192.168.2.0 reti private)

Problemi delle classi Nessuno usa classe A Pochi usano (male) classe B Classe C identifica reti piccole; indirizzi poco richiesti Fare crescere una rete oltre i limiti di dimensione della classe richiede la modifica degli indirizzi di tutti gli host

L’introduzione delle maschere È necessario superare la divisione rigida in netid e hostid Scompare il concetto di classe Uso maschera per definire quanti bit dei 32 di indirizzo individuano la rete, ovvero per indicare l’estensione del campo netid Inizialmente si utilizzano le maschere per suddividere indirizzi di classe B

La subnet mask La subnet mask (o netmask) è un valore di 32 bit contenente: bit messi a 1 per identificare la parte di rete bit messi a 0 per identificare la parte di host Per esigenze di instradamento, un host deve conoscere la parte di rete del proprio indirizzo IP (netid+subnetid): utilizza la subnet mask La subnet mask viene introdotta in fase di configurazione di un host

La subnet mask Esempio: indirizzo host 130.192.2.7 AND 130.192.2.7 10000100 11000000 00000010 00000111 255.255.255.0 11111111 11111111 11111111 00000000 AND 130.192.2.0 10000100 11000000 00000010 00000000

Maschere per supernetting In una seconda fase si utilizzano le maschere per accorpare indirizzi di classe C Si assegnano blocchi contigui di indirizzi di classe C Si usano sempre maschere (supernetting) per identificare netid Si parla di CIDR: Classless Interdomain Routing (1992)

Supernetting Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo 202.170.168.0 Per rappresentare tale intervallo di valori, utilizzo AND tra indirizzo inferiore e la maschera 202.170.168.0 11001010 10101010 10101000 00000000 202.170.175.255 11001010 10101010 10101111 11111111 111111111 11111111 11111000 00000000

Instradamento in reti IP Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/~bianco

Consegna diretta e indiretta Se due host sono connessi direttamente alla stessa sottorete (intesa come collegamento fisico) si ha consegna diretta Se due host non sono connessi alla stessa sottorete, la consegna è mediata da uno o più router: si ha consegna indiretta

Consegna diretta Per decidere se effettuare una consegna diretta, l’host mittente controlla la porzione di rete dell’indirizzo IP destinatario Se tale porzione coincide con il proprio indirizzo di rete, si ha consegna diretta In ogni comunicazione tra host, si ha almeno una consegna diretta Il trasferimento avviene mappando l’indirizzo IP in un indirizzo MAC della LAN cui l’host è collegato

Risoluzione di indirizzi: Problema che si presenta per ogni trasmissione di datagram IP (host-host, host-router, router-router, router-host) Da indirizzo IP ad indirizzo MAC (fisico) Direct mapping: mediante tabella statica Dynamic bynding: protocollo ARP: Address Resolution Protocol ARP e` utilizzato su reti broadcast (LAN) Dato l’indirizzo IP dell’host con cui si vuole comunicare, permette di ricavarne l’indirizzo MAC (es: Ethernet)

ARP Viene costruito dall’host che vuole risolvere l’indirizzo un pacchetto broadcast (request) che contiene l’indirizzo IP del destinatario, indirizzo IP ed Ehternet di chi origina la richiesta L’host che riconosce nel campo richiesta il proprio indirizzo IP invia un pacchetto di risposta (reply) direttamente al sender

ARP Sia chi origina il pacchetto sia chi lo riceve (e risponde) aggiungono una informazione nella propria tabella ARP Le successive comunicazioni tra i due elaboratori possono avvenire senza ulteriori richieste di ARP Le entry nella tabella di ARP scadono dopo un tempo prefissato

ARP a.b.c.d e.f.g.h i.j.h.k l.m.n.o p.q.r.s 1 2 LAN address di C

Tabelle di ARP Corrispondenze tra indirizzi IP e indirizzi LAN IP addr LAN addr age 130.192.2.58 08-00-2b-15-47-2e 10 130.192.2.64 08-00-2b-21-56-64 12 . . . . . . . . . .

Tabelle di ARP Ogni volta che un elaboratore deve comunicare con un altro sulla stessa LAN conoscendone l’indirizzo IP, viene ricercato l’indirizzo nella tabella di ARP Se non si trova un match viene emessa una richiesta di ARP, altrimenti la comunicazione può avvenire usando direttamente l’indirizzo MAC

Formato del pacchetto ARP 8 16 31 Hardware Type Protocol Type HLEN PLEN Operation Sender HW Address Sender HW Address Sender IP Address Sender IP Address Target HW Address Target IP Address Protocol Target HW Address Time To Live Target IP Address

ARP: formato pacchetto Operation: tipo di operazione arp request, arp reply, rarp request, rarp reply Hardware type: tipo di MAC (Ethernet = 1) Protocol type: protocollo che usa ARP (IP=0800H) HLEN e PLEN permettono di utilizzare ARP con rete arbitraria (indirizzi di dimensione variabile)

Consegna indiretta Il mittente identifica quale router incaricare della consegna del datagram IP tra quelli raggiungibili con consegna diretta Il router incaricato sceglie il router successivo, da lui raggiungibile direttamente, sul percorso verso la destinazione Il datagram passa da router a router fino a quello che lo consegna direttamente a destinazione

Le Routing Tables Ogni host ed ogni router coinvolto nella consegna IP ha tabelle di instradamento (RT, Routing Table) Ovviamente, le tabelle non possono avere informazioni su ogni possibile destinazione Principio: nascondo l’informazione I router remoti instradano usando solo la porzione di rete dell’indirizzo IP

Il Next-hop Routing Una tabella di routing contiene almeno due informazioni: D indirizzo destinazione R = next-hop D è normalmente un indirizzo di rete R è detto next-hop, e corrisponde ad un host o un router raggiungibile direttamente Se è possibile mettere in relazione l’indirizzo di destinazione del pacchetto in transito con un indirizzo D delle RT, il pacchetto viene inviato al relativo R

Next-hop Routing - esempio Tabella del router A INDIR. RETE NEXT DESTINAZ. HOP 20.0.0.99 rete 50.0.0.0 50.0.0.254 B rete 20.0.0.0 A 30.0.0.99 90.0.0.254 20.0.0.0 30.0.0.0 50.0.0.0 90.0.0.0 diretto 30.0.0.13 rete 30.0.0.0 rete 90.0.0.0 50.0.0.13 30.0.0.13 X

Instradamenti Default e Specifici Se il next-hop è unico (es: piccola sottorete con unico router), le tabelle di instradamento degli host possono contenere solo una default route per l’esterno L’instradamento può essere specificato per host (host specific route) e non per sottorete per ragioni di: testing maggior sicurezza

Gestione delle Routing Tables Le tabelle di Routing sono fondamentali per il funzionamento corretto di Internet Problemi da affrontare: come inizializzare le RT? quali informazioni devono contenere? come aggiornarle? consistenza tra RT e assenza di loop

Inizializzazione delle RT Dipende dal sistema operativo: lettura da un file di configurazione, eventualmente scritto dall’operatore esecuzione di “comandi di scoperta” da inviare sulla rete scambio di informazioni con altri host sulla rete locale

La propagazione delle Routing Tables Le RT possono cambiare a causa di: interventi sulle topologie guasti sovraccarichi L’informazione sui cambiamenti deve essere propagata tra router mediante le procedure previste dall’algoritmo di instradamento utilizzato

Algoritmo di instradamento IP Estraggo dal pacchetto la parte netid dell’indirizzo IP di destinazione (facile con classi) Se sono collegato direttamente alla destinazione, uso consegna diretta (ARP) altrimenti, cerco host specific route altrimenti, cerco next-hop memorizzato per quella rete altrimenti, cerco default route altrimenti, dichiaro errore di routing

Conseguenze dell’introduzione delle subbnet mask Gli host ed il router locale (solo quello!) deve utilizzare AND tra indirizzo IP e maschera per individuare il netid correttamente Devo memorizzare nella routing table dell router locale anche le netmask Per gli altri ruoter non sono richieste modifiche. Posso usare routing standard

Conseguenze dell’introduzione del CIDR Introdotto (1992) per ridurre le RT e ovviare all’imminente esaurimento della classe B Ad un sito che richiede più indirizzi IP questi sono allocati in modo “contiguo”, condividendo i bit più significativi Il risultato è l’occupazione di una sola “riga” (per tutti gli indirizzi richiesti) nelle RT, che sono consultate con il criterio del longest match

Conseguenze dell’introduzione del CIDR CIDR ha il vantaggio di permettere una aggregazione degli indirizzi su base topologica e geografica... ...ma lo svantaggio di complicare la funzione di lookup perchè: è necessario fare confronti con prefissi a lunghezza variabile (necessario memorizzare nelle RT, oltre all’indirizzo di rete, anche la relativa netmask) bisogna scorrere tutta la tabella per individuare il prefisso con il longest match

CIDR: operazioni di un router Un router riceve un pacchetto con indirizzo destinazione x.y.z.w Esegue AND bit a bit, per ogni riga delle R.T. tra: l’indirizzo di destinazione nella routing table e la netmask l’indirizzo ricevuto x.y.z.w e la stessa netmask Confronto i risultati degli AND: se sono uguali, ho un matching Instrado secondo la riga delle R.T. che ha avuto il maggior numero di bit di matching

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 130.192.71.8 R2 01000111 S R R1 01110000 130.192.120.0 R3

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 130.192.71.8 R2 01000111 S R R1 130.192.120.0 R.T. R3 01110000 130.192.68.0 255.255.192.0 R1 11000000

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 130.192.71.8 R2 01000111 S R R1 130.192.120.0 R3 R.T. 130.192.68.0 255.255.192.0 R1 (18) 01110000

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 130.192.71.8 R2 01000111 S R R1 130.192.120.0 R.T. R3 01110000 130.192.68.0 255.255.192.0 R2 130.192.120.0 255.255.240.0 R3 11110000

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 130.192.71.8 R2 01000111 S R R1 01110000 130.192.120.0 R.T. R3 130.192.68.0 255.255.192.0 R2 (18) 130.192.120.0 255.255.240.0 R3

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 R2 01000111 S R R1 130.192.71.8 01110000 130.192.120.0 R.T. R3 130.192.68.0 255.255.255.0 D 130.192.71.0 255.255.255.0 D

Esempio CIDR 130.192.68.0 01000100 130.192.71.0 R2 S R R1 130.192.71.8 130.192.120.0 R.T. R3 130.192.68.0 255.255.255.0 D 130.192.71.0 255.255.255.0 D (24)

Come si ottengono indirizzi IP? Indirizzi di host in sottorete (host_id): liberi, configurati da amministratore di rete Wintel: control-panel->network->configuration->tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: ottengo dinamicamente indirizzi: host inviano in broadcasts msg “DHCP discover” DHCP server risponde con “DHCP offer” msg host richiede indirizzo IP: “DHCP request” msg DHCP server invia indirizzo: “DHCP ack” msg

Come si ottengono indirizzi IP? Indirizzi di rete (net_id): si chiede una parzioni di indirizzi IP ad un ISP ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Come si ottengono indirizzi IP? Come ottiene indirizzi IP un ISP? ICANN: Internet Corporation for Assigned nomi e numeri alloca indirizzi gestisce DNS assegna nomi di dominio, risolve liti

Da sorgente a destinazione: esempio tabella di routing in A Datagram IP: Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 misc fields source IP addr dest data 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E datagram NON si modifica da sorgente a destinazione interessano solo campi indirizzo

Da sorgente a destinazione: esempio In A, noto indirizzo IP di B: guardo net_id di B trovo che B appartiene alla stessa sotto rete di A invio datagram direttamente a B usando indirizzo MAC B e A sono collegati direttamente misc fields Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.1.3 data 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E

Da sorgente a destinazione: esempio misc fields 223.1.1.1 223.1.2.3 data In A, noto IP di E: confronto net_id E su rete diversa A, E non sono collegati direttamente tabella di routing: next hop 223.1.1.4 invio datagram al router 223.1.1.4 usando indirizzo MAC del router Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E

Da sorgente a destinazione: esempio misc fields 223.1.1.1 223.1.2.3 data network router Nhops interface 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 223.1.3 - 1 223.1.3.27 Dest. next Arrivo a 223.1.1.4, destinato a 223.1.2.2 confronto net_id di E e verifico che sono sulla stessa rete con interfaccia 223.1.2.9 router ed E attaccati direttamente invio datagram a 223.1.2.2 con indirizzo MAC di E 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E

Gruppo Reti TLC nome.cognome@polito.it http://www.tlc.polito.it/ Instradamento Gruppo Reti TLC nome.cognome@polito.it http://www.tlc.polito.it/

Instradamento Obiettivo dei protocolli di instradamento: Grafo determinare un “buon” percorso (sequenza di router) nella rete da sorgente a destinazione Grafo router sono nodi link fisici sono archi Costi su archi ritardo, euro, livello di congestione “Buon” percorso: tipicamente percorso a costo minimo A E D C B F 2 1 3 5

Classificazione algoritmi di routing Informazioni globale o decentralizzata? Globale: tutti i router conoscono la topologia completa, compresi i costi dei canali scambio informazione tra tutti i router algoritmi link state Decentralizzata: i router conoscono i router cui sono fisicamente collegati ed i costi dei canali cui sono collegati scambio di informazione solo con i router adiacenti algoritmi distance vector

Algoritmo Link-State Algoritmo di Dijkstra: determina cammini ottimi Tutti nodi conoscono topologia della rete e costi di tutti i canali si inviano informazioni in broadcast tutti i nodi hanno stessa visione (completa) della rete Ogni nodo calcola i percorsi a minimo corso verso tutti gli altri nodi si ottengono tabelle di routing per questo nodo Algortimo iterativo: dopo k iterazioni si ottengono i cammini a costo minimo per k destinazioni

Algoritmo di Dijkstra Notazione: c(i,j): costo del canale dal nodo i al nodo j. Infinito se nodo non collegato direttamente al canale. D(v): valore corrente del percorso migliore da sorgente alla destinazione v p(v): nodo che precede v nel percorso da sorgente a destinazione v N: insieme di nodi per cui il cammino ottimo e` noto

Algoritmo di Dijkstra 1 Initialization (nodo A): 2 N = {A} 3 per tutti i nodi v 4 if v adiacente ad A 5 then D(v) = c(A,v) 6 else D(v) = infty 7 8 repeat 9 trova w not in N tale per cui D(w) e` minimo 10 aggiungi w ad N 11 aggiorna D(v) per tutti i v adiacenti a w e not in N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* il nuovo costo verso v e` o il vecchi costo verso v o il cammino 14 cammino a minimo costo verso w piu` costa da w a v*/ 15 until tutti i nodi in N

Dijkstra: esempio Step 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) infinity 2,D D(F),p(F) infinity 4,E A E D C B F 2 1 3 5

Algoritmo di Dijkstra: proprietà Complessità con n nodi Ogni iterazione: controllo tutti i nodi w not in N n*(n+1)/2 confronti: O(n**2) Esistono implementazioni migliori: O(nlogn) Possibili oscillazioni: Esempio: costo canali legato al carico trasportato A D C B 1 1+e e 2+e Situazione inziale … ricalcolo percorsi … ricalcolo …ricalcolo

Distance Vector Algoritmo iterativo: Termina in modo autonomo: continua fino a quando I nodi non scambiano piu` informazioni Termina in modo autonomo: nessun segnale esplicito di fine algoritmo Asincrono scambio informazioni necessario solo se cambiamento di stato Distribuito: ogni nodo comunica solo con nodi adiacenti

L’algoritmo Distance Vector Ogni router scambia periodicamente con i vicini diretti un vettore contenente: le destinazioni (reti) che può raggiungere la distanza dalle destinazioni misurata in hop (num. router da attraversare compreso se stesso) Il router che riceve il vettore lo confronta con le proprie RT ed effettua modifiche: aggiunge nuove reti cambia instradamenti se nuovi sono più brevi

L’algoritmo Distance Vector Destinazione Distanza Route Net 1 1 Diretta Net 2 1 Diretta Net 4 8 Router L Net 17 5 Router M Net 24 6 Router J Net 30 2 Router Q Net 42 2 Router J Distance Vector spedito dal router J Destinazione Distanza Net 1 2 Net 4 3 Net 17 6 Net 21 4 Net 24 5 Net 30 10 Net 42 3 Routing Tables del router K K J J

L’algoritmo Distance Vector Vantaggi facile da implementare Problemi: lento a convergere propaga errori di routing non molto scalabile (le dimensioni dei messaggi scambiati dai router crescono al crescere della rete)

Distance Vector Struttura dati: tabella distanze Ogni nodo possiede la propria Una riga per ogni possibile destinazione Una colonna per ogni router adiacente Esempio: nel nodo X, per la destinazione Y attraverso nodo adiacente Z: D (Y,Z) X distanza da X ad Y, via Z come next hop c(X,Z) + min {D (Y,w)} Z w =

Tabella distanze: esempio Costo verso destinazione attraverso nodo A E D C B 7 8 1 2 E D () A B C D A 1 7 6 4 B 14 8 9 11 D 5 4 2 D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 destinazione D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 anello! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 anello!

Tabella di instradamento a partire da tabella distanze Costo verso destinazione atttraverso nodo E Canale di uscita da usare, costo D () A B C D A 1 7 6 4 B 14 8 9 11 D 5 4 2 A B C D A,1 D,5 D,4 destinazione destinazione Tabella distanze Tabella di Routing

Instradamento Distance Vector Iterativo, asincrono: una iterazione (locale al nodo) causata da: modifica costo canale a cui nodo collegato messaggio ricevuto da nodo adiacente, che causa modifica del cammino ottimo Distribuito: ogni nodo avvisa i vicini solo quando il suo cammino migliore verso una certa destinazione e` cambiato i vicini avviseranno a loro volta nodi vicini se necessario

Instradamento Distance Vector Ogni nodo esegue un loop infinito aspetta modifica costo canale locale oppure messaggio da nodo adiacente ricalcola tabella distanze se percorso migliore verso qualche destinazione cambiato, avvisa i vicini

Algoritmo Distance Vector Ad ogni nodo X: 1 Inizializzazione: 2 per tutti i nodi adiacenti v: 3 D (*,v) = infinito /* l’operatore * significa ”per ogni riga" */ 4 D (v,v) = c(X,v) 5 per tutte le destinazioni, y 6 invia min D (y,w) verso ogni nodo adiacente /* w sono tutti i vicini di X*/ X X X w

Algoritmo Distance Vector 8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever X X w X X w X w

Distance Vector: esempio X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y

Distance Vector: esempio X Z 1 2 7 Y

Algoritmo DV: modifica costo canale Nodo riconosce modifica costo canale Modifica tabella distanze (passo 15) Se modifica implica modifica del cammino migliore avvisa nodi adiacenti (passi 23,24) X Z 1 4 50 Y algoritmo termina “good news travels fast”

Algoritmo DV: modifica costo canale good news travels fast bad news travels slow - problema del “count to infinity”! X Z 1 4 50 Y 60 algoritmo prosegue

Distance Vector: poisoned reverse Se Z instrada via Y per raggiungere X: Z comunica ad Y sua distanza verso X e` infinito (Y non instraderà verso X passando da Z) non risolve il problema completamente X Z 1 4 50 Y 60 algoritmo termina

Confronto tra algoritmi LS e DV Complessità messaggi LS: con n nodi, E canali, ogni nodo invia O(nE) messaggi DV: scambio messaggio solo tra nodi adicenti tempo di convergenza variabile Velocità di convergenza LS: algoritmo di complessità O(n**2) richiede O(nE) messaggi puo` oscillare DV: tempo di convergenza variabile errori di routing creano anelli problema del count-to-infinity

Confronto tra algoritmi LS e DV Affidabilità: cosa succede se un router funziona non correttamente? LS: i nodi possono annunciare costi dei canali scorretti ogni nodo calcola la propria tabella DV: i nodi possono annunciare costi dei cammini scorretti ogni tabella e` usata da tutti i nodi gli errori si propagano nella rete

Indirizzamento gerarchico: aggregazione dei percorsi Indirizzamento gerarchico permette annunci (invio info) efficienti delle informazioni di instradamento Organizzazione 0 200.23.16.0/23 Organizzazione 1 “Inviami qualunque pacchetto con indirizzi che iniziano per 200.23.16.0/20” 200.23.18.0/23 Organizzazione 2 200.23.20.0/23 . ISP B . Internet Organizzazione 7 200.23.30.0/23 “Inviami qualunque pacchetto con indirizzi che iniziano con 199.31.0.0/16” ISP A

Indirizzamento gerarchico: aggregazione dei percorsi Se ISP A ha un percorso piu` specifico verso Organizzazione 1 Organizzazione 0 200.23.16.0/23 “Inviami pacchetti con indirizzi che iniziano con 200.23.16.0/20” Organizzazione 2 200.23.20.0/23 . ISP B . Internet Organizzazione 7 200.23.30.0/23 “Inviami pacchetti con indirizzi che iniziano con 199.31.0.0/16 orppure 200.23.18.0/23” ISP A Organizzazione 1 200.23.18.0/23

Algoritmi di instradamento in reti IP Gruppo Reti TLC nome.cognome@polito.it http://www.tlc.polito.it/

Routing gerarchico Per ora caso ideale tutti router identici rete “piatta”, non gerarchica Approccio non utilizzabile in pratica scalabilità: con 50 milioni di destinazioni: tutte destinazioni in una tabella? Scambio di info di routing occuperebbe troppo canali Autonomia amministrativa internet = rete di reti ogni amministratore di rete puo` volere controllare instradamento sulla propria rete

Routing gerarchico Router aggregati in regioni, dette Autonomous System (AS) Insieme di router con struttura complessa (molte sottoreti e router) ma unica identità amministrativa Router nello stesso AS usano stesso protocollo di instradamento Protocolli di instradamento intra-AS (IGP: Interior Gateway Protocol) Router in AS diversi possono usare protocolli IGP diversi (aggiornamento e validazione circoscritti)

Routing gerarchico In ogni AS devono esistere router “gateway” responsabili per instradare verso destinazioni esterne all’AS usano protocolli inter-AS (EGP: Exterior Gateway Protocol) con altri router gateway usano protocolli intra-AS con tutti altri router dell’AS Si parla quindi di routing interno (IGP) ed esterno (EGP)

Routing Intra-AS and Inter-AS C.b Gateways: eseguono instradamento inter-AS tra loro eseguono instradamento intra-AS con altri router nel loro AS B.a A.a b A.c c a a C b a B d c A b network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer

Routing Intra-AS and Inter-AS b C A B d c A.a A.c C.b B.a Inter-AS routing tra AS A e B Host h2 Host h1 Intra-AS routing all’iterno dell’AS B Intra-AS routing all’interno dell’AS A

Definizione di un AS I “confini” tra AS devono essere ben definiti per non creare confusione tra gli algoritmi di routing A ciascun AS viene assegnato un numero di ID su 16 bit da una authority centrale (INTERNIC, APNIC, RIPE-NCC) Quando due router si scambiano informazioni di raggiungibilità, i messaggi contengono l’ID dell’AS a cui appartengono

Traffico locale e in transito Definiamo “traffico locale” ad un AS il traffico IP che: ha come sorgente un host dell’AS ha come destinazione un host dell’AS In tutti gli altri casi, si tratta di “traffico in transito” sull’AS

Autonomous Systems (AS) Gli AS sono origine/transito/destinazione del traffico inter-dominio Tre categorie di AS: stub: connesso ad un unico AS, accetta solo traffico locale multihomed: connesso a piu’ AS, accetta solo traffico locale transit: connesso a piu’ AS, accetta anche traffico in transito

EGP: Exterior Gateway Protocol Storicamente, il primo protocollo usato dagli AS per diffondere informazioni di raggiungibilità I router che lo usano sono detti router esterni (exterior routers) Presuppone una rete con topologia ad albero (come la “vecchia” ARPAnet) EGP va in crisi con l’introduzione di dorsali e cammini multipli tra due host e per questo motivo è stato sostituito con BGP

Funzioni di EGP Neighbor Acquisition: un router richiede ad un “vicino” di accordarsi per comunicare Neighbor reachability: un router controlla sempre se i suoi “vicini” sono raggiungibili Network reachability: i “vicini” si scambiano sempre informazioni di raggiungibilità

EGP: Osservazioni e problemi Non propaga distanze tra reti, ma solo raggiungibilità Presuppone un core system, non funziona con l’attuale struttura a dorsali multiple Non supporta load sharing né cammini alternativi Non supporta il policy routing Va in crisi con router malfunzionanti (pubblicizzano route inconsistenti)

Da EGP a BGP La crescita nella complessità della topologia Internet (backbone multiple) rende inutilizzabile EGP (anelli) alternative? Protocolli link state (non realistico) Path-vector

BGP: Border Gateway Protocol E’ il più diffuso EGP in Internet BGP permette di specificare politiche di instradamento per scegliere il cammino migliore in presenza di scelte multiple Le politiche di instradamento sono espressione di considerazioni economiche e gestionali, e tengono conto di aspetti di sicurezza

Path Vectors Ogni routing update trasporta un elenco di AS necessari per raggiungere una certa destinazione Se un AS compare due volte, riconosco anello Vantaggi: non creo anelli non sono obbligato ad usare la stessa metrica per ogni router Svantaggi: overhead (una entry per ogni AS che annucio nel path vector)

BGP: Border Gateway Protocol Protocollo di instradamento esterno (or inter-AS) basato su path vector Funzione principale: scambiare informazioni di raggiungibilità Ultimo RFC: 1771 (BGP-4), in corso di aggiornamento

BGP: riassunto Due router che usano BGP aprono una connessione utilizzando TCP Inizialmente scambiano le tabelle di instradamento di BGP In caso di modifiche si inviano aggiornamenti incrementali Non sono necessari aggiornamenti periodici (sono inviati periodicamente solo messaggi di KEEPALIVE)

BGP peering external peers AS 1 AS 2 AS 3 internal peers AS 4

BGP messages Dimensione variabile tra 19 e 4096 bytes L’intestazione contiene: autenticazione lunghezza messaggio tipo messaggio OPEN (first msg) UPDATE NOTIFICATION (of error condition) KEEPALIVE

Messaggi di UPDATE Usato per: annunciare una nuovo percorso ammissibile verso un peer router AND/OR annullare percorsi inammissibili BGP Header Unfeasible Routes length (2 bytes) Withdrawn routes (variable) UPDATE Total Path Attribute Length (2 bytes) Path attributes (variable, as many as necessary) Network Layer Reachability Information (variable)

Messaggi di UPDATE Percorsi da annullare sono identificati mediante le destinazioni (come neti_d IP) I path attributes descrivone i nuovi percorsi (uno per ogni messaggio di UPDATE) Gli attributi di path si riferiscono alla destinazione specificata (utilizzando il netid dell’indirizzo IP) nel campo Network Layer Reachability Information

Routing in un AS I router di un AS sono detti interni Problema: come fa un router interno a conoscere gli instradamenti dentro l’AS? Aggionamenti manuali? Forse per AS di piccole dimensioni... se cambia una rete, bisogna modificare le tabelle di routing su ogni host (richiede tempo e può dare errori) Aggiornamenti automatici

Routing in un AS In un AS, i router interni si scambiano dati di raggiungibilità per le reti dell’AS Un protocollo per router interni si chiama, genericamente, IGP (Interior Gateway Protocol ) A differenza di EGP, non esiste un unico standard per i protocolli interni Algoritmi di routing interno più diffusi: RIP (implementazione di distance vector) OSPF (implementazione di link state)

Routing Information Protocol (RIP) Nato presso l’Univ. di Berkeley per servire la loro (piccola) rete locale, e distribuito nella suite UNIX 4BSD (routed) Adottato prima che ne fosse definito uno standard (il primo RFC è del 1988) Oggi ha vasta diffusione anche in AS di grandi dimensioni

RIP: caratteristiche Usa una implementazione di distance vector Divide gli host in attivi (router) e passivi Gli host attivi pubblicizzano le loro route a tutti gli altri ogni n (di solito 30s) secondi, sotto forma di coppie (indirizzo, n. di hop) Metrica e` numero di hop Se un router rileva un instradamento a costo strettamente inferiore a quello che ha nelle RT, lo sostituisce (e imposta un timeout pari a 180s)

RIP: un esempio di problemi Net 1 R1 Net 2 R2 R3 Net 3 R4 R5 Net 4 Net 5

RIP: un esempio di problemi R1 dichiara Net 1 a distanza 1 R2 ed R3 inseriscono una entry che dichiare Net 1 a distanza 2 R4 ed R5 inseriscono una entry che dichiare Net 1 a distanza 3 R1 perde connettività e dichiara distanza infinita (16) su Net1 Se nel frattempo pero` R2 e/o R3 dichiarano distanza 2 verso Net 1, R1 inserisce entry che dichiara Net 1 a distanza 3

RIP: problemi Si converge lentamente crescendo le distanze di 1 ad ogni routing updates Data la lentezza di propagazione, si possono avere problemi di lenta convergenza o non consistenza delle RT (count to infinity) Non riconosce automaticamente eventuali loop (occorrono interventi esterni, o modifiche al protocollo) I problemi nascono dal numero limitato di informazioni scambiate tra i router (solo 2) e dalla mancanza di stretto coordinamento

RIP: soluzioni Split horizon con poisoning reverse: non propagare informazioni di raggiungibilità dall’interfaccia con cui si raggiunge la destinazione R2 non propaga distanza 2 e dopo un tempo breve tutti dichiarano distanza 16 Non basta! R2 propaga su Net 3 distanza 2 verso Net 1 R3 propaga su Net 3 distanza 3 verso Net 1 R2 accetta distanza 4 verso Net 1 Nessuno usa distanza 16 propagata da R1

RIP: altre soluzioni Il router che vede rete disconnessa mantiene questa informazione per un tempo molto superiore al periodo di peridodico aggiornamento R1 mantiene distanza 16 anche se riceve informazione da R2 di distanza 2 Triggering updates: quando vedo rete non piu` connessa forzo update immediatamente R1 immediatamente informa che Net 1 e` a distanza 16 Rischioso perche` posso creare broadcast ripetuti su LAN

L’algoritmo IGRP IGRP (Interior Gateway Routing Protocol) venne proposto da Cisco Systems Inc. a metà degli anni ‘80 per superare le limitazioni di RIP E’ un algoritmo distance vector con metriche più sofisticate: ritardo, banda, affidabilità, carico Permette il multipath routing Limite: è solo disponibile sui router Cisco

L’algoritmo OSPF OSPF (Open Shortest Path First ) è una proposta di IETF dell’89 [RFC 1247] E’ un algoritmo link-state: ogni router verifica lo stato delle linee verso i router adiacenti e lo invia a tutti i router conosciuti Ogni router si costruisce una mappa completa della rete su cui calcole le route con algoritmi sofisticati (SPF o alg. di Dijkstra)

RIP e OSPF RIP: invia informazioni su tutte le subnet solo ai router adiacenti i router cooperano direttamente per calcolare le tabelle di instradamento OSPF: invia a tutti i router noti informazioni solo sulle subnet a cui sono connessi i router cooperano per aggiornare la mappa della rete, ma poi ciascuno si calcola le RT in modo autonomo

OSPF: caratteristiche Discrimina i percorsi verso una stessa destinazione secondo il campo TOS E’ più veloce a convergere di RIP, ed esegue il bilanciamento del carico sulle linee a costo uguale verso una stessa destinazione Ad ogni interfaccia del router può essere assegnato un costo adimensionale basato su throughput, RTT, affidabilità o altro Connessioni punto-punto tra router OSPF non necessitano di indirizzi IP per l’interfaccia (risparmio!)