Estratto del documento

Appunti di Reti di Elaboratori

Indice

1 Introduzione 3

1.1 Struttura Gerarchica di Internet . . . . . . . . . . . . . . . . . . 5

1.2 Ritardi e Perdite . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Stack Protocollare . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Livello Applicativo 9

2.1 Protocollo Applicativo . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Paradigma Client-Server . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Protocolli Client-Server: HTTP . . . . . . . . . . . . . . . 12

2.2.2 Protocolli Client-Server: DNS . . . . . . . . . . . . . . . . 14

2.2.3 Protocolli Client-Server: FTP . . . . . . . . . . . . . . . . 16

2.2.4 Protocolli Client-Server: SMTP . . . . . . . . . . . . . . . 17

2.3 Paradigma Peer-to-Peer (P2P) . . . . . . . . . . . . . . . . . . . 18

3 Livello di Trasporto 21

3.1 Protocolli di Trasporto: UDP . . . . . . . . . . . . . . . . . . . . 22

3.2 Protocolli di Trasporto: TCP . . . . . . . . . . . . . . . . . . . . 23

3.2.1 Reliable Data Transfer (RDT) . . . . . . . . . . . . . . . 23

3.2.2 Pipelining . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.3 Flow Control e Congestion Control . . . . . . . . . . . . . 26

4 Livello Network 28

4.1 Composizione dei Router . . . . . . . . . . . . . . . . . . . . . . 29

4.2 Protocolli di Networking: IP . . . . . . . . . . . . . . . . . . . . 31

4.2.1 IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3 Protocolli di Routing . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Livello Data-Link 38

5.1 Servizi Data-Link: Error Detection ed Error Correction . . . . . 39

5.1.1 Error Detection and Correction: Bit di Parità . . . . . . . 40

5.1.2 Error Detection and Correction: Distanza di Hamming . . 40

5.1.3 Error Detection and Correction: Cyclic Redundancy Check

(CRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.2 Multiple Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1

5.2.1 Protocolli Channel Partitioning: TDMA/FDMA . . . . . 43

5.2.2 Protocolli Random Access: Slotted ALOHA . . . . . . . . 43

5.2.3 Protocolli Taking Turns: CSMA e CSMA/CD . . . . . . . 44

5.2.4 Protocolli Taking Turns: Polling . . . . . . . . . . . . . . 44

5.2.5 Protocolli taking Turns: Token Passing . . . . . . . . . . 44

5.3 Indirizzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.3.1 Protocolli di Indirizzamento: ARP . . . . . . . . . . . . . 45

5.4 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.4.1 Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.4.2 VLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.5 Point-to-Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.5.1 Protocolli Point-to-Point: PPP . . . . . . . . . . . . . . . 48

6 Wireless e Reti Mobili 50

6.1 IEEE 802.11 Wireless LAN (Wi-Fi) . . . . . . . . . . . . . . . . . 51

6.1.1 IEEE 802.11: Collision Avoidance . . . . . . . . . . . . . 52

6.1.2 IEEE 802.11: Header . . . . . . . . . . . . . . . . . . . . . 53

6.2 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.3 Reti Cellulari e Reti Mobili . . . . . . . . . . . . . . . . . . . . . 54

6.3.1 Mobilità e Routing . . . . . . . . . . . . . . . . . . . . . . 55

6.3.2 Mobile IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6.3.3 Mobilità nelle Reti Cellulari . . . . . . . . . . . . . . . . . 56

7 Multimedia 57

7.1 Multimedia Networking Applications . . . . . . . . . . . . . . . . 57

7.1.1 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.1.2 Immagini . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

7.1.3 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.2 Streaming Stored Video . . . . . . . . . . . . . . . . . . . . . . . 60

7.2.1 Protocolli di Streaming: Dynamic Adaptive Streaming

over HTTP (DASH) . . . . . . . . . . . . . . . . . . . . . 61

7.2.2 Content Distribution Network (CDN) . . . . . . . . . . . 62

7.3 Voice Over IP (VoIP) . . . . . . . . . . . . . . . . . . . . . . . . 63

7.3.1 Skype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

7.4 Conversational . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

7.4.1 Protocolli Conversational: Real Time Protocol (RTP) . . 65

7.4.2 Protocolli Conversational: Session Initiation protocol (SIP) 66

A Sicurezza 67

A.1 Crittografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.1 Cifratura a Chiave Simmetrica: Data Encryption Stan-

dard (DES) . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.2 Cifratura a Chiave Simmetrica: Advanced Encryption Stan-

dard (AES) . . . . . . . . . . . . . . . . . . . . . . . . . . 69

A.1.3 Cifratura a Chiave Asimmetrica: Rivest, Shamir, Adelson

Algorithm (RSA) . . . . . . . . . . . . . . . . . . . . . . . 69

2

Capitolo 1

Introduzione

Cominciamo elencando le componenti principali che una rete deve avere e che

costituiscono la più grande rete di elaboratori esistente al mondo: Internet.

1. End Systems o Host:

Un host è una macchina su cui gira un’applicazione e che si connette alla

rete per scambiare, inviare o richiedere informazioni con altri host.

2. Communication Links:

Un communication link è un mezzo fisico che interconnette due host o un

host ad un router. Può essere di vario tipo: da un cavo di rame, a onde

radio, fino ad un satellite. Ogni communication link ha una larghezza di

banda, che ne influenza l’efficienza nel trasmettere informazioni.

3. Router:

Non tutti gli host sono direttamete connessi tra di loro, specialmente

perché molti di essi sono fisicamente distanti. I router sono dei dispo-

sitivi che collegano uno o più host a formare una sottorete. Inoltre, un

router potrebbe anche essere collegato esternamente ad una rete più gran-

de (e.g. Internet). Il router si occupa di smistare i pacchetti in arrivo dalla

rete agli host collegati ad esso e di inoltrare nella rete i pacchetti ricevuti

dai medesimi host.

4. Protocolli:

Non una vera componente. Un protocollo è una specifica concettuale da

realizzare. Poiché, in una rete, molti host si scambiano informazioni tra

di loro (nel caso di Internet si parla di miliardi di dispositivi), è necessario

che queste informazioni vengano scritte e inviate in un certo modo, per

far sı̀ che la circolazione in rete, la ricerca del destinatario e la lettura e

comprensione delle informazioni avvenga nel modo più ordinato, efficiente

e chiaro possibile.

Grazie alla definizione delle componenti, possiamo definire Internet come

una rete di reti. Gli host sono collegati tra di loro a gruppi tramite un router.

3

Lo stesso router viene collegato ad una rete più grande formata da altri router

e host, occupandosi di smistare i pacchetti da e verso la rete esterna. Questa

rete, a sua volta, sarà gestita da un (o più) router e cosı̀ via, fino a formare

quella struttura che è Internet.

Figura 1.1: Il grafo della rete Internet. Oggi è molto più vasta di come è

rappresentata nell’immagine.

Una rete ha una topologia logica. Essa può essere rappresentata come un

grafo dove ogni nodo è un elemento di comunicazione della rete e un arco è un

qualsivoglia tipo di collegamento che mette in comunicazione due nodi.

Le applicazioni si affidano ai protocolli di rete per far sı̀ che alcuni servizi

possano essergli garantiti. Tra questi, principalmente, troviamo:

4

• Affidabilità:

Un protocollo si dice affidabile se garantisce che i dati inviati saranno

ricevuti dal destinatario e se tali dati saranno ricevuti in ordine di invio e

senza errori.

• Sicurezza:

Un protocollo si dice sicuro se garantisce almeno uno dei seguenti servizi:

confidenzialità, autenticazione e/o integrità del messaggio.

• Timing:

Un protocollo con garanzie di timing assicura che un messaggio inviato

venga ricevuto in un prefissato arco di tempo ∆t.

• Throughput:

Un protocollo che da garanzie di throughput assicura che la connessione

in entrata e in uscita manterrà una larghezza di banda minima R.

1.1 Struttura Gerarchica di Internet

La gestione di Internet è affidata ad alcune società, che si occupano di mantene-

re attiva la rete o di fornire il servizio Internet ad altri enti, sia direttamente, sia

tramite società più piccole (e.g. compagnie telefoniche). Tali società, sia quelle

maggiori, sia quelle minori, vengono dette Internet Service Provider (ISP).

Internet è costruito su una struttura gerarchica tra gli ISP.

Al centro della gestione della rete ci sono i Tier 1 ISP. Questi sono direttamente

connessi tra loro e, a livello di connessione, si trattano da eguali.

Subito sotto sono i Tier 2, ognuno direttamente connesso al proprio Tier 1 e,

tramite questo, alla rete Internet. Gli ISP Tier 2 pagano ai Tier 1 il servizio di

connessione verso il resto della rete, quindi sia con i Tier 2 connessi allo stesso

Tier 1, sia con i Tier 2 connessi ad un Tier 1 diverso. Alcuni Tier 2 possono

avere connessioni dirette tra loro e/o con più di un Tier 1.

Infine vi sono i Tier 3 e i Local ISP. Questi sono gli ISP che forniscono i punti

di accesso direttamente agli host. Anche questi possono essere collegati diret-

tamente tra loro, se fisicamente vicini, e si collegano alla rete tramite i Tier 2

(per i Local ISP potrebbe essere presente un passaggio intermedio attraverso un

Tier 3).

In sostanza, un pacchetto inviato da un host, passa attraverso tutta questa

struttura gerarchica (o attraverso una parte di essa) prima di raggiungere il suo

destinatario.

1.2 Ritardi e Perdite

In una rete, specie se vasta come Internet, è praticamente impossibile che tutte

le informazioni inviate vengano anche ricevute. Ancor più impossibile, le infor-

mazioni inviate non possono essere ricevute istantaneamente, neanche se due

5

Figura 1.2: La struttura gerarchica di Internet attraverso gli ISP.

host sono connessi fisicamente l’uno all’altro.

Sia gli host, sia i router hanno un buffer dove i pacchetti in arrivo vengono

immagazzinati in attesa di essere processati o inoltrati. Poiché la memoria è

finita, se un buffer si riempie, i pacchetti vengono perduti, in quanto non posso-

no essere immagazzinati. A livello puramente teorico, si supponga che un host

abbia una velocità di elaborazione v bit/sec e arrivino ad esso, con velocità

e v esprime il numero di

costante, un certo numero p bit/sec. Il rapporto α = e

p

bit elaborati per ogni bit che arriva. Se α 1, allora il numero di dati nel buffer

non aumenterà e, addirittura, potrebbe diminuire. Se, invece, α < 1, allora

l’elaborazione dei dati non sarà sufficientemente veloce, il buffer si riempirà e i

dati in eccesso verranno perduti.

Ma perdere pacchetti non è l’unico problema. I dati in uscita non possono

fisicamente arrivare istantaneamente all’host ricevente. Essi vengono rallentati

da numerosi fattori.

• Processing Delay δ :

proc

Tale ritardo è causato dall’host o dal router che deve processare i dati e

trasformarli in pacchetti, in modo da poterli spedire o inoltrare. Il tempo

di attesa dipende fortemente dal quantitativo di dati da processare, oltre

che dalla potenza computazionale del mittente.

• Queuing Delay δ :

queue

Tale ritardo è dovuto all’impossibilità di inserire istantaneamente i pac-

chetti sull’output link. Dopo essere stati processati, i pacchetti finiscono

6

in una coda. Il pacchetto successivo viene rimosso dalla coda solo quando

quello precedente è stato definitivamente inserito nell’output link. Questo

ritardo dipende dalla velocità di trasmissione dell’output link.

• Transmission Delay δ :

tran

Questo ritardo dipende totalmente dalla tecnologia impiegata per l’output

link ed è l’unico calcolabile a priori. L’output link ha una certa velocità

di trasmissione, sia essa R bit/sec. Se un pacchetto di dimensione L

bit viene inviato attraverso questo collegamento, il tempo impiegato per

L secondi.

caricare completamente i dati sul link sarà R

• Propagation Delay δ :

prop

Questo ritardo è anch’esso dovuto alla tecnologia scelta per creare il col-

legamento. In particolare, si tratta del ritardo dovuto all’attraversamento

del link. Pur esistendo come ritardo, si noti che il ritardo di propagazione

è talmente basso da potersi considerare trascurabile nella maggior parte

dei casi.

Il ritardo totale δ per trasmettere un pacchetto da un nodo ad uno adiacente

è, pertanto: δ = δ + δ + δ + δ

proc queue tran prop

Notare come questo ritardo sia quello tra un nodo e il successivo, mentre una

comunicazione potrebbe attraversare un cammino contentente diversi nodi.

Per calcolare il ritardo δ di una comunicazione su un cammino di N nodi è

necessario calcolare: −1

N

X δ

δ = i

i=1

dove δ è il ritardo per inviare i pacchetti dall’i-esimo nodo all’(i + 1)-esimo e i

i

nodi 1 e N sono, rispettivamente, il nodo mittente e il nodo destinatario.

Consideriamo un host A che invia un file di dimensione F bit ad un host B.

A comincerà ad inviare il file ad un certo tempo t e B riceverà l’ultimo bit del

0

file ad un certo tempo t . Si dice Throughput medio il rapporto:

1 F

T =

m −

t t

1 0

Inoltre si definisce Throughput istantaneo il throughput misurato ad un dato

istante di tempo.

Concludendo, si dice bottleneck un collegamento all’interno di un cammino

tale che è il più lento al suo interno. Se tale collegamento ha una velocità di

trasmissione R , allora l’intera trasmissione avrà una velocità di trasmissione

min

massima di R . Se il collegamento è condiviso da N trasmissioni, allora la

min R .

velocità di trasmissione si abbassa min

N 7

1.3 Stack Protocollare

Poiché la struttura di una rete è particolarmente variegata e complessa, si rende

necessario suddividere i vari momenti di una connessione tra due host o, più in

generale, tra due nodi. Riuscire a rendere questa divisione il più totale possibile

ha numerosi vantaggi. Un particolare livello non deve preoccuparsi di che tipo

di dati ha ricevuto dal livello precedente né, tantomeno, deve preoccuparsi di

come il livello successivo li porterà a destinazione. Ogni livello dà un certo tipo

di garanzie al livello precedente, a seconda della sua implementazione. Il livello

precedente, a questo punto, potrà preoccuparsi solamente dei suoi compiti.

Inoltre, questo tipo di approccio rende una connessione una struttura modu-

lare, più semplice da modificare o da mantenere, oltre a permettere svariati

numeri di combinazioni di protocolli ai vari livelli, lasciando allo sviluppatore

dell’applicazione la totale libertà su come realizzare la connessione.

• Livello Applicativo:

In questo livello, i dati vengono generati ed elaborati secondo una sintassi

precisa definita dal protocollo applicativo.

• Livello di Trasporto:

Questo livello si occupa della trasmissione dei dati dall’host mittente

all’host ricevente. In particolare, si preoccupa di come trasmettere i dati.

• Livello Network:

Questo livello si preoccupa di trovare un cammino, all’interno della rete,

che colleghi i due host che stanno comunicando.

• Livello Data-Link:

Qiesto livello si occupa di trasmettere i dati da un nodo nella rete fino a

quello successivo che gli sia adiacente.

• Livello Fisico:

Il livello fisico si occupa della trasmissione dei bit. Quali tecnologie usare,

come codificare fisicamente i bit e via dicendo.

Per poter essere indipendenti l’uno dall’altro, i livelli hanno bisogno di un

header che contenga delle informazioni utili alla trasmissione dei dati. Ogni

livello impacchetta i dati ricevuti dal precedente, aggiunge il suo header e passa

il tutto al livello successivo. Questo porta al primo svantaggio della stratifica-

zione: le dimesioni dei singoli pacchetti possono aumentare anche di molto.

Inoltre, bisogna anche considerare che i livelli non riescono ad essere tutti

completamente indipendenti, quindi il principio di stratificazione non viene

rispettato totalmente. 8

Capitolo 2

Livello Applicativo

Il livello applicativo è il livello più alto dello stack protocollare. In questo

livello i dati vengono generati dalle applicazioni e vengono poi passati ai livelli

sottostanti per poter essere inviati.

In generale, un determinato processo che vuole inviare dei dati ad un altro

processo, deve distinguere due casi:

• il secondo proccesso gira sullo stesso host su cui gira il primo:

in questo caso lo scambio di dati avviene tramite delle funzionalità fornite

dal sistema operativo proprio per la comunicazione tra processi sulla stessa

macchina.

• i processi sono eseguiti su host differenti:

in questo caso i due processi comunicano utilizzando un protocollo ap-

plicativo che, in generale, definisce in che modo il messaggio deve essere

scritto rispettando un determinato formato, un certo ordine dei messaggi

e via dicendo.

Generalmente, il processo viene eseguito da un utente che utilizza l’host e che

non interagisce direttamente con il protocollo applicativo, ma lo fa tramite uno

user agent, vale a dire un programma che implementa un’interfaccia utente che fa

da tramite tra la definizione del messaggio rispettando il protocollo applicativo

e l’utente stesso. 9

2.1 Protocollo Applicativo

Un protocollo applicativo è parte di un’applicazione. Un’applicazione avrà delle

determinate specifiche per lo scambio di messaggi, pertanto verrà scelto un

appropriato protocollo per fare in modo che tali necessità vengano soddisfatte.

Un protocollo, in particolare, definisce:

• il tipo di messaggi che due processi si scambiano, anche in base al loro

ruolo;

• la sintassi che tali messaggi devono rispettare, vale a dire i campi che i

messaggi contengono e in che modo tali campi vanno riempiti;

• la semantica dei campi del messaggio, vale a dire il significato delle infor-

mazioni conte

Anteprima
Vedrai una selezione di 16 pagine su 72
Reti di Elaboratori e Architettura di Internet Pag. 1 Reti di Elaboratori e Architettura di Internet Pag. 2
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 6
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 11
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 16
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 21
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 26
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 31
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 36
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 41
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 46
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 51
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 56
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 61
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 66
Anteprima di 16 pagg. su 72.
Scarica il documento per vederlo tutto.
Reti di Elaboratori e Architettura di Internet Pag. 71
1 su 72
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher filthynobleman di informazioni apprese con la frequenza delle lezioni di Reti di elaboratori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Petrioli Chiara.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community