Ominide 50 punti

Livello di rete

Abbiamo visto che il livello di trasporto fornisce varie forme di trasmissione tra processi, facendo affidamento sul servizio di comunicazione host-to-host a livello di rete, senza però essere a conoscenza di come il servizio è effettivamente implementato. Vedremo quindi cosa sta dietro il servizio di comunicazione host-to-host e cosa lo fa funzionare. Vedremo inoltre che, a differenza del livello di trasporto, una parte del livello di rete, è presente anche negli host e nei router, ed è forse per questo che risulta uno tra i più impegnativi e complessi, e pertanto tra i più interessanti, nella pila dei protocolli. Inoltre, dopo una panoramica sui servizi che il livello di rete può offrire, considereremo i due approcci alla consegna dei pacchetti : il modello a datagramma e quello a circuito virtuale. Infine il ruolo fondamentale ricoperto dall’indirizzamento nel recapito dei pacchetti. Opereremo un’importante distinzione tra le funzioni d’inoltro(forwarding) e d’instradamento (routing).
Il primo implica il trasferimento di un pacchetto da un collegamento in ingresso a un collegamento in uscita all’interno di un singolo router. Il secondo coinvolge tutti i router di una rete, le cui interazioni collettive (attraverso i protocolli d’instradamento) determinano i percorsi (path o route) seguiti dai pacchetti nel loro viaggio dal nodo di origine a quello destinazione. Osserviamo la figura in cui viene illustrata una rete, e consideriamo il ruolo del livello di rete nell’ambito di una trasmissione da H1 a H2 e il compito dei router. Il livello di rete in H1 prende i segmenti dal livello di trasporto, li incapsula in un datagramma che trasmette al proprio router limitrofo (quello più vicino),R1. Nell’host H2, il livello di rete riceve i datagrammi dal proprio router contiguo R2, estrae i segmenti li consegna al livello di trasporto. In questo processo, il ruolo dei router è inoltrare i datagrammi dai loro collegamenti d’ingresso a quelli di uscita. La pila di protocolli dei router non ha ulteriori livelli sopra quello di rete, in quanto questi non eseguono applicazioni, se non a scopo di controllo.

Inoltro e instradamento

Il ruolo del livello di rete è quindi piuttosto semplice: trasferire pacchetti da un host a un altro. E’ possibile identificare due importanti funzioni.
- inoltro (forwarding). Quando un router riceve un pacchetto, lo trasferisce sull’appropriato collegamento d’uscita.
- instradamento (routing). Il livello di rete determina, tramite algoritmi d’instradamento (routing algorithm), il percorso che i pacchetti devono seguire.
Con inoltro faremo quindi riferimento all’azione con cui il router trasferisce i pacchetti da un’interfaccia d’ingresso a quella in uscita. Con instradamento indicheremo, invece, il possesso di rete che determina i percorsi dei pacchetti nel loro viaggio dall’origine alla destinazione. A titolo esemplificativo, supponiamo che Giacomo stia viaggiando sull’autostrada da Roma a Bologna. In questo caso, l’instradamento corrisponde al processo di pianificazione dell’intero viaggio cui ha provveduto consultando una cartina stradale e scegliendo uno tra i molteplici percorsi possibili. Lungo l’itinerario prestabilito, Giacomo percorre una serie di segmenti di strada e incontra numerosi svincoli il cui attraversamento può essere paragonato all’inoltro: l’auto entra nello svincolo, prende la direzione desiderata e si immette sul tratto di strada che porterà allo svincolo successivo. Per inoltrare i pacchetti, i router estraggono dal campo intestazione il valore che utilizzano come indice nella tabella d’inoltro (forwarding table). Il risultato indica a quale interfaccia di collegamento il pacchetto debba essere diretto. A seconda del protocollo, il valore nell’intestazione del pacchetto può rappresentare l’indirizzo di destinazione o la connessione cui appartiene. La figura ne fornisce un esempio. Il pacchetto con valore del campo intestazione pari a 0111 giunge a un router che,tramite l’indice della propria tabella d’inoltro, individua che l’interfaccia di collegamento in uscita è la 2. Come si vede in figura l’algoritmo d’instradamento determina i valori inseriti nelle tabelle d’inoltro dei router. L’algoritmo d’inoltro può essere centralizzato (ad esempio, con un algoritmo in esecuzione su un sito centrale che scarica informazioni d’instradamento a ciascuno dei router) o decentralizzato (ad esempio, con una parte dell’algoritmo d’instradamento distribuito in esecuzione su ciascun router). In entrambi i casi, il router riceve messaggi d’instradamento, che vengono utilizzati per configurare la sua tabelle d’inoltro. Importante ricordare che:
- commutatore di pacchetto (packet switch) indica il dispositivo che si occupa del trasferimento dell’interfaccia in ingresso a quella in uscita, in base al valore del campo nell’intestazione del pacchetto;
- router: sono i commutatori che prendono le decisioni d’inoltro basandosi sul valore nel campo a livello di rete.

Impostazione della connessione

Oltre a instradamento e inoltro, nel cuore delle reti di calcolatori esiste una terza, importante funzione a livello di rete, ossia l’impostazione della connessione (connection setup). Ricordiamo dallo studio del TCP, che è richiesto un handshake a tre vie prima che i dati possano fluire dal mittente al destinatario. Questi possono così impostare le informazioni di stato richieste ( ad esempio, il numero di sequenza della dimensione iniziale della finestra di controllo di flusso). Analogamente, alcune architetture a livello di rete(ma non Internet) richiedono che i router effettuino l’handshake per impostare lo stato, prima che i pacchetti inizino a fluire. A livello di rete, questo processo viene detto impostazione della connessione.

Modelli dei servizi di rete

E’ ora utile soffermarsi sui diversi tipi di servizi che il livello di rete può offrire. Il modello dei servizi di rete definisce le caratteristiche del trasporto punto-punto di dati tra sistema terminale d’invio e di ricezione.
Consideriamo ora alcuni servizi che il livello di rete potrebbe offrire quando il livello di trasporto dell’host mittente passa un pacchetto al livello di rete.
• Consegna garantita. Questo servizio assicura che il pacchetto giunga, prima o poi,alla propria destinazione.
• Consegna garantita con ritardo limitato. Questo servizio non solo garantisce la consegna del pacchetto, ma anche il rispetto di un limite di un ritardo specificato.
• Consegna in ordine. Questo servizio garantisce che i pacchetti giungano alla destinazione nell’ordine in cui sono stati inviati.
• Minima ampiezza di banda garantita. Questo servizio a livello di rete emula il comportamento trasmissivo dal bit rate specificato tra host d’invio e di ricezione anche se l’effettivo percorso da capo a capo può attraversare diversi collegamenti fisici. Finchè l’host d’invio trasmette bit ( come parte di pacchetti) a una frequenza inferiore al bit rate specificato, non si verifica perdita di pacchetti che giungono entro un ritardo predeterminato.
• Jitter limitato. Questo servizio garantisce che il lasso di tempo tra la trasmissione di due pacchetti consecutivi sia uguale a quello di ricezione. Si tratta di una lista parziale in quanto esistono innumerevoli possibili variazioni.
Il livello di rete di Internet mette a disposizione un solo servizio noto come servizio best-effort, ossia “col massimo impegno possibile”. Il servizio best-effort non garantisce di preservare la temporizzazione tra pacchetti, né la loro ricezione nel medesimo ordine d’invio e nemmeno che vengano consegnati. In questi termini, una rete che on consegna alcun pacchetto alla destinazione soddisfarebbe la definizione di servizio best-effort. E in effetti Internet talvolta potrebbe apparire come un esempio di rete che si comporta in tal modo.

Registrati via email