diff --git a/README.md b/README.md new file mode 100644 index 0000000..9380796 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Appunti per laurea in Informatica diff --git a/reti-di-elaboratori/capitolo-1-introduzione-alle-reti/esercizi-sul-capitolo-1.html b/reti-di-elaboratori/capitolo-1-introduzione-alle-reti/esercizi-sul-capitolo-1.html new file mode 100644 index 0000000..dc3d7ad --- /dev/null +++ b/reti-di-elaboratori/capitolo-1-introduzione-alle-reti/esercizi-sul-capitolo-1.html @@ -0,0 +1 @@ +
Vogliamo trovare
Il file ha dimensioni pari a 9500 byte.
Un pacchetto ha dimensione massima di 1500 byte.
Il numero di pacchetti che dobbiamo creare dato il file è di
Quindi abbiamo 7 pacchetti totali:
I 6 pacchetti, in bit:
L'ultimo pacchetto, in bit:
In totale i bit sono:
La velocità di trasmissione è di 1 Mbps = 1000 kbps = 1000 per 1000 bps = 1 milione di bit per secondo.
Per trasmettere 76000 bit sono necessari:
A cui dobbiamo aggiungere il ritardo di propagazione di 5 ms. In totale abbiamo 81 ms.
Il ritardo di propagazione, fa viaggiare i bit (impulsi) sul mezzo trasmissivo, non c'entra niente con i pacchetti. Tutti i bit inviati da S condividono lo stesso mezzo trasmissivo, dunque, gli impulsi raggiungono (tutti insieme) in 5 ms il destinatario D.
Nella prima domanda si vuole trovare solo la velocità di propagazione:
La domanda è ambigua: non è chiaro se è ricercato il tempo che impiega un pacchetto a propagarsi inteso come voglio solo il ritardo di propagazione, o se intende tutto il tempo necessario per far si che un pacchetto venga trasferito da un punto all'altro
Solo il ritardo di propagazione è il seguente:
Nel caso in cui sia richiesto il tempo totale, allora dobbiamo sommare al ritardo di propagazione anche quello di trasmissione:
Altra domanda ambigua.
Il ritardo di propagazione non dipende dalla velocità di trasmissione.
Il ritardo necessario per trasferire il pacchetto, dipende da entrambi i ritardi.
Il ritardo di trasmissione dipende dalla velocità di trasmissione e dalla grandezza del pacchetto.
La tecnologia cable modem è utilizzata per rendere possibile l'accesso ad internet attraverso infrastrutture per fornire la TV via cavo. Tale tecnica si basa sull'uso di HFC.
Il cable modem invia i segnali analogici alla stazione di testa in cui è presente il CMST che effettua la traduzione dei segnali analogici in segnali digitali.
Il cable modem funge da interfaccia tra la rete e i dispositivi dell'utente.
Le bande di upstream e downstream sono condivise fra tutte le abitazioni.
Potenzialmente se più utenti richiedessero un file nello stesso istante la velocità effettiva di trasmissione ne risentirebbe.
Le componenti principali sono:
La velocità di trasmissione è:
mentre la lunghezza del cavo:
ipotizziamo che il collegamento Francia-USA utilizzi un cavo in rame, la cui velocità di propagazione del segnale è
Per prima cosa dobbiamo sapere a quanto ammonta il ritardo di propagazione:
Al tempo
Affinché l'ultimo bit del file di dimensione
La figura è leggermente fuorviante.
In questo modo è più chiara.
Ogni ISP può avere 1 o 2 router.
Nei sistemi periferici vengono eseguite operazioni per applicazione, trasporto e rete.
Tra i sistemi periferici e l'ISP di accesso vengono eseguite operazioni per collegamento e livello fisico. Negli ISP vengono eseguite operazioni per rete, collegamento e livello fisico.
Dobbiamo distinguere due casi:
Scrivere soluzione (vedi tablet)
Scrivere soluzione (vedi tablet)
Scrivere soluzione (vedi tablet)
Il nucleo della rete è una maglia di commutatori di pacchetti e collegamenti che interconnettono i sistemi periferici di internet. Le applicazioni scambiano messaggi di qualsiasi tipo (immagini, file, mail, …). I messaggi vengono suddivisi in pacchetti più piccoli nella sorgente e poi vengono inoltrati nei vari commutatori di pacchetto.
Se il pacchetto è di dimensione
Adesso calcoliamo la velocità di trasmissione di un pacchetto (trascurando il ritardo di propagazione del pacchetto).
La sorgente invia 3 pacchetti ognuno di grandezza
Tra la sorgente e il destinatario vi è un router intermedio.
Il router comincia a ricevere i primi bit del primo pacchetto, ma ha bisogno di averlo tutto prima di poterlo inoltrare verso il destinatario.
Il pacchetto per giungere al destinatario impiegherà:
Tutto il pacchetto impiegherà la velocità:
Quando il primo pacchetto raggiuge il router (
Quando il primo pacchetto sarà arrivato a destinazione, il secondo pacchetto sarà arrivato nel router e sta partendo da esso e il terzo pacchetto sarà partito dalla sorgente (
Quando il secondo pacchetto sarà arrivato a destinazione, il terzo sarà arrivato al router (
Infine il terzo pacchetto per arrivare a destinazione impiegherà un altro
In generale la velocità di trasmissione di un pacchetto di
Supponiamo di avere 4 pacchetti alla sorgente, di avere 2 router e dunque 3 collegamenti: calcoliamo la velocità di trasmissione dei pacchetti sopra descritti:
I commutatori di pacchetto (router o switch a livello di rete) hanno numerosi collegamenti.
Ogni commutatore è dotato di un buffer di output (o coda di output) in cui i pacchetti attendono nel caso in cui dovessero arrivare quando il commutatore è impegnato nella trasmissione di un altro pacchetto. Il buffer ha una quantità finita, quindi se un pacchetto giunge quando il buffer è pieno, il pacchetto che arriva o uno dei pacchetti in code nel buffer deve essere eliminato verificandosi packet loss (perdita di pacchetto). Oltre ai ritardi che si verificano a causa dello store-and-foreward si verificano anche ritardi di accodamento.
In questa parte vedremo come i router scelgono il percorso per instradare un pacchetto verso la destinazione. Ogni sistema periferico è distinto nella rete attraverso un indirizzo IP. Ogni pacchetto contiene nella sua intestazione l'indirizzo verso cui è diretto. Il router esamina tale indirizzo e confrontando quest'ultimo con una tabella di inoltro sceglie il percorso adatto a raggiungere la destinazione. Le tabelle di inoltro mettono in relazione gli indirizzi di destinazione (o loro parti dell'indirizzo) con i collegamenti in uscita. In ogni commutatore si verificherà l'inoltro al prossimo commutatore, e alla fine il pacchetto giungerà alla destinazione. Le tabelle di inoltro vengono impostate automaticamente attraverso dei protocolli di instradamento che per esempio possono determinare il percorso più breve per una certa destinazione.
Finora abbiamo parlato di reti a commutazione di pacchetto (internet). Un altro tipo di reti sono quelle a commutazione di circuito. In questo tipo di reti le risorse vengono riservate a priori e perdurano per tutta la durata della comunicazione tra i due sistemi periferici. Nelle reti a commutazione di pacchetto questo non avviene, poiché un pacchetto che viaggia nella rete tra i vari commutatori può trovare il buffer pieno e attendere affinché siano riservate risorse per il suo viaggio nella rete. Nelle reti a commutazione di circuito le risorse vengono riservate fin dall'inizio e durano per tutta la comunicazione. Una rete a commutazione di circuito infatti è garantita anche una velocità costante di connessione, così non è per le reti a commutazione di pacchetto.
Nelle reti a commutazione di pacchetto è implementato il multplexing a divisione di frequenza (FDM) o il multiplexing a divisione di tempo (TDM).
In FDM lo spettro di frequenza di una connessione viene suddivisa tra le connessioni stabilite attraverso il collegamento. Ad ogni connessione viene assegnata una banda di frequenza (bandwidth o ampiezza di banda).
In TDM invece il tempo viene ripartito in frame di durata fissa a loro volta suddiviso in un numero fisso di slot. Quando la rete stabilisce una connessione attraverso un collegamento le dedica uno slot di tempo ad ogni frame.
Per esempio lo slot azzurro è presente in ogni frame della connessione.
Un frame è formato da quattro slot: blu, verde, giallo e fucsia. Dove il blu l'inizio del frame, mentre il fucsia è la fine.
Vediamo con un semplice esempio perché conviene la commutazione di pacchetto. Supponiamo che ci sia un collegamento da 1Mbps e che ciascun utente alterni periodi in cui invia dati (10% del tempo) e periodi di inattività (90% del tempo). Con una commutazione di circuito è necessario riservare 100 kbps ad ogni utente. 1 Mbps/100 kbps = 10 utenti. In ogni istante vengono riservati 100 kbps ad ogni utente.
Con la commutazione di pacchetto, come abbiamo stabilito prima (utente invia dati per il 10% del tempo), la probabilità che un utente sia attivo è pari a 0,1. Se condividono il collegamento 35 utenti, la probabilità che 11 o più utenti siano attivi è pari allo 0,0004. Quando ci sono 10 o meno utenti attivi (il che avviene con probabilità pari a 0,9996) il flusso di pacchetti nel collegamento avviene senza ritardo. Quando il numero di utenti sarà superiore a 11, il flusso avverrà con ritardo. Ma dato che la probabilità che ci siano più di 11 utenti è assai limitata, la commutazione di pacchetto risulta più efficiente poiché ha le stesse prestazioni della commutazione di circuito e consente più del triplo degli utenti.
Consideriamo un altro scenario. Supponiamo che un utente improvvisamente cominci ad inviare 1000 pacchetti da 1000 bit ciascuno mentre tutti gli altri utenti sono inattivi. Nella rete a commutazione di circuito l'utente ha a disposizione solo 100 kbps e i pacchetti per giungere a destinazione impiegheranno 10 secondi. Invece nella commutazione di pacchetto, se gli altri utenti sono inattivi, l'utente ha a disposizione tutta la banda e può inviare i dati in solo secondo.
I sistemi periferici si scambiano pacchetti, questi per poter interagire tra di loro devono essere connessi ad internet. I sistemi periferici hanno accesso ad internet poiché sono allacciati agli ISP di accesso. Gli ISP di accesso non sono necessariamente compagnie telefoniche, ma possono anche essere università o aziende. Gli ISP di accesso sono dislocati in tutto il mondo. Questo vuol dire che due sistemi periferici in parti opposte del mondo possono scambiarsi pacchetti se in qualche modo i due ISP di accesso che consentono loro di connettersi a internet sono collegati. In internet gli ISP sono interconnessi tra di loro in maniera complessa. Vediamo, sviluppando delle strutture di rete via via più complesse, com'è fatta internet.
Tutti gli ISP sono interconnessi tra di loro, ogni ISP deve essere connesso a tutti gli altri ISP sparsi in tutto il mondo. Questo tipo di struttura sarebbe troppo costosa, per questo supponiamo che vi sia un ISP globale che interconnette tuti gli altri. Tale ISP è formato da migliaia di router interconnessi, e inoltre deve avere almeno un router nelle vicinanze di ogni altro ISP.
Questa struttura è uguale a quella precedente, solo che al posto di avere un solo ISP globale, ce ne sono più di uno. In tal modo gli ISP clienti avrebbero più scelta sul fornitore, in base al costo e/o ai servizi che offre.
Definiamo questi ISP globali: ISP di primo livello.
Seppur molti ISP hanno una copertura impressionante, nessun ISP si trova in ogni città del mondo. Al massimo vi sono degli ISP regionali a cui si connettono tutti gli ISP di accesso. Gli ISP regionali si connetteranno all'ISP di primo livello.
Gli ISP di primo livello, nella realtà, sono circa una dozzina.
Gli ISP di accesso (ovvero gli ISP che consentono l'accesso ad internet agli utenti) pagano l'ISP regionale e l'ISP regionale paga l'ISP di primo livello. Un ISP di accesso può anche decidere di connettersi ad un ISP di primo livello e pagarlo direttamente. Da un punto di vista economico vi sono più ISP di primo livello in competizione tra di loro e più ISP regionali in competizione tra di loro.
Questa struttura è uguale alla precedente, solo che consideriamo che ci possa essere un ISP ancor più grande di quello regionale a cui tutti gli ISP si connettono. Chiameremo questa caratteristica: gerarchia multilivello.
La struttura di rete 4, si arricchisce di Pop, multi-homing, peering e IXP.
Il peering, avviene tra ISP di pari livello.
Due ISP di pari livello si connettono tra di loro, il risparmio si verifica nel momento in cui, un pacchetto deve viaggiare dall'ISP A verso la rete dell'ISP B (o viceversa), per risparmiare sui costi di trasporto di quel pacchetto nel caso in cui esso passerebbe per l'ISP di primo livello, l'ISP A invia direttamente il pacchetto all'IPS B a cui è connesso direttamente tramite peering.
Questa struttura descrive la internet odierna. È la struttura di rete 4 arricchita con le reti di quelle società che si occupano di offrire contenuti (Google, …). Google per esempio ha data center dislocati in tutto il modo. Essi sono interconnessi tra di loro. Google ha una sua rete, separata da quella che costituisce internet. Poi, per rendere disponibili i suoi contenuti (e per risparmiare) si connette agli ISP di accesso, quando possibile, dato che la sua rete potrebbe non riuscire a coprire tutto il globo, si connette anche agli ISP di primo livello.
Prossimo argomento: Ritardi, perdite e throughput nelle reti a commutazione di pacchetto.
I dispositivi collegati a internet vengono chiamati host o sistemi periferici. Questi sono connessi mediante una rete di collegamenti, collegamenti che possono essere di diverso tipo: cavo coassiale, fibra ottica, onde elettromagnetiche, ecc.
In base al tipo di collegamento i dati possono essere trasmessi a velocità differente.
La velocità (velocità di trasmissione) viene misurata in bps (bit per secondo).
Quando un sistema periferico vuole inviare dati ad un altro, suddivide i dati in pacchetti.
I pacchetti, giunti al destinatario vengono ri-assemblati per comporre il messaggio originario.
Commutatori di pacchetto usati oggi sono i router e i commutatori a livello di collegamento.
La sequenza di collegamenti che attraversa un pacchetto prima di giungere a destinazione è detto cammino o percorso (route o path).
I sistemi periferici accedono a internet tramite gli internet service provider (ISP) suddivisi in:
Il controllo di invio/ricezione di informazioni all'interno della rete è regolato da protocolli. I due principali sono: transmission control protocol (TCP) e internet protocol (IP).
Internet fornisce diverse applicazioni e servizi. L'aspetto rilevante è che tali applicazioni vengono eseguite sui sistemi periferici e non sui commutatori di pacchetto del nucleo della rete. Una volta che un programma è in esecuzione su un sistema periferico per istruire internet affinché recapiti dati ad un'altra parte di software in esecuzione su un altro sistema periferico viene utilizzata un'interfaccia socket che specifica come un programma possa chiedere a Internet di recapitare dati di un programma (in esecuzione su un certo sistema) ad un altro programma (in esecuzione su un altro sistema). Le interfacce socket saranno descritte più avanti.
Supponiamo che Alice debba inviare una lettera a Bob. Alice scriverà i dati sulla lettera, ma non si può limitare a lanciarla fuori dalla finestra. Occorre che Alice esegua alcune operazioni per far si che la letta si recapitata a Bob. Dovrà indicare i dati del destinatario: il suo nome e cognome, il suo indirizzo, dovrà compare un francobollo, dopo di che il sistema postale si occuperà di recapitare la lettera a Bob per conto di Alice. L'insieme di regole che Alice esegue rappresentano un'analogia con la nostra interfaccia socket, Alice e Bob sono le applicazioni su due sistemi periferici diversi che vogliono comunicare.
Facciamo un'altra analogia.
Supponiamo che un uomo voglia chiedere l'ora ad un'altra persona. Prima di chiedere l'ora, la persona A saluterà, dopo aver ricevuto il saluto di ritorno chiederà l'ora. Le regole tra gli esseri umani definiscono un comportamento di questo tipo. Queste regole formano un protocollo. Se la persona B risponde con un saluto allora la persona A chiederà l'ora, in caso di una risposta negativa ("Non mi scocciare", "Non parlo italiano", …) la persona A dovrà abbandonare la comunicazione e chiedere l'ora ad un'altra persona. Il protocollo di rete funziona allo stesso modo. Per esempio quando vogliamo scaricare una certa pagina web, il nostro sistema periferico effettua prima una richiesta al web server, una volta ricevuta una risposta, effettuare la richiesta per un certo sito web.
I sistemi periferici possono anche essere chiamati end system.
I sistemi periferici sono anche chiamati host poiché ospitano ed eseguono programmi applicativi. Tra gli host viene fatta un ulteriore distinzione in:
Gli end system (sistemi periferici) accedono ad internet attraverso delle reti di accesso, ovvero delle reti che connettono l'end system ad internet, attraverso un router di bordo (edge router). L'edge router è il primo router sul percorso dal sistema di origine a qualsiasi altro sistema destinatario.
Gli accessi residenziali a banda larga più diffusi sono: DSL (digital subscriber line) e quello via cavo.
In genere l'accesso residenziale DSL viene fornito dalla compagnia telefonica che fornisce il servizio di linea fissa. In questo contesto la compagnia telefonica diventa anche un ISP.
Come si vede nella figura sopra il modem DSL dell'utente usa la linea fissa esistente (doppino telefonico intrecciato in rame) per scambiare dati con un digital subscriber line access multiplex (DSLAM) che si trova nella centrale locale della compagnia. Il modem converte i dati digitali in toni ad alta frequenza per poterli trasmettere alla centrale locale sul cavo telefonico; tutti i segnali analogici in arrivo dalle abitazioni vengono riconvertiti in formato digitale nel DSLAM.
Le linee telefoniche residenziali trasportano contemporaneamente dati e segnali telefonici tradizionali codificandoli in tre bande di frequenza non sovrapposte:
Mentre DSL si appoggia alle infrastrutture già in funzione per la linea fissa, l'accesso ad internet via cavo utilizza infrastrutture esistenti della televisione via cavo. In questo caso la compagnia che fornisce l'accesso alla TV via cavo diventa anche provider.
Come si vede in figura, le fibre ottiche connettono la terminazione del cavo a giunzioni a livello di quartire, dalle quali viene usato il tradizionale cavo coassiale per la distribuzione televisiva nelle singole case. Questo sistema viene detto HFC (hybrid fiber coax).
L'accesso ad internet via cavo richiede modem speciali, chiamati cable modem.
Sono molto simili ai modem delle reti di accesso DSL.
Alla stazione di testa (vedi figura) il sistema di terminazione dei cable modem (CMTS, cable modem termination system) svolge una funzione simile al DSLAM nelle reti ad accesso DSL.
I cable modem inviano alla stazione di testa (cable head end) i segnali analogici che vengono tradotti in segnali digitali dal CMTS.
I cable modem dividono la rete HFC in due canali: downstream e upstream, come per DSL, l'accesso è asimmetrico. Una caratteristica di HFC è che il mezzo di trasmissione dei pacchetti è condiviso, infatti se giunge un pacchetto alla stazione di testa da recapitare ad una certa abitazione viaggia sul canale di downstream in tutti i collegamenti e verso ogni abitazione; ciascun pacchetto inviato da un'abitazione viaggia sul canale di upstream verso la stazione di testa. Per questo motivo se diversi utenti stanno contemporaneamente scaricando un file video sul canale di downstream, l'effettiva velocità alla quale ciascun utente lo riceve sarà inferiore rispetto a quella totale del canale di downstream, d'altra parte se pochi utenti stanno navigando, potranno ricevere i file richiesti alla velocità massima.
L'idea è fornire la fibra ottica, dalla centrale, direttamente nelle abitazioni degli utenti.
Ci sono diverse tecnologie per rendere possibile quest'idea.
La più semplice è chiamata fibra diretta, in cui ogni singola fibra viene collegata ad una singola abitazione. Di solito però la fibra uscente dalla centrale locale è in effetti condivisa da molte abitazioni e solo quando arriva relativamente vicina alle abitazioni viene suddivisa in più fibre, ognuna dedicata ad un utente.
I bit vengono trasmessi attraverso dei mezzi fisici. La prima volta che un bit viene immesso nella rete, parte da un router e attraversa una serie di router. Quindi viene ritrasmesso più volte in diverse coppie di trasmettitori-ricevitori propagandosi sotto forma di impulso ottico (cavi, fibra ottica, cavo coassiale, …) o onde elettromagnetiche (wi-fi). Il mezzo fisico può essere diverso tra le varie coppie che il bit incontra per strada.
Distinguiamo tra questi:
Nel prossimo argomento vediamo com'è fatto il nucleo della rete.
Prima di tentare di descrivere l'architettura a livelli di internet, vediamo un'analogia.
Se si dovesse descrivere il sistema che consente a una persona di viaggiare con una compagnia aerea, si direbbe che c'è un momento in cui si acquista il biglietto, si imbarca il bagaglio, ci si reca al gate, si decolla, l'aereo si instrada verso la destinazione, (giunti a destinazione) si atterra, si esce dal gate, si ritira il bagaglio e si esce dall'aeroporto (biglietto).
Dopodiché i passi si ripetono all'inverso per tornare indietro.
Queste fasi consentono ad un viaggiatore di partire da un'origine verso una destinazione. Si possono suddividere le fasi di questo sistema in livelli:
Si noti che ogni livello funziona in modo autonomo. E che tutti i livelli insieme rendono possibile il viaggio. I livelli cooperano in un certo modo tra di loro, ma senza ostacolarsi. Se si è muniti di biglietto si può imbarcare il bagaglio, imbarcato il bagaglio si può entrare al gate e se si è entrati al gate si può decollare, una volta decollati ci si può instradare verso la destinazione. Il vantaggio di una suddivisione a livelli di questo tipo permette l'aggiornamento dei livelli in maniera indipendente dagli altri. Per esempio il fatto che variano le modalità con cui si consegna il bagaglio, non vuol dire che varia il modo in cui si fa il biglietto.
Internet è organizzata in livelli. I livelli possono essere implementati per via hardware o software.
Per la descrizione dei livelli sarà utilizzato un approccio top-down, ovvero partendo prima dal livello più in alto (applicazione) fino al livello più in basso (fisico).
Di questo livello fanno parte tutti quei protocolli di rete (HTTP, SMTP, …) tramite il quale le applicazioni (nei sistemi periferici) comunicano. Anche il protocollo DNS fa parte di questo livello. Chiameremo messaggi i pacchetti di informazioni scambiati a questo livello.
Di questo livello fanno parte due protocolli: TCP e UDP. Entrambi trasferiscono i messaggi tra punti periferici del livello di applicazione.
Questo livello si occupa di trasferire (a livello di rete) da un host all'altro i segmenti (ricevuti dal livello sovrastante) in cui è specificato l'indirizzo di destinazione. In questo livello è contenuto anche il protocollo IP e vari protocolli di instradamento per la scelta del percorso più adatto da far intraprendere ai datagrammi.
In questo livello si instrada un datagramma attraverso una serie di router tra la sorgente e la destinazione. Ad ogni nodo, il livello di rete, passa il datagramma al livello sottostante, che lo trasporta al nodo successi. In questo nodo, il livello di collegamento passa il datagramma al livello di rete superiore.
I servizi forniti da questo livello dipendono dallo specifico protocollo utilizzato. Alcuni protocolli garantiscono la consegna affidabile (che è diverso da quello omonimo di TCP che fornisce consegna affidabile da un sistema periferico all'altro). Esempi del livello di collegamento sono: ethernet, Wi-Fi. I pacchetti a questo livello sono chiamati frame.
Mentre il compito del livello di collegamento è trasferire interi frame da un elemento della rete a quello adiacente, il ruolo del livello fisico è trasferire i singoli bit del frame da un nodo a quello successivo. In base alla tipologia del mezzo trasmissivo la modalità con cui viaggiano i bit varia. Mezzi trasmissivi (fibra ottica, doppino in rame,…)
La figura sopra illustra il concetto di incapsulamento.
Un messaggio a livello di applicazione
A ciascun livello un pacchetto ha due tipi di campi:
Un pacchetto che parte da un host sorgente e raggiunge un host di destinazione attraversa diversi router e collegamenti. In ogni tappa il pacchetto può subire vari tipi di ritardo: ritardo di elaborazione, ritardo di accodamento, ritardo di propagazione e ritardo di trasmissione. La somma di questi ritardi restituiscono il ritardo totale di nodo (nodal delay).
È il tempo che occorre al router per esaminare l'intestazione del pacchetto e capire in quale collegamento dirigerlo.
È il tempo che occorre al pacchetto per essere spedito sul collegamento adatto alla sua intestazione. Tale ritardo dipende dal numero di pacchetti in coda. Se il traffico è intenso e ci sono molti pacchetti, il ritardo di accodamento sarà dell'ordine dei microsecondi o dei millisecondi. Se non c'è alcun pacchetto in coda, il ritardo di accodamento sarà nullo.
È il tempo che occorre per trasmettere tutti i bit di un pacchetto da un nodo all'altro (
Una volta che un bit del pacchetto è immesso nel collegamento questo deve raggiungere la destinazione. La velocità con cui si sposta varia a seconda del mezzo fisico, che varia dai
Il ritardo di trasmissione è il tempo che ci vuole per trasmettere in uscita il pacchetto e dipende dalla grandezza del pacchetto e dalla velocità del collegamento. Il ritardo di propagazione è il tempo che impiega il bit, immesso nel collegamento, per raggiungere la destinazione e dipende dalla distanza fra i due router.
(Possiamo dire in modo molto grezzo che il ritardo di trasmissione è il tempo che impiega il router per processare i pacchetti. Mentre il tempo di propagazione è il tempo per propagarli nel collegamento verso la destinazione).
Fino a qui abbiamo visto solo i ritardi su un singolo router. Supponiamo che ci siano
Il ritardo di elaborazione di ciascun router e presso il mittente è di
La velocità di trasmissione in uscita ad ogni router e dall'host sorgente è di
La propagazione su ciascun collegamento sia di
Il ritardo end-to-end
Con il programma traceroute in Linux (tracert in Windows) si può tracciare il percorso dei pacchetti verso un certo host di destinazione, esso calcola anche i ritardi riportarti dai pacchetti durante il viaggio verso la destinazione.
Oltre al ritardo e alla perdita di pacchetti, un'altra misura critica delle prestazioni è il throughput (letteralmente portata). Per darne una definizione supponiamo che debba essere inviato un file voluminoso da un nodo A ad un nodo B. Il throughput istantaneo è la velocità a cui il nodo B sta ricevendo il file. Se il file è di
Consideriamo un esempio per approfondire:
Sia
Il tempo necessario a traferire un grosso file dal server al client quindi richiede:
In caso di più collegamenti, il ragionamento è identico. Il throughput è il
Vediamo un altro caso. Supponiamo che ci siano 10 server che inviano file (10 downloads) e 10 client che li ricevono. Supponiamo i collegamenti passino per un unico nucleo.
Esaminiamo un caso specifico:
Il collegamento comune suddivide equamente la propria velocità di trasmissione tra i 10 downloads. Quindi il collo di bottiglia non è più il minimo tra
Prossimo argomento: Protocolli di rete
Fra tutti i ritardi, quello più significativo ed interessante è il ritardo di accodamento. Spiegheremo solo ad alto livello come il ritardo di accodamento influisce sulla trasmissione dei pacchetti.
Dipende dalla velocità di trasmissione e dall'entità del traffico entrante.
Per comprenderlo facciamo un esempio, prima di tutto supponiamo che:
Il numero di pacchetti che arrivano al secondo (
Dunque i bit che arrivano ogni secondo nella coda sono:
Se invece questo rapporto è minore di 1, distinguiamo dei casi:
Fino ad ora non abbiamo fatto assunzioni riguardo la dimensione della coda (buffer). In un certo senso abbiamo supposto che fosse di dimensione illimitata. In realtà la coda ha una dimensione fissata. Quando un pacchetto arriva in coda e la coda è piena, si verifica la perdita del pacchetto. Il pacchetto risulterà inoltrato dal router sorgente, ma non arriverà a destinazione.