Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Comunicazioni di rete: Ritardi di pacchetto e commutazione di pacchetto, Dispense di Sistemi di Elaborazione dell'Informazione

Il concetto di commutazione di pacchetto e come influiscono i ritardi di pacchetto nella comunicazione di rete. Il testo include esempi pratici e parametri di prestazione per quantificare la qualità della comunicazione. Vengono trattati concetti come nslookup, ipconfig, netstat, traceroute, Wireshark, perdita di pacchetto, ritardo di pacchetto, throughput medio e ritardo di trasmissione.

Tipologia: Dispense

2021/2022

Caricato il 08/12/2022

emiliano-antonucci
emiliano-antonucci 🇮🇹

2 documenti

1 / 20

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Introduzione
I dispositivi che utilizzano internet per le loro comunicazioni sono: computer, smartphone,
server, webcam, lavatrici.
L'obiettivo di Internet è consentire a tutti questi terminali di comunicare tra loro. E lo
fanno eseguendo quelle che chiamiamo "applicazioni distribuite".
APPLICAZIONE: codice in esecuzione su un computer
Cosa c’è dietro Internet?
Ci sono “interruttori di pacchetto”, che sono dispositivi che consentono ai terminali di
comunicare tra loro. Il tuo modem DSL o modem via cavo o il router wireless che hai a casa
sono esempi di commutazione di pacchetto. In secondo luogo, ci sono **collegamenti**,
che collegano gli switch di pacchetto ai terminali e tra di loro. Questi interruttori di
pacchetto e collegamenti sono gestititi da compagnie speciali chiamate “fornitori di servizi
Internet” o “ISP”.
Tutti gli ISP del mondo sono interconnessi in una sorta di gerarchia: molti piccoli ISP si
connettono a ISP più grandi, che si connettono a ISP ancora più grandi. Ogni ISP è una
propria entità amministrativa ed economica separata.
Come è connesso a Internet il Pc?
Un'opzione è che il PC di casa sia collegato a un modem DSL, collegato alla linea telefonica
domestica, che va in un luogo chiamato “ufficio centrale”, che si trova a pochi km
dall'abitazione. All'interno dell'ufficio centrale, la linea telefonica è terminata su un
dispositivo chiamato DSLAM, che è collegato a un commutatore, che è connesso al resto di
Internet. (Vedere grafico slide 14)
DSLAM è l'acronimo di Multiplexer di accesso DSL. Se la casa ha un apparecchio telefonico
tradizionale, questo è collegato anche al modem DSL, che multiplexa i dati dal PC e il
segnale vocale dal telefono sulla linea telefonica. Il DSLAM quindi separa i due e invia i dati
dal PC verso Internet e il segnale vocale dal telefono verso la rete telefonica tradizionale.
Quindi, questo è ciò che accade quando si ottiene una connessione Internet DSL.
Compri un modem DSL e paghi la tua compagnia telefonica per portare i dati dal tuo
modem DSL a Internet e viceversa.
Digital Subscriber Line (DSL)
DSL sta per Digital Subscriber Line.
È una tecnologia utilizzata dalle compagnie telefoniche per connettere le famiglie a
Internet. Si basa su un modem DSL e una linea telefonica, che è in rame.
In particolare, il modem DSL crea tre canali separati sulla linea telefonica:
- uno per i dati downstream (da Internet al PC di casa),
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Anteprima parziale del testo

Scarica Comunicazioni di rete: Ritardi di pacchetto e commutazione di pacchetto e più Dispense in PDF di Sistemi di Elaborazione dell'Informazione solo su Docsity!

Introduzione I dispositivi che utilizzano internet per le loro comunicazioni sono: computer, smartphone, server, webcam, lavatrici. L'obiettivo di Internet è consentire a tutti questi terminali di comunicare tra loro. E lo fanno eseguendo quelle che chiamiamo "applicazioni distribuite". APPLICAZIONE : codice in esecuzione su un computer Cosa c’è dietro Internet? Ci sono “interruttori di pacchetto”, che sono dispositivi che consentono ai terminali di comunicare tra loro. Il tuo modem DSL o modem via cavo o il router wireless che hai a casa sono esempi di commutazione di pacchetto. In secondo luogo, ci sono collegamenti, che collegano gli switch di pacchetto ai terminali e tra di loro. Questi interruttori di pacchetto e collegamenti sono gestititi da compagnie speciali chiamate “fornitori di servizi Internet” o “ISP”. Tutti gli ISP del mondo sono interconnessi in una sorta di gerarchia: molti piccoli ISP si connettono a ISP più grandi, che si connettono a ISP ancora più grandi. Ogni ISP è una propria entità amministrativa ed economica separata. Come è connesso a Internet il Pc? Un'opzione è che il PC di casa sia collegato a un modem DSL, collegato alla linea telefonica domestica, che va in un luogo chiamato “ufficio centrale”, che si trova a pochi km dall'abitazione. All'interno dell'ufficio centrale, la linea telefonica è terminata su un dispositivo chiamato DSLAM, che è collegato a un commutatore, che è connesso al resto di Internet. (Vedere grafico slide 14) DSLAM è l'acronimo di Multiplexer di accesso DSL. Se la casa ha un apparecchio telefonico tradizionale, questo è collegato anche al modem DSL, che multiplexa i dati dal PC e il segnale vocale dal telefono sulla linea telefonica. Il DSLAM quindi separa i due e invia i dati dal PC verso Internet e il segnale vocale dal telefono verso la rete telefonica tradizionale. Quindi, questo è ciò che accade quando si ottiene una connessione Internet DSL. Compri un modem DSL e paghi la tua compagnia telefonica per portare i dati dal tuo modem DSL a Internet e viceversa. Digital Subscriber Line (DSL) DSL sta per Digital Subscriber Line. È una tecnologia utilizzata dalle compagnie telefoniche per connettere le famiglie a Internet. Si basa su un modem DSL e una linea telefonica, che è in rame. In particolare, il modem DSL crea tre canali separati sulla linea telefonica:

  • uno per i dati downstream (da Internet al PC di casa),
  • uno per i dati upstream (dal PC di casa a Internet), e
    • uno per il segnale vocale da e verso il telefono. La velocità dati supportata varia tipicamente da poche decine a circa 100 Mbps, e la maggior parte di essa è tipicamente allocata al canale dati a valle. In tutta Europa, le tradizionali linee telefoniche in rame vengono effettivamente sostituite dalla fibra. A seconda della zona, la fibra può raggiungere la strada, il marciapiede, l'edificio o fino a casa. Tecnologie in fibra ottica Con le tecnologie in fibra ottica si va a sostituire parte o tutta la tradizionale linea telefonica in rame con fibra, quindi raggiungere velocità di trasmissione dati più elevate. In questo caso, il PC di casa è collegato a un modem via cavo, che è collegato alla linea TV via cavo domestica, che va ad un “nodo fibra” e quindi ad un luogo chiamato “capocorda”, che si trova a pochi km dall'abitazione. All'interno dell'estremità della testa del cavo, la fibra è terminata in un dispositivo chiamato CMTS, che è collegato a un commutatore di pacchetto, che è connesso al resto di Internet. CMTS sta per Cable Modem Termination System. Quindi, questo è ciò che accade quando si ottiene una connessione Internet via cavo. (Vedere grafico slide 23) A differenza di DSL, il cavo è un "mezzo condiviso" e un "mezzo di trasmissione". Il cavo è un "mezzo condiviso" nel senso che:
  • Molti sistemi finali possono condividere lo stesso collegamento.
  • Tutti i sistemi terminali che sono collegati allo stesso albero devono condividere l'ultimo salto all'estremità del cavo. Al contrario, con DSL, ogni famiglia ha una propria linea telefonica separata verso l'ufficio centrale. Inoltre, il cavo è un "mezzo di trasmissione" nel senso che quando l'estremità del cavo trasmette un dato, questo va a ogni singola famiglia collegata a quell'estremità del cavo. Al contrario, con DSL, quando un PC domestico scarica qualcosa dal Internet, va solo a quella famiglia. —>Perché il cavo è stato progettato per essere un mezzo di trasmissione condiviso? Perché originariamente è stato progettato per trasportare un segnale TV.

Chi possiede e gestisce l'infrastruttura Internet? Abbiamo detto che gran parte degli switch e dei collegamenti su Internet sono di proprietà e gestiti da provider di servizi Internet (ISP). Gli ISP sono organizzati in una gerarchia. Si tratta di ISP, come Telecom Italia e Fastweb, che si interfacciano direttamente con i terminali e forniscono connettività Internet, ad esempio, tramite DSL e via cavo, come abbiamo visto in precedenza. La gerarchia degli ISP è organizzata in tre livelli:

  • alla base ci sono tantissimi ISP di accesso ;
  • gli ISP di accesso si connettono a un minor numero di ISP regionali ;
  • gli ISP regionali si connettono a un numero ancora inferiore di ISP di livello 1. Gli ISP di livello 1 sono direttamente collegati tra loro. Esiste anche una gerarchia economica:
  • Gli ISP di accesso pagano gli ISP regionali per la connettività, quindi gli ISP di accesso e regionali hanno una relazione cliente-fornitore
  • Gli ISP regionali pagano gli ISP di livello 1 per la connettività, quindi anche i regionali e gli ISP di livello 1 hanno una relazione cliente-fornitore
  • Gli ISP di livello 1 non sono clienti di nessuno, ma ovviamente ne hanno bisogno per scambiare traffico tra loro, e lo fanno in base a speciali “accordi di peering”
  • Un accordo di peering può essere semplice, ovvero due ISP si mettono d’accordo per scambiare il traffico tra essi stessi senza dover pagare l’un l’altro, o più sofisticati, ad esempio quanto uno pagherà l’altro. ISP di livello 1 ISP di livello 1 Accesso ISP Accesso ISP Accesso ISP Accesso ISP Accesso ISP ISP regionale ISP regionale

Gli ISP regionali e di livello 1 sono direttamente collegati fisicamente a qualcosa che viene chiamato "Internet eXchange Point" (IXP), che è essenzialmente un commutatore gigante che fornisce connessioni fisiche. Quindi, due ISP possono avere una relazione d'affari fornitore/cliente o peering senza essere direttamente collegati tra loro fisicamente. Perché questo accade? Poiché è logisticamente più semplice per un ISP disegnare un singolo cavo verso un IXP, piuttosto che disegnare un cavo per ogni ISP con cui ha un rapporto d'affari. Quindi gli ISP di accesso(compagnie telefoniche, società via cavo, università e così via) forniscono connettività ai terminali (i nostri laptop e smartphone), e gli ISP di livello 1 sono collegati tra loro. A volte gli ISP regionali si connettono direttamente tra loro e aggirano i loro ISP di livello 1 per motivi economici. E a volte gli ISP si connettono tra loro non direttamente, ma tramite Internet eXchange Point (IXP). E poi abbiamo alcuni grandi fornitori di contenuti che hanno costruito le proprie reti e stanno peering con gli ISP a tutti i livelli della gerarchia. Layers

  • Layer = una parte di un sistema con interfacce ben definite ad altre parti Due layer interagiscono solo attraverso l'interfaccia fra loro. Un layer interagisce solo con il layer sopra e sotto. I layer e le tecnologie che utilizzano (i protocolli) hanno dei nomi. LAYER TECNOLOGIE UTILIZZATE FUNZIONI APPLICAZIONE Web, BitTorrent, e-mail, DNS TRASPORTO TCP, UDP Sposta i dati tra i terminali RETE IP Sposta i dati su Internet LINK DSL, Cavo, Ethernet, Wifi, Cellulare Sposta i dati su una rete locale FISICO Rame, Fibra Sposta i dati attraverso un collegamento fisico Un messaggio è una sequenza di bit. I primi 4 bit indicano il tipo di messaggio, i successivi 8 bit indicano la lunghezza del file, mentre i bit rimanenti potrebbero essere il contenuto del file. Il messaggio che passa tra tutti i layer è chiamato pacchetto. Il livello di trasporto e applicativo servono solo nei terminali finali. Ti mostro qui i 5 livelli dell'architettura di Internet: Quando Alice esegue un'applicazione che crea un messaggio da inviare a Bob, ciò accade a livello di applicazione. Quando Alice preme "invia", il suo programma passa il messaggio a livello di trasporto, che fa parte del sistema operativo in esecuzione sul computer di Alice. Il livello di trasporto antepone una nuova intestazione al messaggio e passa il messaggio al livello di rete, che fa anche parte del sistema operativo in esecuzione sul computer di Alice. Il livello di rete antepone una nuova intestazione al messaggio e passa il messaggio al livello di collegamento, che fa parte dell'hardware del computer di Alice. Il livello di

nslookup traduce i nomi DNS in indirizzi IP Ipconfig /all mostra l’indirizzo MAC e IP delle interfacce di rete sul computer netstat -a mostra con chi stiamo comunicando Traceroute: Scopre i sistemi intermedi tra il tuo computer e uno remoto Wireshark: Guarda all'interno dei pacchetti di rete Parametri di prestazione di base Utilizziamo tre semplici parametri delle prestazioni per quantificare la qualità di questa comunicazione:

  • perdita di pacchetto: è la frazione di pacchetti da sorgente a destinazione che si perdono per strada e viene indicata in percentuale(%);
  • ritardo di pacchetto: è il tempo impiegato da un pacchetto per arrivare da sorgente a destinazione e viene indicato in unità di tempo;
  • throughput medio: è la velocità media con cui la destinazione riceve i dati e viene indicata in bit al secondo(bps) Il ritardo dei pacchetti è importante quando i sistemi finali devono scambiare piccoli messaggi velocemente, ad esempio, nel contesto di un'applicazione interattiva, come voce o giochi. Il throughput medio è importante quando i sistemi finali devono scambiare molti dati, ad esempio, stai scaricando la nuova distribuzione Ubuntu sul tuo laptop. In questo caso, ciò che ti interessa è il tempo necessario per scaricare l'intera distribuzione, non pochi bit. Quando la sorgente trasmette un pacchetto sul collegamento, ci vuole una certa quantità di tempo per inviare tutti i bit del pacchetto sul collegamento. Questa quantità di tempo è chiamata ritardo di trasmissione ed è pari a ritardo di trasmissione ¿ dimensione del pacchetto velocità ditrasmissione del collegamento = 3 bit 1 Gbps = 3 secondi E poi ci vuole una certa quantità di tempo prima che l'ultimo bit del pacchetto raggiunga la destinazione. Questo è chiamato ritardo di propagazione ed è uguale a ritardo di propagazione ¿ lunghezza del collega mento velocità di propagazione del collegamento = 1 metro 3 ∗ 10 8 metri al secondo =3,34 secondi Quindi abbiamo che Ritardo di pacchetto= ritardo di trasmissione + ritardo di propagazione

Queste due componenti - ritardo di trasmissione e propagazione - sono molto diverse l'una dall'altra:

  • Il ritardo di trasmissione dipende dalla velocità di trasmissione del collegamento e dalla dimensione del pacchetto stesso.
    • Il ritardo di propagazione dipende dalla velocità di propagazione del collegamento e dalla lunghezza del collegamento, ma non dal pacchetto. Commutatore (switch) a circuito Nello scenario successivo, abbiamo due sistemi terminali connessi tramite due collegamenti di rete, con le stesse proprietà, e un commutatore (switch) di pacchetto. Assumeremo innanzitutto che questo commutatore di pacchetto sia ciò che chiamiamo un "commutatore di circuito", come i dispositivi utilizzati nelle reti telefoniche tradizionali. In tali reti, quando due sistemi finali vogliono comunicare, prima di iniziare a scambiare dati, viene stabilito un circuito fisico tra di loro. Di conseguenza, non appena lo switch riceve un bit dalla sorgente, può trasmetterlo immediatamente alla destinazione. Quando la sorgente trasmette un pacchetto:
  • La sorgente prima spinge tutti i bit del pacchetto sul primo collegamento.
  • Quindi dobbiamo aspettare che l'ultimo bit del pacchetto arrivi a destinazione. Quindi: In questo scenario, il ritardo del pacchetto è la somma del ritardo di trasmissione del pacchetto sul primo collegamento + il ritardo di propagazione di tutti i collegamenti. In un certo senso, è come se lo switch di pacchetto non fosse presente, non introduce alcun ritardo. Switch store & forward Nello scenario successivo, abbiamo di nuovo due sistemi finali, una sorgente e una destinazione, collegati tramite un commutatore di pacchetto. Questo commutatore, tuttavia, non è un commutatore di circuito, è quello che chiamiamo un commutatore "store & forward", che è molto più vicino ai dispositivi che vengono utilizzati oggi su Internet. Quando i due sistemi finali vogliono comunicare, non è necessario stabilire alcun circuito fisico tra di loro, la sorgente inizia a inviare i pacchetti alla destinazione. Lo switch ha una coda e quando inizia a ricevere bit da un pacchetto, li memorizza nella coda fino all'arrivo di tutti i bit del pacchetto. Solo allora lo switch può trasmettere il pacchetto al collegamento successivo. Questo è il motivo per cui è chiamato switch store-and-forward, perché memorizza i bit fino all'arrivo dell'ultimo bit del pacchetto. Poiché si tratta di uno switch store & forward, non trasmette immediatamente ogni bit non appena lo riceve, attende di ricevere tutti i bit di ciascun pacchetto, quindi elabora il pacchetto e quindi ritrasmette tutti i bit del pacchetto sul collegamento successivo. E questo introduce un ulteriore componente di ritardo di trasmissione.

Il ritardo del pacchetto tra due sistemi finali ha molte componenti: … Il numero esatto di componenti e l'importanza di ciascuno di essi dipende dalla topologia della rete, dalle proprietà del collegamento (velocità di trasmissione e ritardi di propagazione), dal funzionamento degli switch, dalla capacità delle code negli switch e dal traffico stesso. velocità di trasmissione R bit/sec Throughput medio = R file di dimensione F bit pacchetti di bit di dimensione L bits Tempo di trasferimento = L/R+L/R+….+L/R=FR + ritardo di propagazione T= secondi prima che l'host B riceva tutti i F bit Consideriamo ancora lo scenario 1 che abbiamo visto in precedenza, in cui abbiamo due sistemi terminali collegati direttamente tramite un collegamento fisico e supponiamo che questo collegamento abbia una velocità R bps. In precedenza, abbiamo calcolato il ritardo per un pacchetto di bit di dimensione L per arrivare dalla sorgente alla destinazione. Ora calcoleremo il ritardo per un file di dimensioni F bit per arrivare dalla sorgente alla destinazione. Supponiamo che la sorgente tagli il file in più pacchetti ciascuno di bit di dimensione L e li rimandi alla destinazione. Calcoliamo il tempo di trasferimento:

  • Innanzitutto, la sorgente spinge tutti i bit del primo pacchetto sul collegamento = ritardo di trasmissione del primo pacchetto.
    • In secondo luogo, la sorgente spinge tutti i bit del 2° pacchetto sul collegamento = ritardo di trasmissione del 2° pacchetto.
  • E così via per tutti i pacchetti fino a quando tutti i bit F del file non vengono spinti sul collegamento.
  • Una volta che tutti i pacchetti sono sul collegamento, dobbiamo attendere che l'ultimo bit dell'ultimo pacchetto raggiunga la destinazione = ritardo di propagazione del collegamento. Questo è molto simile al ritardo di ottenere un pacchetto dalla sorgente alla destinazione, solo che invece di bit L (la dimensione di un pacchetto), abbiamo bit F (la dimensione dell'intero file) nella formula. In pratica, F/R è in genere abbastanza grande che il ritardo di propagazione del collegamento diventa insignificante e possiamo ignorarlo. Calcoliamo ora il throughput medio ottenuto da questa comunicazione: La sorgente ha inviato F bit alla destinazione e ci sono voluti ca. Unità di tempo A/R. Quindi, il rendimento medio è di ca. F/T = R. Collegamento collo di bottiglia Consideriamo ora lo stesso scenario, ma aggiungiamo uno switch di pacchetto store & forward nel mezzo. Supponiamo che lo switch introduca un ritardo di elaborazione

insignificante e non riceva altro traffico (tranne il traffico tra i due sistemi finali). Supponiamo che il secondo collegamento abbia una velocità di trasmissione R' > R. —> Il throughput medio raggiunto sarà maggiore o minore (o uguale)? Calcoliamo il tempo di trasferimento:

  • Innanzitutto, la sorgente spinge tutti i bit F di tutti i pacchetti sul primo collegamento.
  • In secondo luogo, dobbiamo attendere che l'ultimo bit dell'ultimo pacchetto arrivi allo switch = ritardo di propagazione del primo collegamento.
  • Quando l'ultimo bit dell'ultimo pacchetto arriva allo switch, tutti gli altri pacchetti hanno già lasciato lo switch, perché il secondo collegamento ha una velocità di trasmissione maggiore rispetto al primo collegamento. Quindi, la successiva componente di ritardo è il tempo per spingere tutti gli L bit dell'ultimo pacchetto sul 2° collegamento = ritardo di trasmissione dell'ultimo pacchetto sul 2° collegamento.
  • Infine, dobbiamo attendere che l'ultimo bit dell'ultimo pacchetto arrivi alla destinazione = ritardo di propagazione del 2° collegamento. Ancora una volta, in pratica, F/R è abbastanza grande che i componenti rimanenti diventano insignificanti e possiamo ignorarli. Ora calcoliamo il throughput medio: la sorgente ha inviato F bit alla destinazione e ci sono voluti ca. Unità di tempo A/R. Quindi, il rendimento medio è di ca. F/T = R. -> Cosa succede se aggiungiamo 100 switch tra la sorgente e la destinazione? Il rendimento medio sarà di ca. pari alla velocità di trasmissione del collegamento più lento. In questo scenario, diciamo che questo collegamento è il collegamento "collo di bottiglia" tra i due sistemi finali, perché è qui che il traffico tra i due sistemi finali scorre al ritmo più lento. Rendiamo più concreto il concetto di collo di bottiglia: Supponiamo che il primo collegamento abbia il doppio della velocità di trasmissione del secondo. Quindi, se il primo supporta 1 pacchetto/sec per una data dimensione del pacchetto, il secondo supporta 0, pacchetti/sec. Supponiamo che la sorgente inizi a trasmettere 1 pacchetto/sec. Quando i pacchetti arrivano allo switch, lo switch deve distanziarli, perché può trasmettere solo 0, pacchetti/sec sul secondo collegamento. È come se avessimo una bottiglia e il secondo collegamento è il collo di bottiglia. È il collo di bottiglia che determina la velocità con cui il liquido fuoriesce dalla bottiglia. Questo non cambia se raddoppiamo la dimensione della bottiglia ma lasciamo lo stesso collo di bottiglia. Supponiamo ora che il secondo collegamento abbia il doppio della velocità di trasmissione del primo collegamento. Supponiamo ancora che la sorgente inizi a trasmettere 0, pacchetti/sec. Ora che i pacchetti arrivano allo switch, lo switch non ha bisogno di distanziarli, perché può trasmetterli immediatamente sul secondo collegamento. Tuttavia, non può nemmeno avvicinarli, il meglio che può fare è mantenere il distanziamento esistente. È come se avessimo una bottiglia capovolta e l'acqua entrasse dal collo di

Inoltre, lo switch consulta qualcosa che viene chiamato "tabella di instradamento" per decidere cosa fare con il pacchetto, dove inviarlo successivamente. Elementi di uno switch Quindi, all'interno di uno switch, di solito abbiamo almeno una coda e una tabella di instradamento. La coda (buffer) memorizza i pacchetti, la tabella di instradamento memorizza i metadati e indica dove inviare(in quale porta di uscita, e dunque in quale coda) ogni pacchetto. Commutazione di pacchetto (packet switching) Come abbiamo visto in precedenza, è possibile che i pacchetti arrivino allo switch in modo tale che alcuni di essi subiscano ritardi nell'accodamento o addirittura vengano eliminati. In altre parole, lo switch non ha risorse sufficienti per servire perfettamente tutti i pacchetti, il che significa che deve gestire le risorse. Un approccio alla gestione delle risorse è il "packet switching". Quando la sorgente ha un pacchetto da inviare alla destinazione, scrive la destinazione sul pacchetto e invia il pacchetto allo switch. Una volta che il pacchetto arriva allo switch, lo switch decide se dispone di risorse sufficienti (ad esempio, spazio in coda sufficiente) per archiviare ed elaborare questo pacchetto. Inoltre, lo switch mantiene, nella sua tabella di instradamento, una struttura dati che dice dove inviare ciascun pacchetto in base alla sua destinazione. Se lo switch decide di avere le risorse per inoltrare questo pacchetto, cerca in questa struttura dati dove inviarlo successivamente. Quindi, con questo approccio, lo switch tratta ogni pacchetto come un'entità separata dal resto del traffico. Quindi, i pacchetti vengono trattati su richiesta. “Commutazione di connessione” (connection switching) Un approccio diverso alla gestione delle risorse è quello che chiamo a "commutazione di connessione". Lo metto tra virgolette perché il termine è mio, ma penso che colga meglio del termine tipicamente usato di cosa tratta questo approccio. Quando la sorgente ha dati da inviare alla destinazione, non invia solo pacchetti allo switch. La fonte prima parla con lo switch e dice "Sto stabilendo una connessione a quella destinazione, e invierò quel numero di bit e pacchetti al secondo, quindi, per favore, riserva abbastanza risorse per inoltrare tutti i miei pacchetti senza ritardi in coda e senza perdita di pacchetti". A quel punto, lo switch decide se dispone delle risorse necessarie per memorizzare ed elaborare tutti i pacchetti che apparterranno a questa connessione. Se lo fa, prenota risorse in anticipo per questa connessione: determina che una frazione della sua coda, una frazione della velocità di trasmissione del collegamento in uscita sarà dedicata solo a questa connessione.

Inoltre, lo switch aggiorna la sua tabella di inoltro e aggiunge informazioni che dicono cosa dovrebbe fare con i pacchetti che appartengono a questa connessione (dove dovrebbe inviarli). Al termine di tutta questa configurazione, la sorgente inizia a inviare i pacchetti allo switch, dopo aver scritto su ogni pacchetto la connessione a cui appartiene il pacchetto. Se tutto va secondo i piani (non si verificano problemi tecnici), questi pacchetti non subiscono ritardi di coda imprevisti o perdite di pacchetti. Questo perché lo switch ha uno spazio di coda riservato per loro, quindi non ci sono altri pacchetti in coda per causare ritardi e perdite imprevedibili. Quindi, con questo approccio, lo switch tratta l'intera connessione come un'unica entità. I pacchetti non sono trattati su richiesta, le risorse sono riservate per un'intera connessione in anticipo. Gestione delle risorse

- Commutazione di pacchetto -pacchetti trattati su richiesta

  • controllo di ammissione e decisione di inoltro: per pacchetto - “Commutazione di connessione” -risorse riservate per ogni connessione attiva -controllo di ammissione e decisione di inoltro: per connessione E’ meglio su richiesta o su prenotazione? Quindi, due modi per uno switch di pacchetto per gestire le risorse:
    • Con la commutazione di pacchetto, i pacchetti vengono trattati su richiesta. Ciò significa che il controllo di ammissione (dovrei prendere questo pacchetto o meno) e le decisioni di inoltro vengono eseguite per pacchetto.
  • Con il cambio di connessione, le risorse vengono riservate in anticipo per un'intera connessione. Ciò significa che il controllo dell'ammissione e le decisioni di inoltro vengono eseguite per connessione. La domanda è quale approccio è migliore, commutazione di pacchetto o commutazione di connessione?

Secondo scenario: una delle due sorgenti invia 4 pacchetti/secondo. Anche questo funziona bene, perché lo switch non ha pre-allocato una quantità fissa di risorse per ogni origine. Quindi, con la commutazione di pacchetto, fintanto che la quantità totale di traffico che va alla destinazione è fino a 4 pacchetti/secondo, non c'è nessun ritardo di coda imprevisto e nessuna perdita di pacchetti, indipendentemente da chi genera quel traffico. Un pacchetto non viene mai scartato se lo switch ha le risorse per archiviarlo ed elaborarlo. Questa si chiama efficienza. Quando un sistema non rifiuta mai le richieste di servizio a meno che non vengano utilizzate tutte le sue risorse, chiamiamo quel sistema efficiente. Quindi, a differenza della commutazione di connessione, la commutazione di pacchetto è un approccio efficiente alla gestione delle risorse. E cosa c'è di negativo nella commutazione di pacchetto? L'ultimo scenario che abbiamo esaminato è che la seconda sorgente rimane in silenzio per un po' e la prima sorgente invia 4 pacchetti/secondo. Supponiamo che la seconda sorgente si svegli e voglia anche inviare un pacchetto. Cosa accadrà a quel pacchetto? Verrà eliminato, perché la prima sorgente ha consumato tutte le risorse disponibili (tutto lo spazio disponibile nel buffer). Quindi, l'aspetto negativo della commutazione di pacchetto è che, a differenza della commutazione di connessione, le prestazioni sono imprevedibili. -> Quale è più facile da implementare? La commutazione di pacchetto, perché non è necessario fare nulla di speciale nei commutatori (switch). Per implementare la commutazione di connessione, gli switch devono essere più intelligenti: devono essere in grado di decidere quali connessioni accettare, quante risorse riservare per connessione ed eseguire l'effettiva prenotazione delle risorse. Tuttavia, anche la commutazione di pacchetto ha le sue complessità. Supponiamo che la prima sorgente qui continui a inviare pacchetti a una velocità molto elevata e continui a riempire il buffer dello switch. Di conseguenza, la seconda sorgente può inviare pochissimi pacchetti, perché la maggior parte delle risorse dello switch sono già occupate dalla prima sorgente. Quindi: quando usiamo la commutazione di pacchetto, abbiamo bisogno di quello che viene chiamato "controllo della congestione", che è un meccanismo che impedisce alle fonti che si comportano male di assorbire tutte le risorse.

- Commutazione di pacchetto - efficiente uso delle risorse - nessuna garanzia di prestazione - più semplice da implementare, ma richiede controllo di congestione - “Commutazione di connessione”

  • Garanzie di prestazione - uso inefficiente delle risorse

Dei due, la commutazione di pacchetto è più semplice da implementare, ma richiede un meccanismo aggiuntivo per il controllo della congestione. —> Quale approccio utilizza Internet? Internet utilizza la commutazione di pacchetto. Questo è il motivo per cui diciamo che Internet offre un servizio di "best effort o miglior sforzo". Non c'è alcuna garanzia che l’invio dei tuoi pacchetti vada a buon fine. Normalmente, quando invii traffico, passa attraverso più switch di pacchetto, non solo uno, come nel nostro esempio. Multiplexing statistico

  • Molti utenti condividono la stessa risorsa
    • Non tutti possono utilizzarla allo stesso tempo…
  • …ma contiamo sul fatto che non ci aspettiamo che siano tutti attivi contemporaneamente Vedremo due esempi che sono anche nel tuo libro, che illustrano i vantaggi della commutazione di pacchetto. Abbiamo un server video connesso a uno switch con un collegamento a 10 Gbps. Dall'altra parte dello switch, abbiamo utenti che sono collegati allo switch e stanno scaricando video dal server. La velocità minima alla quale un utente deve scaricare per ottenere prestazioni ragionevoli è 1 Gbps. Quanti utenti può servire contemporaneamente questo server video? 10 utenti. Ma ora ti dico che ogni utente è attivo solo il 10% del tempo: Il 10% delle volte scarica video e il 90% delle volte li guarda. —> Se lo switch utilizza il cambio di connessione, quanti utenti può servire? Con il cambio di connessione, quando lo switch accetta un nuovo client, deve riservare risorse per gestire 1 Gbps. Il collegamento al server video supporta fino a 10 Gbps, quindi quanti client può accettare lo switch? 10. —> Se lo switch utilizza la commutazione di pacchetto, quanti utenti può servire? Dobbiamo fare un po' di calcoli a parte. Se abbiamo 35 utenti, la probabilità che 10 utenti o meno siano attivi è del 99,96%. Quindi, se lo switch accetta 35 utenti, li servirà bene per il 99,96% delle volte. Il punto è: Con la commutazione di pacchetto, lo switch può servire più di tre volte il numero di client rispetto alla commutazione di connessione, offrendo quasi le stesse prestazioni, perché è più efficiente. Questo è ciò che chiamiamo Multiplexing statistico. Diamo un'occhiata a un altro esempio. Abbiamo una configurazione simile alla precedente, con la seguente differenza: Ci sono esattamente 10 utenti che potrebbero utilizzare il sistema e solo uno di loro risulta essere attivo al momento. Sta scaricando un file video di 10 Gb. Se lo switch utilizza la commutazione di connessione e dispone di 1 Gbps dedicato a ciascun client, il client impiegherà 10 secondi per scaricare il file. Se lo switch utilizza la commutazione di pacchetto, poiché tutti gli altri client sono inattivi, il client sarà in grado di utilizzare tutte le risorse disponibili e impiegherà solo 1 secondo per scaricare lo stesso file. Questo è un esempio perfetto per illustrare cosa significa un uso efficiente delle risorse: Se c'è un

Multiplexing a divisione di frequenza

  • dividere lo spettro di frequenza in bande di frequenza
  • Una banda di frequenza per connessione C'è il "multiplexing a divisione di frequenza", dove ancora una volta usiamo un singolo circuito fisico, ma dividiamo la sua larghezza di banda in bande di frequenza. Ad ogni connessione è assegnata una banda di frequenza separata. Ad esempio, l'aria viene utilizzata da molte stazioni radio, ma ogni stazione utilizza una banda di frequenza diversa. Questi sono tutti modi diversi per implementare il pricipio di commutazione di connessione, cioè, per creare l'illusione di un circuito fisico separato per connessione. Non sto dicendo che sono tutti uguali. Ognuno affronta le proprie sfide tecniche e, in quanto ingegneri, potresti dover apprendere alcuni di questi dettagli a seconda della tua specializzazione. Ma per ora, ad alto livello, puoi considerarli come modi diversi per realizzare il controllo dell'ammissione e le decisioni di inoltro in base alla connessione. Elaborazione su richiesta o su prenotazione? Un'altra domanda chiave da porsi quando si progetta una rete è se trattare gli utenti e il loro traffico su richiesta o se su prenotazione. Come si può prendere una decisione del genere? Dimentichiamoci per un momento delle reti di computer. Diciamo che apri un ristorante e devi decidere se accettare o meno le prenotazioni. Se accetti prenotazioni, ogni volta che un cliente prenota, devi tenere il tavolo fino a quando il cliente non si presenta. Se non si accettano prenotazioni, quando ci sono più clienti che tavoli disponibili, alcuni devono aspettare, altri se ne vanno. Supponendo che i clienti continuino ad arrivare, quale approccio manterrà il tuo ristorante pieno? Non si accettano prenotazioni. Quale approccio ti farà guadagnare di più? Dipende. Finché i clienti continuano ad arrivare, se non accetti le prenotazioni, il tuo ristorante è sempre pieno. Ma poi, i clienti devono aspettare o andare via, il che li rende infelici, quindi potrebbero non tornare. Quindi, c'è un compromesso tra: non accettare prenotazioni e mantenere il tuo ristorante pieno, contro accettare prenotazioni e mantenere i tuoi clienti felici. Tornando alle reti di computer: Per decidere se utilizzare la commutazione a pacchetto o a connessione, è necessario bilanciare il costo e la complessità dell'infrastruttura che si è disposti a tollerare rispetto alla qualità del servizio che si desidera offrire agli utenti. Vulnerabilita’ di Internet Quando più utenti condividono una rete, in genere c'è la possibilità di comportamenti scorretti. Quindi, chiuderemo questa lezione (e la nostra introduzione) con una breve discussione sul comportamento scorretto di Internet. - Eavesdropping (sniffing) Un tipo di utente della rete che si comporta male è Eve, l'intercettatrice: cerca di ascoltare la comunicazione tra Alice e Bob e copiare i dati che si scambiano. - Impersonation (spoofing)

Un altro tipo è Persa, la tua imitatrice: finge di essere Alice per estrarre informazioni da Bob. A differenza di Eve, Persa è un utente attivo che si comporta male, non solo ascolta, ma invia traffico.

- Denial of service (dos-ing) Un terzo tipo è Denis, l'attaccante denial-of-service, che interrompe la comunicazione tra Alice e Bob. Un modo per farlo è inviare molto traffico spazzatura a Bob e consumare tutte le risorse di Bob, in modo che non rimangano risorse per ricevere ed elaborare il traffico di Alice. Può farlo da solo o ancora meglio, chiedi l'aiuto di molti sistemi finali compromessi, noti anche come bot. - Malware Infine, un altro tipo di utente che si comporta male è Malik, il malware master, che infetta il computer di Alice e/o Bob con malware, vale a dire software dannoso che fa cose cattive ai loro computer, come cancellare i loro dati, o rubare i loro dati, o fa in modo che i loro computer inviino spam o partecipare ad attacchi denial-of-service