Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
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
Legge di snell
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
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
17) Con riferimento alla Figura , descrivere l’intestazione del protocollo IP; per ciascun
campo spiegare qual’è la problematica che
viene risolta.
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
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
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
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à.
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).
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.