Reti di calcolatori e internet
Che cos'è internet
Internet è una rete di calcolatori che interconnette miliardi di dispositivi, chiamati host o sistemi periferici. I sistemi periferici sono connessi tra loro tramite una rete di collegamenti (communication link) e commutatori di pacchetti (packet switch). Tali collegamenti possono essere mezzi fisici (cavi coassiali, fili di rame, fibre ottiche) oppure wireless (onde elettromagnetiche). Collegamenti diversi trasmettono dati a velocità differenti, e tale velocità di trasmissione (trasmission rate) viene misurata in bps (bit al secondo).
Quando un host vuole inviare dati ad un altro host, suddivide i dati in sottoparti e aggiunge ad ognuna di esse un'intestazione (header): l'insieme delle informazioni (dati + header) viene chiamato pacchetto. Un commutatore di pacchetto prende un pacchetto che arriva da uno dei collegamenti in ingresso e lo ritrasmette su uno di quelli in uscita. I due principali commutatori sono i router e gli switch. Dal sistema di invio a quello di ricezione, la sequenza di collegamenti e di commutatori attraversata dal singolo pacchetto è nota come percorso (route o path) attraverso la rete.
I sistemi periferici accedono a Internet tramite i cosiddetti Internet Service Provider (ISP); un provider è un insieme di commutatori di pacchetto e di collegamenti. Gli ISP forniscono agli host svariate tipologie di accesso alla rete, tra cui quello in rete locale e quello wireless. Sistemi periferici, commutatori di pacchetto e altre parti di Internet fanno uso di protocolli che controllano l'invio e la ricezione di informazioni all'interno della rete. Due dei principali protocolli Internet sono il transmission control protocol (TCP) e l'Internet protocol (IP). Quest'ultimo specifica il formato dei pacchetti scambiati tra router e sistemi periferici. I principali protocolli Internet sono noti con il nome di TCP/IP.
Descrizione dei servizi
Possiamo descrivere Internet come un'infrastruttura che fornisce servizi alle applicazioni. Queste applicazioni, come ad esempio posta elettronica, navigazione sul Web, messaggistica istantanea, streaming di video e musica ecc., sono dette applicazioni distribuite, in quanto coinvolgono più sistemi periferici che si scambiano reciprocamente dati. I sistemi periferici (dove vengono eseguite le applicazioni Internet) forniscono un'interfaccia socket che specifica come un programma eseguito su un sistema periferico possa chiedere a Internet di recapitare dati a un programma eseguito su un altro sistema periferico. L'interfaccia socket è un insieme di regole che il programma mittente deve seguire in modo che i dati siano recapitati al programma di destinazione.
Che cos'è un protocollo?
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 ricezione di un messaggio.
Esempio di protocollo di rete: richiesta a un web server (digitazione di un indirizzo web in un browser)
- Il calcolatore invia una richiesta di connessione al web server e attende una risposta.
- Il web server riceve la richiesta e restituisce un messaggio di risposta di connessione.
- Il calcolatore invia il nome della pagina che vuole prelevare dal server (messaggio GET).
- Il web server restituisce la pagina web (un file).
La rete fornisce un servizio di comunicazione alle applicazioni per il trasporto delle informazioni tra i vari processi remoti.
Ai confini della rete
I sistemi periferici vengono anche detti host in quanto ospitano ed eseguono programmi applicativi quali browser e web server o software di lettura e gestione della posta elettronica. Gli host vengono ulteriormente suddivisi in:
- Client: sono host che richiedono dei servizi (es. PC, smartphone ecc.).
- Server: sono host che si occupano di erogare dei servizi.
Le reti di accesso
La rete di accesso (access network) è la rete che connette fisicamente un sistema al suo router di bordo, che è il primo router collocato al di fuori della stessa rete di accesso.
- Accesso residenziale:
- DSL: utilizza le infrastrutture esistenti della compagnia telefonica locale.
- Cavo: utilizza le infrastrutture esistenti della televisione via cavo.
- Accesso aziendale: rete locale LAN (Local Area Network)
- Ethernet: utilizzo di un doppino in rame per collegare più host a uno switch.
- WiFi: utilizzo di una rete wireless su una scala ridotta (es. ufficio, casa).
- Accesso wireless su scala geografica: 4G o LTE
- Gli smartphone utilizzano la stessa infrastruttura wireless usata dalla telefonia cellulare per inviare/ricevere pacchetti tramite una stazione base.
Il nucleo della rete
Per nucleo della rete s'intende una maglia di commutatori di pacchetti e collegamenti che interconnettono i sistemi periferici di Internet.
Commutazione di pacchetto
La sorgente dell'informazione suddivide i messaggi da inviare in parti più piccole (pacchetti) che viaggiano tra la sorgente e la destinazione, attraverso collegamenti e commutatori.
Invio di un pacchetto di L bit Tempo di trasmissione: L/R secondi su un canale con velocità di R bps.
Trasmissione store-and-forward
È una tecnica di trasmissione dati; implica che il commutatore debba ricevere l'intero pacchetto prima di poter cominciare a trasmettere sul collegamento in uscita il primo bit. Caso generale: trasmissione di un pacchetto dalla sorgente alla destinazione su un percorso con N collegamenti (quindi ci sono N-1 router) tutti con velocità di trasmissione R.
Ld = Nend-to-end R
Ritardi di accodamento e perdita di pacchetti
Ogni commutatore di pacchetto connette più collegamenti: per ciascuno di questi, il commutatore mantiene un buffer di output (coda), per conservare i pacchetti che deve inviare su quel collegamento. Di conseguenza, oltre ai ritardi store-and-forward, i pacchetti subiscono anche ritardi di accodamento nei buffer di output. Dato che la dimensione del buffer è finita, un pacchetto in arrivo può trovare il buffer completamente riempito da altri pacchetti che attendono la trasmissione. In questo caso si verificherà una perdita di pacchetto: verrà eliminato o il pacchetto in arrivo oppure uno di quelli che già si trovava in coda.
Tabelle di inoltro e protocolli di instradamento
Come fa il router a determinare su quale collegamento il pacchetto deve essere inoltrato?
Tabella di instradamento Il router riceve il pacchetto, Indirizzo destinazione Prossimo nodo legge l'header e scorrendo la tabella trasferisce il pacchetto al prossimo nodo.
In Internet, ogni sistema periferico ha un indirizzo chiamato indirizzo IP; ogni pacchetto che percorre la rete contiene nella propria intestazione l'indirizzo della sua destinazione. Ogni router ha una tabella di inoltro (forwarding table) che mette in relazione gli indirizzi di destinazione con i collegamenti in uscita. Quando un pacchetto giunge a un router, questo esamina l'indirizzo e consulta la propria tabella per determinare il collegamento uscente. Le tabelle di instradamento possono essere configurate manualmente in ciascun router oppure possono essere impostate automaticamente tramite dei protocolli di instradamento di Internet.
Commutazione di circuito
Nelle reti a commutazione di circuito, le risorse richieste lungo un percorso (buffer e velocità di trasmissione sui collegamenti) per consentire la comunicazione tra sistemi periferici sono riservate per l'intera durata della sessione di comunicazione. Le risorse non sono riservate a dei particolari sistemi periferici; i messaggi di una sessione utilizzano le risorse quando necessario, e di conseguenza potrebbero dover attendere (ovvero mettersi in coda) per accedere a un collegamento. Quando la rete stabilisce un circuito, riserva una velocità di trasmissione costante e garantita.
Ritardi
Le reti di calcolatori limitano necessariamente il throughput, cioè la quantità di dati al secondo che può essere trasferita tra due sistemi periferici, introducono ritardi tra questi ultimi e possono perdere pacchetti lungo il percorso. Ricordiamo che un pacchetto parte da un host (la sorgente), passa attraverso una serie di router e conclude il percorso in un altro host (la destinazione). A ogni tappa, il pacchetto subisce vari ritardi.
Ritardo di elaborazione
È il tempo richiesto per esaminare l'intestazione del pacchetto e per determinare dove dirigerlo fa parte del ritardo di elaborazione (processing delay).
Ritardo di accodamento
Una volta in coda, il pacchetto subisce un ritardo di accodamento mentre attende la trasmissione sul collegamento. La lunghezza di questo ritardo per un pacchetto dipende dal numero di pacchetti precedentemente arrivati; se la coda è vuota, questo ritardo è nullo.
Ritardo di trasmissione
È la quantità di tempo impiegata dal router per trasmettere in uscita il pacchetto, ed è funzione della lunghezza del pacchetto e della velocità di trasmissione del collegamento, ma è indipendente dalla distanza tra i due router. Assumendo che i pacchetti siano trasmessi secondo la politica first-in-first-out, il pacchetto può essere trasmesso solo dopo la trasmissione di tutti quelli che lo hanno preceduto nell'arrivo. Sia L la lunghezza in bit del pacchetto e R bps la velocità di trasmissione, il ritardo di trasmissione risulta essere L/R (tempo richiesto per trasmettere tutti i bit sul link).
Ritardo di propagazione
È il tempo richiesto per la propagazione di un bit da un router a quello successivo, ed è funzione della distanza tra i due router, ma non della lunghezza del pacchetto. Il ritardo di propagazione è dato da d/v, dove d è la distanza tra i due nodi, mentre v è la velocità di propagazione nel link, che dipende dal mezzo fisico utilizzato.
D -6t = = 5∙10 s km per v
Perdite di pacchetti
a: velocità di arrivo dei pacchetti (packs/s) R: velocità di trasmissione (bit/s) La/R: intensità di traffico L: lunghezza dei pacchetti (bit) La: velocità di arrivo dei bit (bit/s)
Se La/R > 1, la velocità media di arrivo dei bit nella coda supera la velocità alla quale i bit vengono ritrasmessi in uscita. In questa situazione, la coda tende a crescere e il ritardo di coda aumenterà sempre di più. Le code hanno capacità finite, perciò quando l'intensità di traffico tende a 1, un pacchetto può trovare la coda piena; non essendo possibile memorizzare tale pacchetto, il router lo eliminerà e il pacchetto andrà perduto. La frazione di pacchetti perduti aumenta in proporzione all'intensità di traffico; le prestazioni di un router sono spesso misurate non solo in termini di ritardo, ma anche in funzione della probabilità di perdita dei pacchetti. Bisogna sempre progettare il sistema in modo che l'intensità di traffico non superi mai 1.
Throughput
Oltre al ritardo e alla perdita di pacchetti, un'altra misura critica delle prestazioni di una rete di calcolatori è il throughput end-to-end. Per darne una definizione, consideriamo il trasferimento di un file da A a B; il throughput istantaneo in ogni istante di tempo è la velocità (in bps) alla quale B sta ricevendo il file. Se il file consiste in L bit e il trasferimento richiede T secondi affinché B riceva tutti gli L bit, allora il throughput medio del trasferimento è L/T bps. Pensiamo a una rete con N collegamenti tra server e client aventi rispettivamente velocità di trasmissione R1, R2, ..., RN. Il throughput per un trasferimento di file dal server al client è il min(R1, R2, ..., RN), ovvero la velocità del collegamento più lento lungo il percorso dal server al client. Questo link viene chiamato collo di bottiglia. Queste espressioni del throughput e del tempo di trasferimento sono solo approssimazioni, in quanto non tengono conto dei ritardi di elaborazione e dello store-and-forward.
Livelli dei protocolli
Internet appare come un sistema molto articolato e complesso, ma la sua architettura a livelli permette di analizzare in maniera specifica ogni sua parte. Questa semplificazione ha valore grazie all'introduzione della modularità, che rende molto più facile modificare l'implementazione del servizio fornito da un determinato livello. Fino a quando il livello fornisce lo stesso servizio allo strato superiore e utilizza gli stessi servizi dello strato inferiore, la parte rimanente del sistema rimane invariata al variare dell'implementazione del livello. In altre parole, è facile modificare "come" un livello fornisce un servizio, senza però modificare "cosa" il livello stesso e tutta la rete fa.
Stratificazione dei protocolli
I progettisti organizzano i protocolli di rete e l'hardware/software che li implementano in livelli o strati. Ciascun protocollo appartiene a uno dei livelli. Siamo interessati ai servizi offerti da un livello a quello superiore; si tratta del modello di servizio di un livello; ogni livello fornisce il suo servizio (1) effettuando determinate azioni all'interno del livello stesso e (2) utilizzando i servizi del livello immediatamente inferiore. La stratificazione dei protocolli presenta sia vantaggi, fornisce un modo strutturato per trattare i componenti dei sistemi e la modularità rende facile aggiornare la componentistica, che svantaggi, un livello può duplicare le funzioni di un altro o potrebbe richiedere informazioni presenti solo in un altro livello. Considerati assieme, i protocolli dei vari livelli sono detti pila di protocolli (stack).
Pila di protocolli di internet
- Applicazione: È la sede delle applicazioni di rete e dei relativi protocolli. Per Internet, include i protocolli HTTP (richiesta e trasferimento dei documenti web), SMTP (posta elettronica) e FTP (trasferimento di file tra due sistemi remoti). Un protocollo a livello di applicazione è distribuito su più sistemi periferici: un'applicazione in un sistema periferico, tramite protocollo, scambia pacchetti di informazione (messaggi) con l'applicazione di un altro sistema periferico.
- Trasporto: Trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle applicazioni. In Internet troviamo come protocollo di trasporto TCP, che fornisce alle applicazioni un servizio orientato alla connessione (stabilire una connessione, usarla e rilasciarla), la consegna garantita dei messaggi e il controllo di flusso. TCP fraziona i messaggi 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.
- Rete (network): Si occupa di trasferire i pacchetti a livello di rete, detti datagrammi, da un host all'altro. Il livello di trasporto (TCP) in un host di origine, passa al livello di rete un segmento e un indirizzo di destinazione; il livello di rete mette poi a disposizione il servizio di consegna del segmento al livello di trasporto dell'host di destinazione (protocollo IP).
- Collegamento (link): Il livello di rete di Internet instrada un datagramma attraverso una serie di router tra la sorgente e la destinazione. Per trasferire un pacchetto (frame) da un nodo a quello successivo, il livello di rete si affida ai servizi del livello di collegamento.
- Fisico: Trasferisce i singoli bit del frame da un nodo di rete a quello successivo.
Controllo d'errore
Instradamento
L'entità instradante decide dove inoltrare il pacchetto confrontando l'indirizzo dell'header con una tabella di instradamento.
Livello fisico
Segnali e frequenze
- Digitali (discreti): 1001011
- Analogici (continui)
Banda
È il massimo campo di frequenze usato per descrivere il segnale. L'analisi di Fourier permette di studiare qualsiasi segnale scomponendolo in un numero discreto di sinusoidi (armoniche). Qualsiasi segnale s(t) periodico nel dominio del tempo è equivalente alla somma delle armoniche sinusoidali (componenti), ognuna con la propria ampiezza e frequenza. L'analisi di Fourier è estendibile a qualsiasi segnale variabile nel tempo. Il segnale s(t) variabile nel tempo può essere rappresentato nel dominio delle frequenze dalle sue componenti in frequenza che costituiscono lo spettro del segnale S(f).
Conversione analogico – digitale
La rappresentazione umana della realtà è continua (mondo analogico), ma il mondo digitale lavora esclusivamente con informazione discreta (1001011). È necessario un procedimento che permetta di trasformare i segnali analogici in un loro equivalente segnale digitale.
Campionamento
Ogni segnale analogico può essere ricostruito interamente in base ai suoi campioni presi a frequenza 2B.
Teorema di Nyquist
Un segnale del tempo è completamente determinato dai suoi campioni presi a distanza T tale che T ≤ 2B, dove B è la banda del segnale, o usando la frequenza di campionamento f = 1/T. cf ≥ 2B = f frequenza di Nyquist. NI campioni presi alla frequenza di Nyquist rappresentano il contenuto informativo del segnale. La ricostruzione avviene con un filtro in frequenza posto al ricevitore.
Quantizzazione
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.