Commutazione di circuito e di pacchetto
In questa pagina 5
Il problema
Una rete non può collegare con un cavo ogni coppia di nodi (in una maglia servono collegamenti, cioè tante quante le coppie di nodi, : Fattoriale e coefficienti binomialiFattoriale, permutazioni, disposizioni, combinazioni e coefficiente binomiale n su k, con il triangolo di Tartaglia.Fattoriale e coefficienti binomiali →; si veda Tipi di rete e topologieLe reti si classificano per estensione (BAN, WLAN, LAN, MAN, WAN, WSN), per mezzo trasmissivo (aria, fibra, rame, luce visibile) e per topologia: bus (mezzo condiviso, collisioni), stella (nodo centrale, collo di bottiglia), anello (ogni nodo inoltra al successivo), maglia (collegamento diretto tra ogni coppia: $n(n-1)/2$ collegamenti). La scelta dipende da affidabilità, scalabilità, protocollo e mezzo fisico.Tipi di rete e topologie →). I nodi intermedi, gli switch (o router), devono quindi commutare: mettere in comunicazione un collegamento in ingresso con uno in uscita. Il paradigma di commutazione (switching) è la regola con cui lo si fa. Ce ne sono tre: circuito, pacchetto (con due varianti: circuito virtuale e datagramma) e, storicamente, messaggio (l'intero messaggio viene ricevuto e poi inoltrato: è il caso limite del pacchetto con un solo pacchetto).
Commutazione di circuito (circuit switching, CS)
Definizione (rete a commutazione di circuito). Si crea una connessione fisica tra due nodi prima della comunicazione: una volta stabilita, una linea (un circuito) è riservata ai due interlocutori per tutta la durata. Esempio: la vecchia rete telefonica.
Fasi: setup (la richiesta attraversa i nodi riservando risorse; torna la conferma), trasferimento (i dati viaggiano sul circuito riservato, senza intestazioni di indirizzo né code), chiusura.
Formula (tempo di consegna in CS). Con collegamenti (hop) tra trasmettitore e ricevitore, tempo di propagazione per collegamento, tempo di commutazione per nodo, messaggio di bit e bitrate :
Perché: la richiesta di setup attraversa collegamenti () e in ogni nodo si configura la commutazione (); la conferma torna indietro (); poi i dati partono, e dopo il tempo di trasmissione l'ultimo bit deve ancora propagarsi lungo collegamenti (): in totale tre attraversamenti. Non c'è store-and-forward: dopo il setup i bit scorrono come in un tubo, quindi compare una sola volta.
Nota sul termine di commutazione. Con collegamenti ci sono switch intermedi, e ciascuno è attraversato due volte dalla segnalazione (richiesta e conferma): contando così i termini sarebbero , che per vale . La formula del corso usa ; la differenza è piccola perché è molto minore degli altri termini (con e ms sono ms contro ms su ms).
Esempio. collegamenti, ms, ms, Mbit, Mbit/s. Un termine alla volta: tre attraversamenti ms; commutazione ms; trasmissione s ms (conversione in secondi prima di sommare). Totale ms. Si veda Esercizio - Tempo di consegna in commutazione di circuito.
Pregi: prestazioni garantite, nessuna perdita di pacchetti per congestione. Difetti: risorsa dedicata anche quando non si trasmette (bassa utilizzazione), costosa, instradamento adattativo difficile, switch molto complessi, e il tempo di setup pesa sui messaggi brevi.
Commutazione di pacchetto (packet switching, PS)
Definizione (rete a commutazione di pacchetto). Il messaggio è diviso in unità più piccole, i pacchetti; i nodi intermedi sono store-and-forward: il nodo memorizza il pacchetto (lo riceve per intero) e poi decide verso quale nodo inoltrarlo. Non occorre alcuna conferma che la connessione sia stabilita.
Approccio a datagramma (datagram)
- Nessuna fase di setup a livello rete; i router non mantengono stato sulle connessioni end-to-end: non esiste il concetto di «connessione» a livello rete.
- Ogni pacchetto contiene l'indirizzo globale di destinazione (e di sorgente) e viene inoltrato in base a quello: serve un'intestazione (overhead).
- Pacchetti tra la stessa coppia sorgente-destinazione possono seguire percorsi diversi (e arrivare in disordine).
- Le risorse sono usate su base statistica: in media va bene, ma qualche volta può andare male (code, perdite).
Formula (tempo di consegna in PS a datagramma). Messaggio di bit diviso in pacchetti, ognuno con intestazione di bit (quindi pacchetti da bit), collegamenti uguali di bitrate e propagazione , senza code né elaborazione:
Perché: il primo pacchetto attraversa collegamenti in serie e ad ogni salto deve essere ritrasmesso per intero: tempi di trasmissione . Gli altri pacchetti lo seguono a distanza di un tempo di trasmissione l'uno dall'altro (pipeline: mentre un pacchetto è sul secondo collegamento, il successivo è già sul primo). L'ultimo arriva quindi dopo , e a tutto questo si aggiunge la propagazione .
Il numero di pacchetti ha un effetto contrastante: più pacchetti significa pacchetti piccoli e quindi meno tempo perso ad aspettare che un pacchetto sia ricevuto per intero prima di inoltrarlo, ma più intestazioni ( bit in più).
Formula (numero ottimo di pacchetti). Sviluppando, ; si deriva rispetto a e si pone uguale a zero: , da cui
Passo per passo. Si moltiplica ogni termine della prima parentesi per ogni termine della seconda: , e . Dei quattro addendi, e non dipendono da e spariscono con la derivata; restano (decresce con : pacchetti più piccoli, meno attesa a ogni salto) e (cresce con : più intestazioni). Quindi, ricordando che (Regole di derivazioneDerivate delle funzioni elementari e delle loro inverse (arcsin, arctan, settcosh...) e regole di calcolo: linearità, prodotto (Leibniz), quoziente, funzione composta (regola della catena), funzione inversa, f(x)^g(x).Regole di derivazione →), È un minimo (condizione di Fermat più segno della derivata seconda, : Massimi e minimi relativi e teorema di Fermatx0 è punto di minimo (massimo) relativo se f(x0) ≤ f(x) (≥) per gli x del dominio vicini a x0. I candidati sono gli estremi del dominio, i punti dove f non è derivabile e i punti interni con f'(x0) = 0 (punti critici o stazionari). Teorema di Fermat: in un punto interno di minimo o massimo relativo dove f è derivabile, f'(x0) = 0. È solo una condizione necessaria: x³ in 0.Massimi e minimi relativi e teorema di Fermat →). Nell'ottimo i due addendi sono uguali, : il costo dell'attesa e quello delle intestazioni si bilanciano. Poiché è un intero si provano i due interi vicini e si sceglie il minore.
Esempio. Gli stessi , ms, Mbit, Mbit/s, con intestazione bit: . Con : pacchetto di bit, tempo di trasmissione ms, numero di tempi , quindi ms. Provando i valori interi vicini: dà ms; dà ms; dà ms; dà ms. Il minimo è piatto vicino all'ottimo. Notare che qui il PS ( ms) batte il CS ( ms) perché il CS paga il setup. Si veda Esercizio - Commutazione di pacchetto e numero ottimo di pacchetti.
Grafico interattivo: Tempo di consegna T_PS (secondi) in funzione del numero di pacchetti K, con N = 4, M = 1 Mbit, H = 400 bit, R = 10 Mbit/s, tp = 1 ms: minimo vicino a K = 87 (≈ 0,111 s); a K = 1 vale 0,404 s
Se i collegamenti hanno bitrate diversi, la formula non vale più: il pacchetto va seguito collegamento per collegamento e si deve tenere conto delle code (Esercizio - Due pacchetti da R1 ad A con collegamenti 128, 256 e 512 kbps); per le diverse velocità si veda anche Esercizio - Frammentazione di un pacchetto su tre collegamenti.
Approccio a circuito virtuale (virtual circuit, VC)
Una via di mezzo tra circuito e datagramma:
- come nel pacchetto, il messaggio è diviso in piccole unità (in ATM si chiamano celle);
- come nel circuito, la comunicazione richiede tre fasi: instaurazione, trasferimento dati, chiusura; è una connessione logica dedicata, senza risorse dedicate;
- l'indirizzo globale serve solo nella fase di instaurazione, non per ogni pacchetto;
- ogni cella porta un identificatore locale (VC identifier), corto, che cambia a ogni salto;
- tutti i pacchetti seguono lo stesso percorso, in ordine.
Confronto circuito virtuale contro datagramma
| Caratteristica | Circuito virtuale | Datagramma |
|---|---|---|
| Instaurazione (setup) | richiesta | non richiesta |
| Indirizzamento (overhead) | ogni pacchetto ha un VC identifier (corto) | ogni pacchetto ha indirizzi completi di sorgente e destinazione |
| Informazione di stato (spazio nei router) | ogni circuito virtuale occupa una voce nella tabella | la rete non mantiene stato delle connessioni |
| Instradamento (ritardo) | percorso scelto all'instaurazione, tutti i pacchetti lo seguono | ogni pacchetto è instradato indipendentemente |
| Guasto di un router | tutti i circuiti virtuali che lo attraversano cadono | nessuna conseguenza, tranne i pacchetti persi durante il guasto |
| Controllo di congestione (QoS) | semplice se si può allocare lo spazio per ogni VC | complesso |
Confronto circuito contro pacchetto
| Circuito | Pacchetto | |
|---|---|---|
| Risorsa di linea | dedicata | condivisa |
| Prestazioni | garantite | medie (statistiche) |
| Costo | alto | minore |
| Instradamento adattativo | difficile | facile |
| Dispositivo di commutazione | molto complesso | più semplice |
| Affidabilità | alta | più alta |
| Utilizzazione | bassa | più alta |
Esempio (perché il pacchetto usa meglio i collegamenti). Un collegamento da Mbit/s serve utenti che quando trasmettono usano kbit/s, ma sono attivi solo il del tempo. Con il circuito si possono ammettere al più utenti (la capacità è riservata anche quando tacciono). Con il pacchetto se ne possono collegare per esempio . Se gli utenti sono indipendenti (Indipendenza di eventiA e B sono indipendenti se P(A ∩ B) = P(A) P(B), cioè se sapere che uno si è verificato non cambia la probabilità dell'altro; l'indipendenza passa ai complementari, non va confusa con l'incompatibilità, e per più eventi va richiesta su ogni sottofamiglia.Indipendenza di eventi →) e ciascuno è attivo con probabilità , il numero di utenti attivi è una variabile binomiale di parametri e (Prove ripetute e modello binomialen prove indipendenti, ciascuna con probabilità di successo p: una sequenza con k successi ha probabilità p^k (1−p)^(n−k), e la probabilità di esattamente k successi è (n su k) p^k (1−p)^(n−k) (modello binomiale); il primo successo alla prova k ha probabilità (1−p)^(k−1) p.Prove ripetute e modello binomiale →), con media . Il collegamento si congestiona solo se più di sono attivi insieme (e quindi si formano code): , trascurabile. Il fattore conta i modi di scegliere quali utenti sono attivi. È il vantaggio statistico del pacchetto con traffico a raffica, motivo storico della sua adozione (Storia e struttura di InternetInternet nasce da ARPANET (1969), una rete a commutazione di pacchetto finanziata dal Dipartimento della Difesa USA. Con TCP/IP (1972-77) i controlli d'errore passano dai nodi della rete ai calcolatori agli estremi (end host): è questo che la rende scalabile. DNS (1983), WWW (1989), apertura commerciale (1995). Oggi è una rete di reti: ISP locali, regionali e nazionali, collegati tra loro direttamente (peering) o tramite punti di interscambio (NAP/IXP, per esempio il MIX di Milano); IANA coordina indirizzi e DNS root, IETF/IRTF/IAB/ISOC definiscono standard e ricerca.Storia e struttura di Internet →).
I dispositivi che fanno commutazione sono descritti in Elementi di rete - hub, switch e routerI dispositivi che interconnettono le reti si distinguono per il livello della pila che arrivano a leggere. Hub (livello 1): ripetitore, rigenera il segnale e lo manda su tutte le porte, tutte le stazioni condividono la capacità. Bridge e switch (livello 2): leggono l'indirizzo MAC e inoltrano solo verso la porta giusta, imparando la tabella (FDB) dagli indirizzi sorgente. Router (livello 3): leggono l'indirizzo IP e collegano reti indipendenti (internetwork). Switch e bridge isolano il traffico e sono plug and play; il router fa instradamento ottimo ma va configurato.Elementi di rete - hub, switch e router →. Per vedere cosa succede quando più pacchetti arrivano insieme a un router si vedano gli esercizi con code, per esempio Esercizio - Quattro pacchetti da A verso E e D in una rete store-and-forward.
Versione ripasso
Tre paradigmi.
- Circuito (CS): collegamento fisico dedicato stabilito prima della comunicazione (rete telefonica): setup, trasferimento, chiusura.
- Pacchetto a datagramma: pacchetti con indirizzo globale, store-and-forward, percorsi indipendenti.
- Circuito virtuale (VC): pacchetti come nel datagramma, ma con tre fasi come nel circuito; connessione logica senza risorse dedicate.
Circuito.
- Il setup riserva le risorse lungo i nodi e la conferma torna indietro; poi i dati viaggiano senza intestazioni di indirizzo.
- Formula: , con collegamenti, propagazione, commutazione per nodo, bit, bitrate. Sono tre attraversamenti (setup, conferma, ultimo bit); compare una sola volta, perché non c'è store-and-forward.
- Esempio: , ms, ms, Mbit, Mbit/s: ms.
- Pregi: prestazioni garantite, nessuna perdita per congestione. Difetti: risorsa dedicata anche a riposo, costo alto, instradamento adattativo difficile.
Pacchetto a datagramma.
- Store-and-forward: ogni nodo riceve tutto il pacchetto prima di inoltrarlo. Nessun setup, nessuno stato nei router, indirizzi completi in ogni pacchetto, percorsi diversi e possibile disordine, risorse statistiche.
- Formula: , con bit divisi in pacchetti da bit. Il primo fa tempi di trasmissione, gli altri seguono in pipeline.
- Numero ottimo: . Più pacchetti riducono l'attesa a ogni salto, ma aggiungono intestazioni.
- Esempio: , Mbit, bit: ; con : ms; con : ms. Il PS batte il CS ( ms) perché il CS paga il setup.
- Con bitrate diversi tra i collegamenti la formula non vale: si segue il pacchetto collegamento per collegamento, tenendo conto delle code.
Circuito virtuale.
- L'indirizzo globale serve solo al setup; ogni pacchetto porta un identificatore locale che cambia a ogni salto. Tutti seguono lo stesso percorso, in ordine.
- Guasto di un router: cadono tutti i VC che lo attraversano.
Confronto.
- VC contro datagramma: setup richiesto contro assente; una voce di stato per VC nei router contro nessuno stato; congestione e QoS semplici nel VC.
- Circuito contro pacchetto: linea dedicata contro condivisa, prestazioni garantite contro medie, costo alto contro minore, utilizzazione bassa contro alta.
- Esempio statistico: collegamento da Mbit/s, utenti da kbit/s attivi il del tempo: utenti con il circuito, con il pacchetto, con probabilità che più di siano attivi insieme.
Errori tipici:
- contare volte nel circuito;
- dimenticare le intestazioni nel pacchetto;
- attribuire risorse dedicate al circuito virtuale, o un setup al datagramma.
Esercizi su questo argomento
- Esercizio - capacita e ritardo di propagazione di un collegamento con due messaggi echo
- Esercizio - Cinque pacchetti da A e B e TCP da 18,75 KB su collegamenti da 100 a 1000 kbps
- Esercizio - Cinque pacchetti da A e trasferimento TCP di 50 KB con finestra persa
- Esercizio - Commutazione di pacchetto e numero ottimo di pacchetti
- Esercizio - Due collegamenti con switch, file da 1250 MB e ARQ stop-and-wait
- Esercizio - Due collegamenti da 10 e 2 Gbps, 1000 pacchetti con S&W e GBN
- Esercizio - Due pacchetti da R1 ad A con collegamenti 128, 256 e 512 kbps
- Esercizio - Due pacchetti da R1 ad A con collegamenti 512, 256 e 64 kbps
- Esercizio - Frammentazione di un pacchetto su tre collegamenti
- Esercizio - Pacchetti di C verso E e G con traffico concorrente
- Esercizio - Quattro pacchetti da A verso E e D in una rete store-and-forward
- Esercizio - Quattro pacchetti, UDP e ARQ GBN o stop-and-wait su ogni collegamento o end-to-end
- Esercizio - Ritardo end-to-end su 10 collegamenti e BDP
- Esercizio - Sei pacchetti con traffico concorrente e TCP con rwnd limitata
- Esercizio - Stima di capacità e ritardo del collegamento R3-D con due ping
- Esercizio - Tempo di consegna in commutazione di circuito
- Esercizio - Tre pacchetti del server S verso C con traffico concorrente