Parte IV — Preparazione all'esame · Capitolo 14

Il compito d'esame: struttura e strategie

~55 min di lettura4 widget interattivi

In questo capitolo

  1. La struttura del compito
  2. Quesito 1 — Teletraffico: call center e dimensionamento
  3. Quesito 1 — Teletraffico: code, crescita e priorità
  4. Quesito 2 — TCP: la dinamica della finestra
  5. Quesito 2 — TCP: modelli di prestazione
  6. Quesito 3 — Il quesito misto
  7. Strategie di soluzione e trappole ricorrenti
  8. Esercizi guidati
  9. Verifica le tue conoscenze

1. La struttura del compito

Il capitolo 1 ha anticipato la natura dell'esame: una prova scritta con esercizi, non un orale a domande di teoria. I cinque esempi di compito con soluzioni distribuiti dal docente permettono di ricostruire con precisione la struttura tipica. Ogni compito è composto da tre quesiti, ciascuno articolato in più punti con punteggi parziali, per un totale di 30 punti. I quesiti coprono sistematicamente le due aree del corso:

QuesitoAreaContenuti tipiciPunteggio tipico
1Teletrafficocall center (M/M/m + M/M/l/0), dimensionamento di reti telefoniche (maglia/stella), sistemi a coda con crescita del traffico, load balancing, code a priorità10–13 punti
2TCPdinamica della finestra su griglia RTT (Tahoe, Reno, New Reno) oppure modelli di prestazione (WID, throughput, latenza)10 punti
3Mistoil secondo tema non coperto dal quesito 2: teletraffico se il quesito 2 è TCP, TCP se il quesito 2 è teletraffico7–13 punti

Ai compiti sono allegate le tabelle della formula B di Erlang (per diversi intervalli di traffico: 2–3 E, 4–20 E, 22–38 E, 16–17 E, 20–21 E) e della formula C di Erlang (1–2 E, 11–20 E). Il testo chiede spesso di approssimare i valori del traffico alla prima cifra decimale o all'intero superiore prima di consultare le tabelle: è una scelta deliberata, perché le tabelle allegate hanno una granularità finita e il candidato deve imparare a usarle senza interpolare.

Per l'esame

La teoria non viene chiesta astrattamente: serve a scegliere il modello giusto (M/M/1, M/M/m, M/M/l/0, M/G/1, modello periodico, modello di latenza) e a giustificare i passaggi. I punti parziali premiano il procedimento: scrivere il modello e le formule vale punti anche se il numero finale è sbagliato.

I cinque compiti d'esempio e le loro tipologie Compito 1 Q1 call center Q2 griglia TCP Q3 M/M/1 VPN l=4, m=3, A0=2E Compito 2 Q1 maglia/stella Q2 AIMD Q3 latenza TCP 4 sedi, B(m,A0) Compito 3 Q1 crescita 25%/anno Q2 griglia New Reno Q3 M/G/1 priorità Cobham, pre-emptive Compito 4 Q1 M/M/1 QoS Q2 modello periodico Q3 call center ε ≤ 10 ms al 90% Compito 5 Q1 load balancing Q2 latenza TCP Q3 griglia Tahoe 3 interfacce, p1+p2+p3=1 Costanti del corso B e C di Erlang M/M/1: ε̄ = ϑ̄/(1−ρ) M/M/m: ε̄ = ϑ̄/(m−A0) periodico: S̄ = MSS/RTT·√(3/2p)
Tavola 14.1 — La mappa dei cinque compiti d'esempio. Le tipologie si ripetono: ogni quesito di teletraffico è una variazione su call center, dimensionamento o code; ogni quesito TCP è una griglia di dinamica o un modello di prestazione.

2. Quesito 1 — Teletraffico: call center e dimensionamento

La tipologia più frequente del quesito di teletraffico è il call center, presente nei compiti 1 e 4. Il sistema è descritto da due livelli accoppiati: m operatori (sistema M/M/m con coda infinita) e l linee telefoniche verso la rete pubblica (sistema M/M/l/0, cioè a perdita). Il traffico offerto A0 è poissoniano, la durata dei colloqui è esponenziale con media ϑ̄.

Il procedimento di soluzione è sempre lo stesso, e va imparato come una sequenza:

  1. Prima approssimazione: si ignora la perdita delle linee e si tratta A0 come traffico offerto al solo sistema M/M/m. Il tempo medio di attesa per chi fa attesa è ε̄ = ϑ̄/(m − A0), perché in M/M/m l'attesa per chi attende è esponenziale con parametro mμ − λ.
  2. Probabilità di fare coda: πr = C(m, A0) (formula C di Erlang, dalle tabelle). Il tempo medio di attesa nella coda del call center è η̄ = ε̄ · C(m, A0).
  3. Tempo di permanenza: ogni chiamata tiene occupata una linea sia durante l'attesa sia durante il colloquio, quindi il tempo medio di servizio visto dalle linee è ϑ̄′ = δ̄ = η̄ + ϑ̄.
  4. Traffico offerto alle linee: con λ = A0/ϑ̄ si ha A′0 = λ·ϑ̄′.
  5. Probabilità di perdita: πp = B(l, A′0) (formula B di Erlang, dalle tabelle).
  6. Traffico effettivo agli operatori: λ′′ = (1 − πp)·λ, quindi A′′0 = λ′′·ϑ̄.
  7. Ricalcolo: con il traffico effettivo si ricalcola ε̄ = ϑ̄/(m − A′′0) e si confronta con la prima approssimazione.

Il compito 1 chiede esattamente questa sequenza con l = 4, m = 3, A0 = 2 E, ϑ̄ = 4 min. La prima approssimazione dà ε̄ = 4/(3−2) = 4 min; con C(3, 2) = 0.444 (dalle tabelle) si ha η̄ = 1.78 min; il traffico alle linee è A′0 = 0.5·(1.78+4) = 2.89 ≈ 2.9 E; la perdita è B(4, 2.9) = 0.195; il traffico effettivo agli operatori è A′′0 = 0.805·0.5·4 = 1.6 E; e il ricalcolo dà ε̄ = 4/(3−1.6) = 2.86 min. La differenza rispetto ai 4 minuti iniziali è grande: l'approssimazione di non perdita era troppo grossolana, e il compito chiede di discuterla e di indicare il procedimento iterativo per approssimazioni successive (che converge a ε̄ = 3.08 min dopo tre iterazioni).

Idea chiave

Il call center è un sistema a due stadi in cascata: le linee vedono un tempo di servizio che include l'attesa agli operatori. La formula B si applica alle linee con il traffico comprensivo dell'attesa, non con il traffico grezzo A0. Dimenticarlo è l'errore più comune.

La seconda tipologia del quesito 1 è il dimensionamento di una rete telefonica (compiti 2 e 3): data una matrice di traffico fra sedi, si dimensiona il numero di linee mXY fra ogni coppia di sedi X e Y imponendo B(mXY, AXY) ≤ 0.01. Il traffico complessivo fra due sedi è la somma del traffico nelle due direzioni, perché ogni chiamata tiene occupata una linea in entrambe le direzioni. Con topologia a maglia completa si dimensiona ogni coppia; con topologia a stella si sceglie come centro la sede che scambia più traffico con le altre e si dimensionano solo i collegamenti verso il centro. Il compito 2 mostra che la stella può richiedere più linee totali della maglia (116 contro 111): il confronto è parte del quesito.

Il compito 3 aggiunge la crescita del traffico (25% annuo): si riscrive la matrice per ogni anno, si pianifica il numero di linee da noleggiare a inizio anno in modo da garantire B ≤ 0.01 per tutto l'anno (quindi usando il traffico di fine anno), e si valuta l'utilizzazione ρAB = AAB(1 − B(mAB, AAB))/mAB a fine anno. L'utilizzazione cresce con la dimensione del sistema a parità di prestazioni: è il risultato che il compito vuole far osservare.

3. Quesito 1 — Teletraffico: code, crescita e priorità

La terza famiglia di quesiti di teletraffico modella un collegamento dati come sistema a coda. Il compito 1 (quesito 3) e il compito 4 (quesito 1) usano il modello M/M/1 per un collegamento VPN fra due sedi: arrivi poissoniani con frequenza λ, pacchetti di lunghezza esponenziale con media D, capacità C. Le formule di base sono:

La crescita del traffico (40% annuo nel compito 1, 40% nel compito 4) si applica alla frequenza di arrivo: λ(t1) = 1.4·λ(0), λ(t2) = 1.4·λ(t1). Il quesito chiede poi di verificare la stabilità e di dimensionare la capacità per rispettare un vincolo di qualità. Il compito 4 introduce il vincolo probabilistico Prob{ε ≤ 10 ms} ≥ 0.9, che si inverte in

CD·(λ − (1/ε0)·ln(1 − π0))

e la capacità installata è un multiplo della capacità base C0 = 2 Mbit/s: si pianificano gli aggiornamenti all'inizio degli anni in cui il vincolo verrebbe violato.

Il compito 3 (quesito 3) introduce le code a priorità M/G/1, che riprendono il capitolo 7. Due classi di pacchetti con frequenze λ1 e λ2 e stessa distribuzione esponenziale dei tempi di servizio; la classe 1 ha priorità non pre-emptive. Il procedimento usa la formula di Cobham:

η̄1 = ϑ̄P/(1 − ρ1)     η̄2 = ϑ̄P/((1 − ρ1)(1 − ρ1ρ2))

con il tempo medio residuo di servizio ϑ̄P = ½∑i λi·E[ϑi²], che per servizi esponenziali vale ρ·ϑ̄ (per l'assenza di memoria). Il confronto con la disciplina FIFO (η̄ = ρϑ̄/(1−ρ)) mostra che la priorità aiuta molto la classe 1 e penalizza poco la classe 2 quando la classe prioritaria è una frazione piccola del traffico. La variante pre-emptive si risolve osservando che la classe a bassa priorità non ha alcun effetto su quella ad alta priorità: η̄1 = ρ1ϑ̄/(1−ρ1).

Il compito 5 (quesito 1) chiude la famiglia con il load balancing statistico: un router smista gli arrivi poissoniani su tre interfacce con probabilità p1, p2, p3. Per la proprietà di thinning del processo di Poisson, ogni interfaccia vede un processo di Poisson con frequenza λi = pi·λ, e la stabilità richiede pi·λ < μi = Ci/D. Il tempo medio speso nel router da un generico pacchetto è la media pesata dei tempi di permanenza: δ̄ = p1δ̄1 + p2δ̄2 + p3δ̄3. Il confronto finale con un'unica interfaccia di capacità C = C1+C2+C3 mostra che aggregare le risorse è sempre conveniente: il tempo di permanenza scende da 37.5 μs a 12.5 μs.

4. Quesito 2 — TCP: la dinamica della finestra

Il quesito TCP più caratteristico è la griglia di dinamica della finestra (compiti 1, 3 e 5): data una connessione con N segmenti da trasferire, finestra di ricezione AW, soglia iniziale SSThr, finestra iniziale di Slow Start, RTO espresso in RTT e due segmenti persi, si deve riportare nel diagramma l'evoluzione di fase, CW, W, SSThr, SeqN, Flightsize, AckN e dupAckN all'inizio di ogni intervallo RTT. Il quesito vale 10 punti: è il cuore del compito.

Le regole da applicare sono quelle dei capitoli 11 e 12, e la griglia le esercita tutte insieme:

Il compito 1 usa TCP base (solo SS e CA) con N = 32, AW = 32, SSThr = 16, CW0 = 2, RTO = 2 RTT e perdite dei segmenti 15 e 30. La soluzione mostra nove intervalli: tre di Slow Start (CW = 2, 4, 8), uno di CA (CW = 16, invio di 15…30 con perdita del 15), la ritrasmissione del 15, la scadenza del RTO (SSThr = 8, CW = 1), la risalita in SS (CW = 2, invio del 31), la seconda perdita del 30 con RTO (SSThr = 2, CW = 1) e infine la fase SS→CA con l'invio del 32. Il compito 3 ripete lo schema con New Reno e il compito 5 con Tahoe: la differenza sta nel comportamento dopo i 3 ACK duplicati.

Attenzione

Nella griglia i valori di CW, W e SSThr vanno riportati all'inizio di ogni intervallo, come dice il testo del quesito. Il Flightsize è il numero di segmenti trasmessi ma non ancora confermati, che può essere minore della finestra (per esempio dopo una perdita). L'AckN è l'ACK cumulativo; i dupAckN contano gli ACK duplicati che segnalano la perdita.

5. Quesito 2 — TCP: modelli di prestazione

L'alternativa alla griglia è il quesito numerico sui modelli di prestazione (compiti 2 e 4, e tutti gli esercizi di Esempi di esercizi numerici su TCP). La struttura è sempre la stessa, in tre blocchi:

  1. Senza perdite: si calcola la finestra ideale WID = C·RTT/(8·MSS) (in segmenti) e il throughput massimo Smax = WID·MSS·8/RTT = C.
  2. Con perdite periodiche (ogni N segmenti, p = 1/N): si applica il modello periodico del capitolo 13, con o senza ACK ritardati (b): Wmax = √(8/(3bp)), Wmin = Wmax/2, W̄ = (Wmax+Wmin)/2, S̄ = (MSS/RTT)·√(3/(2bp)), e il costo percentuale Δ = (Smax − S̄)/Smax.
  3. Effetto della AW: se Wmax > AW la finestra annunciata limita il throughput; si calcola k = 1/(pAW) − 3bAW/8 e il throughput effettivo S̄ = (MSS/RTT)·(1/p)/(bAW/2 + k).

Il compito 4 (quesito 2) è l'esempio completo: R = 20 Mbit/s, RTT = 8 ms, MSS = 1000 byte, perdite ogni 150 segmenti, AW = 16. Senza perdite WID = 20 e Smax = 20 Mbit/s. Con perdite p = 1/150: Wmax = √(8·150/3) = 20, Wmin = 10, W̄ = 15, S̄ = 15 Mbit/s, Δ = 25%. Poiché Wmax = 20 > AW = 16, la finestra annunciata ha effetto: k = 150/16 − 3·16/8 = 3.375 ≈ 3 e S̄ = 150/11 · 106 ≈ 13.6 Mbit/s.

La seconda famiglia di quesiti numerici è la latenza (compiti 2 e 5, quesito 3): trasferimento di un file con finestra dinamica, senza perdite. Il procedimento è quello del capitolo 13: WID = C·RTT, N = F/MSS, kSS = log2(SSThr) (o meno 1 se si parte da 2), NSS = 2kSS − 1 (o 2kSS+1 − 2), kCA = min(AW, WID) − SSThr, NCA = kCA·SSThr + (kCA−1)kCA/2, kAW/ID = ⌈(N − NSS − NCA)/min(AW, WID)⌉, e infine D = (1 + kSS + kCA + kAW/ID)·RTT.

Il compito 2 (quesito 3) aggiunge una variante con perdita singola rilevata da 3 ACK duplicati e TCP Reno: dopo 1800 segmenti, con flight size 4, la Fast Recovery dura un RTT (ritrasmissione del segmento perso più un nuovo segmento), poi si riparte in CA con SSThr = 2 e W = 2. Il tempo totale passa da 502 a 505 RTT: la perdita costa tre RTT. È l'esempio perfetto di come il quesito combini la griglia (le fasi) con il calcolo (i conteggi per fase).

6. Quesito 3 — Il quesito misto

Il terzo quesito copre l'area non toccata dal secondo: se il quesito 2 è la griglia TCP, il quesito 3 è di teletraffico (compiti 1, 3 e 5); se il quesito 2 è di prestazioni TCP, il quesito 3 è di teletraffico o di latenza (compiti 2 e 4). In pratica, la coppia (quesito 2, quesito 3) copre sempre entrambe le aree del corso.

Le tipologie del quesito 3 sono le stesse del quesito 1, con due aggiunte degne di nota. Il compito 2 (quesito 2) presenta l'AIMD con due connessioni che condividono un collo di bottiglia: le bande r1(t) e r2(t) crescono linearmente con la stessa pendenza, e quando r1 + r2 = R entrambe si dimezzano. Il quesito chiede di calcolare gli istanti t1, t2, t3 delle prime tre perdite e i valori di banda dopo ciascuna, e di spiegare lo scopo dell'algoritmo: far tendere le due connessioni verso l'equa condivisione della banda. La soluzione mostra il divario che si dimezza a ogni perdita: 200, 100, 50 kbit/s.

Il compito 4 (quesito 3) ripropone il call center in versione dimensionamento: dati λ = 10 chiamate/min, ϑ̄ = 90 s, πp ≤ 0.01 e Prob{ε ≤ ϑ̄} ≥ 0.9, si determinano l e m. Il numero di operatori si ricava da m ≥ A0 − ln(1 − π0) (dalla CDF esponenziale dell'attesa), il numero di linee da B(l, A′0) ≤ 0.01 con A′0 = λ·(η̄ + ϑ̄). La verifica finale mostra che l'approssimazione di trascurare le perdite delle linee è accettabile: con il traffico effettivo si ottiene lo stesso m.

Il compito 5 (quesito 1) chiude con il load balancing già descritto. La lezione trasversale è che i quesiti non introducono modelli nuovi: ogni compito è una combinazione delle stesse dieci formule, applicate a scenari diversi. Chi ha capito i capitoli 3–7 e 11–13 ha già tutti gli strumenti.

7. Strategie di soluzione e trappole ricorrenti

Dai cinque compiti con soluzioni emergono alcune regole operative che valgono per qualsiasi variante.

Strategie

Trappole ricorrenti

TrappolaConseguenzaCome evitarla
Usare A0 grezzo per la formula B delle lineePerdita sottostimataLe linee vedono A′0 = λ·(η̄ + ϑ̄), con l'attesa inclusa
Dimenticare che il traffico fra due sedi è la somma delle due direzioniLinee sottodimensionateAXY = AX→Y + AY→X
Confondere kSS per finestra iniziale 1 o 2Errore di un RTT e di NSSPartendo da 1: kSS = log2(SSThr); da 2: meno 1
Applicare il modello periodico quando Wmax > AWThroughput sovrastimatoCorreggere con k = 1/(pAW) − 3bAW/8
Trattare Tahoe come Reno dopo i 3 ACK duplicatiGriglia sbagliataTahoe: Fast Retransmit senza Fast Recovery, si riparte da CW = 1
Dimenticare l'RTT di apertura della connessioneLatenza sottostimata di un RTTD = (1 + kSS + kCA + kAW/ID)·RTT
Usare ε̄ = ϑ̄/(1−ρ) per chi fa coda in M/M/mFormula sbagliataIn M/M/m: ε̄ = ϑ̄/(m − A0)
Nota del redattore

Le tabelle B e C di Erlang allegate ai compiti non sono riprodotte in questa pagina: sono materiale d'esame distribuito dal docente. I widget di questo capitolo calcolano le formule direttamente, così puoi verificare i tuoi risultati senza tabelle.

8. Esercizi guidati

Questa sezione ripercorre tre esercizi completi tratti dai materiali del docente, con la soluzione spiegata passo per passo. Prova a risolverli da solo prima di aprire le soluzioni.

Esercizio 1 — Stima del RTT e calcolo del RTO

Da Esempi di esercizi numerici su TCP: all'istante t0 il trasmettitore ha sRTT0 = 80 ms e RTTvar0 = 10 ms. Le successive 8 misure di RTT sono 85, 90, 115, 260, 130, 125, 140, 135 ms. La misura 4 avviene dopo la scadenza del RTO (quindi si applica l'algoritmo di Karn e il back-off esponenziale). Metodo classico: sRTTk = αsRTTk−1 + (1−α)RTTk con α = 7/8, RTO = β·sRTT con β = 3/2. Algoritmo di Jacobson: sRTTk = (1−α)sRTTk−1 + αRTTk con α = 1/8, RTTvark = (1−β)RTTvark−1 + β·|sRTTk−1 − RTTk| con β = 1/4, RTO = sRTT + max(G, 4·RTTvar) con G = 1 ms.

Soluzione dell'esercizio 1

All'istante t0 entrambi i metodi danno RTO = 120 ms (classico: 1.5·80; Jacobson: 80 + max(1, 40)). Dopo la prima misura: sRTT1 = 7/8·80 + 1/8·85 = 80.625 ms; RTTvar1 = 3/4·10 + 1/4·|80−85| = 8.75 ms; RTO classico = 120.94 ms, RTO Jacobson = 80.625 + 4·8.75 = 115.625 ms. La misura 4 (260 ms) avviene dopo la scadenza del RTO: per l'algoritmo di Karn non si usa per la stima (ambiguità fra ACK dell'originale e ACK della ritrasmissione), e per il back-off esponenziale il RTO corrente viene raddoppiato. Il metodo classico tende a scegliere RTO più bassi di Jacobson, rischiando di far scattare il RTO troppo presto (confronta RTT5 = 130 con il RTO calcolato per k = 3).

Esercizio 2 — Modello periodico del throughput con ACK ritardati

Da Esempi di esercizi numerici su TCP: R = 10 Mbit/s, RTT = 25 ms, MSS = 1250 byte, perdite ogni 300 segmenti, ACK ritardati (b = 2), AW = 16. Calcolare WID, Smax, Wmax, Wmin, , , Δ, e l'effetto di AW.

Soluzione dell'esercizio 2

WID = 10·106·25·10−3/(8·1250) = 25 segmenti; Smax = 10 Mbit/s. Con p = 1/300 e b = 2: Wmax = √(8/(3·2·p)) = √(8·300/6) = 20; Wmin = 10; W̄ = 15; S̄ = (MSS/RTT)·√(3/(2·2·p)) = 4·105·√225 = 6 Mbit/s; Δ = (10−6)/10 = 40%. Poiché Wmax = 20 > AW = 16, la finestra annunciata ha effetto: k = 1/(p·AW) − 3bAW/8 = 300/16 − 3·2·16/8 = 18.75 − 12 = 6.75 ≈ 7, e S̄ = (MSS/RTT)·(1/p)/(bAW/2 + k) = 4·105·300/23 ≈ 5.2 Mbit/s. Approssimare k all'intero più vicino equivale a considerare una perdita leggermente diversa (1/304 = 0.329%), del tutto accettabile.

Esercizio 3 — Latenza con finestra dinamica e perdita Reno

Dal compito 2 (quesito 3): F = 2.4·106 byte, C = 2 Mbit/s, MSS = 800 byte, SSThr = 16, AW = 64, finestra iniziale 2, RTT = 19.2 ms. Calcolare WID e il tempo di trasferimento; poi ripetere con AW = 6 e una perdita singola rilevata da 3 ACK duplicati con flight size 4 (TCP Reno) dopo 1800 segmenti.

Soluzione dell'esercizio 3

WID = 2·106·19.2·10−3/8 = 4800 byte = 6 MSS. N = 2.4·106/800 = 3000 segmenti. La finestra ideale 6 viene raggiunta durante la Slow Start (partendo da 2: kSS = log216 − 1 = 3, ma dopo 2 RTT si è già a W = 8 > 6): NSS = 2 + 4 = 6 segmenti in 2 RTT. Restano NAW/ID = 2994 a 6 per RTT: kAW/ID = ⌈2994/6⌉ = 499. D = (1 + 2 + 499)·19.2 ms = 502 RTT = 9.64 s. Con AW = 6 e la perdita: i primi 1800 segmenti richiedono 1 + 2 + ⌈1794/6⌉ = 302 RTT. La Fast Recovery (flight size 4, 3 ACK duplicati) imposta SSThr = 2, CW = SSThr + 3 = 5, dura un RTT e porta i segmenti a 1801. Poi CA da 2 a 6: kCA = 6 − 2 = 4 RTT, NCA = 2+3+4+5 = 14. Restano 3000 − 1801 − 14 = 1185: kAW/ID = ⌈1185/6⌉ = 198. D = (302 + 1 + 4 + 198)·19.2 ms = 505 RTT = 9.7 s. La perdita costa 3 RTT.

Esercizio 4 — AIMD con due connessioni

Dal compito 2 (quesito 2): R = 3 Mbit/s, r1(0) = 400 kbit/s, r2(0) = 800 kbit/s, crescita ri(t) = ri(0) + 105·103·t, dimezzamento quando r1 + r2 = R. Trovare t1, t2, t3 e i valori dopo ogni perdita.

Soluzione dell'esercizio 4

Prima perdita: r1(t1) + r2(t1) = Rt1 = (3000 − 400 − 800)/(2·105·103) = 1800/210·10−3 = 8.57 ms. Prima del dimezzamento: r1 = 1.3 Mbit/s, r2 = 1.7 Mbit/s; dopo: r1 = 650, r2 = 850 kbit/s. Seconda perdita: t2 − t1 = (3000 − 650 − 850)/210·10−3 = 7.14 ms, t2 = 15.71 ms; dopo: r1 = 700, r2 = 800 kbit/s. Terza: t3 = 22.85 ms; dopo: r1 = 725, r2 = 775 kbit/s. Il divario passa da 400 a 200, 100, 50 kbit/s: l'AIMD tende all'equa condivisione della banda.

Verifica le tue conoscenze

Qual è la struttura tipica del compito d'esame?

Tre quesiti per un totale di 30 punti. Il quesito 1 è di teletraffico (call center, dimensionamento di reti telefoniche, sistemi a coda, load balancing, priorità). Il quesito 2 è di TCP (griglia di dinamica della finestra oppure modelli di prestazione). Il quesito 3 copre l'area non toccata dal quesito 2. Sono allegate le tabelle delle formule B e C di Erlang.

Perché nel call center le linee telefoniche vedono un traffico diverso da A0?

Perché ogni chiamata tiene occupata una linea sia durante l'attesa in coda sia durante il colloquio con l'operatore. Il tempo medio di servizio visto dalle linee è ϑ̄′ = η̄ + ϑ̄, dove η̄ = ε̄·C(m, A0) è l'attesa media in coda. Il traffico offerto alle linee è quindi A′0 = λ·ϑ̄′, e la probabilità di perdita è B(l, A′0).

Come si dimensiona una rete a maglia completa e perché il traffico fra due sedi è la somma delle due direzioni?

Per ogni coppia di sedi X, Y si cerca il minimo mXY tale che B(mXY, AXY) ≤ 0.01, con AXY = AX→Y + AY→X. Il traffico si somma perché ogni chiamata genera occupazione su una linea in entrambe le direzioni del collegamento dedicato.

Che cosa cambia fra topologia a maglia completa e topologia a stella?

Nella maglia si dimensiona ogni coppia di sedi; nella stella ogni sede è connessa solo al centro, scelto come la sede che scambia più traffico con le altre. La stella concentra il traffico sui collegamenti verso il centro, che vanno dimensionati con il traffico complessivo della sede: può richiedere più linee totali della maglia (116 contro 111 nel compito 2).

Come si applica la crescita del traffico e come si pianificano le linee?

La crescita annua si applica alla matrice di traffico (es. 25%: A(t+1) = 1.25·A(t)), approssimando come richiesto. Le linee da noleggiare a inizio anno si dimensionano sul traffico di fine anno, perché devono garantire B ≤ 0.01 per tutto l'anno. L'utilizzazione a fine anno è ρ = A(1−B)/m.

Nel modello M/M/1 con vincolo di qualità, come si dimensiona la capacità?

L'attesa per chi fa coda è esponenziale con parametro μ − λ, quindi Prob{ε ≤ ε0} = 1 − e−(μ−λ)ε0 ≥ π0. Invertendo: μ ≥ λ − ln(1−π0)/ε0, e con μ = C/D si ottiene C ≥ D·(λ − ln(1−π0)/ε0). La capacità installata è poi un multiplo della capacità base.

Come si risolve un quesito di code a priorità non pre-emptive?

Si calcola il tempo medio residuo di servizio ϑ̄P = ½∑iλiE[ϑi²] (per servizi esponenziali: ρ·ϑ̄), poi la formula di Cobham: η̄1 = ϑ̄P/(1−ρ1) e η̄2 = ϑ̄P/((1−ρ1)(1−ρ1−ρ2)). Si confronta con la FIFO η̄ = ρϑ̄/(1−ρ). Con priorità pre-emptive, la classe 1 ignora la classe 2: η̄1 = ρ1ϑ̄/(1−ρ1).

Nella griglia TCP, che cosa succede alla scadenza del RTO?

Si assume congestione critica: SSThr = max(FS/2, 2), CW = 1 (o 2), e si riparte in Slow Start. Il segmento perso viene ritrasmesso. Se invece la perdita è segnalata da 3 ACK duplicati, Reno entra in Fast Recovery (SSThr = FS/2, CW = SSThr + 3), Tahoe ritrasmette e riparte da CW = 1, New Reno resta in Fast Recovery fino all'ACK che conferma tutta la finestra.

Nel quesito di prestazioni TCP, quando la AW ha effetto sul throughput?

Quando Wmax > AW: la finestra di congestione vorrebbe superare la finestra annunciata, che la limita. Si calcola k = 1/(pAW) − 3bAW/8 (RTT a finestra costante) e il throughput effettivo S̄ = (MSS/RTT)·(1/p)/(bAW/2 + k). Se Wmax ≤ AW la finestra annunciata non ha effetto.

Qual è lo scopo dell'AIMD e come si dimostra che converge all'equità?

L'incremento additivo aggiunge la stessa quantità a entrambe le connessioni; il decremento moltiplicativo conserva la stessa frazione del rate. Dopo ogni perdita il divario fra le due bande si dimezza: nel compito 2 passa da 400 a 200, 100, 50 kbit/s. La traiettoria nel piano (r1, r2) converge all'intersezione fra r1 = r2 e r1 + r2 = R.

Perché aggregare le risorse migliora le prestazioni (load balancing)?

Perché in un sistema M/M/1 il tempo di permanenza δ̄ = 1/(μ − λ) è convesso nella capacità: la somma dei tempi di tre code separate è maggiore del tempo di un'unica coda con capacità pari alla somma. Nel compito 5, tre interfacce da 2+1+1 Gbit/s danno δ̄ = 37.5 μs; un'unica interfaccia da 4 Gbit/s dà 12.5 μs.