Esercizio - Throughput al livello fisico e goodput all'applicazione
In questa pagina 5
Testo. Collegamento punto-punto tra l'host A e l'host B con bitrate fisico Mbps. L'applicazione genera pacchetti a ritmo costante: PDU a livello applicazione di B, un pacchetto ogni ms. I livelli inferiori aggiungono le loro intestazioni, così la PDU a livello fisico è di B.
- Calcolare il throughput a lungo termine a livello fisico e il goodput a livello applicazione.
- Calcolare l'overhead a livello applicazione del ricevitore.
Teoria usata: Analisi delle prestazioni di reteLe prestazioni di una rete si misurano con tre famiglie di metriche: traffico (bitrate $R_0$ massimo del collegamento, throughput $S\le R_0$ dati consegnati con successo, goodput al livello applicazione), ritardo (end-to-end $d_{tot}=d_{proc}+d_{queue}+d_{trans}+d_{prop}$ con $d_{trans}=L/R$ e $d_{prop}=d/v$; jitter; RTT) e capacità del tubo (BDP $=R\cdot$ ritardo, bit che riempiono il collegamento), più l'affidabilità (PER, PDR, PLR). Il throughput di un percorso è quello del collegamento collo di bottiglia, $\min$ dei bitrate, ricordando che i collegamenti condivisi dividono la capacità.Analisi delle prestazioni di rete →, Modello ISO-OSI e pila TCP-IPUna comunicazione tra due calcolatori è un problema troppo vario (segnali, errori, accesso al mezzo, instradamento, controllo di flusso, rappresentazione dei dati) per un solo protocollo, quindi si divide in strati (layer). Il modello ISO/OSI ha 7 livelli (fisico, collegamento, rete, trasporto, sessione, presentazione, applicazione); la pila TCP/IP riunisce gli ultimi tre in un solo livello applicazione, quindi ne ha 5. Ogni livello offre un servizio a quello sopra e parla solo con il livello pari dell'altro nodo tramite PDU; scendendo si aggiunge un'intestazione (PCI): incapsulamento. Indirizzi: MAC (collegamento, locale), IP (rete, globale).Modello ISO-OSI e pila TCP-IP → (le intestazioni aggiunte a ogni livello), Livello di collegamento e framingIl livello di collegamento (DLL) consegna un frame da un nodo a un nodo adiacente su un collegamento. Servizi: framing, accesso al mezzo (MAC) con indirizzi MAC a 48 bit, controllo di flusso, rilevazione e correzione degli errori. Si divide in DLC (framing, controllo di errore e di flusso) e MAC (accesso al mezzo condiviso). Il framing delimita i frame con un flag: nei protocolli a byte (flag di 8 bit, ESC) si usa il byte stuffing, in quelli a bit (flag 01111110) il bit stuffing, che inserisce uno 0 dopo ogni cinque 1 consecutivi.Livello di collegamento e framing → (frame che incapsula il datagramma).
Idea
Il throughput al livello fisico conta tutti i bit effettivamente trasportati, intestazioni comprese; il goodput conta solo i bit utili, cioè quelli che arrivano all'applicazione (il carico utile). Il bitrate Mbps è solo la capacità massima: qui la sorgente è molto più lenta, quindi il collegamento non è saturo e il throughput è dettato dal ritmo di generazione.
(1) Throughput e goodput
Un pacchetto ogni ms, cioè pacchetti al secondo.
- Livello fisico: B bit per pacchetto, quindi
- Livello applicazione: B bit per pacchetto, Il collegamento è usato solo all' della sua capacità (): il tempo di trasmissione di un pacchetto è µs su un ciclo di ms.
(2) Overhead
L'overhead è il carico aggiunto dalle intestazioni dei livelli inferiori rispetto al dato utile: B. (equivalentemente ).
Il rapporto tra goodput e throughput è l'efficienza di intestazione, . Dipende dalla dimensione del pacchetto: le intestazioni sono fisse ( B) e pesano di più sui pacchetti piccoli.
Grafico interattivo: Efficienza di intestazione goodput/throughput = D/(D + 60) in funzione del carico utile D (in byte) con 60 B di intestazioni: 0,952 per D = 1200 B, solo 0,5 per D = 60 B
Confronto con la soluzione ufficiale
Ufficiale: throughput Mbps, goodput kbps, overhead . Coincide. L'overhead è riferito al dato utile (); se lo si riferisse al pacchetto fisico () si avrebbe , ma la soluzione usa la prima definizione.
Errori comuni
- Dire che il throughput è Mbps: è il bitrate, cioè la capacità massima, non il traffico effettivo.
- Calcolare il goodput con B (comprende le intestazioni) o con al posto del ritmo della sorgente.
- Dimenticare di convertire i byte in bit (fattore ).
(Verificato con Python: bit/s; bit/s; overhead ( come alternativa).)
Versione ripasso
- Mbps (throughput, intestazioni incluse).
- kbps (goodput).
- Overhead (ufficiale; sul pacchetto fisico sarebbe ).
- Il collegamento non è saturo: di .
- Errore tipico: scambiare il bitrate con il throughput.