Dispensa Completa - Fondamenti di Comunicazioni ed Internet, G. Maier PDF

Title Dispensa Completa - Fondamenti di Comunicazioni ed Internet, G. Maier
Author Alessandro Cogollo
Course Fondamenti di Internet e Reti
Institution Politecnico di Milano
Pages 38
File Size 899.7 KB
File Type PDF
Total Downloads 111
Total Views 135

Summary

Riassunto Completo Corso G.Maier...


Description

Fondamenti di Comunicazioni ed Internet - Teoria Capitolo 1 - Introduzione: Una pluralità di reti: Internet può essere diviso in: Reti cablate: adottano un mezzo trasmissivo guidato, con collegamenti realizzati in rame (per il segnale elettrico) o in fibra di vetro (per il segnale luminoso). Sono suddivisibili in: Reti locali (local area network): da 1 a 100m. Servono edifici, o edifici adiacenti (es. campus) Reti metropolitane (metropolitan area network, MAN): da 100m a 10km. Reti a lunga distanza (wide area network, WAN): da 10km a 1000km. Caratterizzate inoltre dalla modalità di cooperazione degli ISP: Tier-3: vendono un prodotto ai clienti finali, gli utenti (business o privati). Tier-2: operano a livello nazionale/regionale. Non c’è vendita di prodotto, ma peering link, ovvero scambio di traffico tra infrastrutture. Vale anche per Tier1. Tier-1: operano a livello intercontinentale (WAN). Detto backbone service provider. A tutti e tre i livelli, si usano i POP (point of presence) per scambiarsi i dati tra ISP, e i NAP. Tipologie di reti cablate: Wired: Dialup via modem: viene usata la rete telefonica (molto capillare). I dati venivano trasformati in suoni. La banda permetteva il trasferimento con frequenza max di 4kHz, 56kbps. Wired: ADSL (asymmetric digital subscriber line): si usa la rete telefonica, ma con banda più ampia, perché si usano altre frequenze: divisione di frequenza. 1Mbps up, 20Mbps down. Wired: Fibra ottica: trasmissione su bande più ampie. Identificata da FTT (Fiber To The…). Es. Fiber To The home, Fiber To The Basement, Fiber To The Curb, etc. Reti wireless: canale di trasmissione di tipo radio. Wireless: Rete cellulare: inizialmente si sfruttava la banda telefonica, successivamente si sviluppano reti apposite. Wireless: Wireless LAN (WiFi)

Architettura di protocolli: Protocollo di comunicazione: insieme di regole che definiscono le modalità di interazione tra sistemi. Regolano lo scambio di informazioni tra sistemi, generalmente distanti tra loro. Esistono due tipi di protocolli: client/server, peer-to-peer. Si parla di architettura a strati dei protocolli, facendo riferimento alla gerarchia tra protocolli. Si definiscono cinque strati, dal basso verso l’alto: -

Strato Strato Strato Strato Strato

fisico (physical) di collegamento dati (strato di collegamento, data link) di rete (network) di trasporto (transport) di applicazione

Rispettivamente il messaggio generato dal protocollo applicativo viene trasformato in segmento, pacchetto (payload + header), trama, bit. Lo strato n riceve servizio dallo strato n-1, tramite il punto di accesso al servizio, detto SAP (service access point). La suddivisione in layers permette di semplificare il problema del trasferimento dell’informazione; ciascun livello svolge diverse funzioni in base al tipo di servizio richiesto dall’entità di livello superiore.

Nel caso in cui la lunghezza massima di payload del livello superiore ecceda quella del livello inferiore, si ricorre alla segmentazione e riassemblaggio. Nel caso in cui più processi applicativi comunichino utilizzando la stessa interfaccia di rete, si usa la multiplazione. Il raggiungimento delle destinazioni di rete avviene per mezzo dell’indirizzamento, che sfrutta indirizzi IP. A livello superiore, si distinguono gli indirizzi TCP, UDP (ICMP, OSMF), infine la raggiungibilità di una specifica applicazione di destinazione (es. HTTP, SMTP, etc) è legata al numero di porta.

Capitolo 2 – Concetti base nelle reti: Sorgenti e servizi: Suddividiamo le sorgenti per tipo di contenuto: voce (suono), dati (testo), immagini (fisse, in movimento). Possono essere fonti multimediali (più tipi di sorgente), o monomediali. I servizi di comunicazione sono caratterizzati da: requisiti di prestazione (QoS, Quality Of Service), dalla configurazione, ovvero dal numero di “attori coinvolti” (punto-punto, multipunto, diffusivo) e dalla direzione (bidirezionale simmetrico, bidirezionale asimmetrico, unidirezionale).

Trasferimento di informazioni in rete: Parametri di prestazione di una rete: Ritardo: il tempo totale di trasferimento di un’UI, è dato da: Tt Tempo di trasmissione: il tempo impiegato dall’host ad inviare il segnale τ Tempo di propagazione Quindi il ritardo totale di trasferimento è dato da T = Tt + τ Il tempo di trasmissione si calcola dividendo il numero di bit b, con la velocità di trasmissione, detta anche frequenza di cifra, o capacità. Si introduce inoltre il TpK Tempo di elaborazione, presente, ad esempio, nel caso di store and foreward in presenza di nodi, e il TwK Tempo di attesa della UI nel nodo K prima di essere trasmessa, nel caso in cui, per esempio, il nodo sia impegnato in un’altra trasmissione. Throughput: ogni rete genera una quantità di traffico, detta A0 traffico offerto; il traffico offerto che raggiunge con successo la destinazione è detto As traffico smaltito (throughput). Il throughput indica la misura media dell’utilizzazione reale di una rete. Perdita: le UI possono essere corrotte, quando ci sono, ad esempio, interferenze (errori di trasmissione), o possono essere perse a causa di una saturazione delle memorie. L’insieme delle UI non consegnate integre a destinazione costituisce il traffico perso Ap, e può essere definita su: Tasso di errore sul bit (bit error rate): n° di bit ricevuti errati/n° di bit trasmessi Tasso di perdita di Ui (probabilità di perdita): n° di UI perse o errate/n° di UI trasmesse

Tecniche di commutazione: Le tecniche di commutazione di un nodo trasferiscono il pacchetto dai collegamenti entranti a quelli uscenti, tramite due operazioni: Instradamento: operazione “intelligente” di scelta del nodo da utilizzare, secondo opportuno algoritmo Attraversamento: attuazione “meccanica” della decisione di instradamento Commutazione di pacchetto: nel caso della commutazione di pacchetto, ogni nodo dev’essere dotato di unità di memoria, o buffer. I nodi di questa rete sono detti di tipo store and forward (S&F). Le unità informative vengono spezzate in sequenze di pacchetti (frammentazione di UI), ogni UI contiene l’header con l’indirizzo del destinatario, che viene letto ogni volta. La dimensione del pacchetto ha un impatto sul ritardo dovuto alla

ritrasmissione, perché l’header non trasporta informazione utile ma richiede tempo per essere trasferito. La trasmissione avviene per multiplazione statistica, ovvero vengono concesse tutte le risorse disponibili al servizio che le richiede in quel momento. Si può adottare la modalità connection-oriented (circuito virtuale) o connectionless (datagramma). Servizio datagramma: per l’instradamento, ogni singolo nodo consulta una tabella di instradamento. E’ soggetto ad errori, come: Fuori sequenza: in una rete di nodi, a causa delle diverse velocità di trasferimento e ritardi vari, i pacchetti possono giungere a destinazione in sequenze diverse da quelle di trasmissione. Perdita: nel caso in cui, ad esempio, un nodo vada offline, si perde un’UI. Duplicazione: nel caso in cui un nodo non riceva l’ACK per l’avvenuta trasmissione di un pacchetto, e quindi lo ritrasmetta. Servizio circuito virtuale: rischio di perdita. Commutazione di circuito: articolato in tre fasi: instaurazione, dati, rilascio. Instaurazione: l’host A vuole comunicare con l’host B, pertanto viene inviato un pacchetto per instaurare la connessione, che viene ricevuto ed instradato da tutti i nodi intermedi. Dati: vengono trasferiti i dati. I tempi di propagazione e trasmissione sono da considerarsi tra i due terminali (in questo caso, A e B). Rilascio: fine del trasferimento, può essere attivata da entrambi i terminali. La trasmissione avviene tramite multiplazione deterministica, ovvero le risorse trasmissive sono suddivise tra i vari utenti in modo fisso.

Tecniche di multiplazione: La multiplazione consente di sfruttare la capacità disponibile su un collegamento tra nodi per metterla a disposizione contemporaneamente di più flussi informativi. Esistono tre tipologie di multiplazione: -

-

-

A divisione di frequenza (FDM): tanti canali (“fette” di banda) quanti sono i canali da multiplare. A divisione di tempo (TDM): assegnazione ciclica della totalità della banda ad un canale. Ne esistono di due tipi, a seconda della tipo di sorgente: Multiplazione deterministica: sorgenti continue. Multiplazione statistica: sorgenti discontinue. - A Slot - Continua A divisione di lunghezza d’onda (WDM): usata nelle fibre ottiche; si suddivide la banda ottica a “fette”, tante quante sono i canali da multiplare.

Nel caso di comunicazione bidirezionale, si devono multiplare i canali in entrambe le direzioni: duplexing.

Capitolo A – Livello Fisico: Esistono due tipi di segnali: fisici (sorgenti continue), logici (sorgenti numeriche). In ogni caso il segnale dev’essere trasformato in sorgente discreta, per poter essere poi modulato. Il segnale può essere rappresentato in funzione del tempo: Tempo continuo: s(t) rappresenta la variazione nel tempo di una grandezza fisica misurabile Tempo discreto: sequenze di impulsi ideali che si succedono a intervalli regolari Segnali periodici: s(t + T) rappresentano segnali che si ripetono identici dopo ciascun periodo T Ogni segnale può essere scomposto in sinusoidi e studiato con l’analisi di Fourier. -

-

-

I segnali periodici possono essere scomposti in un numero discreto di sinusoidi (serie di Fourier) di frequenza multipla della frequenza armonica fondamentale. I segnali non periodici si possono generalizzare alla serie di Fourier tramite trasformata di Fourier.

Banda di un segnale: insieme (intervallo continuo) delle armoniche che costituiscono il segnale. Se varia lentamente nel tempo si ha una banda stretta, se varia velocemente si ha una banda larga.

Trasformazione di segnale continuo in sorgente digitale: Campionamento: per trasformare il segnale continuo in sorgente digitale bisogna in primis campionarlo. Si considera il Teorema di Nyquist: permette di determinare la frequenza di campionamento strettamente maggiore con cui campionare il segnale, al fine di non avere perdita di informazione (aliasing), mentre un campionamento eccessivo è inutile.

f c ≥ f N =2 B B indica la frequenza massima nello spettro del segnale. Quantizzazione: è l’operazione con cui una grandezza che assume valori in un intervallo continuo è trasformata in un valore all’interno di un set discreto di l valori. Si commette un errore di quantizzazione che è legato al numero di livelli, più sono i livelli, minore è l’errore, maggiore è il numero di bit, perciò non sempre conviene aumentare i livelli. Codifica: ciascun campione quantizzato è trasformato in un gruppo di bit.

l(liv)=2m(bit )

Modulazione (trasmissione) del segnale: Il segnale numerico deve ora attraversare il mezzo trasmissivo tramite segnale modulato (analogico). La modulazione di un segnale può avvenire in: Banda base: i segnali da modulare hanno uno spettro contiguo rispetto all’origine. Es. PAM – Pulse Amplitude Modulation: il bit corrisponde ad un impulso di ampiezza positiva (“1”) o negativa (“0”). Banda traslata (o banda passante): i segnali hanno uno spettro traslato rispetto all’origine. Si usa un’onda elettromagnetica (sinusoide) detta portante (carrier), ad una determinata frequenza per traslare lo spettro del segnale intorno alla frequenza della portante. La modulazione varia a seconda del segnale: Segnale analogico: modulazione d’ampiezza (analogica) Segnale digitale: modulazione numerica, modulo la portante con i bit. Si sceglie uno dei parametri da modulare: - Modulazione d’ampiezza (ASK) - Modulazione di frequenza (FSK) - Modulazione di fase (PSK) - Modulazione QAM: misto di ampiezza e fase. Modulazione multilivello: permette di incrementare la capacità trasmissiva di n volte.

Canale trasmissivo: Un segnale che attraversa un canale trasmissivo è soggetto ad alterazioni: Attenuazione: la potenza del segnale si riduce, in funzione di distanza percorsa e frequenza del segnale. Ottenuta come rapporto tra: potenza in uscita, e potenza in entrata. Dispersione: introduzione di un ritardo differente per ciascuna componente spettrale del segnale, dipende dalla distanza percorsa. Sintetizzate in una funziona detta: risposta in frequenza H(f) del canale trasmissivo. Rumore: segnale di disturbo, influisce su tutte le componenti dello spettro elettromagnetico. È caratterizzato da una densità spettrale di potenza di rumore (No+, potenza di rumore per Hz). Può generare bit casuali che modificano il significato del messaggio in fase di ricezione, aggiungendo bit. Es. Nella modulazione PAM binaria, il demodulatore riceve dei segnali e li traduce in bit; se il segnale ricevuto è vicino ad una delle due soglie (-A/+A), si considera come bit pieno/spento. A tal proposito si utilizza il decisore, che, con segnali multilivello, confronta l’energia ricevuta con una soglia, e determina il valore ricevuto. In ricezione, se l’alterazione è grande rispetto alla differenza tra i livelli, c’è errore. -

Come reagire alla presenza di errori: Utilizzo di forward error correction (FEC): consiste nell’aggiunta di bit di ridondanza (parità), in modo da correggere gli errori che capitano (solo fino ad un numero limitato di errori). Ritrasmissione: viene utilizzato un codice di rilevazione dell’errore, che controlla eventuali errori nel codice. Se il codice ha errori, viene ritrasmesso. Ogni mezzo trasmissivo ha una regione di frequenze in cui si ha la migliore risposta in frequenza: banda passante del canale. La banda passante dev’essere maggiore dalla banda occupata dal segnale. Si definisce il canale in base alla posizione della banda passante: Canale passa-basso: se la banda passante è intorno alla frequenza 0 Canale passa-banda: se la banda passante è in un diverso range di frequenze (si usa la modulazione in banda passante per trasmettere il segnale). Teorema di Shannon: afferma che esiste un limite teorico alla velocità massima che si può usare (bit/s) su un canale caratterizzato da una banda passante. Tale velocità è detta capacità di canale. Ci permette inoltre di determinare una velocità R < C, per cui è possibile ridurre a zero la probabilità di errore.

C=B log2 (1+

S ) N

C: capacità di canale [bps], B: banda del canale [Hz], S: potenza del segnale [W], N: potenza del rumore [W]

Capitolo 4 – Strato di applicazione: Architetture di applicazione: Esistono due tipi di architetture di applicazioni di rete: Client-Server (C-S): interazione tra due host: Client: interroga il server, che fornisce delle risposte (procedura di active open).

Server: il processo server dev’essere inizializzato e rimanere in attesa di richieste (procedura di passive open). È dotato di un IP permanente e rintracciabile dal client. Peer-to-Peer (P2P): interscambiabilità tra client e server in modo dinamico. -

-

Elementi fondamentali coinvolti in un’applicazione di rete: host (pc), processo (software), comunicazione inter-processo (IPC). Le IPC sono tecnologie software il cui scopo è consentire a diversi processi di comunicare scambiandosi informazioni e dati: Processi locali: risiedono sullo stesso host Processi remoti: risiedono su host diversi. La comunicazione tra processi remoti richiede: Indirizzamento dei processi: bisogna conoscere l’indirizzo del processo e dell’host. - Lo scambio è supportato dai servizi offerti dai livelli inferiori - Avviene attraverso i SAP (Service Access Point). La socket identifica l’interfaccia tra il livello di trasporto ed il livello applicativo. Una socket viene identificata con un indirizzo dell’host (IP), ed un numero di porta (indirizzo del SAP). Protocollo di scambio dati

Servizi di trasporto: Esistono due protocolli di trasporto. Ciascun protocollo viene scelto sulla base dell’applicazione in uso. Transmission Control Protocol (TCP): Connection-Oriented: prevede una fase di instaurazione della connessione Trasferimento affidabile dell’informazione: non c’è perdita di dati Controllo di flusso: la trasmissione è regolata per non congestionare il ricevitore. Controllo di congestione: la trasmissione è regolata per non congestionare la rete. Controllo di errore sulle UI trasportate User Datagram Protocol (UDP): Connectionless: nessuna connessione prima dello scambio di dati Primitive delle socket: per richiedere/fornire un servizio, l’applicazione scambia le primitive di servizio. TCP: essendo un protocollo connection-oriented devo instaurare una connessione, mettendo il server in ascolto (passive open) ed il client in active open. Successivamente server e client alternano primitive SEND() e RECEIVE(), fino a che il client non invia una primitiva CLOSE(), rilasciando la connessione. UDP: mancano le primitive di instaurazione della connessione. I comandi di invio e ricezione specificano l’indirizzo dell’host a cui inviare e da cui ricevere SENDTO(), RECVFROM().

World Wide Web - HTTP: Il protocollo HTTP permette la trasmissione di pagine web (file HTML, JPEG, applet Java, etc.). Ogni oggetto è indirizzato da una Uniform Resource Locator (URL) es. http://www.polimi.it:80/index.html, che è costituito da protocollo applicativo + indirizzo di rete del server + numero di porta + risorsa richiesta. HTTP 1. 2. 3. 4.

(Hypertext Transfer Protocol) si appoggia su TCP: Il client inizia una connessione TCP verso il server (porta 80) Il server accetta trasmissioni TCP Client e server HTTP si scambiano informazioni (pagine web + messaggi di controllo) La connessione tra client e server viene chiusa

Esistono due modalità di connessione tra client e server HTTP: Connessione non persistente: default mode http v1.0 (prima versione). Viene gestita una sola richiesta per sessione; inviato l’oggetto, il server chiude la connessione. Il tempo di trasferimento è:

T =( n+1)·(2 RTT +T t )

-

Dove RTT è il Round Trip Time, ovvero il tempo totale di attraversamento della rete dall’invio di una richiesta da parte del client fino alla ricezione della relativa risposta. Connessione persistente http v.1.1. La connessione viene aperta e rimane aperta finché il client non la chiude. Esistono due modalità di funzionamento: Without pipelining: il client invia la richiesta successiva solo quando è stata ricevuta risposta With pipelining: il client invia la richiesta successiva senza attendere la risposta Il tempo di trasferimento è:

T =RTT +( n+1) · ( RTT +T t ) Introduzione di HTTP v2.0: permette il trasferimento di grandi oggetti in forma di chunk (pezzi di oggetto), permettendo la visualizzazione in anteprima della pagina. Es. Utile nel video streaming. Formato dei messaggi http: Richieste HTTP: sono codificate in ASCII. Ogni riga è terminata da “CR” ed “LF”. Si articolano in: Riga di richiesta (request line): contiene il tipo di operazione che il client richiede al server (method). URL (indirizzo e nome della pagina). Version, versione del protocollo HTTP. Ogni campo è separato da “sp”. I metodi utilizzabili sono: GET: Si richiede una pagina web HEAD: Richiede solo l’intestazione della pagina web

POST: Si inviano informazioni aggiuntive relative ad una pagina web (nel campo URL) PUT: Si invia un documento con l’indirizzo in cui posizionarlo (nel campo URL) DELETE: Eliminazione di una pagina dedicata nell’URL associato TRACE: Si richiede l’eco del messaggio inviato (per svolgere debug sul software client) CONNECT: Si richiede la connessione al server attraverso proxy OPTIONS: Si richiedono informazioni relative alle opzioni di comunicazioni disponibili Righe di intestazione (header): costituito da header-field name (es. Host, connection, etc) e value. Riga vuota Corpo del messaggio (entity body): es. Il testo da ricercare in un motore di ricerca -

-

-

Risposte HTTP: la struttura è uguale a quella del messaggio di richiesta ad eccezione della prima riga che diventa riga di stato, e contiene il campo versione, codice di stato (es. 200, 400, 404), frase (es. Bad Request). Tipologie di status code e phrase: 1xx informational: informazioni di tipo provvisori...


Similar Free PDFs