1 sistemi e tecnologie della comunicazione lezione 19: network layer: congestione, internetworking
TRANSCRIPT
1
Sistemi e Tecnologie della Comunicazione
Lezione 19: network layer: congestione, internetworking
2
Congestione della rete La congestione della rete e’ il fenomeno che si
verifica quando le sorgenti immettono nella rete piu’ pacchetti di quanti la rete riesca a trasmettere a destinazione
Le cause della congestione possono essere molteplici diversi flussi attraversano la stessa linea: i pacchetti non
possono essere trasmessi al ritmo con cui arrivano ad un router, si forma una coda nel router
l’esaurimento dei buffer nel router determina lo scarto dei pacchetti successivi
anche la lentezza della CPU del router (nell’analizzare i pacchetti, la tabella di routing, o per attivita’ di logging degli eventi) puo’ provocare lentezza di risposta ed esaurimento della memoria
aumentare la memoria non serve: code lunghe aumentano il ritardo di inoltro dei pacchetti; quando il ritardo cresce, i pacchetti scadono, verranno scartati ed andranno ritrasmessi comunque
3
Effetto valanga
Tipicamente l’insorgere di congestione in un punto della rete ha un effetto che in mancanza di contromisure peggiora nel tempo:
i pacchetti vengono scartati dal router, quindi verranno ritrasmessi provocando un ulteriore aumento del flusso verso la zona congestionata
i pacchetti ritrasmessi andranno in generale ad aumentare il carico anche a monte del router congestionato, provocando un sovraccarico conseguente anche in altre zone della sottorete
Questo provoca un effetto a valanga che, in prossimita’ di una certa soglia di sovraccarico, rapidamente porta la rete in condizioni di congestione diffusa
Senza azioni correttive la rete puo’ collassare
4
Principi generali per il controllo della congestione
Le contromisure si classificano in due categorie: soluzioni a ciclo aperto: si opera in sede di progetto della
rete, destinando risorse di banda, CPU, memoria, valutando scelte di routing e valutando correttamente il tempo di vita massimo di un pacchetto
un lungo tempo di vita fa si che i pacchetti intasino la rete per molto tempo
un tempo troppo corto provochera’ la ritrasmissione troppo spesso
la progettazione deve considerare anche il comportamento del protocollo di trasporto
soluzioni a ciclo chiuso: queste si attivano tenendo in conto lo stato corrente della rete, ed operando retroazioni, quindi
definire le metriche ed i meccanismi per rilevare la congestione
definire i modi per la trasmissione di queste informazioni in punti dove operare azioni correttive
attivare le azioni correttive
5
Controllo del sistema
Le metriche per l’identificazione di una congestione (imminente) sono diverse: percentuale di pacchetti scartati lunghezza media delle code frequenza dei pacchetti scaduti ritardo medio dei pacchetti
Alcune di queste metriche sono utilizzabili dalla sorgente per provocare una autolimitazione del traffico immesso nella rete
In tutti i casi valori crescenti indicano un peggioramento della situazione
6
Controllo nella rete connection oriented
Una soluzione al problema e’ il controllo di ammissione: quando una parte della sottorete risulta
congestionata, nessun circuito virtuale puo’ essere definito attraverso quella zona: si permettono nuove connessioni solo attraverso strade diverse (se possibile)
si possono anche attivare meccanismi piu’ stringenti nella allocazione delle risorse per le nuove connessioni
tipicamente le reti a circuiti virtuali fanno una sorta di overbooking delle risorse
impedire ulteriori overbooking permette di garantire che le nuove connessioni dispongano delle risorse necessarie, e non aggraveranno la situazione
7
Controllo nelle reti connectionless
Il router puo’ tenere sotto controllo lo stato delle sue linee e determinare lo stato di allarme
Una soluzione (utilizzata nel DECnet) prevede che il router in stato di allarme modifichi un bit particolare nell’header dei pacchetti
lo strato di rete del nodo di destinazione riporta l’informazione allo strato di trasporto
lo strato di trasporto della destinazione ricopia il bit di congestione nel pacchetto di acknowledge, quindi la sorgente rileva il problema e riduce la velocita’ di trasmissione
poiche’ qualunque router puo’ settare il bit di allarme, la condizione di allarme termina solo quando tutti i router coinvolti nel tragitto congestionato sono tornati in condizione normale
8
Choke packet
Una soluzione diversa consiste nel comunicare direttamente alla sorgente il problema, tramite un pacchetto specifico detto choke packet il pacchetto originale viene marcato in modo da
non generare altri chocke packet durante il resto del suo tragitto
il choke packet contiene le informazioni di quale destinazione e’ affetta dal problema
la sorgente puo’ quindi ridurre di una certa percentuale il rate di trasmissione verso quella destinazione
dopo un intervallo di tempo (predefinito) di assenza di choke packet, la sorgente riprende ad aumentare il rate di trasmissione
9
Choke packet hop-by-hop Il meccanismo del choke packet difetta di lentezza nella
risposta al problema fino a che il choke packet non arriva alla sorgente, questa
continua ad inviare troppo rapidamente per la rete Una soluzione migliorativa e’ che il choke packet, durante il
tragitto, provoca in ciascun router la diminuzione delle trasmissioni verso la sorgente (choke packet hop by hop)
quando il choke packet raggiunge il primo router a monte di quello congestionato, questo rallenta alleviando il router congestionato, ed aggrava la sua situazione perche’ a monte il traffico e’ sempre a rate elevato, ma solo finche’ il choke packet non fa un altro hop
via via che il choke packet viaggia all’indietro, ogni router rallenta le trasmissioni verso il successivo
il meccanismo sposta verso la sorgente parte del problema, ma per tempi brevi, cioe’ spalma la congestione su diversi router che saranno in crisi per tempi brevi ed in modo meno intenso
10
Scarto dei pacchetti
Quando non ce la si fa piu’ i router scartano i pacchetti
Questo generalmente provoca ritrasmissioni, che non risolvono il problema
Si puo’ pero’ sfruttare il comportamento dello strato di trasporto per scartare oculatamente i pacchetti e ridurre il carico
ad esempio, se lo strato di trasporto ha un meccanismo del tipo go-back-n, e’ opportuno scartare i pacchetti piu’ nuovi, in modo da generare meno ritrasmissioni
in alcuni protocolli di trasporto (come il TCP) la perdita di pacchetti provoca un rallentamento della velocita’ di trasmissione, cosa funzionale alla soluzione del problema di congestione
11
Internetworking L’evoluzione delle reti si e’ sviluppata indipendentemente
nelle diverse realta’ locali (dal punto di vista geografico o amministrativo)
Le diverse necessita’ hanno prodotto la definizione e l’implementazione di reti utilizzanti protocolli differenti
Si utilizzano protocolli variegati sia a livello di rete locale che geografica
quasi tutti i PC utilizzano TCP/IP molti PC utilizzano NETBIOS i mainframe IBM delle grandi aziende utilizzano SNA o DECnet i MacIntosh utilizzano (anche) Appletalk alcune LAN di PC usano IPX (Novell) molte aziende telefoniche usano ATM wireless rappresenta uno standard differente dagli altri
Un bel giorno si e’ scoperto opportuno che alcune – o tutte – queste realta’ possano comunicare tra loro
12
Problematiche di internetworking
Le differenze tra reti sono di diversa natura esistono differenze a livello di strato fisico o di
data link layer a livello di rete, differenze possono derivare da
comunicazione tra reti connection oriented e connection less
utilizzo di funzionalita’ in una rete non previste dall’altra rete (ad esempio, controllo di flusso, comunicazione multicast o qualita’ di servizio)
differenze di indirizzamento, che richiedono tabelle di conversione
alcuni protocolli di rete possono richiedere dimensioni massime dei pacchetti di valore differente
differenze possono presentarsi anche a livello di trasporto o di applicazione
13
Connessioni tra reti
Livelli fisici differenti possono essere connessi da convertitori di segnale (ad esempio, una tratta costituita da una connessione in coassiale che si inserisce in un ponte radio, per finire in una connessione in fibra ottica)
A livello di data link layer abbiamo visto l’interconnessione tra protocolli differenti tramite dispositivi detti bridge
A livello di rete una possibile soluzione e’ l’utilizzo di router multiprotocollo
Le conversioni di protocollo a livello di trasporto o di applicazione vengono eseguite da dispositivi chiamati generalmente gateway (termine talvolta utilizzato anche per indicare i router nel contesto del livello di rete)
Nel seguito vedremo il problema relativo allo strato di rete, che richiede in ogni caso la presenza di un router (gateway) di frontiera che sia capace di parlare entrambi i protocolli
14
Circuiti virtuali concatenati
Quando l’interconnessione e’ relativa a due sottoreti orientate alla connessione, e’ possibile operare nel seguente modo
al momento di stabilire la connessione, la sottorete si accorge che la destinazione e’ esterna alla rete
viene stabilito un circuito virtuale tra la sorgente ed il router piu’ vicino al bordo della sottorete di partenza
il router crea quindi una connessione con il gateway multiprotocollo che interconnette le due reti adiacenti, ed “incolla” la connessione con la sorgente a questa nuova connessione
analogamente il router multiprotocollo creera’ una connessione (secondo le specifiche del protocollo della rete successiva, che lui conosce) verso un router vicino situato nella nuova sottorete ed associa i due circuiti virtuali
questo processo puo’ iterarsi fino alla destinazione, realizzando una concatenazione di circuiti virtuali da sorgente a destinazione
15
Circuiti virtuali concatenati
Questa tecnica funziona bene quando le caratteristiche delle comunicazioni orientate alla connessione sono simili
ad esempio tutte le reti forniscono un flusso affidabile In caso contrario la natura della connessione puo’ essere
pregiudicata la rete della sorgente e della destinazione possono offrire un
servizio affidabile, ma se nel mezzo c’e’ una rete con servizio connection oriented inaffidabile, l’affidabilita’ della connessione viene chiaramente pregiudicata
16
Collegamento connectionless
In questo caso il servizio fornito allo strato di trasporto e’ di tipo datagram
Come previsto dal protocollo ogni pacchetto e’ instradato indipendentemente, ed i percorsi dei pacchetti potrebbero anche attraversare gateway differenti
In questo caso i problemi sono maggiori i router multiprotocollo debbono estrarre dal pacchetto in
transito le informazioni essenziali, e tentare di tradurre queste informazioni nel protocollo della rete verso cui il pacchetto viene instradato
questo raramente puo’ essere fatto se i protocolli non sono molto simili
altro problema grave e’ l’indirizzamento: protocolli diversi utilizzeranno indirizzamenti diversi, e non sempre e’ possibile mantenere una mappatura sul gateway
17
Tunneling
Non esiste una soluzione generale per realizzare una interconnessione di reti: ogni situazione va risolta in modo opportuno
Un caso particolare ma molto frequente e’ quello di una interconnessione tra reti differenti, dove pero’ la rete di partenza e quella di arrivo sono omogenee ad esempio una LAN connessa in TCP/IP alla
rete di partenza, deve attraversare una sottorete ATM per raggiungere una rete TCP/IP a destinazione
18
Tunneling (cont.) In questo caso si puo’ applicare una semplice tecnica
nota come tunneling: il pacchetto della rete di partenza arriva al gateway, che
dispone di un collegamento verso un router della rete da attraversare (secondo il protocollo della rete in questione)
il router inserisce il pacchetto nel campo dati di un pacchetto del protocollo specifico della rete da attraversare, ed indirizza il nuovo pacchetto al gateway che connette la rete intermedia con quella di destinazione
il gateway di destinazione riceve il pacchetto, estrae da questo il pacchetto originario e lo instrada secondo il protocollo della rete di destinazione, uguale a quello della rete di partenza
in questo caso la rete intermedia si comporta a tutti gli effetti come un tubo, i cui dettagli sono ignoti a mittente e destinatario
i due gateway dovranno avere nella tabella di routing l’informazione che le destinazioni connesse al gateway dirimpettaio vanno raggiunte attraverso di lui, tramite il tunnel
19
Tunneling (cont.)
Questa tecnica e’ applicata diffusamente in Internet, dove le destinazioni sono generalmente reti locali che utilizzano il TCP/IP, e le dorsali di interconnessione possono attraversare reti di qualunque tipo
Il TCP/IP (in particolare IP) supporta questo tipo di trasferimento dei dati
20
Routing in una internet
Il routing attraverso una interconnessione di reti si gestisce in modo simile al routing gerarchico
Si utilizza un routing a due livelli il routing interno a ciascuna rete sara’ gestito tramite un
protocollo di routing interno (Interior Gateway Protocol) quale ad esmpio RIP, OSPF, OSI-CLNS, X.25
il traffico interno non si preoccupa di questioni relative all’internetworking; le zone interne vengono chiamate Autonomous System (AS)
i gateway (router multiprotocollo) utilizzeranno tra loro un protocollo differente (Exterior Gateway Protocol), che permettera’ ai gateway di decidere attraverso quali reti instradare il pacchetto
fatta la scelta, si puo’ utilizzare il tunneling per trasferire i dati a destinazione
21
Frammentazione
L’attraversamento di reti differenti puo’ richiedere che un gateway spezzi il pacchetto in frammenti per motivi di protocollo
un pacchetto IP puo’ essere lungo 65515 byte se si deve attraversare una Ethernet, deve essere
spezzato in frammenti di circa 1500 byte se poi deve attraversare una rete ATM, deve essere
ulteriormente frammentato in parti di 48 byte ciascuna Esistono due modi di affrontare il problema
evitare il problema a monte: il protocollo puo’ tentare di capire la dimensione minima richiesta dalle reti da attraversare, ed imporre questo limite alla sorgente, o evitare di transitare su reti che non possono supportare la dimensione del pacchetto originato
meglio: permettere ai router di frammentare il pacchetto
22
Frammentazione (cont.) In caso di frammentazione, esistono ancora due
strategie riassemblare il pacchetto all’uscita della rete che ha
imposta la frammentazione (ATM fa cosi’) questo rende la frammentazione trasparente alle reti a valle,
cioe’ ai gateway successivi, che lo riceveranno intero puo’ pero richiedere di frammentare e riassemblare piu’ volte
il pacchetto (lavoro aggiuntivo per i gateway) inoltre i gateway devono sapere quando hanno ricevuto tutti i
frammenti, e devono poterli riordinare (quindi tutti i frammenti devono uscire dalla rete intermedia attraverso lo stesso gateway)
non riassemblare il pacchetto frammentato, ma trasmettere i diversi frammenti fino a destinazione, dove il pacchetto verra’ riassemblato (IP usa questa soluzione)
questo ha il vantaggio di non dover ripetere piu’ volte la stessa operazione
i gateway non si devono preoccupare del riassemblaggio (ne’ potrebbero)
23
Frammentazione (cont.)
Gli aspetti negativi della frammentazione non traspasrente sono
tutti gli host devono saper riassemblare il pacchetto l’overhead della frammentazione (una intestazione
completa per ogni frammento) si propaga fino a destinazione
si deve introdurre una numerazione che permetta di riassemblare il pacchetto e di identificare pezzi mancanti
IP utilizza la seguente tecnica ogni frammento deve avere una dimensione fissa (quella
richiesta dalla rete di transito), tranne l’ultimo l’intestazione di ogni frammento deve contenere il
numero del pacchetto, un bit che indica il frammento finale, ed un numero che indica l’offset in byte del primo byte del frammento rispetto al pacchetto originale
24
Frammentazione (cont.)