Sistemi e Tecnologie della
Comunicazione
Lezione 19: network layer: congestione, internetworking
1
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 verso 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 amuentano il
ritardo di inoltro dei pacchetti; quando il ritardo cresce, i pacchetti
scadono, verranno scartati ed andranno ritrasmessi comunque
2
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
3
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 correttivi
attivare le azioni correttive
4
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
5
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
alternativamente 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
6
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 setti un bit particolare
nell’header dei pacchetti


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 qiando tutti i
router coinvolti nel tragitto congestionato sono tornati
in condizione normale
7
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 definito di assenza di
choke packet, la sorgente riprende ad aumentare il
rate di trasmissione
8
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
9
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



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
Normalmente questa tecnica viene utilizzata prima di raggiungere
una condizione totalmente congestionata, per evitare di non avere
risorse per gestire il problema (Random Early Detection)
10
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
11
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
12
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
13
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 (router)
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
14
Circuiti virtuali concatenati

Questa tecnica funziona bene quando le caratteristiche delle comunicazioni
orientate alla connessione sono simili


In caso contrario la natura della connessione puo’ essere pregiudicata


ad esempio tutte le reti forniscono un flusso affidabile
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
Questa tecnica e’ spesso utilizzata anche a livello di trasporto (dove esiste
sempre un protocollo connection oriented affidabile)
15
Collegamento connectionless



In questo caso il servizio fornito allo strato di trasporto e’ di tipo
datagram (inaffidabile)
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
Questo approccio ha il vantaggio di essere utilizzabile anche con reti
a circuiti virtuali; tentare di fare il contrario provoca problemi
16
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
17
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
18
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
19
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, 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
20
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
21
Frammentazione (cont.)

In caso di frammentazione, esistono ancora due strategie

riassemblare il pacchetto all’uscita della rete che ha importa 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 pacchetti 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
22
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 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
23
Frammentazione (cont.)
24
Scarica

Lezione 19