Estratto del documento

Livello di rete (strato network) - FENU2

Definizioni e servizi

Il livello di rete si fa carico di trasferire i pacchetti provenienti dal livello di trasporto a partire dalla sorgente fino alla destinazione, attraversando tanti sistemi intermedi (switching points o router) della sottorete di comunicazione. Non si parla più di reti locali, ma reti wired, cioè estese e complesse. I principali compiti di questo livello sono:

  • Conoscere la topologia della sottorete di comunicazione, cioè come sono distribuite le linee e i nodi;
  • Scegliere di volta in volta il cammino migliore (routing);
  • Gestire il flusso dei dati (flow control) che, a seconda del tipo di flusso, deve garantire una continuità, e le congestioni (congestion control);
  • Gestire le problematiche derivanti dalla presenza di più reti diverse (internetworking).

Nel progetto e nella realizzazione del livello di rete di un'architettura di rete si devono prendere decisioni in merito a:

  • Servizi offerti al livello superiore (trasporto);
  • Organizzazione interna della sottorete di comunicazione.

Servizi offerti a livello superiore

Ci sono due tipologie fondamentali di servizi per il livello di trasporto:

  • Servizi connection-oriented: Viene visto come filiera unica tra sorgente e destinatario. Ogni commutatore vede un insieme di linee e ogni router ha una linea in ingresso e una in uscita. Un servizio diviso in 3 fasi principali:
    1. Le peer entities stabiliscono una connessione, alla quale viene associato un identificatore, negoziandone i parametri (ad esempio di qualità, di costo);
    2. Trasmissione delle informazioni dove viene inserito in ogni pacchetto che verrà inviato. La comunicazione è bidirezionale e i pacchetti viaggiano, in sequenza, lungo il cammino assegnato alla connessione; il controllo di flusso è fornito automaticamente (attraverso alcuni parametri negoziati, come ad esempio il dimensionamento di una o più finestre scorrevoli);
    3. Rilascio della connessione.

    La complessità della realizzazione è attribuibile ai nodi della sottorete, che si devono occupare del set up delle connessioni e di fornire la necessaria affidabilità. Se è affidabile, è possibile ottenere vantaggi quando la Qualità del Servizio è un fattore dominante, come per la gestione di traffico dati in tempo reale (audio/video).

  • Servizi connectionless (senza connessione): La sottorete è inaffidabile. Per questo motivo gli host devono provvedere per conto proprio alla correzione degli errori e al controllo di flusso. I pacchetti (che prendono il nome di datagram) sono inoltrati nella sottorete ed instradati in maniera indipendente, dunque devono tutti contenere un identificatore (indirizzo). È inutile inserire equivalenti funzioni di controllo degli errori e del flusso in due diversi livelli, perché è a carico del destinatario. La complessità della realizzazione di una rete così risulta negli host, i cui livelli di trasporto devono fornire affidabilità e l'orientamento alla connessione. Quindi ci possono essere anche duplicazioni.

In realtà le decisioni da effettuare riguardano essenzialmente se offrire un servizio affidabile, con uno orientato alla connessione. Le scelte più comuni sono di offrire servizi connection oriented affidabili oppure servizi connectionless non affidabili, mentre le altre due combinazioni, tecnicamente possibili, non sono diffuse.

Principi di commutazione

La commutazione è la funzione che consente di trasferire l'informazione proveniente dagli host di origine agli host di destinazione, variabili di volta in volta secondo le esigenze del servizio ed è espletata da appositi dispositivi collocati ai nodi della rete. La scelta della tecnica di commutazione da adottare in una sottorete è ristretta a tre opzioni, ed influenza la QoS (Quality of Service):

  • Commutazione di circuito: Nasce da sistemi di tipo telefonico. È una ottima commutazione perché non ha rallentamenti, congestioni (non c’è condivisione di linea) e non devo verificare la sequenza (primo dato in ingresso = primo dato in uscita), però è costosa. È caratterizzato da una comunicazione attraverso le tre fasi tipiche di una connessione connection-oriented:
    1. L’instaurazione (call set-up): l’host chiamante (α) stabilisce il collegamento con l’host destinatario (β) inviando alla sottorete le informazioni necessarie per l’individuazione del circuito. È previsto un ritardo di instaurazione (call set-up delay), variabile con le caratteristiche della rete, dovuto ai tempi di elaborazione per la scelta dei nodi del percorso di instradamento, ed ai tempi di trasmissione delle informazioni di segnalazione. Al tempo 0 (parte striscia inizio) viene interrogato il primo router al quale viene chiesto di scegliere una linea di uscita. Siamo ancora in fase di richiesta ed è importante il tempo che al nodo si impiega per scegliere e attraversare la linea migliore (pochi millisec). Viene data l’accettazione (ack) alla comunicazione che avviene senza perdita di tempo al nodo perché è già prenotato e non deve fare la selezione, ma deve solo approvare il path. Se ho il path posso passare la comunicazione su un'altra di queste linee? Se la linea è una no, se per linea intendo una sezione di banda si. È di tipo equal cost.
    2. Trasferimento dati (data transfer): Durante questa fase il ritardo è poco ed è dato dal ritardo elettrico della trasmissione dei dati e la sottorete diventa un'infrastruttura trasparente tra origine e destinazione, ed i canali α e β sono a completa disposizione della comunicazione bidirezionale in quanto i dati non subiscono nessun trattamento intermedio; in effetti, durante la connessione, viene resa disponibile una connessione fisica dedicata.
    3. Rilascio della connessione (call clear-down): Ogni router ha una capacità di instradamento uguale agli altri. Quindi se α e β sono collegati tra loro e non sto trasferendo dati, la rete è sempre impegnata fino al rilascio, mi costa senza poterla usare.
  • Commutazione di messaggio: Si cerca di spostare il problema dal circuito al messaggio. Trasferisco i dati da un nodo all’altro e quando finisco non impiego più la rete, ma la libero. Quindi non c’è più la fase di call set-up ma solo trasferimento del messaggio. Risparmio molte risorse. L’informazione è strutturata in messaggi, ognuno dei quali comprende oltre l’informazione da trasportare, anche altre informazioni aggiuntive quali l’indirizzo del mittente e del destinatario, e in calce al messaggio, opportune forme di verifica della correttezza dei dati trasmessi. Il trasferimento dell’informazione, siccome i dati da inviare sono di grandi dimensioni, avviene attraverso la tecnica store and forward (immagazzinamento e rilascio) per l’impiego dei nodi di trasmissione, e della multiplazione statistica per l’utilizzazione dei rami trasmissivi. Il messaggio inviato dal α al nodo della sottorete viene immagazzinato interamente nello stesso. Attraverso l’esame dell’intestazione, la strategia di instradamento, le regole di priorità, sceglie il nodo successivo (F), per raggiungere il nodo di destinazione (D) e infine l’Host β. Quindi il messaggio passa da un nodo a quello successivo, e attende eventualmente in coda nel caso sia presente occupazione del canale di comunicazione (ramo) da parte di un altro messaggio. Ogni nodo intermedio, prima di cancellare il messaggio registrato localmente, attende la conferma dell’avvenuto pervenimento corretto (ack) al nodo successivo, e solo ricevuta quest’ultima provvede alla cancellazione locale. Questo viene fatto per evitare la saturazione dei dischi dopo pochi invii. Una rete a commutazione di messaggio è caratterizzata da una comunicazione senza connessione (connectionless), in quanto non viene instaurata alcuna relazione, fisica o logica, tra host di origine e quello di destinazione. La sottorete non risulta trasparente, in quanto i nodi di commutazione operano nei dati le elaborazioni necessarie per effettuare l'instradamento del messaggio. Il ritardo di trasferimento dei messaggi dipenderà da una serie di fattori, quali la lunghezza dei messaggi, la velocità di trasmissione in ciascun ramo della sottorete, il tempo d’attraversamento dei singoli nodi, il numero di nodi e rami necessari per il trasferimento. Ciò comporta che il servizio di trasferimento delle informazioni non può consentire comunicazioni di informazioni interattive. Inoltre la direzione del messaggio, non prefissata né limitata, ha spesso lunghezze tali che il rischio di corruzione durante l’invio è possibile. È presente anche l’intestazione del messaggio (unico modo per muoversi). Questa tecnica ha vantaggi e svantaggi: il vantaggio è che libera più velocemente la sottorete di comunicazione, lo svantaggio è che inviando una mole unica di dati ha un’occupazione un po’ lunga, quindi se durante il trasferimento ci sono congestioni ecc, devo rinviare tutto. Per evitare questo, il messaggio viene sezionato e si arriva al pacchetto.
  • Commutazione di pacchetto: Si basa sullo store and forward come principio di funzionamento, ma con un diverso utilizzo dei rami trasmissivi attraverso la modalità della multiplazione statistica (ovvero, l’allocazione di uno stesso canale, in funzione del “carico” di ogni singola comunicazione). L’informazione viene segmentata in unità di lunghezza massima predefinita (pacchetti). Ci sono due modalità:
    • Datagramma: La diretta evoluzione della commutazione di messaggio. L’informazione viene segmentata in una serie di pacchetti chiamati datagrammi. Ciascuno è provvisto di intestazione contenente delle informazioni aggiuntive e dati, quali indirizzo di origine e destinazione dell’informazione. Ogni datagramma si comporta come unità autonoma nel trasferimento attraverso la sottorete; pertanto ciascun pacchetto potrà seguire un percorso differente. L’ordine con cui vengono emessi dal mittente non viene conservato nel trasferimento attraverso la rete, ma è a carico del destinatario. I principali svantaggi riguardano da un lato un numero maggiore di informazioni da trasmettere rispetto alla commutazione di messaggio (dovuto alla presenza delle intestazioni per ciascun datagramma), dall’altro la possibilità, frequente, di perdita o duplicazione di pacchetti. Per superare in parte i problemi, si ricorre alla tecnica di commutazione di pacchetto a circuito virtuale.
    • Circuito virtuale: I pacchetti appartenenti alla stessa comunicazione seguono lo stesso cammino. Tale cammino potrebbe essere diverso per le due direzioni di trasferimento. Così viene garantita la sequenzialità delle informazioni e l’integrità del messaggio a destinazione. Non è necessario che la risposta di β verso α passi sullo stesso path. La grandezza dei messaggi è sempre la stessa, ma la cosa positiva è che ho una sequenza certa e arriva tutto in modo ordinato. Contemporaneamente posso fare più collegamenti di circuiti virtuali sulla stessa tratta. Anche qui ci sono tre fasi tipiche di una connection oriented, ma le differenze sono:
      • Nell’instaurazione: avviene tramite l’invio di pacchetti di segnalazione, attraverso i quali avviene la creazione di una serie di canali logici;
      • Nel trasferimento dati: avviene lungo un circuito virtuale, ovvero un’associazione logica tra sorgente e destinazione, in luogo di un circuito fisico. I pacchetti appartenenti alla stessa chiamata vengono etichettati con un numero di canale logico ed instradati in uno dei canali logici precedentemente creati. Il circuito virtuale viene mantenuto in piedi per tutta la durata della chiamata virtuale;
      • Nel rilascio della connessione: non c’è trasparenza del flusso dei dati, in quanto ciascun pacchetto deve essere necessariamente elaborato dai nodi della sottorete, al fine di consentire l’instradamento.

Organizzazione interna della sottorete di comunicazione

Le sottoreti di comunicazione possono essere raggruppate secondo due insiemi distinti:

  • Basato su connection-oriented: La sottorete stabilisce un circuito, cioè un cammino fra la sorgente e la destinazione, lungo il quale tutti i router ricordano, in una apposita struttura dati, la parte di loro competenza di tale percorso. Tutti i pacchetti contenenti l'ID di tale circuito, verranno instradati, tutti nello stesso modo, lungo il circuito;
  • Basato su connectionless: I router instradano ogni pacchetto che arriva sulla base del suo indirizzo di destinazione, decidendo di volta in volta come farlo proseguire lungo la sottorete, attraverso l’utilizzo di apposite tabelle di instradamento (rouling table). Nel caso di connessioni connectionless ma con servizio connection-oriented, questo livello si occupa di simulare l’esistenza di una connessione al livello superiore, anche se in realtà i pacchetti viaggiano nella sottorete in maniera indipendente, e vengono rimessi in ordine dal livello di rete solo a destinazione, prima della consegna al livello di trasporto.

Algoritmo di routing

La funzione principale del livello di rete è di instradare i pacchetti sulla sottorete, facendo fare loro molti hop (salti) da un router ad un altro, secondo un percorso (path) definito all’interno della rete stessa, tra un host sorgente e uno destinatario. Un algoritmo di routing è quella parte del software di livello di rete che determina su quale linea di uscita instradare un pacchetto che è arrivato al router:

  • In una sottorete datagram l'algoritmo viene applicato ex novo ad ogni pacchetto, o serie di pacchetti;
  • In una basata su circuiti virtuali l'algoritmo viene applicato solo nella fase di set-up del circuito (session routing).

Da un algoritmo di routing ci si attende: correttezza (inoltrare il pacchetto nella giusta direzione); semplicità (implementazione non troppo complicata); robustezza (garanzia di funzionamento anche in caso di cadute di linee di malfunzionamento o blocco del router e di riconfigurazioni della topologia); stabilità (convergere possibilmente in modo rapido); equità (nessun privilegio nell'inoltro); ottimalità (scelta della soluzione globalmente migliore dei percorsi). Gli ultimi due requisiti sono spesso in conflitto fra loro; inoltre, per l'ottimalità, non sempre è chiaro cosa ottimizzare. Infatti, ad esempio, si supponga di voler minimizzare il ritardo medio pacchetti e massimizzare il throughput totale dei pacchetti. Questi due obiettivi sono in conflitto fra loro, perché di solito aumentare il throughput allunga le code sui router e quindi aumenta il ritardo; questo è vero per qualunque sistema basato su code gestito in prossimità della sua capacità massima.

Gli algoritmi di routing si dividono in due classi principali:

  • Algoritmi non adattivi (static routing): le decisioni di routing sono prese precedentemente all'avvio della rete, e sono comunicate ai router che poi si attengono sempre a quelle. Sono adatti per sottoreti di piccole dimensioni, ed hanno il vantaggio di permettere al gestore un controllo totale sui flussi di traffico. Presentano però l’inconveniente della configurazione manuale della sottorete o della sua eventuale riconfigurazione;
  • Algoritmi adattivi (dynamic routing): le decisioni di routing sono frequentemente riformulate, sulla base ad es. del traffico e della topologia della rete. Presentano il vantaggio di un’alta tolleranza alle condizioni di errore, e sono perciò adatti per reti di grandi dimensioni. Gli algoritmi adattivi differiscono fra loro per come ricevono le informazioni (localmente, dai router adiacenti, da tutti i router), quanto spesso rivedono le decisioni (ad intervalli di tempo prefissati, quando il carico o la topologia cambia), quale metrica di valutazione adottano (distanza, numero di hop, tempo di transito stimato).

Ciò che ci interessa negli algoritmi è:

Metrica: Per metrica si intende il parametro di riferimento per la misurazione dell’attraversamento di una sottorete. Viene associata una variabile ad ogni percorso della sottorete, pertanto, in caso di possibilità di percorsi multipli per la stessa destinazione, viene scelta la route (percorso) con metrica inferiore. Sono da considerarsi metriche: numero di salti (hops), carico, ritardi, minor congestione, peso delle singole linee, velocità per singola linea, larghezza di banda, costo dì comunicazione, affidabilità della route.

Si deve scegliere il percorso che porta più velocemente al trasferimento verso β, cioè A-F-E-D. Alcuni protocolli possono utilizzare differenti metriche per il calcolo del percorso migliore. È possibile fare una considerazione generale sul percorso ottimale dei cammini (path), indipendentemente dall’algoritmo adottato. Il principio di ottimalità dice che se il router j è nel cammino ottimo fra i e k, allora anche il cammino ottimo fra j e k è sulla stessa strada. Se così non fosse, ci sarebbe un altro cammino (es. quello tratteggiato) fra j e k migliore di quello che è parte del cammino ottimo fra i e k, ma allora ci sarebbe anche un cammino fra i e k migliore di quello ottimo. La conseguenza è che l'insieme dei cammini...

Anteprima
Vedrai una selezione di 8 pagine su 35
Reti di Calcolatori - Appunti parziale 3 Pag. 1 Reti di Calcolatori - Appunti parziale 3 Pag. 2
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 6
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 11
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 16
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 21
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 26
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Appunti parziale 3 Pag. 31
1 su 35
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher jiustin di informazioni apprese con la frequenza delle lezioni di Reti di calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Cagliari o del prof Fenu Gianni.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community