Disclaimer

Questi appunti sono stati fatti dal mio carissimo amico Luca Tecchio, io ho fatto solamente da revisionatore.

1. Introduzione

1.1 Che cos'è internet?

1.1.1 Gli "ingranaggi" di Internet

Internet è una rete di reti, con una struttura gerarchica, che interconnette dispositivi di calcolo, detti host o sistemi periferici, tramite una rete di collegamenti e può essere pubblica o privata (intranet, ovvero una rete aziendale privata). Questi collegamenti possono essere di molti tipi: rame, fibra ottica, onde elettromagnetiche, satellite...
Collegamenti diversi possono trasmettere dati a velocità differenti e tale velocità di trasmissione si misura in bit/s, mentre l'ampiezza di banda sono la quantità di bit al secondo che vengono trasmessi nel mezzo.
I dati vengono suddivisi in sottoparti con l'aggiunta di un'intestazione ed inviati attraverso la rete dai router e dai commutatori di pacchetto (link-layer switch), questi due lavorano a due livelli diversi. Il percorso è l'insieme del sistema di invio, del sistema di ricezione, dei collegamenti e dei commutatori di pacchetto che ogni pacchetto attraversa.
I sistemi periferici accedono a Internet tramite gli ISP (Internet Service Provider), che sono un insieme di commutatori di pacchetto e di collegamenti.
Sistemi periferici, commutatori di pacchetto e altre parti di Internet fanno uso di protocolli, che definiscono il formato e controllano l'ordine di invio e di ricezione di informazioni all'interno della rete, tra due o più entità in comunicazione. Alcuni di essi sono: TCP (transmission control protocol), IP (internet protocol), HTTP, Skype, Ethernet.
Dato che vi era l'esigenza di un accordo sulle funzioni svolte da ogni protocollo, vengono utilizzati gli standard, che vengono sviluppati dall'Internet Engineering Task Force (IETF). Questo accade soprattutto se ci sono tanti produttori di dispositivi e non si vuole che tutti utilizzino protocolli diversi, mettendo alcuni paletti e fornendo delle linee guida per la creazione di essi. I documenti sugli standard di Internet vengono detti request for comment (RFC).
Pasted image 20220917093836.png|300

1.1.2 Descrizione dei servizi

Internet può essere definito anche come un'infrastruttura che fornisce servizi alle applicazioni. Tali applicazioni comprendono e-mail, navigazione Web, VoIP, social network, giochi, database, e-commerce, condivisione di file, streaming, virtual/augmented reality, messaggistica istantanea, meteo, traffico su strada, cloud music, video streaming... Queste applicazioni sono dette applicazioni distribuite, perché coinvolgono più host che si scambiano reciprocamente dati. Le applicazioni, che sono sorgenti e destinazioni dei dati, vengono eseguite sugli host e non sui router, nonostante essi permettano lo scambio di dati tra host.
I servizi forniti alle applicazioni possono essere QoS (Quality of Service), che garantiscono un servizio affidabile dalla sorgente alla destinazione, oppure best effort che non è affidabile.

1.1.3 Che cos'è un protocollo?

Pasted image 20220914234146.png|600
Il concetto di protocollo di rete è molto simile al concetto di protocollo umano, il quale impone come prima cosa un saluto per iniziare la comunicazione con qualcun altro. La tipica risposta è un messaggio "Ciao" di ritorno che implicitamente una persona interpreta come risposta cordiale e quindi procede con il chiedere l'ora. Nel caso di una risposta diversa (come "Non mi scocciare"), potrebbe indicare una scarsa propensione a comunicare o l'incapacità di farlo. Quando una persona non riceve risposta alla propria domanda, in linea di massima, non ripresenta la richiesta perché nel "protocollo umano" sono presenti specifici messaggi che inviamo e specifiche azioni che intraprendiamo in risposta ai messaggi ricevuti o ad altri eventi. Difatti se le persone adottano due protocolli diversi (una educata e l'altra no), non è possibile portare a termine una transazione utile. Lo stesso concetto vale per le reti, in cui lo scambio si appoggia a due (o più) entità, che in questo caso sono componenti hardware o software di qualche dispositivo, che comunicano utilizzando lo stesso protocollo al fine di assolvere un certo compito. Si impiegano protocolli differenti per realizzare compiti diversi.
Un protocollo definisce il formato e l 'ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di un messaggio o di un altro evento.

1.2 Ai confini della rete

I dispositivi connessi a internet sono solitamente detti sistemi periferici o end system, in quanto si trovano ai confini di internet (es desktop, server e dispositivi mobili). Questi sistemi periferici vengono detti host perché eseguono programmi applicativi come browser e web server, oppure software di lettura e gestione della posta elettronica. Tali host vengono a loro volta suddivisi in client, ovvero coloro che richiedono dei servizi, come PC e smartphone, e server, che sono coloro che si occupano di erogare i servizi (es pagine web, flussi video e ritrasmissione della posta elettronica) grazie ad un programma che li esegue. La maggior parte di essi è situata in data center. Tale architettura viene definita CLIENT/SERVER, in contrapposizione con la PEER TO PEER che permette ad ogni nodo di fare il client o il server verso gli altri host della rete (es Skype e Bit Torrent).

Pasted image 20220917223022.png|300

1.2.1 Le reti di accesso

Pasted image 20220917224503.png|300

Ogni host è connesso fisicamente, tramite le reti di accesso, al suo edge router, che è il primo router sul percorso dal sistema d’origine a un qualsiasi altro sistema di destinazione collocato al di fuori della stessa rete di accesso. Tali reti possono essere reti di accesso residenziale, reti di accesso aziendale (università, istruzioni, aziende) e reti di accesso mobile.

Accesso residenziale

punto-punto

I due accessi residenziali più diffusi sono il digital subscriber line (DSL) e quello via cavo. L'accesso DSL viene solitamente fornito da una società telefonica, che in questo caso assume anche il ruolo di ISP.

Pasted image 20220917230815.png|400

Il modem DSL dell'utente usa la linea telefonica esistente (doppino telefonico intrecciato in rame) per scambiare dati con un digital subscriber line access multiplex (DSLAM) che si trova nella centrale locale (CO central office) della compagnia telefonica. Il modem DSL residenziale converte i dati digitali in analogici per poterli trasmettere sul cavo telefonico ed il DSLAM li riconverte in formato digitale. Le linee telefoniche residenziali trasportano contemporaneamente dati e segnali codificandoli in tre bande di frequenze non sovrapposte:

Le velocità raggiunte effettivamente in downstream e upstream possono però essere inferiori, perché il provider DSL può limitare appositamente il tasso di trasmissione quando offre servizi a più livelli (velocità di trasmissione diverse a costi differenti) o perché il tasso di trasmissione massimo è limitato dalla distanza che intercorre tra l’abitazione e la centrale locale, dalla qualità del materiale con qui è costruito il doppino telefonico e dal grado di interferenza elettrica. La DSL è difatti stata progettata per distanza piccole (circa 10km).

Accesso via cavo

Mentre la DSL usa le infrastrutture già esistenti della compagnia telefonica locale, l’accesso a Internet via cavo utilizza le infrastrutture esistenti della televisione via cavo. La fibra ottica connette la terminazione del cavo a giunzioni a livello di quartiere, dalle quali viene usato il tradizionale cavo coassiale per la distribuzione televisiva per raggiungere le singole case e appartamenti.

Pasted image 20220918000329.png|400

L'accesso a internet via cavo richiede dei modem speciali chiamati cable modem che si connettono ai PC attraverso la porta Ethernet. Il CMTS (cable modem terminator system) funziona similmente al DSLAM nelle reti DSL, ovvero traduce il segnale analogico inviato dai cable modem in formato digitale.

FTTH

La FTTH (fiber to the home) è una rete di distribuzione che collega una centrale locale ad un'abitazione ma, essendo condivisa da molte abitazioni, viene suddivisa in più fibre ed ognuna è dedicata ad un utente. Ogni ISP fornisce velocità diverse, solitamente si aggirano intorno ai 1000 Mbps in downstream e 300 Mbps in upstream.

Pasted image 20220918001325.png|400

Satellitare

Solitamente dove le reti DSL, via cavo e FTTH non sono disponibili, è utilizzabile un collegamento satellitare.

Modem dial-up

L'accesso in dial-up è basato sul modello della DSL, ovvero che un modem in casa dell’utente si connette a un modem dell’ISP su una linea telefonica, ma non è possibile navigare e telefonare nello stesso momento. L'accesso ha una velocità molto lenta fino a 56 kbit/s.

Pasted image 20220917232120.png|400

Accesso aziendale

reti locali (LAN)

Per collegare i sistemi terminali di aziende e università all'edge router (computer di bordo) si utilizza una rete locale detta LAN (local area network). La tecnologia Ethernet è la più diffusa ed utilizza un doppino di rame intrecciato per connettere gli host allo switch Ethernet, che a sua volta verrà connesso a internet, con velocità variabili di 10 Mbit/s, 100 Mbit/s, 1Gbit/s fino a 10Gbit/s.

Pasted image 20220918104910.png|300

Accesso wireless

Dispositivi come portatili o smartphone accedono a internet via wireless. In una LAN wireless gli utenti si scambiano pacchetti entro poche decine di metri da e verso una stazione base, detta anche access point, che è connesso ad una rete aziendale, che probabilmente include una rete Ethernet cablata, a sua volta connessa a Internet. Le LAN wireless sono basate sulla tecnologia IEEE 802.11, a sua volta suddivide vari standard come a/b/g/n/ac (Wi-Fi 5) che si differenziano per la velocità a cui operano. Rispettivamente abbiamo a, g: 54 Mbit/s, b: 11 Mbit/s e dalla n in poi sono maggiori di 300 Mbit/s.

Pasted image 20220918105223.png|300

La stessa infrastruttura wireless viene utilizzata dai dispositivi mobili durante gli spostamenti ed essi si scambiano pacchetti tramite una stazione base gestita da un provider di telecomunicazioni. La differenza dal WiFi è che l'utente si può trovare anche a poche decine di chilometri dalla stazione base e non solo poche decine di metri.
Ad oggi esistono reti wireless 3G, 4G E 5G (e le rispettive evoluzioni come 4G LTE) che consentono l'accesso wireless a internet, con commutazione a pacchetto, a velocità sempre più elevate (1,8 Gbit/s per il 5G).

Tipicamente la rete di un'abitazione è composta da:

Pasted image 20220918111252.png

1.2.2 Mezzi trasmissivi

Il Bit è un'unità di informazione base (0/1) che viaggia da un sistema terminale a un altro, passando per una serie di coppie trasmittente-ricevente e attraversando un mezzo fisico. I mezzi fisici ricadono in due categorie: i mezzi vincolati e quelli non vincolati. Nei mezzi vincolati, o guidati, i segnali si propagano in un mezzo fisico: fibra ottica, filo di rame o cavo coassiale. Nei mezzi non vincolati, o a onda libera, i segnali si propagano nell'atmosfera o nello spazio esterno, come avviene nelle LAN wireless o nei canali digitali satellitari.
Dato che il costo dell'installazione di un collegamento fisico è molto superiore a quello del materiale, spesso si dispongono doppini intrecciati, fibra ottica e cavi coassiali in ogni stanza anche se ne viene utilizzato uno solo. Questo permette di risparmiare il costo di una successiva installazione nel caso ci fosse il bisogno di utilizzare un'altra tipologia di mezzo.

Doppino di rame intrecciato (TP)

Il tipico cavo usato per lo standard Ethernet, costituito da due fili di rame distinti e disposti a spirale. I fili vengono intrecciati assieme per ridurre l'interferenza elettrica generata da altre coppie presenti nelle vicinanze. I cavi possono presentare vari tipi di schermatura:

Pasted image 20220918155330.png|600

Denominazione sintetica dei cavi

X / Y TP

Alcuni esempi: U/UTP, F/UTP, S/FTP

Pasted image 20220918160917.png|600

Cavi usati nello standard Ethernet

Pasted image 20220918161538.png

Connessione di cavi e connettori

Pasted image 20220918162710.png|800

Nel cavo patch entrambe le estremità utilizzano lo stesso standard e quindi hanno la disposizione dei fili con gli stessi colori. Questa tipologia è utilizzata per collegare dispositivi di tipo diverso, come computer e switch.

Il cavo incrociato invece utilizza due standard diversi e quindi anche i fili saranno disposti in modo diverso alle estremità. Questa tipologia è utilizzata per collegare dispositivi dello stesso tipo, come due router.

Cavo coassiale

Cavo costituito da due conduttori concentrici e non paralleli, bidirezionale.
Il cavo a banda base appartiene alle vecchie reti e non è in grado di trasmettere più di un segnale alla volta, inoltre si possono trasmettere solo dati e voce.
Il cavo a banda larga invece permette la trasmissione simultanea di molti segnali, perché ognuno di essi viaggia a frequenze diverse. Utilizzato anche in combinazione con la fibra ottica (HFC Hybrid fiber-coaxial) sia per il servizio televisivo che per l'accesso ad internet.

Fibra ottica

La fibra ottica è un mezzo sottile e flessibile che conduce impulsi di luce, ciascuno dei quali rappresenta un bit. Una singola fibra ottica può supportare alte velocità trasmissive (da 10 a 100 Gbit/s). È immune all’interferenza elettromagnetica, ha un basso tasso di errore ed ha un lungo raggio di trasmissione, tanto che sono molto utilizzate nelle dorsali.

Pasted image 20220918172036.png|400

Canali radio

I canali radio trasportano segnali all’interno dello spettro elettromagnetico e non richiedono l'installazione fisica di cavi. Può attraversare le pareti e percorrere lunghe distanze, ma l'ambiente di propagazione determina la perdita di segnale lungo il percorso causata dalla distanza (path loss), dall’attraversamento di ostacoli (shadow fading), dalla riflessione sulle superfici (multipath fading) o dall’interferenza con altri canali radio o segnali elettromagnetici.
I canali radio terrestri si suddividono in tre gruppi:

I canali radio satellitari invece colegano due o più trasmettitori terrestri a microonde, noti come stazioni a terra (ground station). Il satellite riceve le trasmissioni su una banda di frequenza, rigenera il segnale utilizzando un ripetitore e trasmette segnali su un’altra frequenza.
Nelle comunicazioni si usano due tipi di satellite:

1.3 Il nucleo della rete

Il nucleo della rete è una maglia di router che interconnettono gli host. I dati vengono trasferiti attraverso due metodi:

Pasted image 20220918181703.png|400

1.3.1 Commutazione di circuito

Nelle reti a commutazione di circuito le risorse richieste lungo un percorso, ovvero buffer e velocità di trasmissione sui collegamenti, sono riservate per l'intera durata della sessione di comunicazione e quindi non c'è condivisione. Un esempio tipico sono le reti telefoniche, perché prima di iniziare l'invio, la rete deve stabilire una connessione tra mittente e destinatario (circuito). Una volta stabilito il circuito, la rete riserva anche una certa larghezza di banda (pari a una frazione della capacità trasmissiva del canale) per trasferire i dati. Questo permette il trasferimento di dati ad una velocità costante garantita.

Supponiamo di avere quattro commutatori interconnessi tramite quattro collegamenti. Ognuno di essi dispone di quattro circuiti, in modo che ogni collegamento possa supportare quattro connessioni simultanee. Gli host sono tutti direttamente connessi a uno dei commutatori e quando due di essi desiderano comunicare, la rete stabilisce una connessione end-to-end (o connessione punto a punto) dedicata a loro. Poiché ogni collegamento ospita quattro circuiti, se ogni collegamento tra due switch ha una velocità di trasmissione pari a 1 Mbit/s, la banda viene suddivisa in porzioni e ogni circuito tra due switch è di 250 Mbit/s.

Pasted image 20220918191401.png|400

Le risorse (canali) rimangono inattive se non utilizzate, questo perché non c'è condivisione.

Time Division Multiplexing (TDM)

Pasted image 20220918193512.png|400

Pasted image 20221006182308.png|400

Con TDM si suddivide il tempo in slot di dimensioni fisse, ad ogni utente è assegnato uno slot e, a seconda del numero di utenti, avrò più o meno suddivisioni. Questo però comporta ad uno spreco di risorse di rete (bande di frequenza o slot nei collegamenti), perché non possono essere usate da altre connessioni. Un esempio è una chiamata telefonica quando una persona smette di parlare, in quel momento si stanno sprecando risorse.

Se per esempio volessimo inviare un file di 640.000 bit dall'host A all'host B su una rete a commutazione di circuito, sapendo che:

Ogni secondo posso trasmettere (1535103)24=64000 bit.
Quindi il tempo impiegato è 64010364103+0.5=10.5 secondi.

La velocità di trasmissione di un circuito è uguale alla frequenze di frame, moltiplicata per il numero di bit in uno slot.

Frequency Division Multiplexing (FDM)

Pasted image 20220918193347.png|400

Con FDM si suddivide la velocità di trasmissione, quindi ogni utende avrà una diversa banda di frequenza per ciascuna connessione, detta ampiezza di banda (bandwidth). Un esempio sono le stazioni radio FM.

1.3.2 Commutazione di pacchetto

Nelle reti a commutazione di pacchetto la sorgente suddivide i messaggi lunghi in parti più piccole, note come pacchetti. Tra la sorgente e la destinazione, questi pacchetti attraversano collegamenti e commutatori di pacchetto (router e switch), con una velocità pari alla velocità totale di trasmissione del collegamento stesso. I pacchetti degli utenti A e B condividono le risorse di rete, però ognuno di essi può seguire percorsi diversi prima di arrivare alla destinazione. Ogni pacchetto utilizza completamente le risorse fisiche ed esse vengono ripartite in modalità best effort, ovvero che in base alla disponibilità, il traffico verrà consegnato o scartato, a seconda delle necessità (on demand = accesso alle risorse solo quando necessario). Se si riempie il buffer, tutti i pacchetti che dovrebbero essere spediti vengono scartati e i due host dovranno comunicarsi quali pacchetti mancano.
Siccome non c'è condivisione delle risorse e c'è contesa, l'ordine di ricevimento dei pacchetti è casuale, a seconda delle politiche.

Multiplexing statistico

Si ha il multiplexing statistico quando il flusso di informazioni è segmentato in pacchetti di lunghezza fissa e ad ognuno di loro è assegnato un header e un trailer. Questo permette il loro riconoscimento all'interno del flusso di dati, perché ogni pacchetto può essere inviato in ordine diverso e non seguire lo stesso percorso degli altri, ma anche per identificare il destinatario della trasmissione. Questa tipologia di servizio è solitamente "su richiesta", ovvero che non bisogna preallocare le risorse prima di trasmettere, a differenza di quello che avviene con TDM nella commutazione di circuito.

Pasted image 20220921094950.png|400

La maggior parte dei commutatori di pacchetto utilizza la trasmissione store-and-forward, ovvero che chi inoltra un pacchetto deve riceverlo per intero prima di cominciare a trasmettere sul collegamento in uscita.
Dato che occorrono L/R secondi per trasmettere (push out) un pacchetto di L bit su un collegamento in uscita da R bit/s, se viene inviato un pacchetto di L bit su un canale con velocità di R bps, il tempo di trasmissione risulta pari a L/R secondi. Ad esempio:

Pasted image 20220921095017.png|400

Il tempo di trasmissione totale è 3L/R (supponendo che il ritardo di propagazione sia zero), questo il perchè il router ha bisogno di tempo per analizzare ogni pacchetto e capire dove instradarlo, 3L perchè abbiamo 3 collegamenti.

Congestione

Dato che ogni commutatore di pacchetto connette più collegamenti, per ciascuno mantiene un buffer di output (detto anche coda di output) per conservare i pacchetti che sta per inviare su quel collegamento. Un pacchetto che deve essere inviato attraverso un collegamento occupato dalla trasmissione di un altro, deve attendere nella coda di output. Questo porta a dei ritardi di accodamento nei buffer di output, perché la dimensione di questi buffer è finita. In questo caso si verificherà una perdita di pacchetto, ovvero che verrà eliminato o il pacchetto in arrivo o uno di quelli che si trova già in coda.

Commutazione di pacchetto e commutazione di circuito

Supponiamo che gli utenti condividano un collegamento da 1 Mbps e che ogni utente generi dati ad una velocità costante di 100 kbps, ma ogni utente è attivo solo per il 10% del tempo. La commutazione di circuito può supportare simultaneamente solo 10 (= 1 Mbps/100 kbps) utenti, mentre con la commutazione di pacchetto la probabilità che un determinato utente sia attivo è pari al 10%. Se sono presenti 35 utenti, la probabilità di avere 11 o più utenti attivi in contemporanea è pari alla distribuzione binomiale: k+1N(nk)(p)k(1p)Nk=1135(35k)(0.1)k(0.9)35k=0,0004

Quindi la probabilità che si crei una congestione con la commutazione di pacchetto è molto bassa, perciò molti più utenti possono trasmettere contemporaneamente. Inoltre è più semplice, perché non necessita di uno scambio di messaggi per riservare risorse (dato che sono condivise), se si verificano congestioni, ritardo e perdita di pacchetti, sono presenti dei protocolli per il trasferimento affidabile dei dati e per prevenire o controllare la congestione.

1.3.3 Una rete di reti

Una possibile struttura di internet è quella a maglia, ma non è vantaggiosa perché si avrebbe un unico ISP globale ed ogni ISP di accesso dovrebbe avere un collegamento diretto con quello globale, rendendo i collegamenti altamente costosi. La struttura utilizzata è invece quella gerarchica.
In tutto il mondo esistono circa una dozzina di ISP di primo livello (come Verizon, Sprint, AT&T, Orange, Deutsche Telekom, Telecom Italia Sparkle) che hanno una copertura nazionale o internazionale, e che comunicano tra di loro come "pari"(peer).

Pasted image 20220921163212.png|400

Agli ISP di primo livello sono connessi gli ISP di secondo livello che hanno una copertura nazionale o distrettuale, ma si possono connettere solo ad alcuni ISP di primo livello. Hanno però la possibilità di interconnettersi con altri ISP di livello 2.

Pasted image 20220921163808.png|400

Vi sono poi gli ISP di terzo livello (detti anche ISP di accesso) che hanno una copertura locale e che si connettono con gli ISP di secondo livello. Perciò l'ISP di accesso paga l'ISP regionale, che a sua volta paga il suo ISP di primo livello. Le cose in realtà sono ulteriormente complicate, perché un ISP di accesso può anche connettersi direttamente a un ISP di primo livello, oppure un ISP regionale abbastanza grande, che magari copre la nazione, può interconnettere altri ISP regionali più piccoli. Tra i vari ISP vi è anche una competizione, in base al rapporto prezzo e servizi che offrono.

Pasted image 20220921170657.png|400

Per costruire una rete che sia più simile all’Internet odierna dobbiamo aggiungere i Pop, il multi-homing, il peering e gli IXP.

Per descrivere l'internet odierna bisogna aggiungere le reti che si occupano di distribuire contenuti (content provider networks). Google è uno degli esempi di tali reti, che si è creato la propria rete privata e quando possibile si connette direttamente con gli ISP di livello inferiore.

Pasted image 20220921174729.png|400

Quando c'è necessità è possibile creare una connessione diretta anche tra ISP di secondo livello, senza che si rivolgano obbligatoriamente agli ISP di primo livello.

Pasted image 20220921175737.png|400

1.4 Ritardi, perdite e throughput nelle reti a commutazione di pacchetto

Dato che ogni pacchetto passa attraverso una serie di router subisce vari tipi di ritardo, i principali sono il ritardo di elaborazione, il ritardo di accodamento, il ritardo di trasmissione e il ritardo di propagazione, che complessivamente formano il ritardo totale di nodo.

Un pacchetto inviato attraversa il router A verso il router B, ma il collegamento in uscita dal router A verso il router B è preceduto da una coda, Quando un pacchetto arriva al router A, il router ne esamina l'intestazione per determinare il collegamento in uscita che porta al router B. Un pacchetto può essere trasmesso solo se non ci sono altri pacchetti in fase di trasmissione e se non esistono pacchetti che lo precedono nella coda. Se il collegamento è momentaneamente occupato o se altri pacchetti sono accodati, l’ultimo pacchetto arrivato si accoderà nei buffer (memoria dei router). Questo accade quando il tasso di arrivo dei pacchetti sul collegamento eccede la capacità di evaderli del router e dei collegamenti di uscita.

Pasted image 20220921190211.png|400

1. Ritardo di elaborazione

Il ritardo di elaborazione è il tempo richiesto per esaminare l’intestazione del pacchetto e per determinare dove dirigerlo, ovvero la porta o il canale di uscita, includendo anche il tempo richiesto per controllare i bit che sono stati trasmessi in modo errato. Dopo l'elaborazione, il router dirige il pacchetto verso la coda che precede il collegamento al router B.

2. Ritardo di accodamento

Una volta in coda, il pacchetto subisce un ritardo di accodamento mentre attende di essere trasmesso sul collegamento. Questo ritardo sarà lungo quanti sono i pacchetti che lo precedono e che sono in attesa di essere trasmessi sullo stesso collegamento, creando una congestione.

Pasted image 20220922171914.png|400

3. Ritardo di trasmissione (L/R)

Assumendo che i pacchetti vengano serviti in base all'ordine di arrivo, un pacchetto può essere trasmesso solo dopo la trasmissione di tutti quelli che lo hanno preceduto. Sia L la lunghezza del pacchetto in bit e R bit/s la frequenza di trasmissione del collegamento dal router A al router B, il ritardo di trasmissione è L/R, ovvero il tempo richiesto per trasmettere tutti i bit del pacchetto sul collegamento.

4. Ritardo di propagazione (d/s)

Una volta immesso sul collegamento, il tempo che impiega un bit per propagarsi fino al router B è detto ritardo di propagazione. Questo ritardo è dato da d/s, dove d è la distanza tra i due router ed s è la velocità di propagazione del bit nel collegamento che è di circa di 2108 m/s e dipende dal mezzo fisico.

Pasted image 20220922173758.png|400

Confronto tra ritardo di trasmissione e di propagazione

Il ritardo di trasmissione è la quantità di tempo impiegata dal router per trasmettere in uscita il pacchetto, che dipende dalla lunghezza del pacchetto e dalla velocità di trasmissione del collegamento. Il ritardo di propagazione invece è il tempo richiesto per la propagazione di un bit da un router a quello successivo e dipende dalla distanza tra i due router, ma non dalla lunghezza del pacchetto e neanche dalla velocità di trasmissione del collegamento.

Se prendiamo come esempio un'autostrada, con tratti di 100 km tra un casello e l'altro, si presuppone che le auto viaggiano (si propagano) alla velocità di 100 km/h ed il casello serve (trasmette) un'auto ogni 12 secondi. Se consideriamo le auto come i bit e l'insieme come un pacchetto, il tempo che occorre perché le 10 auto si trovino di fronte al casello è:

Pasted image 20220922193224.png|400

Se ora le auto si propagano alla velocità di 1000 km/h, al casello occorre un 1 minuto per servire ciascuna auto. Dopo 7 minuti, la prima auto sarà al secondo casello e tre auto saranno ancora in coda davanti al primo casello. Stessa cosa vale per il bit di un pacchetto che può arrivare al secondo router prima che il pacchetto sia stato interamente trasmesso dal primo router.

https://www.ccs-labs.org/teaching/rn/animations/propagation/

Ritardo di un nodo

dnode=dproc+dqueue+dtrans+dprop

Un altro ritardo del router è dovuto al ritardo di accesso al mezzo.

Il ritardo di accodamento è quello più complesso perché può variare da pacchetto a pacchetto. Ad esempio se arrivano in una coda vuota 10 pacchetti, il primo non subirà ritardo di accodamento, mentre il ritardo dell'ultimo sarà piuttosto grande. Perciò si fa solitamente uso di misure statistiche, quali il ritardo di accodamento medio, la varianza del ritardo di accodamento e la probabilità che il ritardo di accodamento superi un valore fissato. Lo si considera rilevante in base alla velocità di arrivo del traffico alla coda, dalla velocità di trasmissione del collegamento e dalla natura del traffico entrante, ossia se il traffico arriva periodicamente o a raffiche.

Pasted image 20220924223422.png|400

Denotiamo con A la velocità media di arrivo dei pacchetti nella coda, espressa in pacchetti al secondo, con R la velocità di trasmissione, ossia la velocità (bit/s) alla quale i bit vengono trasmessi in uscita dalla coda e supponiamo che la lunghezza di ogni pacchetto sia di L bit. La velocità media di arrivo dei bit in coda è di LA bit/s, mentre il rapporto LAR è detto intensità di traffico, che in base al suo valore (quasi 0, tendente ad 1 o maggiore di 1), ha un impatto decisivo nell'entità del ritardo. Difatti se LAR<1, in base alla cadenza di arrivo di ogni pacchetto si avrà un ritardo più o meno significativo, perché la velocità di accodamento tende a superare la capacità trasmissiva. Come se in una strada sempre trafficata capitasse un evento che causa un lieve incremento del traffico rispetto alla norma, il ritardo che si subirà può diventare enorme.

Supponiamo che due host, A e B, siano separati da 20.000 chilometri, connessi da un collegamento diretto R = 2 Mbit/s e che la velocità di propagazione lungo il collegamento sia di 2,5108 m/s. Il prodotto tra banda e ritardo (bandwidth-delay product) è: Rmc=2106bit/s2107m2,5108m/s=160.000 bit, ovvero il massimo numero di bit che ci possono essere sul link.
Si preferisce un prodotto banda-ritardo basso, così si avrà un basso ritardo di propagazione.

1.4.3 Ritardo end-to-end

Consideriamo ora il ritardo dalla sorgente alla destinazione.

Traceroute

Traceroute è un programma diagnostico che fornisce una misura del ritardo dalla sorgente al router lungo i percorsi internet punto-punto verso la destinazione. Quando un utente specifica il nome di un host di destinazione, il programma invia 3 pacchetti speciali alla destinazione e, durante il loro percorso verso la destinazione, essi passano attraverso una serie di router. Quando un router N riceve uno di questi pacchetti marcato con N, fa ritornare all'origine un breve messaggio contenente il nome e l'indirizzo del router, senza instradarlo verso la destinazione. L'host registra il tempo intercorso tra l’invio di un pacchetto e la ricezione del corrispondente messaggio di ritorno, memorizzandone anche il nome e l’indirizzo del router (o del destinatario) che restituisce il messaggio. In questo modo l'origine può ricostruire il percorso dei pacchetti, potendo anche determinare i ritardi di andata e ritorno per tutte le tratte.

Pasted image 20220924234932.png|400

Perdita dei pacchetti

Dato che le code hanno capacità finita, i ritardi dei pacchetti non tendono all'infinito (intensità del traffico a 1) perché un pacchetto può trovare la coda (detta anche buffer) piena. Quando ciò accade, il router lo scarta e quindi va perso. Il pacchetto però può essere ritrasmesso dal nodo precedente, dal sistema terminale che lo ha generato o non essere ritrasmesso affatto.

Pasted image 20220925004723.png|400

1.4.4 Throughput nelle reti di calcolatori

Il throughput è la frequenza (dati/unità di tempo) alla quale una certa unità dati viene trasferita tra mittente e ricevente. Si suddivide in:

L'unita di misura è di {Bit, file, pacchetti...} per

Pasted image 20220925141850.png|400

Consideriamo il throughput per un trasferimento di file dal server al client, in particolare RS è la velocità del collegamento tra il server e il router e RC quella del collegamento tra il router e il client. Qual è il throughput tra server e client?

Pasted image 20220925141954.png|400

Nel caso in cui RS<RC i bit immessi dal server attraverseranno il router e arriveranno al client ad una velocità ed un throughput di RS bit/s.
Se invece RS>RC il router non sarà in grado di inoltrare i bit alla stessa velocità alla quale li riceve, per cui i bit lasceranno il router a una velocità e ad un throughput di RC bit/s. Se ciò dovesse continuare, mantenendo queste due velocità, la quantità di bit accumulata nel router, in attesa di trasmissione al client, cresce indefinitamente. Perciò la velocità di trasmissione di questo collegamento è il minimo tra RS e RC, ovvero la velocità del collegamento che fa da collo di bottiglia. Per cui il tempo per trasferire un file di F bit dal server al client è F/min(RS,RC).

Nel caso di internet lo scenario è simile al seguente, dove il throughput end to end per ciascuna connessione è il min(RC,RS,R/10), in pratica o RC o RS sono spesso il collo di bottiglia. Infatti se avessimo 10 collegamenti, essi condividono equamente un link di capacità di R bit/s.

Pasted image 20220925144956.png|400

1.5 Livello dei protocolli e loro modelli di servizio

Dato che internet appare come un sistema molto complicato, perché presenta molti componenti come host, router, varie tipologia di mezzi di trasmissione, applicazioni, protocolli, hardware, software, vi è l'esigenza di organizzare l'architettura delle reti.

1.5.1 Architettura a livelli

Per descrivere l'architettura delle reti possiamo utilizzare un'analogia con la nostra vita. Ad esempio, le funzionalità di una linea aerea possono essere viste come una divisione in livelli, dove ogni livello fornisce il proprio servizio effettuando determinate azioni all'interno, ma che rimangono le stesse (per esempio, a livello di gate, l’entrata e l’uscita dei passeggeri dall’aereo). Ogni livello, oltre a svolgere determinate azioni all'interno, utilizza anche i servizi del livello immediatamente inferiore (i passeggeri, imbarcati nell'aereo dal livello gate, vengono trasferiti dalla pista di decollo alla pista d’atterraggio).

Pasted image 20220925153409.png|400

Un’architettura a livelli consente di discutere una parte specifica e ben definita di un sistema articolato e complesso, rendendo più facile cambiare l’implementazione del servizio, fornito da un determinato livello, grazie all'introduzione della modularità. Questo non avrà conseguenze per gli altri livelli e permetterà di mantenere invariata l'architettura, fino a quando il livello fornisce lo stesso servizio allo strato superiore e utilizza gli stessi servizi dello strato inferiore.

Stratificazione dei protocolli

La medesima struttura avviene per i protocolli di rete che sono suddivisi in livelli (layer). Ognuno di essi svolge un servizio a un livello superiore, utilizzando i servizi del livello inferiore e servendosi delle proprie funzionalità: si tratta del modello di servizio.

Pasted image 20220925163540.png|400

Il layer N+1 sa solo che i layer inferiori offrono il servizio "N", i layer da N in giù sono una "black box" per le entità al layer N+1, ovvero che vengono considerati come fossero N perchè N+1 non è in grado di vederli.

Un servizio del layer N è offerto all'entita di layer N+1 attraverso un'interfaccia di programmazione chiamata Service Access Point (SAP).

Pasted image 20220925163833.png|400

Il modello a strati può essere pericoloso perché un livello può duplicare le funzionalità di quello inferiore, ovvero che faccia le stesse cose.

Lo scambio di informazioni tra entità dello stesso layer è regolata da un protocollo che considerati assieme sono detti pila di protocolli.

Pasted image 20220925172812.png|400

Stack di protocolli Internet

La pila di protocolli di internet consiste in cinque livelli:

Pasted image 20220925173848.png|300

Il modello OSI è invece composto da sette livelli, ma lo stack internet è privo del livello presentazione (consente alle applicazioni di interpretare il significato dei dati come cifratura, compressione, convenzioni specifiche della macchina) e del livello sessione (sincronizzazione, controllo, recupero dei dati).

Pasted image 20220925180753.png|300

Layer 7: Applicazione

Il livello applicazione fornisce alle applicazioni i mezzi per scambiarsi i dati ed include molti protocolli quali:

Un protocollo a livello di applicazione è distribuito su più sistemi periferici: un’applicazione in un sistema periferico, tramite il protocollo, scambia pacchetti di informazioni con l’applicazione in un altro sistema periferico. Questi pacchetti di informazione (data unit) di livello 7 si chiamano messaggi.

Layer 6: Presentazione

Layer 5: Sessione

Layer 4: Trasporto

Il livello trasporto trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle applicazioni e risolve i problemi di qualità del servizio del livello 3.
In internet ci sono due protocolli di trasporto: TCP e UDP.

TCP

Fornisce alle applicazioni un servizio orientato alla connessione, garantendo la consegna dei messaggi ed eseguendo un controllo di flusso (ossia la corrispondenza tra le velocità di mittente e destinatario). Inoltre segmenta (per poi ricomporre) i dati lunghi in segmenti più piccoli e fornisce un meccanismo di controllo della congestione, in modo che una sorgente regoli la propria velocità trasmissiva quando la rete è congestionata. Verifica che i pacchetti vengano riordinati nella giusta sequenza in ricezione prima di passarli al livello superiore. Attua il multiplexing e demultiplexing di applicazioni.

UDP

Fornisce alle proprie applicazioni un servizio non orientato alla connessione che è davvero un servizio senza affidabilità, né controllo di flusso e della congestione.

I pacchetti di livello 4 sono chiamati segmenti.

Layer 3: Rete

Il livello di rete trasferisce i pacchetti a livello di rete, detti datagrammi (o pacchetti), da un host a un altro. Fornisce diversi servizi:

Questo livello comprende il protocollo IP, che definisce i campi dei datagrammi e come i sistemi periferici e i router agiscono su tali campi, e deve essere supportato da tutti gli apparati che presentano un livello di rete. Contiene anche svariati protocolli di instradamento che determinano i percorsi che i datagrammi devono seguire tra la sorgente e la destinazione, con un eventuale (non obbligatorio) controllo della congestione.

Layer 2: Collegamento

Il livello di collegamento fornisce dei servizi al livello di rete per poter trasferire un pacchetto da un nodo (host o router) a quello successivo tra entità di livello 2 e si occupa della correzione di errori avvenuti al livello 1. In base al protocollo utilizzato si può garantire la consegna affidabile tra un nodo e l'altro (diverso dal TCP che è da un sistema periferico a un altro) ed un controllo con correzione degli errori di trasmissione.
Contiene due sottolivelli:

Esempi di livello di collegamento includono Ethernet e Wi-Fi. I pacchetti di livello 2 sono chiamati frame.

Layer 1: Fisico

Il livello fisico si occupa di trasferire i singoli bit del frame da un nodo a quello successivo, trasmettendoli sul mezzo di comunicazione che può essere elettrico, elettromagnetico, luminoso o sonoro. Fornisce i mezzi per creare, mantenere e distruggere connessioni fisiche, definisce proprietà come la codifica, livelli di tensione elettrica corrispondenti ai bit, la modulazione…

Data Units (DUs)

In un sistema con M layer, i dati da trasmettere costituiscono una M-SDU (Service Data Unit di Layer M). A ciò il layer aggancia la propria M-PCI (Protocol Control Information) ed il risultato è una M-PDU (Protocol Data Unit), ovvero l'unità di informazione scambiata tra due peer entity (entità di pari livello). Essa è composta da SDU, che sono i dati da trasmettere, e da PCI, che sono i dati di controllo come mittente e destinatario.
Ogni layer considera la PDU del layer superiore come una busta chiusa:

Pasted image 20220925222548.png|400

Pasted image 20220925222612.png|400

1.5.2 Incapsulamento

Pasted image 20220925221130.png|400

Il messaggio a livello di applicazione M inviato dall'host mittente viene passato al livello di trasporto che gli concatena informazioni aggiuntive (header = Ht) ed andranno a costituire il segmento a livello di trasporto che incapsula il messaggio a livello di applicazione. Queste informazioni aggiuntive serviranno al livello di trasporto del ricevente per consegnare il messaggio all'applicazione desiderata o per altre funzioni. Il livello di trasporto passa il segmento al livello di rete che eseguirà gli stessi passaggi e gli concatenerà le proprie informazioni (Hn), quali gli indirizzi dei sistemi periferici di sorgente e di destinazione, andando così a creare un datagramma a livello di rete. Il datagramma viene passato al livello di collegamento, il quale aggiunge le proprie informazioni di intestazione creando un frame a livello di collegamento. Quindi in ciascun livello il pacchetto ha due tipi di campi: il payload che contiene i dati e che tipicamente proviene dal livello superiore e il campo di intestazione.