Sei sulla pagina 1di 30

RETI DI TELECOMUNICAZIONI ( domande )

1) Descrivere i mezzi di propagazione su cavo in rame e le rispettive caratteristiche. Da


cosa è limitata la velocità trasmissiva dei sistemi di comunicazione su cavo in rame?
I mezzi trasmissivi sono suddivisi in 3 categorie in funzione del tipo di fenomeno fisico utilizzato
per la trasmissione dei dati:
- Mezzi elettrici: sfruttano le proprietà dei metalli per condurre l’energia. Per trasmettere i dati
si associano ai bit particolari valori di tensione.
- Mezzi ottici: laser, led e fibre ottiche in cui il fenomeno fisico utilizzato è la luce
- Mezzi wireless (onde radio): il fenomeno fisico utilizzato è l’onda elettromahnetica, una
combinazione di un campo elettrico ed un campo magnetico variabile, cha ha la proprietà di
riprodurre a distanza una corrente elettrica in un dispositivo ricevente

Tipi di cavi:
- Cavo coassiale:
ha al suo interno un filo conduttore in rame. Il cavo che
copre il filo serve per garantire l’isolamento tra il filo di rame ed uno schermo di metallo
intrecciato. Ha alcuni svantaggi: non si puo piegare facilmente ed è soggetto a frequenti
rotture meccaniche dei connettori. E costituito da due conduttori concentrici separati da
dielettrico. I diversi tipi di cavi coassali si distinguono per il diametro del conduttore interno
d e di quello esterno D e sono spesso indicati con la sigla d/D. All’aumentare del diametro
dei conduttori diminuisce l’attenuazione e aumenta la velocità.
- Doppino binato (Twisted pair):
è il mezzo trasmissivo classico della telefonia e consiste in due fili
di rame ricoperti da una guaina isolante e ritorti (o binati o teisted)
detti comunemente coppia. Le caratteristiche principali sono: basso costo e grande
maneggevolezza, banda di trasmissione piccola, attenuazione media. I doppini binati
utilizzano una trasmissione bilanciata, ovvero viene inviato lo stesso segnale di uguale
intensità ma di verso opposto. Esistono diverse categorie:
 Utp: cavo a coppie intrecciate non schermato
 ftp: cavo a quattro coppie con schermo globale in foglio per cablaggio
 s-utp e s-ftp: cavi a quattro coppie
 stp: cavi composti da due coppie schermate singolarmente da un foglio piu uno
schermo

Caratteristiche dei mezzi trasmissivi e limitazioni velocità:


- Attenuazione lungo il cavo : tutti i fenomeni fisici utilizzati per la trasmissione dei dati si
basano sul trasporto di una qualche forma di energia che codifica l’informazione (segnale), a
cui il sistema fisico attraversato si oppone determinando un attenuazione dell’energia
trasmessa, quindi una diminuzione di potenza del segnale in uscita rispetto alla potenza del
segnale in entrata.
- Distorsione: il diverso comportamento del mezzo trasmissivo in funzione della frequenza
genera anche distorsione, cioè l’alterazione dell’andamento nel tempo del segnale.
- Rumore: la sovrapposizione al segnale di energia proveniente da elementi esterni al sistema
trasmissivo (disturbi elettromagnetici)
- Diafonia lungo i cavi: interferenze subite da cavi vicini
2) Descrivere il principio di funzionamento delle fibre ottiche. Da cosa è limitata la
velocità trasmissiva dei sistemi di comunicazione su fibra ottica?
Struttura:
Una fibra ottica è un filo sottilissimo ed è costituita da un
cilindro interno detto nucleo o core e da una corona esterna
detta mantello o cladding. Ed esternamente è rivestita da
due strati di guaina prottettiva polimerici, il buffer ha la
funzione di proteggere la fibra da agenti esterni e
irrobustirla meccanicamente ed il jacket evita fenomeni di
microblanding e porta ad un aumento del coefficiente di attenuazione. Il materia di costruzione è il
vetro, che se stirato a dimensioni micrometriche perde la sua caratteristica di fragilità e diventa un
filo flessibile e robusto.
Uso:
- è utilizzata solamente per collegamenti punto a punto, siccome è impossibile inserire o
prelevare un’informazione in un punto intermedio del cavo.
- La radiazione elettromagnetica luminosa viene facilmente bloccata da corpi solidi, per cui
una fibra ottica rivestita di una guaina ‘opaca’ è totalmente immune ai disturbi;
- Sono caratterizzate da due numeri (n,m): con n= dimetro del core; m= diametro del cladding
Funzionamento:
Quando la luce colpisce la superficie di separazione tra due materiali trasparenti, in genere si
divide in due parti, come mostra la figura A : una parte viene riflessa con un angolo di riflessione
uguale all’angolo di incidenza e una parte continua a propagarsi oltre la superficie di
separazione.

Legge di snell

“Quando la luce passa da un mezzo con indice di rifrazione


n1 a un mezzo con indice di rifrazione n2, il raggio
incidente, il raggio rifratto e la normale alla superficie di
separazione dei due mezzi nel punto di incidenza giacciono
tutti nello stesso piano e l’angolo di rifrazione θ2 è legato
all’angolo di incidenza θ1 dalla relazione: n1 sen θ1 = n2
sen θ2”
Ipotizziamo che n1 >n 2. Se il raggio trasmesso esiste si ha
che: α 2> α 1 . Supponiamo ora di incrementare progressivamente l’angolo α 1 fino a fare arrivare α 2
=90°, incrementando ulteriormente il primo raggio non esiste più alcun raggio trasmesso, cioè tutta
la potenza incidente viene riflessa (fenomeno chiamato riflessione totale). Si ha che: .
Ottenendo il cosiddetto angolo critico
Percio, La luce entra in un estremo del nucleo, colpisce la superficie di separazione nucleo-mantello
con un angolo maggiore dell’angolo limite e perciò viene riflessa totalmente all’interno del nucleo.
In questo modo la luce continua a viaggiare all’interno della fibra ottica seguendo un percorso a zig-
zag. In una fibra ottica ben progettata l’assorbimento della luce da parte del nucleo è molto basso e
quindi la luce può viaggiare per molti kilometri senza diminuire di intensità in quantità apprezzabili.
Modi di propagazione
A seconda del numero di modi di propagazione, le fibre ottiche si distinguono in:
 F.O. multimodali : sono fibre che ammettono più modi di propagazioni. Allora volta esse
vengono distinte in:
o F.O. step index, se l’indice di rifrazione varia in modo brusco nel passare dal
cladding al core. Costante lungo core e decresce lungo il cladding, implica
dispersione modale, I raggi luminosi con stessa lunghezza d’onda imessi con angoli
diversi d’incidenza si propagano con stessa velocitò ma attraverso percorsi a zig zag
diversi, quindi giungono a tempi diversi.
o F.O. graded index, se l’indice di rifrazione varia in modo graduale all’interno del
core. Indice di rifrazione decresce gradualmente dal centro del core fino alla regione
di separazione tra core e cladding nel quale proseguono via via in modo decrescente.
Raggi con percorsi piu lunghi sono piu veloci. Giungono quasi contemporanemente
 F.O. monomodali: sono fibre in cui sia la propagazione in un solo modo. Esse sono
caratterizzate dall’avere un core di diametro molto piccolo. non hanno il difetto della
dispersione modale, consentendo di aumentare la portata, però hanno il difetto di una
sezione molto minore che comporta il trasporto di una potenza luminosa altrettanto minore
che limita un ulteriore aumento della portata
Velocità limitata:
 la dispersione modale è un problema che determina un limite alla massima velocità di
trasmissione delle informazioni nella fibra ottica. Per spiegarne il motivo ricordiamo che la
luce nell'attraversare la fibra ottica si propaga per riflessioni successive e pertanto da luogo a
vari modi di propagazione all'interno della fibra, ai quali, però corrispondono differenti
lunghezze di tragitti.
Un impulso luminoso, pertanto, immesso in fibra, si scompone in vari raggi ognuno dei
quali segue un percorso diverso all'interno della fibra, giungendo a destinazione in tempi
leggermente diversi, leggermente deformato, a breve distanza, e scomposto in vari impulsi
più piccoli a grande distanza.

3) Descrivere le tecniche di richiesta automatica di ripetizione (Automatic Repeat


reQuest, ARQ) dei frame errati; per ciascuna tecnica mostrare, con un esempio significativo,
come vengono gestiti i buffer di trasmissione e di ricezione. Mostrare, inoltre, l’interazione
dello strato di linea con il soprastante strato di rete.
Le tecniche ARQ sono molto importanti nel campo delle telecomunicazioni, in quanto permettono
al sender di capire se il receiver ha ricevuto in modo corretto o errato i dati da lui inviati, e in
quest’ultimo caso permette di attuare una richiesta di ritrasmissione. In generale un tecnica di ARQ
si articola in tre passi fondamentali:
1. Rilevazione dell’errore: deve esserci un meccanismo che permetta di rilevare eventuali
errori arrivati dal sender ( esempio: bit aggiuntivi inviati al receiver nella costituzione del
campo checksum)
2. Feedback del ricevente: il receiver deve comunicare in qualche modo al sender l’esito della
sua trasmissione . (esemprio: invio di un pacchetto di lunghezza di un bit: 0 se rilevato
errore NACK, oppure con valore 1 per ACK)
3. Ritrasmissione: un pacchetto che arriva con errori al receiver deve essere ritrasmesso
Le tre tecniche principali di ARQ per i frame errati sono:
1. Stop-and-wait: Con questa procedura il trasmettitore si blocca non appena ha inviato il frame
sulla linea ed attende il ACK/NACK corrispondente.
- se arriva un NACK o più semplicemente scade il rispettivo timeout, il frame viene
ritrasmesso. Supponiamo che il frame venga inviato in modo errato il ricevitore rileva
l’errore e il buffer di ricezione viene svuotato e invia un NACK. Il buffer di trasmissione
tiene in memoria il frame inviato e appena arriva il NACK verrà ritrasmesso
- Soltanto quando arriva il ACK il buffer di trasmissione viene liberato per poter caricare un
nuovo frame, pertanto con questa procedura è possibile trasmettere soltanto un frame alla
volta. Quando arriva l’ACK il buffer di trasmissione viene riempito con un nuovo frame dal
livello superiore.
Il protocollo stop-and-wait può risultare appropriato nel caso di comunicazioni half-duplex,
cioè nel caso in cui le situazioni alternano periodi di trasmissione con periodi di ricezione.
Al contrario, non risulta particolarmente interessante nel caso di comunicazioni full-duplex,
caratterizzate da trasmissioni e ricezioni simultanee.

2.
Go-
back-n: prevede, molto semplicemente, che i frame vengano inviati consecutivamente uno dopo
l’altro, senza che il trasmettitore si debba arrestare in attesa di una risposta (ACK o NACK) da parte
del ricevitore. I frame sono organizzati in pacchetti. Quando scade il time-out relativo ad un
pacchetto inviato senza che sia stata ricevuta una risposta, il trasmettitore rinvia quel frame e tutti i
successivi. Nel nome viene inserita una N come indicazione del numero di slot presenti all’interno
del buffer del trasmettitore. Queste slot possono essere in quattro stati diversi: vuota, frame inviato
senza risposta, frame inviato con risposta, frame disponibile ma non ancora inviato.
- Quando si riceve un ack il buffer di trasmissione libera la slot e richiede dallo stato di rete
un nuovo frame. se il buffer di trasmissione è pieno lo stato di rete dovrà attendere. Il buffer
di trasmissione non è lungo solo un frame ma è più lungo (per esempio 8 frame) mentre il
buffer di ricezione è lungo un frame. I frame vengono inviati uno dopo l’altro, il frame 1
arriva al ricevitore che se correttamente lo manda allo strato di linea e manda l’ACK al
trasmettitore svuotando il buffer di ricezione. Allo stesso modo si comporta con il frame 2:
arriva il frame, lo controlla, se va bene manda l’ACK e svuota il buffer di ricezione.
- Quando arriva un frame errato, il ricevitore scarta il frame sbagliato e manda il NACK. Cosa
fa invece il trasmettitore? Quando arriva l’ACK 1 e 2 capisce che i frame 1 e 2 sono stati
inviati correttamente e svuota i buffer 1 e 2. Quando arriva però il NACK deve rinviare il
frame 3 per poter inviare gli altri perché fino a quando il frame 3 non è tato ricevuto
correttamente il ricevitore scarta gli altri frame. Il trasmettitore svuota i buffer dei vari frame
solo all’arrivo dell’ACK, cioè i frame vengono inviati allo strato di rete.
Si dice che l’operazione di pipelining insita nel go-back-n migliora le prestazioni rispetto allo stop-
and-wait. Praticamente, non è necessario che per ogni frame inviato venga fornito l’ACK
corrispondente, è possibile ricorrere agli ACK cumulativi.
Go-back-n con NACK

Go-back-n con soli time-out

3. Selective-repeat: Il protocollo selective-repeat prevede che sia ritrasmesso solo ed


esclusivamente il frame per il quale è scaduto il time-out senza che pervenisse il corrispondente
ACK o per il quale è stato ricevuto un NACK. L’idea è quella di migliorare le prestazioni del
protocollo go-back-n ritrasmettendo solamente i frame che non sono stati ricevuti correttamente,
evitando cioè di ritrasmettere anche dei frame che potrebbero essere stati ricevuti correttamente. In
tal modo, però, i frame possono essere ricevuti fuori sequenza, per cui in ricezione occorre un
buffer che permetta di effettuare il riordinamento dei frame.
- In questo protocollo i frame possono raggiungere il ricettore senza ordine, anche nel
ricettore ci saranno più buffer dove i frame possono entrare. Il frame1 inviato finisce nel
buffer1 del ricettore, stessa cosa per il frame 2 che finirà nel buffer2. Mentre i frame
arrivano il ricevitore continua a riempire i buffer e il trasmettitore continua a inviarli. Solo
quando il buffer è pieno il ricevitore controlla la correttezza dei frame, se il frame 1 è stato
ricevuto correttamente il buffer 1 verrà liberato e la stessa cosa vale per il 2.
- Se il frame 3 (che è già nel buffer 3) è errato, questo viene scartato (non viene inviato allo
strato di rete) e poi viene inviato un NACK. Cosa succede al trasmettitore? Mentre il
trasmettitore continua a inviare i frame, quando gli arrivano le varie conferme dell’invio
corretto (ACK) libera i corrispondenti buffer (buffer 1 e 2 liberati). Quando arriva il
NACK3 il trasmettitore rinvia il frame 3. Nel mentre gli altri frame successivi al 3, vengono
ricevuti dal ricevitore e inseriti nei buffer ma non vengono lavorati fino a quando non arriva
il frame 3 corretto. Quando finalmente arriva il frame 3 corretto il ricevitore manda l’ACK3
al trasmettitore, libera il buffer 3 inviando il frame allo strato di rete, poi passa ad analizzare
i successivi frame già ricevuti.
Svantaggio: maggiore complessità, il ricevitore non prevede la ricezione dei frame in sequenza,
deve ricordare i frame che arrivano.
4) Spiegare il procedimento che porta alla
derivazione della lunghezza ottima del frame
In generale il formato del frame deve essere del
seguente tipo:

- Sync: Il campo di
sincronizzazione deve rendere riconoscibile al ricevitore l’inizio del frame.  Il campo
destinato all’indirizzamento serve a distinguere i vari terminali
- Control: Il campo di controllo determina la funzionalità del particolare frame; nei frame che
portano i dati contiene anche il numero d’ordine che serve ad identificare in modo univoco i
frame trasmessi fino a quel determinato momento della comunicazione.
- Playload: Gli l bit di payload rappresentano il pacchetto proveniente (destinato) dallo strato
di rete del trasmettitore (ricevitore).
- CRC: Il CRC permette di riconoscere i frame corrotti e quindi consente di richiederne la
ritrasmissione.
- per ogni l bit di dati utili vengono trasmessi l+l’ bit.
- Gli l’ bit di controllo vengono chiamati overhead.
La dimensione della frame, influenza chiaramente il throughput del protocollo di linea.
- Utilizzare frame troppo piccole equivale a spedire sul canale control bits, piuttosto che dati.
La presenza di un campo dati ristretto rispetto al campo di controllo della frame,
aumenterebbe notevolmente l’overhead, ma limiterebbe la probabilità di errore e di
ritrasmissione.
- Viceversa se le frame sono troppo lunghe si ha una maggiore probabilità che queste vengano
corrotte: quindi per ottenere una corretta ricezione, sono necessarie più ritrasmissioni, con
conseguente riduzione del throughput.
Esiste una lunghezza ottima per le frame, la quale consente di massimizzare il data throughput. Per
poter ricavare la lunghezza ottima della frame, è necessario conoscere: le caratteristiche del
collegamento, le modalità di ritrasmissione e la probabilità di errore sul singolo link
(collegamento).
Definendo DTN come Data Throughput Normalizzato, numero adimensionale puro compreso tra 0
e 1 come: DTN = D / Br. Dove D è la velocità utile e Br è la velocità trasmissiva.
Supponendo un DTN = 0,5 e un Br = 128 Kbit/s si ha una velocità utile D = 64 Kbit/s. I restanti 64
Kbit/s di velocità trasmissiva sono utilizzati per il resto della trasmissione.
Con le diverse strategie ARQ è possibile manipolare la formula della DTN e vedere come dipenda
fortemente dalla lunghezza del frame L/(L+L’).
La D è definibile infatti come D = S x L / Ti. A questo punto per ciascuna strategia risulta chiaro
che per trovare la lunghezza del frame ottimale basti calcolare la derivata DTN rispetto a D
ponendola uguale a 0.

5) Descrivere le tecniche di suddivisione in frame del flusso informativo.


I bit sono sempre raggruppati in frame e il ricevitore deve capire quando inizia e finisce un frame,
poiché la sua lunghezza non è fissata dunque non conosciuta a priori.
- Conteggio dei caratteri: ad ogni frame viene assegnata una lunghezza in byte il metodo del
conteggio di caratteri (ottenuto specificando nel campo d'intestazione del pacchetto il
numero di caratteri del frame) è raramente utilizzabile poiché, se il campo che contiene il
numero di caratteri si rovina (altera)
durante la trasmissione, non si può più
individuare dove comincia il frame
successivo. Se durante la trasmissione del
frame avviene un errore di natura
trasmissiva, l’errore si sposta sul frame
dopo e quello dopo ancora creando un
errore catastrofico e a catena. Si ha quindi
un problema nella sincronia.

- Flag byte con byte stuffing: stuffing significa riempire. Quando il trasmettitore vuole inviare
un frame, deve prima impacchettarlo con due flag (sequenza di 0 e 1). Il flag non viene
rilevato dal ricevitore ma conta soltanto quello che è contenuto tra due flag ovvero il frame,
il ricevitore sa che ogni frame inizia e finisce con una sequenza di bit detto flag che è
irrilevante per il trasferimento dati ma utile per fare capire quando inizia e finisce il frame.
o Problema1: se all’interno del frame ci
sono dei bit esattamente uguali a quelli
del flag il ricevitore può interpretarlo
come fine frame, quando in realtà sono
dati della comunicazione. In questo caso
verrebbero scartati dal ricevitore creando
un errore.
Risoluzione1: prima del flag all’interno
del frame inserisco un carattere escape
con la sola funzionalità di far capire al
ricevitore che la sequenza di 0 e 1 non è un flag di fine frame ma fa parte del frame
stesso. Il ricevitore poi scarterà i due flag di inizio e fine del frame e anche l’escape.
o Problema2: se dentro al frame c’è un carattere escape? Può capitare (come nel caso
del flag) che all’interno del frame vi sia un carattere escape che verrà poi scartato dal
ricevitore perché non è da considerare poiché viene utilizzato solo nel caso di un flag
nel frame.
Risoluzione2: all’interno del frame si mette un carattere speciale escape prima del
carattere di dati del frame escape in modo che il ricevitore scarterà il primo escape e
non il secondo che fa parte del frame.

- Flag bit con bit stuffing: Ha a che fare con dei bit anziché dei caratteri. Un frame inizia con
una sequenza di 6 bit (“1”) consecutivi (proprio come nel caso del carattere flag).
o Problema: si ripropone lo stesso problema di prima con i flag e gli escape. Se
all’interno del frame ho dei bit uguali a quelli di inizio e fine frame, il ricevitore
potrebbe scartarli e contali come
l’inizio di un nuovo frame.
Risoluzione: Si inserisce un bit
diverso (“0”) per fare capire al
ricevitore che non è una sequenza di
fine frame. Quel bit viene poi non
considerato e scartato nella lettura
del frame.
Il vantaggio di questa tecnica è che invece di inserire degli interi caratteri (gruppi di 8 bit) basta
aggiungere un solo bit, quindi è più semplice.

- Violazione di codifica del canale: si fa una determinata variazione della tensione per
indicare l’inizio e la fine del frame. Richiede troppa complessità hardware e per questo non
viene più utilizzata, sebbene a livello logico sia ineccepibile. Richiede infatti più di due
forme d’onda che elettricamente non sono facili da ottenere.
Nella pratica si combinano due o più delle precedenti tecniche

6) Spiegare quali sono le necessità che portano all’utilizzo di: (a) numerazione dei frame;
(b) frame di acknowledgement; (c) timer; (d) buffer di trasmissione e ricezione.

- Frame di acknoeledgement e not acknoeledgement;


Il trasmettitore invia un frame al ricevitore il quale manda un ACK (acknoeledgement) se il
frame è stato ricevuto correttamente, un NAK (not acknoeledgement) se il frame non è stato
ricevuto correttamente;

- Timer per evitare situazioni di dead-lock (si bloccano i processi a vicenda aspettando che
uno esegua una certa azione);
o Se si perde un NAK ciascun terminale aspetta la risposta dell’altro che non arriva e
nessuno fa nulla (si blocca). Per evitare questo si utilizza un timer: tutte le volte che
viene inviato un frame si attiva un timer, dopo x secondi se non viene ricevuta una
risposta questo frame viene rinviato. Dopo tot volte che il frame viene rinviato il
trasmettitore deduce che c’è un problema che va risolto con altri mezzi e smette di
inviarlo.
o Si supponga che un terminale A invii un frame di dati che viene ricevuto
correttamente da B; poi B invia un ACK che però arriva corrotto ad A, cosa succede?
Se A e B non prendono adeguate contromisure, si giunge ad una condizione di dead-
lock, nella quale entrambi i terminali attendono una mossa da parte dell’altro. Sia
che si faccia uso di soli ACK o sia di ACK che di NACK, è necessario prevedere
l’utilizzo di timer (e timeout) per prevenire delle situazioni di dead-lock. In
particolare, il trasmettitore avvia un timer nel momento in cui invia un frame, e se
non riceve alcuna risposta (ACK o NACK) prima che scada il timeout ritrasmette il
frame in oggetto.

- Buffer di trasmissione: Per implementare la procedura di timeout, i frame trasmessi devono


essere collocati in un buffer di trasmissione e vi devono restare fintanto che non arriva il
corrispondente ACK; solo allora possono essere eliminati dal buffer. I buffer hanno la
dimensione di un frame ed esiste:
o buffer di trasmissione: memoria temporanea in cui vengono collegati i frame in
trasmissione che potrebbero essere ritrasmessi, non è ancora arrivato ‘ACK.
o Buffer di ricezione: ci finiscono i frame che devono essere lavorati e il ricevitore
deve controllare il CRC.

- Numerazione del frame; il ricevitore deve capire se 2 frame arrivati uno dopo l’altro sono
uguali (e quindi arrivati a seguito di un NAK) oppure sono diversi, per fare questo si
immette nel frame un numero indicativo per poterli distinguere, in modo che i frame non
vadano scartati dal ricevitore.
7) Mostrare come viene effettuato il controllo di flusso nel protocollo HDLC e nel
protocollo TCP. Quali sono le differenze fondamentali?
- Il controllo di flusso nel protocollo HDLC è utilizzato per evitare che una sorgente
sommerga di dati un destinatario non in grado di accettarli, situazione che provoca perdita di
frame. Serve, quindi, per regolare la velocità con cui il trasmettitore invia dati al ricevitore.
Gli approcci usati sono due:
o controllo di flusso tramite feedback, in cui la destinazione, tramite un frame di
feedback esplicito, informa la sorgente circa il suo stato, in modo che la sorgente
possa regolare la velocità di trasmissione;
o controllo tramite limitazione della velocità, nella quale il trasmettitore limita la
velocità d’invio dei segmenti sulla base di statistiche di vario genere.
- Nel protocollo TCP il controllo di flusso non avviene esplicitamente, ma in modo implicito
all’interno del campo Window size. Si tratta di un campo a 16 bit che definisce la
dimensione del buffer di trasmissione che l’altro terminale deve utilizzare. In pratica il
destinatario dei dati specifica la dimensione che deve avere la finestra scorrevole (in byte)
che il mittente può utilizzare. La finestra si comporta come un buffer di trasmissione, più è
grande più dati può trasmettere prima di ricevere gli ack e più sarà veloce la trasmissione.
Ciò che il mittente può spedire dipende non solo dagli ack ricevuti ma anche dallo spazio
disponibile nel buffer del ricevente.
Lo spazio disponibile nel buffer è indicato dal campo window size che la stazione di
destinazione manda al mittente in ogni segmento in modo che il mittente possa regolare la
trasmissione dei segmenti; la dimensione della finestra indica il numero di byte che il
destinatario è in grado di ricevere.
Quando la dimensione della finestra è 0 il mittente non può spedire dati.
Quando trasmette un segmento il mittente fa partire un timer; se entro lo scadere del timer
non riceve la conferma del destinatario ritrasmette il segmento.
La durata del timer è importante perché se è troppo grande ci saranno ritardi ogni volta che
viene perso un pacchetto e se è troppo piccola ci saranno molte ritrasmissioni non
necessarie. Il timer dovrebbe essere uguale al tempo di andata e ritorno dalla destinazione,
ma questo tempo è molto variabile e dipende anche dalle congestioni della rete.
Il timer viene impostato dinamicamente ma se un segmento viene ritrasmesso perché il timer
è scaduto la durata del timer viene raddoppiata.
Vengono utilizzati dei metodi per rendere più efficiente la trasmissione.
Il destinatario, invece di inviare la conferma per ogni segmento ricevuto, può aspettare di
ricevere alcuni segmenti e confermare solo l’ultimo byte ricevuto; per evitare che ciò faccia
scadere il timer del mittente anche il destinatario usa un timer, allo scadere del quale deve
inviare una conferma al mittente.
Se il mittente invia pochi caratteri per volta si spedisce solo il primo carattere e si salva tutto
il resto in un buffer; quando il primo byte viene confermato si spediscono tutti i dati del
buffer in un unico segmento e si ripete il procedimento; si può spedire un segmento prima di
ricevere l’ack se ci sono dati per riempire un segmento della dimensione massima o almeno
metà della finestra del ricevente. Questo algoritmo non deve essere usato sempre: per
esempio se l’applicazione invia i movimenti del mouse, si avrebbero dei movimenti a scatti.
Se l’applicazione ricevente legge dal buffer pochi byte per volta si verifica un problema noto
come silly window syndrome: il ricevente manda un aggiornamento della finestra per
indicare che c’è spazio disponibile ma il mittente può mandare solo pochi byte; la soluzione
(algoritmo di Clark) consiste nel fare in modo che il ricevente mandi un aggiornamento della
finestra solo se il buffer è mezzo vuoto o c’è spazio per un segmento di dimensione
massima.
8) Esporre le problematiche relative allo strato Data Link. Spiegare come il protocollo
High level Data Link Control (HDLC) assolve
le funzionalità richieste mediante i campi
illustrati in Figura 1.
Il livello Data Link effettua operazioni diverse
in trasmissione e in ricezione. In trasmissione
riceve i pacchetti provenienti dal livello di linea
e li suddivide in frame (framing). In ricezione
effettua il controllo degli errori, il controllo del
flusso e la gestione degli errori..
Il protocollo HDLC è un protocollo di linea
sviluppato dal ISO, è un protocollo connection-
oriented ed è orientato al bit, esso elimina ogni
tipo di dipendenza da un formato basato su byte
o caratteri. Il suo frame è formato da:
- un campo FLAG all’inizio e uno alla
fine, aventi pattern 01111110, i sei 1 consecutivi indicano l’inizio o la fine del frame, per
questo motivo viene adottata la tecnica del bit stuffing (divido tutto per bit).
- Il campo ADDRESS che serve a distinguere le diverse periferiche,
- il campo CONTROL che determina le funzionalità e numera il frame,
- il campo DATA che contiene i dati utili
- il campo CRC che serve a rilevare gli errori.
In HDLC esistono tre tipi di frame:
- Frame di tipo I (information): I frame I sono progettati per trasportare i dati utili dell'utente
dal livello di rete. Inoltre, possono includere informazioni sul controllo del flusso e degli
errori (che trasportano le spalle). I sottocampi nel campo di controllo sono usati per definire
queste funzioni
o Il primo bit definisce il tipo. Se il primo bit del campo di controllo è 0, significa che
il frame è un I-frame.
o I successivi 3 bit, chiamati N (S), definiscono il numero di sequenza del frame. Si
noti che con 3 bit, possiamo definire un numero di sequenza compreso tra 0 e 7; ma
nel formato di estensione, in cui il campo di controllo è 2 byte, questo campo è più
grande.
o Gli ultimi 3 bit, chiamati N (R), corrispondono al numero di riconoscimento quando
si utilizza il piggybacking e definisce l’ACK per i frame fino a N (R)-1 ed è in attesa
per il frame N(R).
o Il bit singolo tra N (S) e N (R) è chiamato il bit P / F. Il campo P / F è un singolo bit
con un duplice scopo. Ha significato solo quando è impostato (bit = 1) e può
significare sondaggio o finale. Indica il polling quando il frame viene inviato da una
stazione primaria a una secondaria (quando il campo dell'indirizzo contiene
l'indirizzo del ricevitore). Significa finale quando il frame viene inviato da un
secondario a un primario (quando il campo dell'indirizzo contiene l'indirizzo del
mittente).
- Frame di tipo S (Supervisory): I frame di supervisione sono utilizzati per il controllo del
flusso e degli errori quando il piggybacking è impossibile o inappropriato (ad esempio,
quando la stazione non ha dati propri da inviare o deve inviare un comando o una risposta
diversa da un riconoscimento). I frame S non hanno campi di informazione.
o Se i primi 2 bit del campo di controllo sono 10, significa che il frame è un S-frame. 
o Gli ultimi 3 bit, chiamati N (R), corrispondono al numero di riconoscimento (ACK)
o al numero di riconoscimento negativo (NAK) in base al tipo di S-frame.
o Il codice a 2 bit chiamato viene utilizzato per definire il tipo di S-frame stesso. Con 2
bit, possiamo avere quattro tipi di frame.
- Frame di tipo U (Unnumbered): Sono usati per l’invio di informazione di controllo o per
invio di informazione in modalità senza connessione, i bit M dei frame di tipo U individuano
uno fra 32 diversi tipi di frame. A differenza dei frame S, i frame U contengono un campo di
informazioni, ma uno utilizzato per le informazioni di gestione del sistema, non i dati
dell'utente. I codici a U sono divisi in due sezioni: un prefisso a 2 bit prima del bit P / F e un
suffisso a 3 bit dopo il bit P / F. Insieme, questi due segmenti (5 bit) possono essere
utilizzati per creare fino a 32 diversi tipi di U-frame.

9) Descrivere le tecniche di accesso ad un mezzo comune della famiglia ALOHA e


ricavare la relazione analitica tra throughput e traffico offerto al canale. Cos’è il periodo di
vulnerabilità e perché è importante?
Considerando le tecniche di accesso al canale comune si possono presentare diverse strategie di
accesso. Una di queste è la famiglia ALOHA, la quale appartiene alle strategie di accesso di tipo
CASUALE, ovvero nelle quali le risorse della comunicazione vengono allocate casualmente alle
stazioni che ne hanno bisogno. In tale famiglia di possono avere due strategie:
a. PURE ALOHA: ogni stazione inizia la trasmissione non appena ha dei pacchetti da trasmettere,
senza considerare in nessun modo le condizioni di occupato/libero del canale
Strategia di trasmissione: quando una stazione ha dati da trasmettere, li invia sul canale.
Pertanto il protocollo non prevede vincoli all'invio di dati e quindi all'occupazione della banda.
Le stazioni non devono condividere alcuna informazione; ciò semplifica la realizzazione del
sistema. Se due pacchetti distinti giungono allo stesso ricevitore contemporaneamente, allora il
ricevitore non è in grado di rilevare i dati correttamente, e pertanto entrambi i pacchetti devono
essere considerati “persi. Poiché ogni stazione agisce indipendentemente dalle altre, il successo
è determinato unicamente dalla mancata collisione con altre trasmissioni da parte di altre
stazioni. Talvolta le stazioni sono in grado di verificare se il frame inviato è stato ricevuto
correttamente oppure se si sono verificate collisioni “ascoltando” il canale mentre inviano i dati.
Molto più spesso le stazioni si rendono conto dell’avvenuta collisione allo scadere del timeout
di trasmissione o alla ricezione di un NAK. In caso di collisione la stazione mittente reinvita il
frame dopo un intervallo di tempo casuale (calcolato tramite un algoritmo di backoff
esponenziale troncato) e si rimette in ascolto sul canale (o attende un ack) fino a quando non
stabilisce che il frame è stato ricevuto correttamente. Le stazioni trasmittenti inviano i loro
messaggi lungo il canale condiviso. Se l’intervallo di tempo durante il quale due o più stazioni
trasmettono si sovrappone, allora si avrà una collisione; quindi le stazioni coinvolte non
riceveranno alcun ack e dovranno perciò ritentare la trasmissione in un istante successivo.
b. SLOTTED ALOHA: Strategia di accesso: l’asse dei tempi è suddiviso in slot di dimensione pari
al tempo necessario alla trasmissione di un frame; le stazioni possono iniziare a trasmettere solo
all’inizio di ciascuno slot. Problema tecnico: le stazioni devono essere sincronizzate in qualche
modo. Nella strategia slotted Aloha si possono verificare solamente collisioni totali.

Analisi prestazione:
- M stazioni generano un traffico descrivibile attraverso un processo stocastico poissoniano di
parametro Λ frame/s. Vengono considerati sia i nuovi frame che i frame ritrasmessi a
seguito di una collisione.
- Approssimazione del modello: la distribuzione di Poisson si adatta bene a modellizzare
eventi indipendenti, tuttavia le ritrasmissioni non possono essere di certo considerate
indipendenti dalle trasmissioni dei frame originari. I frame hanno tutti dimensione costante
pari a l bit.
- Ipotesi: Il canale di comunicazione è ideale, nel senso che gli errori sui frame ricevuti
possono essere provocati esclusivamente da collisioni e non si possono avere errori di altra
natura (per rumore, interferenze, …). Il ritardo di propagazione è trascurabile.
- Definizione di traffico offerto al canale: numero medio di frame offerti al canale in un
tempo di frame. Per le proprietà dei processi di Poisson, il traffico offerto al canale è G   
t1
- Definizione di throughput: numero medio di frame trasmessi con successo in un tempo di
frame.
- Obiettivo: determinare la relazione che sussiste fra il traffico offerto al canale G ed il
throughput S.
- Definizione di periodo di vulnerabilità: è il periodo durante il quale un frame, con tempo di
trasmissione pari a t1 , risulta vulnerabile ad una collisione.
per analizzare le prestazioni occorre definire una relazione tra il numero di frame offerti al canale
nell’unità di frame, ovvero il traffico offerto al canale (G), e il numero di frame trasmessi con
successo, ovvero il throughput (S). Per farlo, occorre definire il periodo di vulnerabilità, ovvero il
periodo durante il quale un frame, con tempo di trasmissione pari a t1, risulta vulnerabile ad una
collisione. E’ importante perché mi aiuta a definire il S della strategia. Nei nostri due casi risulta
quindi :
PURE ALOHA: tv = 2ti  S= G * e^ (-2G)
SLOTTED ALOHA: tv = ti  S= G * e^ (-G)

10) Descrivere le caratteristiche funzionali dei dispositivi di rete hub, switch, router . Per
ciascun dispositivo, riportare un esempio di impiego in una rete di comunicazione dati che ne
evidenzi le caratteristiche fondamentali.

- HUB: L’Hub è un dispositivo di rete (apparato più semplice di ripetitore e più economico).
L’Hub canonico sono semplici ripetitori multiporta (rileva le collisioni e ritrasmette i frame, ma
non fa nulla per evitare le collisioni): Un frame ricevuto su una porta viene ripetuto su tutte le
altre porte. L’obiettivo di un hub è creare un unico dominio di collisione per tutte le stazioni
connesse all’hub stesso. È un ripetitore multiporta che permette di collegare punto a punto ad
ogni porta un nodo oppure un segmento di rete, trasmettendo i frame che riceve su una posta su
tutte le altre. Ha il compito di:
o Rilevare collisioni
o Trasmettere un’opportunità sequenza di jamming su tutte le porte quando viene rilevata
una collisione, così da garantire che ogni stazione della stella sia a conoscenza
dell’avvenuta collisione.
Lo 'Hub' o mozzo e' il centro di una topologia a stella da cui si dipartono i cavi di collegamento
verso le singole stazioni.
In realta' lo Hub funge da dorsale di una topologia a bus ove quest'ultimo e' stato ridotto ai minimi
termini, e supporta il metodo di accesso CSMA/CD. Il tempo minimo di attesa delle stazioni prima
di dedurre ricezione avvenuta se non si verificano collisioni, diventa ora una funzione della velocita'
di propagazione segnale sul cavo di collegamento e della lunghezza massima di quest'ultimo.
Lo hub fungente da dorsale contiene tipicamente elettronica di supporto alla comunicazione di
collisioni a tutti i sistemi collegati.
Spesso gli hub si possono collegare in cascata, tramite porte speciali e riposizionando switch
appositi a bordo dello hub stesso. In una configurazione a cascata solo uno degli hub funge
architettonicamente da 'bus', gli altri acquisiscono funzione di repeater / rigeneratore di segnale.
Esiste sempre un numero massimo di hub collegabili in cascata, dipendente dal tempo di latenza del
pacchetto in transito per lo hub e dalla lunghezza massima di 1500 m accettabile per il CSMA/CD.
- SWITCH: Lo switch non fa come l’hub, ma cerca di evitare le collisioni, sono dispositivi più
complessi rispetto agli Hub. Non si sa come sono fabbricati perché i produttori non lo dicono, è
un dispositivo che fa di tutto per evitare le collisioni. I buffer e uno scheduling (algoritmo con
cui viene inoltrato il frame) adeguato delle trasmissioni sul bus di backplane consentono di
eliminare totalmente il problema delle collisioni. L’utilizzo di uno switch può migliorare il
throughput della rete la sua capacità di trasmissione "effettivamente utilizzata") di un ordine di
grandezza!
Lo switch si divide in:
o Switch store and forward: (store= immagazzina il frame) prima di inoltrare il frame
verifica che quello ricevuto sia uguale a quello trasmesso. Se non ci sono problemi
inoltra il frame verso destinazione.
Vantaggio: inoltra frame sempre corretti
Svantaggio: tempi più lunghi (aspetta tutto il frame)
Ogni frame che perviene all’hub è sempre bufferizzato. L’hub provvede a ricalcolare il
CRC, e dopo aver verificato la correttezza del frame invia il frame alla stazione
destinazione facendo uso di un bus di backplane caratterizzato da una velocità di
trasferimento particolarmente elevata.
o Switch cut-through: può inoltrare frame errati, non esegue il controllo degli eventuali
errori di natura trasmissiva.
Vantaggio: tempi più brevi (non deve aspettare tutto il frame)
Svantaggio: possono esserci frame errati
Se la porta di destinazione è libera, il frame viene immediatamente inoltrato riducendo i
tempi di latenza ma possono essere inoltrati anche frame corrotti, dato che il CRC non viene
ricalcolato.
- Problematiche legate all’uso dello switch:
Attualmente la tecnologia degli switch è di tipo proprietario (switch di costruttori differenti
possono avere caratteristiche opposte), cioè ciascun costruttore ha il proprio modo di
implementare in hardware e software le funzionalità, ne consegue che si possono avere seri
problemi di compatibilità fra apparati di differenti costruttori.
Sebbene il costo degli switch sia contenuto, l’utilizzo di tali apparati di rete comporta dei costi
nascosti (hidden costs) rilevanti, come i costi associati alla gestione della rete ed allo
spostamento degli utenti.
La decentralizzazione della gestione del traffico dati contrasta con la pratica di centralizzare
determinate funzionalità nei server. In altre parole il collo di bottiglia potrebbe essere
rappresentato dalla velocità di accesso ai server piuttosto che dalla velocità trasmissiva della
rete dati. Uno switch non è detto che generi un unico indirizzo di collisione, le stazioni non sono
connesse tra di loro (non generano collisioni tra di loro).

- ROUTER: Un router (traducibile come instradatore) è un dispositivo di rete che, in una rete
informatica a commutazione di pacchetto, si occupa di instradare i dati, suddivisi in pacchetti,
fra sottoreti diverse. È quindi, a livello logico, un nodo interno di rete deputato alla
commutazione di livello 3del modello OSI o del livello internet nel modello TCP/IP.
[1]L'instradamento può avvenire verso sottoreti direttamente connesse, su interfacce fisiche
distinte, oppure verso altre sottoreti non limitrofe che, grazie alle informazioni contenute nelle
tabelle di instradamento, siano raggiungibili attraverso altri nodi della rete. Il tipo di
indirizzamento operato è detto indiretto contrapposto invece all'indirizzamento diretto tipico del
trasporto all'interno delle sottoreti.
Il router opera a livello di rete e si occupa dell’instradamento dei pacchetti. Non dipende dal
tipo di rete, ha un’organizzazione gerarchica ed è più costoso di bridge e switch. Dev’essere
configurato e mantenuto da personale qualificato, ha la possibilità di inglobare “firewalls” di
sicurezza, può frammentare i diversi pacchetti per poi riassemblarli e gestisce la congestione.
Il gateway è semplicemente un router che interfaccia una LAN con l’esterno, è un dispositivo
più complesso di un router, il quale opera attraverso tutti gli strati dell’architettura di rete.
Un router e' un sistema intermedio che compie lo smistamento pacchetti tra due o piu' reti
diverse a cui e' collegato. Il router opera a livello OSI di Rete.
Le due o piu' reti interconnesse hanno lo stesso metodo di indirizzamento a livello di Rete, p. es.
usano indirizzi IP, ma sono logicamente due reti distinte.
E' da notare che qualora nodi di due diverse reti logiche anche condividessero lo stesso cavo
fisico, e quindi avessero lo stesso livello MAC e tipo di indirizzi fisici, per smistare pacchetti da
una rete logica all'altra e' necessaria la presenza di un router.
I router possiedono una tabella di smistamento o di routing, che puo' essere configurabile
manualmente o automaticamente tramite opportuni Protocolli di Routing. Le tabelle di routing
in tal caso non sono determinate localmente ma dipendono dalla efficace cooperazione della rete
nel suo complesso.

11) Descrivere le proprietà delle virtual LAN e mostrare quali sono le tecniche che ne
consentono l’implementazione.
LAN VIRTUALI: condivide il mezzo fisico con le altre stazioni, una rete virtuale crea un dominio di
collisione indipendente dalla struttura fisica delle reti (dove sono collegate).
 Obiettivo: gestione della rete più semplice rispetto alle LAN non virtuali
 Idea: suddividere la rete in segmenti logici anzichè fisici (reti logicamente connesse)
L’obbiettivo delle virtual LAN è quello di gestire la rete in modo più semplice rispetto alle LAN
non virtuali, l’idea è quella di suddividere la rete in segmenti logici anziché fisici. Una rete virtuale
crea un dominio di collisione indipendente dalla struttura fisica delle reti, possiamo avere LAN
virtuali basate su bridge dove le reti fisiche sono organizzate in base alle mie reti virtuali (logiche);
e LAN virtuali basate su switch dove non sono più legato a LAN fisici.
I costruttori hanno finora definito 4 metodi per implementare LAN virtuali:
1. LAN virtuali basate sui numeri di porta (spinotto)
2. LAN virtuali basate sugli indirizzi fisici (MAC address)
3. LAN virtuali basate sugli indirizzi logici unicast (indirizzi IP)
4. LAN virtuali basate sugli indirizzi logici multicast (indirizzi IP)
5. LAN virtuali basate su una combinazione dei precedenti metodi

• VLAN basate sui numeri di porta: un dominio di collisione viene creato collegando logicamente
(via software) le porte (spinotti) di un apparato di rete. Le LAN virtuali possono raggruppare le
porte di switch distinti, può essere sopportata una
VLAN per porta. La limitazione di questa
implementazione sta nel fatto che il gestore di rete
deve riconfigurare lo switch ogni volta che un
utente cambia porta. È il metodo più utilizzato.

• VLAN basate sull’indirizzo MAC: è la soluzione


più flessibile dato che una stazione se viene
spostata, lo switch se ne accorge e modifica automaticamente l’associazione indirizzo MAC-
numero della porta. Si associa indirizzo hardware a VLAN. Una stazione in questo caso può
appartenere a più di una VLAN. Le prestazioni della rete possono essere penalizzate se le VLAN
sono implementate con mezzi condivisi, poiché si possono generare tempeste di broadcast.
• VLAN basate sull’indirizzo IP: in questo caso l’indirizzo logico non cambia se cambio hardware,
l’appartenenza ad una VLAN viene determinata sulla base dell’indirizzo IP della stazione che ha
inviato il pacchetto. La configurazione iniziale risulta molto semplice grazie a dei tool software
derivati dalle funzionalità del livello di rete, in questo modo una riconfigurazione risulta automatica
ogni volta che un utente si sposta. Il problema è che l’apparato deve analizzare una maggiore
quantità di bit e quindi fornisce prestazioni inferiori. Quest’implementazione è poco usata, si hanno
problemi con rete molto complesse.
• VLAN basate su indirizzi multicast: praticamente il multicast effettuato nello strato di rete viene
trasformato in un multicast a livello data link.

VANTAGGI DELLA VLAN:


1. L’utilizzo delle VLAN non vincola le stazioni a condividere lo stesso mezzo fisico (non
devono essere fisicamente collegate).
2. Si riducono i costi associati alle configurazioni e riconfigurazioni del sistema (se una
azienda vuole creare un nuovo prodotto posso creare una VLAN per il prodotto poi
eliminarla)
3. Si possono creare dei workgroup virtuali (ad hoc per specifici obiettivi).
4. Le prestazioni sono generalmente migliori rispetto all’internetworking classico.
Limiti della LAN:
- Distanza massima tra le stazioni (copertura)  Limita la portata geografica della rete
- Numero massimo di stazioni (gli switch hanno un numero limitato di utenti)  Limita il
numero massimo di utenti
- Massima velocità trasmissiva della rete (va bene per alte velocità ma non per grandi distanze)
Limita il traffico dati degli utenti
- Serve comunque una separazione logica tra le stazioni
- Soluzione: interconnettere più LAN tra di loro a livello di rete

12) Descrivere le classi degli indirizzi previste dal


protocollo IP riportate nella Figura 1. Illustrare la tecnica
del subnetting.
Per prima cosa occorre dire che gli indirizzi IP sono unici,
lunghi 32 bit e adottano una notazione dotted-decimal. Le
diverse classi di indirizzi si distinguono tra loro a seconda di
quanti bit sono allocati alla rete (NET ID) e quanti invece
sono allocati al numero di terminali/dispositivi che è possibile
connettere (HOST ID).
Classi di indirizzi IP
 Gli indirizzi IP vengono divisi in classi (in inglese classful
addressing) in base ai primi bit del byte più a sinistra. La
classe definisce quali byte sono nella parte di rete e quali byte
nella parte dell’host. In base a questo sistema di divisione si può determinare la classe di
appartenenza dell’IP.
Le classi di indirizzi IP sono cinque: A, B, C, D, E
- Classe A: serve per poche reti ma molto grandi
Gli indirizzi IP di classe A sono concepiti per reti di dimensioni molto grandi.
Il primo bit del primo byte è 0. Di conseguenza il primo campo dell’IP è compreso tra 0 e 127.
Il primo byte rappresenta la rete mentre gli altri 3 byte rappresentano gli host per ogni rete.
In forma decimale gli indirizzi IP di classe A variano in questo modo: 0-127.Host.Host.Host
- Classe B: più reti ma meno grosse
Gli indirizzi IP di classe B sono concepiti per reti di dimensioni medio-grandi.
I primi 2 bit del primo byte sono 10. Di conseguenza il primo campo dell’IP è compreso tra 128 e
191.
I primi 2 byte rappresentano la rete mentre gli altri 2 byte rappresentano gli host per ogni rete.
In forma decimale gli indirizzi IP di classe B variano in questo modo: 128-191.Rete.Host.Host
- Classe C: reti sempre più piccole, aziende medio/piccole
Gli indirizzi IP di classe C sono concepiti per reti di piccole dimensioni.
I primi 3 bit del primo byte sono 110. Di conseguenza il primo campo dell’IP è compreso tra 192 e
223.
I primi 3 byte rappresenta la rete mentre l’ultimo byte rappresenta gli host per ogni rete.
In forma decimale gli indirizzi IP di classe C variano in questo modo: 192-223.Rete.Rete.Host
- Classe D
Gli indirizzi IP di classe D vengono utilizzati per applicazioni di multicast. Il multicast è un servizio
che consente la trasmissione simultanea di informazioni a gruppi di dispositivi. I primi 4 bit del
primo byte sono 1110. Di conseguenza il primo campo dell’IP è compreso tra 224 e 239.
Tutti i 32 bit vengono utilizzati per indicare il gruppo.
In forma decimale gli indirizzi IP di classe D variano in questo modo: 223-239.X.X.X
- Classe E
Gli indirizzi IP di classe E vengono utilizzati per scopi di ricerca e per utilizzi futuri.
I primi 4 bit del primo byte sono 1111. Di conseguenza il primo campo dell’IP è compreso tra 240
e 255.
In forma decimale gli indirizzi IP di classe D variano in questo modo: 240-255.X.X.X
- Un fenomeno largamente diffuso è quello del subnetting, ovvero la suddivisione in porzioni
dell’HOST ID in un SUBNET ID e un ulteriore HOST ID, per così organizzare la rete in sotto-reti.
La maschera di rete serve per calcolare un'operazione di AND bit a bit con l'indirizzo IP: la parte di
indirizzo che viene mascherata corrisponde all'identificativo del computer host, mentre la parte
rimanente è l'indirizzo di rete.
Negli indirizzi unicast (classi A, B e C) la porzione di host ID può essere ulteriormente suddivisa in
subnet ID e host ID

Utile perchè soprattutto gli indirizzi di classe A e B hanno molti bit allocati per l’host ID, serve ad
organizzare la rete in sottoreti (subnet). È demandato all’amministratore del sistema se fare uso o
meno di subnetting.
Ne è un esempio UNIMORE, che attraverso il subnetting ha creato 40 sotto-reti corrispondenti ai
diversi dipartimenti. Avendo un indirizzo di tipo B, è possibile decidere come suddividere i 16 bit
allocati all’HOST ID, mettiamo in questo caso di dividerla a metà, dunque di avere 8 bit allocati al
SUBNET ID e i rimanenti 8 all’HOST ID. In questa maniera, l’indirizzo UNIMORE avrò 28 sotto-
reti, ciascuna delle quali potrà vedere
connessi 28 dispositivi/terminali. La scelta di quanti bit dell’HOST ID allocare alla SUBNET ID è a
discrezione dell’utente, così che possa creare (nei limiti dell’indirizzo) quante sotto-reti desideri.
Questo sistema permette un’organizzazione interna molto efficiente non visibile dall’esterno, con i
pacchetti arrivanti che conosceranno solo il router di destinazione e seguiranno percorsi ben precisi.
Vantaggi:
 L’operazione di subnetting nasconde i dettagli dell’organizzazione interna di una rete ai
router esterni, cioè i router esterni non “vedono” l’organizzazione in sottoreti;
 La rete UNIMORE ha un indirizzo di classe B con NET ID 155.185 organizzato in oltre 40
sottoreti;
 Un unico router garantisce la connessione dati con l’esterno;
 I router esterni devono solamente conoscere il percorso che conduca i pacchetti a tale router,
cioè devono solo conoscere il NET ID; sarà poi tale router a distribuire al proprio interno i
pacchetti arrivati.
Esempio:  subnet mask

13) Spiegare la differenza tra indirizzi fisici ed indirizzi logici. Descrivere come l’address
resolution protocol (ARP) effettua l’associazione fra l’indirizzo fisico e l’indirizzo logico di
due host nei seguenti casi:
a) gli host appartengono alla stessa sottorete;
b) gli host appartengono a due sottoreti distinte collegate tramite dei router.
- L’indirizzo fisico, indirizzo LAN o indirizzo MAC appartiene allo strato di collegamento ed è
assegnato in modo univoco dal produttore ad ogni scheda prodotta e ha il compito di risolvere il
problema dell’accesso al mezzo condiviso delle diverse stazioni della LAN. È formato da 48 bit ed
è regolamentato dall’IEEE, la quale fissa i primi 24 bit e lascia i restanti 24 a un determinato
costruttore che paga quel blocco.
- L’indirizzo logico fa parte invece dello strato di rete (come ad esempio gli indirizzi IP di Internet)
e contiene quell’insieme di protocolli (ovvero funzionalità) per comunicare con gli strati superiori
dell’architettura. Per poter spedire fisicamente i pacchetti sulla rete occorre conoscere gli indirizzi
fisici dei nodi coinvolti, occorre dunque trasformare un indirizzo logico in un indirizzo fisico
(risoluzione) e un indirizzo fisico in un logico (risoluzione inversa).
A. Se l’host di destinazione fa parte della stessa sottorete del mittente, allora il pacchetto viene
inviato direttamente all’host di destinazione,mentre in caso contrario viene inviato al next-hop
router. Il mittente non conosce l’indirizzo fisico del destinatario, dunque non può spedirgli il
pacchetto direttamente, quindi la richiesta ARP viene spedita in broadcast sulla rete. L’ARP request
contiene l’indirizzo IP della destinazione e la richiesta “se tu sei il proprietario di questo indirizzo
IP, rispondimi con il tuo indirizzo hardware”. L’host di destinazione riceve tale broadcast e si
accorge che chi lo ha inviato sta richiedendo il suo indirizzo fisico hardware, invia quindi un ARP
reply che contiene il suo indirizzo IP e il corrispondente indirizzo hardware.
B. Per due host che si trovano invece su due LAN diverse questo diventa più complicato. Il mittente
non può infatti inviare un messaggio broadcast con una ARP request con l’indirizzo IP del
destinatario, poiché questo messaggio rimarrebbe confinato alla sua rete, non diffondendosi
nell’altra. Per questo quindi crea un frame con destinazione IP quella dell’interfaccia del router che
collega le due reti, il quale capendo che si tratta del suo indirizzo lo prenderà in gestione ed
esaminando il datagramma interno troverà come destinazione la LAN 2, inviandolo su di essa
attraverso le tabelle di inoltro del router. A questo punto la situazione è analoga a quella precedente.

14) Spiegare: (a) cosa si intende per routing connectionless e routing connection-oriented,
(b) cosa sono le tabelle di routing, (c) come sono fatte le tabelle di routing, sia nel caso
connectionless che connection-oriented.
Il livello di rete ha il compito di fornire al livello superiore una connessione tra host mittente e
destinatario, individuando il miglior percorso in quel momento la disposizione sulla rete. Per fare
ciò usufruisce dei servizi di livello inferiore, che è sempre di tipo affidabile. In trasmissione, i
messaggi ricevuti dal superiore (trasporto) vengono spezzati in pacchetti di lunghezza predefinita, e
poi immessi nel circuito di rete tramite il livello sottostante. In ricezione, i pacchetti ricevuti
vengono riassemblati per ricomporre il messaggio originale e poi consegnati al livello superiore.
Quando due host devono comunicare tra loro trasmettendosi pacchetti, lo fanno seguendo
particolari strategie e algoritmi di instradamento, che possono essere di due tipi: senza connessione
o orientati alla connessione.
A)
Routing connectionless : non esiste un percorso prefissato e ogni pacchetto può seguire un
cammino diverso per giungere a destinazione a seconda
della situazione della rete in quel momento.

Dato un pacchetto che arriva sulla linea, come


scompongo l’operazione di routing? Bisogna scegliere
quale strada all’incrocio prendere, il router decide su
quale linea inviare il pacchetto e sceglie la linea che si avvicina di più alla destinazione, così come
quando siamo ad un incrocio scegliamo la strada che ci avvicina di più a destinazione.
Ciascun router ha la propria tabella routing dove la prima colonna indica la destinazione e la
seconda indica a chi inviare il pacchetto e dipendono dall’algoritmo di routing.
Se il pacchetto arriva ad A e la destinazione è A il router non deve fare nulla, mentre se il pacchetto
arriva ad A e deve arrivare a B lo invia direttamente dato che è collegato, se così non fosse lo
manda ad un altro router che lo manda a quello destinato.
I pacchetti che hanno la stessa destinazione possono prendere strade diverse, infatti se nella strada
più veloce ci sono molti pacchetti (quindi traffico) il router invia il pacchetto su altre strade
(cambiamo strada per evitare il traffico). Istante per istante il router decide dove mandare i
pacchetti.
 Gestisce efficientemente le risorse, dato che i pacchetti vengono instradati
indipendentemente l’uno dall’altro;
 È molto robusto nei confronti dei guasti, infatti se un router interrompe le proprie
funzionalità, i pacchetti restanti possono comunque compiere un percorso alternativo verso
la destinazione (i pacchetti possono prendere nuove strade che arriva lo stesso a
destinazione);
 Non garantisce la qualità del servizio, dato che non è possibile sapere a priori se la
trasmissione dei pacchetti andrà a buon fine, ovvero se sarà possibile consegnare i pacchetti
alla destinazione (non c’è nessun router che conosce il percorso totale e nessuno può essere
sicuro al 100% che il pacchetto arrivi a destinazione, non dà la garanzia che il pacchetto
arrivi a destinazione, ma farà del proprio meglio);
 Complica il controllo delle congestioni, dato che risulta difficile sapere a priori quale
saranno i percorsi che seguiranno i pacchetti.

Routing connection-oriented: il percorso viene individuato all’inizio della connessione e rimane lo


stesso per tutta la durata del dialogo tra i due host.

Tabella A: manda al router C il pacchetto con identificazione


numero 1.
Tabella C: se riceve il pacchetto da A con identificazione 1
lo manda ad E (...)
L’identificazione spiega dove mandare il pacchetto, servono
per identificare il percorso con la stessa destinazione ma
strada diversa.
La comunicazione avviene come prima ma non ci sono tutte le alternative di prima. Nella tabella di
routing non ci sono delle opzioni, ma vengono aggiornate sulla base del primo routing. Tiene il
controllo del traffico e prende il percorso con meno traffico, c’è un router che sceglie la strada per
evitare che nasca il traffico. Il calcolo della sorgente-destinzione è molto complesso.
 Garantisce la qualità del servizio poichè le risorse necessarie alla comunicazione vengono
allocate prima di inviare i dati (perché se c’è almeno un router c he conosce dall’inizio alla
fine il percorso i pacchetti arrivano in sequenza);
 Non ottimizza l’allocazione delle risorse perchè non tiene conto delle variazioni topologiche
e di carico della rete durante la trasmissione dei pacchetti (a seguito di guasti mantiene lo
stesso percorso);
 E’ molto sensibile ai guasti, dato che se un router subisce un crash le tabelle di
instradamento vengono perse e le comunicazioni vengono interrotte (se si interrompe la
strada scelta per la comunicazione bisogna ripartire, mentre prima bastava cambiare la
strada. Questo significa che è maggiormente sensibile ai guasti);
 Facilita il controllo della congestione grazie ad un controllo degli accessi a nuove
comunicazioni (se un router non può supportare ulteriori comunicazioni può semplicemente
rifiutare nuove connessioni). In fase di apertura della comunicazione un router decide la
strada dei pacchetti e i pacchetti attraversano router che avevano già la prenotazione no
traffico.
B)
Le tabelle di routing sono database memorizzati all’interno dei router aventi una conoscenza della
topologia della rete circostante e fornenti informazioni sul percorso lungo il quale inviare i pacchetti
ricevuti.
C)
Nel caso connectionless queste sono a due colonne, con la prima indicante la destinazione finale
desiderata e la seconda la destinazione immediatamente successiva che viene scelta per arrivare a
quella indicata nella prima colonna. In alcuni casi possono contenere anche il costo relativo a
ciascun invio lungo ciascun ramo della rete.
Nel caso connection-oriented per ogni router si hanno invece due tabelle, una rappresentante
l’entrata e una rappresentante l’uscita. Nella prima colonna della prima tabella è indicato il router
che ha inviato un pacchetto, nella seconda colonna invece il numero della comunicazione. Nella
seconda tabella invece vi è in prima colonna il router di destinazione immediatamente successivo,
mentre nella seconda colonna ritroviamo anche in questo caso il numero di comunicazione.

15) Descrivere la tecnica della frammentazione dei pacchetti nel protocollo IP e fornirne
un esempio numerico. In quali casi è necessaria la frammentazione?
Per descrivere la frammentazione dei pacchetti nel protocollo IP la prima cosa che occorre definire
è quella di MTU (Massima Unità Trasferibile). Ogni datagramma IP ha una propria dimensione, ma
ogni router ha una massima MTU da poter gestire, dunque la dimensione dei datagrammi che gli
arrivano devono essere inferiori a questa quantità. Tuttavia può accadere che non sia così, dunque
che si ricorra alla frammentazione, ovvero che il router divida il datagramma originale in diversi
datagrammi. Non vi è limite al numero di frammenti che possono essere creati, in quanto se un
frammento risulterà di dimensioni ancora troppo elevate per un router successivo, questo potrà
nuovamente frammentarlo. È possibile fare l’analogia con dei grumi di farina in cucina
(datagrammi) che passano via via attraverso colini con maglie sempre più strette (router).
All’interno del datagramma IP sono infatti definiti alcuni campi per venire incontro a questa
esigenza: identificazione, offset e flag. L’identificazione è un numero univoco dato dall’host
sorgente al datagramma, in modo tale che nel caso venga frammentato se ne riconosca l’origine.
L’offset numera appunto gli eventuali frammenti (indicando il punto di inizio di lettura) ed infine il
flag è semplicemente settato a 1 se successivamente arriveranno ulteriori frammenti oppure a 0 se
questo è l’ultimo.
Un esempio può essere un datagramma da 4000 byte a cui viene assegnato numero di
identificazione 150 che deve attraversare router con MTU = 1500 byte. È chiaro che verrà
frammentato in tre “sotto-datagrammi” ad esempio di 1480, 1480 e 1020 byte.

16) Si descrivano i diversi campi e le principali funzionalità del datagramma IP.


Versione: indica la versione corrente del protocollo (oggi IPv4, in transizione verso IPv6).
Header Lenght: necessario per capire dove iniziano realmente i dati, al netto di eventuali opzioni.
ToS: serve a specificare i diversi servizi differenziati, in particolare in merito ai requisiti. Per la
priorità ad esempio, in caso di congestione è possibile capire quale datagramma eliminare per
primo. Solo 6 di questi 8 bit vengono riempiti, 2 inutilizzati.
Total Lenght: lunghezza totale del datagram in byte (inizio-fine).
Time To Live: assicura che i datagram non circolino per sempre nella rete. È decrementato di uno
ogni volta che un datagram è elaborato da un router. Se arriva a 0, il datagram viene scartato e il
router genera un messaggio di errore ICMP.
Protocol: definisce il protocollo degli strati superiori che sta utilizzando, in poche parole serve a
capire a chi passare i dati superiormente.
Header Checksum: aiuta un router a rilevare gli errori nei bit di un datagram IP ricevuto. Consegna
il pacchetto al giusto destinatario ma non effettua controllo dati.
Opzioni: vengono usate per il testing e il debugging della rete. Possono infatti registrare il percorso,
l’instradamento lunga una sequenza di router decisa dalla sorgente o nel caso suggerita (in questo
caso non deterministico) da essa, e un contrassegno temporale memorizzante l’istante in cui il
datagramma viene processato da ciascun router (attenzione però perché i diversi clock potrebbero
non essere allineati).

17) Con riferimento alla Figura , descrivere l’intestazione del protocollo IP; per ciascun
campo spiegare qual’è la problematica che
viene risolta.

1. Version: la versione corrente del


protocollo IP ed è IPv4; siamo in fase di
transizione verso la versione IPv6. Per passare dalla versione 4 a 6 si aspetta la sostituzione seguito
a un guasto;
2. Header length: numero di parole di 32 bit nell’header costituenti l’intestazione.
Normalmente l’header IP è lungo 20 byte (il valore minimo è 5).
3. Type of Service: indica il modo in cui il datagramma deve essere trattato. Serve a specificare
i servizi differenziati; ne esistono due interpretazioni
L’ultimo bit non viene utilizzato

Priorità: 3 bit, utile ma per come viene gestita non lo è. Il valore specificato da questi 3 bit
rappresenta la priorità del datagramma. Se un router è congestionato e deve eliminare alcuni
datagrammi, i datagrammi con priorità più bassa vengono eliminati per primi.
Servizio: 4 bit, indicano il tipo di servizio richiesto:

Servizi differenziati
1.
I primi 6 bit rappresentano un codice, gli altri 2 bit non vengono utilizzati. Il codice può essere
interpretato in 2 modi
1. Quando i 3 bit più a destra valgono 0, i 3 bit più a sinistra vengono interpretati come una priorità,
cioè nello stesso modo del Tipo di Servizio
2. Quando i 3 bit più a destra non valgono 0, allora i 6 bit definiscono 64 servizi divisi in 3
categorie: 32 gestite da IETF, 16 gestite dalle Autorità locali e 16 riservate per utilizzi temporanei
ed esperimenti.
2. Total length: indica la lunghezza totale del datagramma in byte, La massima dimensione del
datagramma è di 65535 byte
3. Identification: identificatore univoco di ogni datagramma inviato da un host. Bit per
permettere al ricevitore di riconoscere quelli buoni, identifica il pacchetto e permette al ricevitore di
capire quali non vanno bene e al trasmettitore quali vanno ritrasmessi;
4. Flags and fragmentation offset: Ogni protocollo a livello data link utilizza un proprio
formato per i frame. La massima quantità di dati che può essere trasportata da un frame si chiama
Maximum Transfer Unit (MTU), in pratica, quando un datagramma viene incapsulato in un frame,
la dimensione totale del datagramma deve essere inferiore alla MTU del frame. Tale restrizione
viene imposta dalla tecnologia hardware utilizzata a livello fisico (La MTU di una rete Ethernet è di
1500 byte).
Un datagramma più grande della MTU viene quindi suddiviso in parti più piccole per poter
attraversare la rete. Quando il datagramma viene frammentato, ogni frammento diventa un nuovo
datagramma a tutti gli effetti (un frammento può essere a sua volta frammentato per poter
eventualmente attraversare una rete con MTU ancora più piccola).
Sebbene nel nodo sorgente si cerchi di frammentare il datagramma in modo che tutti i frammenti
possano raggiungere la destinazione senza dover essere nuovamente frammentati, non si può
prevedere quali rete essi dovranno attraversare, pertanto ogni router deve essere in grado di
frammentare i pacchetti.
ll riassemblaggio del datagramma avviene solo alla destinazione.
 Flag: il primo bit è riservato, il secondo viene chiamato bit di non frammentazione (don’t
fragment) ed il terzo viene chiamato bit di altri frammenti (more fragment);
 Se il bit don’t fragment vale 1, allora il datagramma non deve essere frammentato;
 Quando il bit more fragment vale 1, significa che ci sono altri frammenti relativi a quel
datagramma, cioè questo frammento non è l’ultimo del datagramma iniziale;
Offset: campo a 13 bit che specifica la posizione del frammento rispetto all’intero datagramma; tale
posizione viene misurata in unità da 8 byte.
5. Time To Live (TTL): contiene il numero massimo di router che il pacchetto può attraversare
prima di giungere a destinazione (Un valore tipico attualmente utilizzato è 64): ogni router che
inoltra il pacchetto decrementa di 1 il valore del TTL e se TTL arriva a 0 il pacchetto viene
eliminato dalla rete e viene generato un messaggio di errore ICMP.
Settando il TTL a 1, quindi, si limita la destinazione del pacchetto alla stessa rete a cui appartiene il
mittente.
6. Protocol: questo campo a 8 bit definisce il protocollo degli strati superiori che sta
utilizzando il protocollo IP (ad esempio TCP, UDP, ICMP, IGMP, …)
In altre parole questo campo serve al protocollo IP per capire a quale protocollo degli strati
superiori deve passare i dati.
7. Header checksum: viene calcolato solo sull’header IP e serve a rilevare eventuali errori,
contiene un valore codificato a 16 bit che permette di controllare l’integrità dell’intestazione per
controllare che questa non sia stata alternata durante la trasmissione.
18) Descrivere l’intestazione introdotta dal protocollo TCP (con riferimento alla Figura 1)
e le principali funzionalità svolte dai vari
campi

Il protocollo TCP è orientato alla


connessione perché prima che un processo
applicativo possa cominciare a spedire dati a un altro, i due processi devono scambiarsi un
handshake (insieme di segmenti preliminari per stabilire i parametri del successivo scambio di dati).
Il trasferimento è full-duplex (fruibile in ambo i sensi contemporaneamente) e punto-punto, ovvero
solo tra due terminali.
Sequence Number: nel caso in cui il flusso di dati venga suddiviso in diversi segmenti, questo
campo indica il numero del prossimo byte da cui ripartire a leggere il segmento successivo.
ACK Number: contiene il prossimo numero di sequenza che il sender si aspetta di ricevere dal
receiver.
Header Lenght: lunghezza dell’intestazione TCP (in gruppi da 4 byte, può variare tra 5 e 15).
Flags: bit utilizzati per il controllo di flusso, per l’apertura e la chiusura della comunicazione, per
l’interruzione della connessione e per stabilire le modalità di trasferimento dati.
Window Size: definisce la dimensione del buffer di trasmissione che l’altro terminale deve
utilizzare (destinatario dice a mittente che finestra usare).
Urger Point: dati urgenti che devono essere letti subito dal processo destinazione.
Options: facoltativo e di lunghezza variabile, è usato quando un sender e un receiver negoziano la
massima dimensione del segmento o come fattore di scala della finestra per l’uso nelle reti ad alta
velocità.

19) Spiegare la funzione dei numeri di porta nei protocolli TCP e UDP mediante un
esempio.
I numeri di porta sono il mezzo fondamentale che consentono ai protocolli TCP e UDP di gestire
flussi multipli di dati attraverso un’unica connessione fisica.
Ogni macchina sarà individuata dal suo indirizzo IP, ma poiché sono molteplici i servizi che essa
può offrire, occorre un modo per poterli distinguere e incanalarli verso i corretti programmi di
gestione. Flussi di dati diversi all’interno della stessa macchina sono distinti dai numeri di porta,
dunque una connessione tra due computer viene univocamente identificata dalla coppia di due
numeri di porta: uno sorgente e uno destinatario.
Il modo più semplice per far comunicare due processi è il cosiddetto client/server. Vi è una
macchina che è in attesa (server) e una che la contatterà perché necessita un suo servizio (client).
L’esigenza del numero di porta nasce proprio nel momento in cui il client instaura la comunicazione
con il server, poiché servizi diversi hanno numeri di porta diversi. Proprio per questo motivo questi
non sono scelti casualmente ma sono standardizzati a livello internazionale e possono essere
classificati in tre categorie:
1. Porte ben note: da 0 a 1023. Utilizzate per i servizi più comuni.
2. Porte registrate: da 1024 a 49151. È possibile registrare uno di questi numeri di porta per
evitare possibili “conflitti” con altri utenti.
3. Porte dinamiche: da 49152 a 65535. Utilizzabili liberamente, non possono essere registrati.
Dunque quando il client contatterà il server, oltre a conoscere il suo indirizzo IP dovrà conoscere il
numero di porta associato al servizio che intende utilizzare (ad esempio per il servizio di SMTP di
posta elettronica la porta è la numero 25).

20) Descrivere le procedure di apertura e chiusura della connessione nel protocollo TCP.
In telecomunicazioni e informatica il Transmission Control Protocol (TCP), è un protocollo di
rete a pacchetto di livello di trasporto che si occupa di controllo di trasmissione ovvero
rendere affidabile la comunicazione dati in rete tra mittente e destinatario.
La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è
chiamata three-way handshake (stretta di mano in 3 passaggi)
APERTURA DI UNA CONNESSIONE:
 Il processo server esegue una apertura passiva con cui dichiara che è pronto ad accettare una
connessione TCP.
 Il processo client esegue una apertura attiva per instaurare una connessione con un processo
server che ha già effettuato una apertura passiva
THREE WAY HANDSHAKING La procedura utilizzata per instaurare in modo affidabile
una connessioneTCP tra due host è chiamata three-way, indicando la necessità di scambiare 3
messaggi tra host mittente e host ricevente affinché la connessione sia instaurata
correttamente. (Consideriamo ad esempio che l'host A intenda aprire una connessione TCP con
l'host B)
 (A invia un segmento SYN a B)Il client spedisce il primo segmento (chiamato segmento
di SYN), nel quale l’unico bit di controllo che vale 1 è il bit di SYN. Questo segmento serve
per la sincronizzazione dei numeri di sequenza. Il numero di sequenza viene scelto
casualmente dal client ed indica il numero da cui partire per numerare i segmenti che vanno
dal client al server.
 (B invia un segmento SYN/ACK ad A)Il server risponde con un segmento chiamato
SYN+ACK, nel quale sia i bit di controllo ACK che SYN valgono 1. Questo segmento ha
una duplice funzione:
 È un segmento SYN per la comunicazione che va dal server al client; in particolare il primo
numero di sequenza della comunicazione tra server e client viene scelto casualmente ed
indipendentemente dal numero scelto dal client.
 È un segmento di ACK che conferma al client la ricezione del segmento SYN.
 (A invia un segmento ACK a B)Il client spedisce un segmento ACK al server per
confermare la ricezione del segmento SYN.

Il terzo segmento non sarebbe indispensabile, idealmente, necessario per l'apertura della
connessione in quanto già dopo la ricezione da parte di A del secondo segmento, entrambi gli host
hanno espresso la loro disponibilità all'apertura della connessione. Tuttavia esso risulta necessario al
fine di permettere anche all'host B una stima del timeout iniziale, come tempo intercorso tra l'invio
di un segmento e la ricezione del corrispondente ACK

CHIUSURA DELLA CONNESSIONE


La chiusura della connessione si può effettuare in due modi: con un handshake a tre vie (in cui le
due parti chiudono contemporaneamente le rispettive connessioni, o con uno a quattro vie, in cui le
due connessioni vengono chiuse in tempi diversi) e l’handshake a 4 vie.
CHIUSURA THREE WAYDopo che è stata stabilita, una connessione TCP non è considerata
una singola connessione bidirezionale, ma piuttosto come l'interazione di due connessioni
monodirezionali. Pertanto, ognuna delle parti deve terminare la sua connessione, e possono esistere
anche connessioni aperte a metà, in cui solo uno dei due terminali ha chiuso la connessione e non
può più trasmettere, ma può (e deve) ricevere i dati dall'altro terminale.
L'handshake a 3 vie è omologo a quello usato per l'apertura della connessione, con la differenza che
il flag utilizzato è il FIN invece del SYN. Un terminale invia un pacchetto con la richiesta FIN,
l'altro risponde con un FIN + ACK, ed infine il primo manda l'ultimo ACK, e l'intera connessione
viene terminata.
1. Il processo client invia un segmento FIN al server per chiedere la chiusura della connessione
(il bit di controllo FIN è posto a 1). Il segmento FIN può contenere l’ultima parte di dati da inviare
al server oppure può non contenere dati.
2. Il processo server invia al client un segmento FIN+ACK per chiedere la chiusura della
connessione tra server e client e per confermare la ricezione del segmento FIN del client. Il
segmento FIN+ACK può contenere l’ultima parte di dati da inviare al client oppure può non
contenere dati.
3. Il processo client invia un segmento ACK al server per terminare la comunicazione. Questo
segmento non può contenere dati.
CHIUSURA FOUR WAYviene utilizzata quando il client non ha più dati da inviare ma il server
non ha ancora terminato la trasmissione. In questo caso si hanno due chiusure indipendenti per le
due direzioni di comunicazione client-server e server-client. In questo caso uno dei due terminali
invia la richiesta di FIN, e attende l'ACK. L'altro terminale farà poi altrettanto, generando quindi un
totale di 4 pacchetti.

21) Descrivere l’intestazione introdotta dal protocollo UDP (con riferimento alla Figura 1)
e le funzionalità svolte da ciascun campo.
Quali sono le applicazioni che utilizzano il protocollo UDP ? Perché ?
Il protocollo UDP (User Datagram Protocol) è unreliable e connectionless. Viene utilizzato per
minimizzare l’overhead e la latenza dei segmenti in quelle applicazioni che richiedono una
interazione semplice, di tipo richiesta risposta, fra client e server per le quali la consegna dei dati al
destinatario non è di primaria importanza.
Il protocollo UDP è il più semplice protocollo del livello di trasporto, come si nota dalla sua
intestazione non presenta tutti i campi presenti in quello di TCP. E’ composta da:
- 16 bit che identificano il numero di porta della sorgente;
- 16 bit che identificano il numero di porta della destinazione;
- 16 bit che identificano la lunghezza del pacchetto;
- 16 bit che permettono un controllo d’errore;
- 32 bit per i dati.
Il protocollo UDP non presenta una apertura e chiusura della comunicazione. Ha l’obiettivo di
comunicare di numeri di porta, visto che il loro uilizzo è indispensabile. Il suo utilizzo è riservato a
quando non interessa avere un flusso di dati affidabili, come succede ad esempi o negli streaming
multimediali. In questi casi è più utile ricevere tanti dati anche se con qualche errore che riceverne
pochi corretti. Ha il vantaggio di essere molto semplice.
Sono usati per:
a) applicativi che necessitano di trasmissioni broadcast.
Applicativi per i quali la perdita di una porzione di dati non e’ essenziale, ma richiedono un
protocollo rapido e leggero (ad esempio stream voce/video)
b) applicativi che si scambiano messaggi (e non flussi di byte) di piccole dimensioni, e che non
risentono della perdita di un messaggio (ad esempio interrogazione di database, sincronizzazione
oraria ed in questi casi la perdita della richiesta o della risposta provoca un nuovo tentativo di
interrogazione);
c) applicativi che necessitano di risparmiare l’overhead temporale provocato dalla connessione, ed
implementano a livello di applicazione il controllo della correttezza dei dati (ad esempio applicativi
che scambiano dati con molti host, rapidamente, per i quali dover stabilire ogni volta una
connessione e’ peggio che ritentare se qualcosa va storto).
Bisogna ricordare che originariamente il protocollo UDP veniva utilizzato per controllo a distanza
degli apparati. Esistevano quindi dei pacchetti che per controllare a distanza le postazioni di lavoro,
gli apparati di rete (router, etc) avevano un ruolo che si chiamava SNMP (Simple Network
Management Protocol) che era un tipo di protocollo udp.

22) Descrivere le tecniche di accesso ad un mezzo comune della famiglia Carrier Sense
Multiple Access (CSMA). Quali vantaggi offre la tecnica del collision detection (CD) ? Qual è
la condizione necessaria per implementare il CD ? Perché ?
Carrier sense multiple access (CSMA): CSMA è molto simile all’ALOHA, ma in questa tecnica
ogni stazione può analizzare (ascoltare) il canale per rilevare o meno una trasmissione in corso.
L’accesso al canale avviene solo se questo viene rilevato come libero. la stazione prima di
trasmettere “testa” il canale per verificare se è occupato da un’altra comunicazione. Questo
approccio non elimina completamente le collisioni, ma certamente riduce la probabilità che si
verifichino. Occorre considerare i tempi di propagazione del segnale fra due stazioni.
Algoritmo CSMA:
 Se il canale è libero si trasmette
 Se il canale è occupato 2 varianti possibili
1. Persistent: nel momento in cui si libera il canale, la stazione inizia a trasmettere, se c’è collisione,
come in ALOHA, si attende un tempo casuale poi si trasmette. Ogni stazione ascolta il canale: se lo
rivela libero trasmette subito, altrimenti continua ad ascoltarlo finché non diviene libero e subito
dopo trasmette.
PROBLEMA: se due stazioni generano un
pacchetto durante la trasmissione di A,
attenderanno entrambe la fine della trasmissione in atto e poi occuperanno entrambe il canale
creando una collisione. Quindi questo sistema funziona se il traffico è poco e la probabilità che due
o più stazioni generino pacchetti durante una trasmissione è molto bassa

2. Non-persistent: rimanda la trasmissione ad un nuovo istante, scelto in modo casuale. La stazione


che ha un pacchetto da trasmettere ascolta il canale. Se lo rivela libero inizia la trasmissione. Se il
mezzo è occupato, cessa di ascoltare il canale e genera, in modo casuale, un tempo di back-off dopo
il quale ritenterà l’accesso. In questo modo si riduce la probabilità che più stazioni accedano
contemporaneamente non appena il canale diventa libero.

1. Slotted p-Persistent CSMA: è una tecnica che permette di ottenere le prestazioni del persistent
per bassi carichi e non-persistent per alti carichi. Si tratta dunque di un protocollo poco usato perché
richiede una complessità di hardware.
2. Slotted non-persistent CSMA:

COLLISION DETECTION
Nei protocolli che abbiamo visto, le
stazioni non si accorgono quando avviene
una collisione e quindi continuano a
trasmettere tutto il pacchetto inutilmente. Il protocollo CSMA/CD è stato studiato proprio per
eliminate questo spreco di banda. Ogni stazione è dotata di un hardware che permette di rilevare
una collisione. In pratica ogni stazione ascolta il canale anche quando sta trasmettendo. Non appena
la stazione si accorge di una collisione, cessa immediatamente la trasmissione ed invia sul mezzo un
segnale di jamming (bit che segnalano una collisione) per comunicare alle altre stazioni che il
canale è occupato dall’estinzione di una collisione. La stazione aspetta un periodo di tempo casuale
(back-off) e tenta nuovamente l’accesso.
 Se la stazione che sta trasmettendo rileva la collisione, interrompe immediatamente
 Una volta rilevata collisione, non si continua a trasmettere trame già corrotte
 Quando si verifica una collisione, si trasmette una particolare sequenza, detta di jamming
(sequenza di bit che indicano la collisione)
Strategia: non appena una o più stazioni della rete si rendono conto che è avvenuta una collisione, le
stazioni coinvolte nella comunicazione cessano di trasmettere i frame coinvolti nella collisione.
Idea di base: è completamente inutile portare a termine la trasmissione di un pacchetto che è stato
irrimediabilmente danneggiato e che non potrà pertanto essere rilevato correttamente.
Effetti: permette alle stazioni che hanno trasmesso i pacchetti di accorgersi tempestivamente della
collisione, e possono quindi attuare immediatamente le opportune strategie di back-off. Senza il
meccanismo di collision detection le stazioni dovrebbero attendere lo scadere del time-out associato
al frame che ha colliso o la ricezione di un NAK. il throughput migliora!
La durata temporale di un pacchetto deve essere superiore al tempo di propagazione (andata e
ritorno) fra le stazioni più distanti della rete.
• A parità di lunghezza del pacchetto, per aumentare la velocità di trasmissione occorre diminuire le
dimensioni della rete.
• A parità di dimensioni della rete, per aumentare la velocità occorre aumentare la lunghezza in bit
del pacchetto
Condizione necessaria per la rilevazione della collisione da parte di un a stazione trasmittente è che
il tempo massimo di andata e ritorno (round trip time, RTT) di un frame

dove d è la distanza massima tra le stazioni e v è la velocità della luce nel mezzo
trasmissivo, avendo supposto trascurabile il tempo di elaborazione dell’informazione delle stazioni
rispetto alle altre qualità.

afferma che se si vuole incrementare la velocità trasmissiva a parità di parametri fisici


della rete senza ridurre in throughput si deve necessariamente anche incrementare la lunghezza dei
frame.
Per una tecnica di accesso le seguenti due proprietà risultano desiderabili:
1. quando una sola stazione è attiva, tale stazione può inviare frame sul canale a R bit/s
 Falso per TDMA/FDMA
 Vero per Aloha e CSMA
2. quando tutte le M stazioni sono attive, ciascuna può inviare frame sul canale a R/M bit/s
 Falso per TDMA/FDMA
 Vero per Aloha e CSMA

23) Descrivere le tecniche di accesso ad un mezzo comune della famiglia Carrier Sense
Multiple Access (CSMA) prestando particolare attenzione al periodo di vulnerabilità.
Mostrare un esempio di comunicazione basata su CSMA in cui due pacchetti collidono.
Il CSMA è molto simile all’Aloha, ma in questa tecnica, ogni stazione può analizzare (ascoltare) il
canale per rivelare o meno una trasmissione in corso. L’accesso al canale avviene solo se questo è
rivelato libero. Questo non elimina del tutto la probabilità di collisioni. Infatti, occorre considerare i
tempi di propagazione del segnale fra due stazioni. A sta trasmettendo , B ascolta il canale. Lo sente
libero perché il segnale di A non è ancora arrivato. Inizia a trasmettere e collide.
Algoritmo CSMA:
– se il canale è libero, si trasmette
– se è occupato, sono possibili diverse varianti
• non-persistent : rimanda la trasmissione ad un nuovo istante, scelto in modo casuale
• Persistent : nel momento in cui si libera il canale, la stazione inizia a trasmettere, se c’è collisione,
come in ALOHA, si attende un tempo casuale e poi si cerca di ritrasmettere
Periodo di vulnerabilità
• Il periodo di vulnerabilità è legato al ritardo di propagazione del segnale sul canale.
• Se indichiamo con τ il tempo di propagazione tra le due stazioni più distanti il periodo di
vulnerabilità è 2 τ
• se una stazione ha iniziato a trasmettere, ma il suo segnale non è ancora arrivato a tutte le
stazioni, qualcun altro potrebbe iniziare la trasmissione • In generale, il CSMA viene usato in reti in
cui il ritardo di propagazione τ è << di T (tempo di trama)
Collisioni di due pacchetti:
• A causa dei ritardi di propagazione il protocollo CSMA NON evita le COLLISIONI. il ritardo di
propagazione implica che due nodi non possano sentirsi reciprocamente all’inizio della
trasmissione. Si ha collisione tra due stazioni se esse accedono al canale in istanti che distano tra
loro un tempo inferiore a quello di propagazione tra le due stazioni

24) Con la terminologia audio video bridging (AVB) si indica un insieme di protocolli che
hanno l’obiettivo di supportare dei flussi di informazione audio e video in tempo reale
all’interno di edifici. Quale protocollo o famiglia di protocolli è più adatta per supportare
servizi AVB ? Perché?
Audio Video Bridging (AVB) è il nome comune per indicare un insieme di standard tecnologici
sviluppati dall’ Institute of Electrical and Electronics Engineers (IEEE), ovvero la più grande
associazione al mondo di tecnici e professionisti, nonché uno degli enti principali in grado di
organizzare e regolamentare standard tecnologici.
Alcuni degli standard di rete certificati da questa organizzazione sono lo standard Ethernet IEEE
802.3, e lo standard Wireless IEEE 802.11.
L’ Audio Video Bridging Task Group si occupa dello sviluppo delle specifiche che permetteranno
la sincronizzazione temporale a bassa latenza delle reti IEEE 802 future.
Il gruppo ha anche sviluppato una serie di migliorie che permettono di raggiungere elevate
performance in termini di bassa latenza e sincronizzazione audio e video, senza dover
necessariamente costruire reti complesse.
l’IEEE ha implementato una tecnologia chiamata Time Sensitive Networking (TSN) che si basa
sulle specifiche AVB e ne espande le funzionalità e le possibili applicazioni.
Questo include la ridondanza, la bassa latenza e il controllo prioritario del traffico per le operazioni
ad elevata criticità
I trasporti audio digitali si dividono in tre categorie fondamentali, in base al modello ISO/OSI:
Layer 1 – Punto-Punto, un flusso di segnali che vanno da A a B. Esempio: AES50, SD.
Layer 2 – Il segnale va da una interfaccia A ad una interfaccia B tramite MAC address. Hanno
bisogno di una loro sottorete dedicata e, nel caso si voglia avere lo stesso segnale in più punti (come
una rete) servono switch appositi. Esempio: AES51, AVB/TSN.
Layer 3 – Il segnale si identifica con un indirizzo IP dato e si smista verso ulteriori indirizzi IP, gli
indirizzi possono essere anche autogenerati (DHCP). Possono quindi coesistere con una topologia
di rete standard (es, ethernet aziendale o domestica). Esempio: AES67, Dante.
Scelta migliore? Sicuramente, Layer 3 è utilizzabile quasi ovunque – meglio se una rete Gigabit o
che abbia il supporto QoS (Quality of Service), mentre Layer 2 avrà bisogno di switch appositi e
funzionerà solamente in LAN locali e chiuse. Visto che gli switch per AVB hanno solo una
funzione in più rispetto agli switch classici, una rete con switch AVB/TSN è compatibile – per sua
natura – anche con i protocolli Layer 3. In molti casi si possono facilmente usare reti AoIP su Layer
3 in reti precablate: collegati i device alla presa Ethernet si hanno i flussi audio in tutto
l’edificio/venue, da ogni singola presa RJ-45 (dai 100MBps+QoS per 32 canali alla 1GB per averne
512).

25) Descrivere i diversi tipi di tecniche per la gestione degli errori

Quando dei dati vengono scambiati tra due interlocutori, è comune che, a causa di disturbi elettrici,
il segnale rappresentante lo stream di bit trasmesso venga alterato. La conseguenza è che il
ricevitore, in alcuni casi, potrebbe ricevere un messaggio diverso da quello trasmesso. Quindi il
controllo e la correzione degli errori sono delle funzioni indispensabili al fine di garantire una
comunicazione “affidabile” (una comunicazione in cui la probabilità di errore sia ragionevolmente
bassa). Tipicamente gli errori si presentano in burst, cioè vengono persi o alterati intere sequenze di
bit (non singoli bit).
Esistono due tipologie:
1. Codici a correzione d’errore in anticipo: formano error connection codes, Sono usati soprattutto
nei canali wireless, caratterizzati da elevate probabilità di errore sul bit.
 Codici moderni: codici convenzionati, codici a blocco
 Codici obsoleti: codici a ripetizione: Si trasmettono più dati di quelli reali, generando una
ridondanza. Per trasmettere un bit ne introduco tre sul canale di comunicazione, questo incide in
termini di costi, triplicandoli in questo caso. Dunque per trasmettere uno “0” introdurrò “000” e per
trasmettere un “1” introdurrò “111”. Essendo sempre possibili gli errori di natura trasmissiva,
dunque ad esempio “010” o “110” si decide a maggioranza ed è possibile isolarlo nella maggior
parte dei casi. È dunque un sistema vulnerabile a lunghe sequenze di errore, se ne può aumentare
ulteriormente la ridondanza causando però un relativo incremento dei costi.
2. Codici a rilevazione d’errore: sono usati da tutti i sistemi di comunicazione e si basano su
divisioni tra polinomi rappresentativi dei frame trasmessi.
 Codici check-sum: il trasmettitore manda frame da 8 bit ciascuno e ne fa la somma binaria
che darà una certa sequenza di “1” e “0”. Una volta che il frame verrà inviato il ricevitore per capire
se il frame ricevuto è uguale o diverso da quello inviato esegue l’operazione di check-sum rifacendo
la somma binaria dei bit che sono arrivati. Se il check-sum è diverso da quello di prima vuol dire
che c’è stato un errore di trasmissione.
Se prendo un errore nella stessa posizione, però, il risultato sarà uguale a quello di prima nonostante
ci sia un errore nel frame. Per evitare che questo accada vengono inviati 16 bit e non 8 in modo che
la tecnica risulti più robusta. E’ una procedura algebrica, viene infatti associato un polinomio al
frame da trasmettere P(X). Questo viene diviso per un polinomio generatore G(X) definito secondo
uno standard, dando dunque come risultato un certo quoziente Q(X) e un certo resto R(X). A
questo punto si aggiunge questo resto R(X) al polinomio associato al frame da trasmettere P(X) e lo
si ridivide per G(X). Questa volta risulterà un quoziente Q’(X) con resto nullo in caso di
trasmissione corretta, se invece questo resto sarà diverso da zero il frame è errato. Questo
procedimento crolla se le sequenze di errore sono lunghe quanto il polinomio generatore, il quale
nella norma è di 16 o 32 bit.

Potrebbero piacerti anche