Sistemi e Tecnologie della
Comunicazione
Corso di Laurea in Informatica – Universita’ degli Studi di Genova – Alessandro Brunengo
Sistemi e Tecnologie della
Comunicazione
Lezione 1: introduzione e generalita’ sulle reti di trasmissione dati
Informazioni generali
Docente: Alessandro Brunengo
e-mail: [email protected]
telefono: [353] 6317
lab: Dipartimento di Fisica, PF1, L107
orario preferenziale: prendere appuntamento
Sito del corso:
http://www.ge.infn.it/~brunengo/STC
Informazioni generali

Orario delle lezioni:



Valutazione:




mercoledi’ ore 14-16 aula 711
venerdi’ ore 9-11 aula 711
prova orale
20-30 minuti, 2 domande (3 se necessario)
non e’ prevista una prova intermedia
Esami in date da definire (appelli a giugno, luglio,
settembre, febbraio)
Testi di riferimento




Lucidi delle lezioni (sul sito del corso)
A. S. Tanenbaum, “Reti di calcolatori”, IV
ed., Prentice Hall
W. Stallings, “Trasmissione dati e reti di
computer”, Jackson
W.Stevens, “Unix network programming”,
Prentice Hall
Programma



Generalita’ sulle reti di comunicazione
Architettura delle reti e modelli di riferimento (OSI,
TCP/IP)
Phisycal Layer









Funzionalita’ del livello fisico
Caratterizzazione di dati, segnali, trasmissione
Serie e trasformate di Fourier
Caratterizzazione del segnale in frequenza
Caratterizzazione del canale
Alterazione delle trasmissioni dati
Trasmissione dei segnali e codifica dei dati
Multiplexing
Mezzi trasmissivi
Programma (2)

Data Link Layer (connessioni punto-punto)






Funzionalita’ del livello di data link
Framing
Checksum e controllo errori
Gestione della trasmissione
Controllo di flusso
Esempi di protocolli
Programma (3)

Data Link Layer (connessioni broadcast)

Protocolli di accesso al canale
Protocolli Ethernet
Altri protocolli
LAN Wireless
Bridging e switching

Virtual LAN




Programma (4)

Network Layer

Funzionalita’ del livello di rete
Algoritmi di routing
Routing gerarchico
Routing multicast e broadcast
Controllo congestione

Tunneling




Programma (5)

Network Layer in TCP/IP

IP: struttura del pacchetto ed indirizzamento
ICMP
ARP/RARP/BOOTP
Protocolli di routing (RIP/OSPF/BGP)

IPV6 (cenni)



Programma (8)

Transport Layer

Funzionalita’ del livello di trasporto
Indirizzamento
Connessione
Controllo di flusso
Il trasporto in TCP/IP (Protocolli TCP ed UDP)

Cenni sulle librerie socket




Programma (9)



Cenni sullo sviluppo di Internet
Cenni sulla struttura della rete di
Dipartimento e della rete Universitaria
Cenni sulla struttura della rete di ricerca
nazionale ed internazionale
Generalita’ sulle reti


Esigenza emergente nel XX secolo: raccolta,
trasferimento, archiviazione ed accesso ad
informazioni (di tutti i tipi)
Le reti di comunicazione





telefono
radio
televisione
Le reti di computer
Convergenza della rete di comunicazione verso la
rete di computer
Scopi ed applicazioni delle reti di calcolatori

Condivisione delle risorse


Accesso a risorse centralizzate


potenza di calcolo, database, area di storage, accesso
alla rete esterna, modelli client-server
Affidabilita’ e performance



stampanti, scanner, fax, programmi, dati
ridondanza dei servizi condivisi
distribuzione del carico su piu’ server
Scalabilita’
Reti e sistemi distribuiti

Una rete di computer e’ un insieme di calcolatori
interconnesso


L’accesso ad una risorsa remota presuppone la
connessione esplicita verso un calcolatore della rete
(es. terminale remoto, file transfer)
Un sistema distribuito e’ un sistema di calcolatori
(interconnesso) e software che appaiono
all’utente come una unica risorsa

L’esistenza di diversi calcolatori e’ resa trasparente
all’utente tramite software (e hardware) opportuno
(es. database, WWW)
Evoluzione verso i servizi

Servizi bancari/economici/finanziari


Servizi di accesso ad informazioni


riviste, giornali, biblioteche, WWW
Comunicazione tra individui


acquisti, fatturazione, operazioni bancarie
posta elettronica, video conferenza, chat, newsgroop
Intrattenimento

video on demand, giochi distribuiti, realta’ virtuale
condivisa
Componenti di una rete


Calcolatori dedicati alla esecuzione dei
programmi utente (host o end system)
Sistema di interconnessione degli host
(sottorete), costituito da


linee di trasmissione (canali)
elementi di commutazione (IMP: Interface
Message Processor, Intermediate System)
Caratteristiche di una rete





Velocita’ di trasmissione
Affidabilita’
Flessibilita’
Scalabilita’
Costi
Unita’ di misura




bit: quantita’ minima di informazione (0 o 1)
byte: insieme di 8 bit
carattere: gruppo di bit costituente una informazione
unitaria (generalmente pari a 1 byte)
velocita’ di trasmissione dei dati:





b/s = 1 bit al secondo (anche bps)
Kb/s = 1000 b/s (Kbps)
Mb/s = 1000 Kb/s (Mbps)
Gb/s = 1000 Mb/s (Gbps)
velocita’ di trasmissione dei simboli:


baud = 1 simbolo al secondo
se 1 simbolo trasporta N bit di informazione, 1 baud = N b/s
Unita’ di misura (2)

Misure di tempo






secondo (s): misura base
millisecondo (ms): 0.001 s ( 103 s)
microsecondo (µs): 0.001 ms (106 s)
nanosecondo (ns): 0.001 µs (109 s)
picosecondo (ps): 0.001 ns (10 12 s)
Misure di occupazione disco:
10
 kilobyte (KB): 2
bytes (1.024 bytes)
20
 megabyte (MB): 2
bytes (1.048.576 bytes)
30
 gigabyte (GB): 2
bytes (1.073.741.824 bytes)
40
 terabyte (TB): 2
bytes
Topologie di rete

La topologia della rete e’ la configurazione
con cui gli host e gli IMP sono
interconnessi. Esistono sostanzialmente
due categorie di topologie:


broadcast: gli oggetti connessi in rete
condividono lo stesso mezzo trasmissivo (lo
stesso canale)
punto a punto: ogni canale connette
direttamente tra loro solo due oggetti
Topologie broadcast
Reti broadcast

La trasmissione dei dati di un host raggiunge tutti
gli altri. Sono possibili:






trasmissioni unicast (verso un singolo host)
trasmissioni multicast (verso gruppi di host)
trasmissioni broadcast (per tutti gli host connessi)
Protocolli semplici, alta affidabilita’
Va gestito il problema di allocazione del canale
Frequente nelle reti di piccole dimensioni
Topologie per reti punto a punto
Reti punto a punto


Fino ad alcuni anni fa, utilizzata nelle reti di
grandi dimensioni; ora alcune topologie
(albero) sono diffuse anche per reti di
piccole dimensioni
Nelle topologie non completamente
interconnesse va gestito il recapito dei dati
dalla sorgente alla destinazione tramite
l’inoltro a nodi intermedi, eventualmente
attraverso cammini multipli
Reti locali (LAN)





Reti che coprono un edificio o un campus (fino a qualche
Km), tipicamente di proprieta’ e gestite da una unica
organizzazione (private)
In passato quasi esclusivamente di tipo broadcast – ora
realizzate anche con topologie a stella e ad albero
Velocita’ trasmissive elevate (da 10 Mb/s a 10 Gb/s) un
tempo irraggiungibili su distanze elevate
Bassi tassi di errori trasmissivi
Esempi di protocolli:



Ethernet/Fast Ethernet/Gigabit Ethernet (bus ed albero)
FDDI (anello e doppio anello)
Token bus e token ring (bus ed anello)
Reti geografiche (WAN)






Copertura di aree estese (una regione, una
nazione, un continente, il pianeta)
Topologie punto a punto
Tassi di errore piu’ elevati (ma in calo con lo
sviluppo della tecnologia)
Velocita’ in passato piu’ basse che nelle LAN, ma
lo sviluppo della tecnologia ha reso possibili
velocita’ paragonabili o superiori
Costituiscono spesso la sottorete di
interconnessione tra reti locali
Generalmente pubbliche
Reti metropolitane (MAN)


Le reti metropolitane coprono distanze
dell’ordine di decine di Km (tipicamente
una citta’)
Spesso sono una evoluzione in crescita di
una o piu’ reti locali, o una infrastruttura
(generalmente pubblica) per
l’interconessione di reti locali della stessa
area geografica
Interconnessione di reti



Per interconnessione di reti (internet) si intende
un insieme di reti (LAN, MAN, WAN)
potenzialmente differenti nella struttura e nei
protocolli utilizzati, interconnesse.
L’interconnessione e’ realizzata attraverso
opportune apparecchiature (gateway) capaci
eventualmente di convertire i protocolli di una
rete nei protocolli dell’altra
Il termine Internet definisce la internet globale
che tutti conoscono
Sistemi e Tecnologie della
Comunicazione
Lezione 2: architettura delle reti e modello OSI
Standardizzazione



Una tecnologia di interesse prima o poi viene
prodotta a livello industriale
L’esistenza di diversi produttori con
implementazioni indipendenti ed incompatibili
genera caos
La definizione di standard e’ indispensabile:



per poter far cooperare oggetti di produttori diversi
perche’ aumenta il mercato dei prodotti che aderiscono
allo standard
Esistono standard de jure e de facto
ITU
International Telecommunication Union
 Nasce come esigenza di definire uno standard
per le telecomunicazioni tra i diversi paesi gia’ nel
1865 (prima telegrafia, poi telefonia)
 Nel 1947 diviene organismo delle Nazioni Unite
 Diviso in tre settori:



ITU-R (comunicazioni radio)
ITU-T (telecomunicazioni, noto fino al 1993 come
CCITT)
ITU-D (ricerca e sviluppo)
ITU (2)

Costituito essenzialmente da governi nazionali e membri
di settore (societa’ telefoniche, produttori di hardware,
produttori di servizi nel settore)



Ministreo delle Comunicazioni, FastWeb, Alcatel, TIM, Telecom
Italia, Vodafone Omnitel, Wind
Produce delle raccomandazioni (suggerimenti che i
governi possono adottare o meno) ma spesso diventano
standard riconosciuti
Esempi:



V.24 (EIA RS-232): comunicazione via porta seriale
CCITT X.25: standard per la comunicazione dati di tipo circuit
switching
V.90: standard per la comunicazione via modem a 56 Kbps
ISO
International Standard Organization
 Organizzazione che produce e pubblica gli
standard internazionali (su tutto)
 Membri: gli organismi di standardizzazione
nazionali dei paesi membri (89 nel 2004)



ANSI (per gli USA) uno dei membri principali
UNI (Ente Nazionale Italiano di Unificazione)
per l’Italia
L’ISO e’ membro dell’ITU
IEEE
Institute of Electrical and Electronics Engineers
 La piu’ grossa organizzazione professionale del
mondo
 Sviluppa ricerca e produce standards nei settori
di ingegneria elettrica e computers
 I suoi standard spesso vengono adottati come
standard internazionali. Ad es., sulle reti locali:



IEEE 802.3 (Ethernet)
IEEE 802.5 (Token ring)
IEEE 802.11 (Comunicazione wireless)
Standard di Internet





Molti degli standard adottati in Internet sono un esempio di standard
de facto
Alla creazione della prima rete embrionale Arpanet e’ stato creato un
comitato per la sua supervisione (IAB: Internet Activities Board)
In seguito all’ampliamento della rete si trasforma in organismo per
“orientare gli sviluppatori” con nuovo acronimo (Internet Architecture
Board)
I rapporti tecnici che produce si chiamano RFC (Request For
Comment), numerati sequenzialmente. Non hanno formalmente
valore di standard, ma di fatto lo sono.
Con la realizzazione di Internet l’informalita’ della gestione non regge
piu’: vengono creati due organismi:



IRTF (ricerca a lungo termine)
IETF (soluzioni rapide a problemi specifici)
Infine e’ stata creata la Internet Society, che elegge i membri di IAB.
E’ piu’ una associazione di interessati che un organismo di
standardizzazione.
Architettura di rete
•
•
Una rete e’ costituita da componenti
hardware (cavi, interfacce, circuiti integrati,
processori, RAM,…) e componenti software
(per la implementazione di algoritmi
finalizzati al trasferimento dei dati non
realizzabili in hardware).
L’architettura di una rete definisce le
specifiche con cui si vuole realizzarla
Architettura strutturata




Per ridurre la complessita’ del problema lo
si spezza in parti
Si definisce l’insieme di compiti che ogni
parte deve eseguire
Si definiscono i meccanismi con cui le
diverse parti interagiscono tra loro
Si maschera la implementazione di
ciascuna parte alle altre parti
Architettura stratificata






Una strutturazione ritenuta idonea per una architettura di rete e’ la
stratificazione
La rete viene strutturata in livelli (strati, o layer), visti come una pila
di oggetti
Ciascuno strato ha come compito quello di fornire un servizio allo
strato superiore.
La definizione delle regole di accesso ai servizi offerti da uno strato
costituisce la interfaccia tra quello strato e lo strato superiore, ed e’
l’unica cosa che lo strato superiore deve conoscere
Ciascuno strato realizza i servizi per lo strato superiore comunicando
logicamente con lo strato paritario del nodo remoto, attraverso un
insieme di regole dette protocollo. Lo scambio di dati con lo strato
paritario viene realizzato fisicamente utilizzando i servizi dello strato
sottostante.
I dettagli implementativi di come i servizi che lo strato N fornisce allo
strato N+1 vengano realizzati (il protocollo di strato N) sono
sconosciuti agli altri strati
Struttura a strati
Lo strato

Uno strato e’ definito quando sono definite le sue
funzioni



Uno strato puo’ occuparsi dello scambio dei dati tra
due applicazioni, senza occuparsi di questioni relative
al modo in cui i dati debbano viaggiare sulla rete, o
alla codifica dei dati
Un altro strato puo’ occuparsi di come recapitare i dati
attraverso i vari nodi della sottorete, senza occuparsi
ne’ del significato dei dati, ne’ del modo in cui vanno
codificati i bit sul mezzo trasmissivo
Un terzo strato puo’ infine occuparsi della
comunicazione tra nodi adiacenti, senza preoccuparsi
di quale sia il destinatario finale dei dati, ne’ del
significato dei dati stessi
Il protocollo


Un protocollo e’ un insieme di regole che definiscono la
comunicazione tra due (o piu’) entita’
Esempio: protocollo per trasferimento di file




il client comunica al server “voglio trasferire un file” ed attende la
risposta dal server
il server risponde “e tu chi sei?” ed attende la comunicazione dal client
il client invia lo username
il server risponde







non sei autorizzato
dammi la password
nel primo caso il client chiude, nel secondo invia la password
il client comunica il nome del file che vuole trasferire
il server fornisce il file
il client legge il file e lo copia localmente
alla fine il server chiude la comunicazione
Protocol Data Unit


Il protocollo definisce quindi le modalita’ con cui due
entita’ comunicano
Generalmente un protocollo prevede lo scambio di dati e
di informazioni di controllo per gestire la comunicazione;
ad esempio:




informazioni di controllo per negoziare le caratteristiche della
comunicazione (la dimensione dei pacchetti, la velocita’, …)
informazioni di riscontro (acknowledge) sulla ricezione dei dati
Il pacchetto unitario (dati o informazioni di controllo) che
si scambiano due strati pari e’ detto PDU
Normalmente ci si riferisce alla PDU dello strato X con la
sigla X-PDU, o XPDU
Il servizio

Il servizio offerto da uno strato allo strato
superiore definisce cosa lo strato superiore puo’
ottenere dallo strato inferiore; ad esempio:





servizio di recapito dei dati affidabile o non affidabile
servizio orientato alla connessione o connection less
lo strato puo’ implementare il controllo di flusso
servizi di comunicazione multicast o broadcast
Il servizio e’ sostanzialmente la definizione di un
rapporto client-server, dove il client e’ lo strato
superiore ed il server e’ lo strato inferiore
L’interfaccia




L’interfaccia tra due strati adiacenti definisce le modalita’
con cui lo strato superiore puo’ usufruire dei servizi offerti
allo strato inferiore
L’interfaccia e’ specificata dalla definizione di primitive di
servizio, che istruiscono lo strato inferiore ad eseguire
determinate azioni
L’interfaccia definisce anche i parametri che gli strati si
scambiano (ad esempio un puntatore alla PDU che lo
strato superiore deve inviare o ched lo strato inferiore
deve recapitare)
nel caso di implementazioni software, le primitive di
servizio sono di fatto chiamate a funzione, ed i parametri
sono gli argomenti delle funzioni
Definizione della architettura

L’architettura della rete si realizza con la
definizione degli strati (partizionamento
delle funzionalita’), dei protocolli (come
comunicano i processi paritari) e delle
interfacce tra gli strati (quali servizi offre
uno strato allo strato superiore e come lo
strato superiore accede allo strato
inferiore)
Flusso dei dati
Flusso dei dati (2)



Ogni livello organizza la sua comunicazione come se avvenisse
direttamente con il processo paritario, secondo il protocollo (flusso
virtuale).
I dati in realta’ scorrono dal livello superiore al livello inferiore nel
nodo che trasmette, ed in senso inverso nel nodo che riceve
In generale un livello N preleva la PDU del livello N+1, e costruisce la
propria PDU:





se necessario spezza la PDU dello strato superiore in pezzi
aggiunge in testa a ciascun pezzo un header con informazioni di controllo
se deve, aggiunge in coda a ciascun pezzo un trailer con informazioni di
controllo
ciscun pezzo cosi’ formato costituisce una PDU del livello N
Il livello N accede quindi ai servizi dello strato N-1 per inviare i dati al
processo paritario N sul nodo remoto
Servizi orientati alla connessione

La comunicazione si sviluppa in tre fasi:




attivazione della connessione: in questa fase non ci si
scambiano “dati”, ma si eseguono le operazioni
necessarie al successivo scambio di dati (si allocano le
risorse, ci si accorda sulle modalita’ di comunicazione,
eventualmente si rifiuta la connessione, …)
trasferimento dati: non e’ necessario che i dati siano
indirizzati, in quanto la loro destinazione e’
determinata dall’appartenenza ad una connessione.
rilascio della connessione: il rilascio lo si fa in modo
che entrambi i lati della connessione siano consapevoli
di cio’, e rilascino le risorse
L’esempio classico di servizio connection oriented
e’ la comunicazione telefonica
Servizi non orientati alla connessione



La comunicazione non prevede una fase
iniziale, ne’ una fase finale: i dati vengono
inviati alla controparte senza sapere se e’
pronta a riceverli.
Ogni blocco di dati deve riportare l’indirizzo
del destinatario (e del mittente)
Il servizio non orientato alla connessione
funziona come il servizio postale
Qualita’ del servizio

Servizio affidabile



garantisce che i dati arrivino correttamente a
destinazione, nell’ordine giusto
il servizio connection less puo’ implementare un
servizio affidabile utilizzando riscontri sulla ricezione
(esempio: posta raccomandata). Il meccanismo dei
riscontri (ed eventuale ritrasmissione dei dati)
introduce ritardi nella ricezione dei dati
Servizio inaffidabile

non si occupa di garantire la riuscita del trasferimento
dei dati, o dell’ordinamento degli stessi: qualora fosse
necessario, si occuperanno della cosa gli strati
superiori.
Qualita’ del servizio (2)

I servizi orientati alla connessione si possono classificare:




flusso affidabile di messaggi (servizio affidabile orientato al
messaggio: una sequenza di pagine di un libro, fax)
flusso affidabile di byte (servizio affidabile orientato al byte:
trasferimento file)
connessione inaffidabile (servizio non affidabile: telefonia)
I servizi non orientati alla connessione si possono
classificare:


servizio di datagramma inaffidabile (servizio inaffidabile: accesso
ad un database)
servizio di datagramma affidabile (protocolli di data link layer)
Modello OSI



Nel 1977 l’ISO ha costituito un gruppo che
producesse uno standard universale per le
architetture di rete
Il modello e’ stato pubblicato nel 1983 col nome
OSI (Open System Interconnection)
Lo scopo e’ quello di definire una architettura
(strati, protocolli, interfacce) in modo
sufficientemente preciso da consentire
implementazioni indipendenti ma interoperanti

in realta’ il modello non definisce esattamente i
protocolli ed i servizi, ma piu’ in generale quello che
ogni strato deve fare; le specifiche di protocolli e
servizi sono state definite e pubblicate a parte.
Livelli del modello OSI
Livelli OSI: fisico



Lo strato fisico si occupa della trasmissione dei
bit sul mezzo trasmissivo
La sua funzione e’ di fare in modo che un bit 0
sia ricevuto dal livello fisico del nodo remoto
come bit 0, e non come 1
Problemi tipici di questo livello sono:



la codifica (i valori delle tensioni, la durata dei bit)
proprieta’ meccaniche dei connettori
specifiche elettriche dei circuiti dell’interfaccia
Livelli OSI: data link


Lo strato di data link si occupa di trasformare una
trasmissione di bit grezzi tra nodi adiacenti in una
linea di trasmissione priva di errori non
riconosciuti
Esegue funzioni quali





divisione dei dati in frame
controllo degli errori
conferma della ricezione (acknowledge)
controllo del flusso
controllo di accesso al mezzo trasmissivo in caso di
canali condivisi (substrato MAC: Medium Access
Control)
Livelli OSI: network


Lo strato di network si occupa del recapito dei
dati tra nodi non necessariamente adiacenti
(quindi del funzionamento della sottorete di
comunicazione)
Funzioni caratteristiche sono:





suddivisione dei dati in pacchetti
indirizzamento dei nodi della rete
recapito a destinazione (su quale canale uscente
inoltrare i dati provenienti da un canale), solitamente
basandosi su tabelle
modalita’ di definizione ed aggiornamento delle tabelle
controllo della congestione, dei ritardi, dei tempi di
transito
Livelli OSI: transport



Lo strato di trasporto deve prelevare dati dallo
strato superiore, eventualmente suddividerli in
unita’ piu’ piccole, ed inviarli (tramite lo strato di
rete) la nodo remoto occupandosi di controllare
che le unita’ arrivino al processo pari del nodo
remoto nell’ordine di trasmissione
E’ il primo protocollo end-to-end
Deve occuparsi del tipo di servizio offerto allo
strato superiore (affidabile, non affidabile)


OSI specifica solo un servizio connection oriented
Affronta diverse problematiche simili a quelle del
livello di data link
Livelli OSI: session

Lo strato di sessione si occupa del controllo
del dialogo


controllo su quale delle due parti abbia diritto
di trasmettere
supervisione di una connessione lunga con
eventuale ripristino della connessione in caso
di fallimento del livello sottostante
Livelli OSI: presentation

Il livello di presentazione si occupa
essenzialmente di rendere trasparente eventuali
rappresentazioni differenti dei dati

codifiche differenti dei dati (ASCII/EBCDIC, …)




ASCII: American National Standard Code for Information
Interchange
EBCDIC: Extended Binary Coded Decimal Interchange Code
compressione
crittografia
Livelli OSI: application


Il livello di applicazione si occupa di
definire le specifiche che le applicazioni
utente possono utilizzare per accedere alla
rete
L’ISO ha fornito specifiche su sole tre
applicazioni:



FTAM (file transfer)
X.400 (posta elettronica)
X.500 (servizio di directory)
Schema del modello OSI
Service Access Point





Uno strato puo’ fornire
servizio a piu’ entita’ dello
strato superiore
Per essere identificabili
queste entita’ devono
avere un indirizzo
L’indirizzo generico di accesso ad uno strato si chiama
Service Access Point (SAP)
L’indirizzo di accesso allo strato di Network e’ detto
NSAP, allo strato di trasporto TSAP
Lo strato N del computer ricevente deve sapere a
quale entita’ dello strato N+1 deve recapitare le
informazioni, quindi ricevere dal pari l’informazione
del SAP dello strato N+1 destinatario
Primitive di servizio

Nel modello OSI ci sono 4 categorie di
primitive:




request: una entita’ chiede al servizio di fare
qualcosa
indication: una entita’ deve essere informata
su un qualche evento
response: una entita’ vuole rispondere ad un
evento
confirm: una entita’ deve essere informata
sulla sua richiesta
Esempio

1

4
5
7
In una comunicazione orientata alla connessione tra due
computer si avra’ la seguente sequenza:
connect.request: lo strato N
chiede che venga stabilita una
connessione
connect.confirm: lo strato
N-1 informa sulla realizzazione
della connessione
data.request: lo strato N
chiede di inviare dati
disconnect.request: lo
strato N chiede di chiudere la
connessione
2
3
6
8
connect.indication: lo strato
N viene informato sulla
richiesta di connessione
connect.response: lo strato
N accetta (o rifiuta) la
connessione
data.indication: lo strato N
viene avvisato che sono
arrivati dati
disconnect.indication: allo
strato N viene notificata la
richiesta di disconnessione
Sistemi e Tecnologie della
Comunicazione
Lezione 3: Architettura TCP/IP
Commutazione di circuito




Una rete estesa, a topologia irregolare, deve occuparsi di
come fare a realizzare una comunicazione tra nodi
distanti
La tecnologia a commutazione di circuito prevede che si
stabilisca a priori un percorso dedicato alla trasmissione
dei dati, definendo la sequenza di linee punto punto che
costituiranno il cammino verso la destinazione
Le risorse dedicate alla trasmissione vengono allocate e
dedicate a quella specifica trasmissione, e vengono
rilasciate alla fine della trasmissione dati
Una volta stabilito il circuito, i dati vengono instradati da
ogni nodo intermedio verso il canale di uscita predisposto,
senza introdurre ritardi
Schema di commutazione di circuito
Commutazione di pacchetto





La tecnologia a commutazione di pacchetto segue una
logica completamente differente
nessuna risorsa viene preventivamente allocata per la
trasmissione dei dati
i dati vengono separati in pacchetti, ciascuno dei quali
viene inviato indipendentemente dagli altri
i pacchetti possono arrivare a destinazione in tempi
diversi, con ritardi e perdite, lungo cammini
potenzialmente differenti
ogni nodo della rete riceve il pacchetto, lo memorizza,
prende una decisione su dove instrararlo e lo invia
Schema di commutazione di pacchetto
Considerazioni sulla commutazione

La commutazione di circuito ha le caratteristiche



preallocazione risorse, quindi non c’e’ congestione
predefinizione del circuito, quindi non c’e’ ritardo per la
trasmissione
La commutazione di pacchetto e’ caratterizzata
da


maggiore efficienza perche’ le risorse inutilizzate sono
disponibili per altri
maggiore flessibilita’ per guasti sulla rete: i pacchetti
successivi al guasto possono trovare un’altra strada
Modello TCP/IP


Il modello nasce da un progetto del Dipartimento
della Difesa USA per la realizzazione di una rete
di trasmissione solida per le necessita’ del DoD
(Advanced Research Project Agency)
Lo scopo era quello di realizzare una rete di
trasmissione dati dotata delle caratteristiche:



Solidita’ rispetto a potenziali eventi distruttivi di una
parte della rete
Possibilita’ di mettere in comunicazione reti differenti
sparse sul territorio
L’ARPA decise di progettare e sviluppare una rete
a commutazione di pacchetto
Architettura del TCP/IP




Il TCP/IP e’ nato come realizzazione di un insieme di pezzi
che svolgessero determinate funzioni
Questi pezzi sono stati sviluppati talvolta per risolvere
problemi circostanziati, senza un disegno architetturale a
priori
Solo dopo la sua realizzazione si e’ tentato di fornire una
descrizione in termini di architettura stratificata, in modo
analogo al modello OSI
La stratificazione risulta tuttavia meno precisa e meno
vincolante rispetto al modello OSI (ad esempio, non e’
rigoroso l’impiego di tutti i livelli)
Strati del TCP/IP

TCP/IP ha una architettura stratificata, come OSI,
ma a soli 3 livelli:




Application: livello che si occupa di fornire un accesso
alla rete alle applicazioni. E’ un livello che equivale ai
livelli 5, 6 e 7 di OSI.
Transport: livello di trasporto end-to-end, equivalente
al livello 4 di OSI
Internet: livello di interconnessione di reti,
sostanzialmente equivalente nelle funzioni al livello 3
di OSI
Sotto al livello internet, non viene specificato
nulla se non che deve esistere un modo per
recapitare i pacchetti del livello internet; questo
talvolta e’ indicato come ulteriore livello, detto di
accesso alla rete (host to network)
Il livello internet





Il livello internet si occupa di come recapitare i dati nella
sottorete (routing), e di inviarli infine nella rete di
destinazione.
E’ specificato un protocollo non orientato alla
connessione: IP (Internet Protocol)
Il protocollo richiede che per ogni computer connesso alla
rete sia definito un indirizzo univoco (indirizzo IP)
Questo protocollo suddivide i dati in pacchetti e li instrada
utilizzando tabelle che fanno corrispondere ad ogni
indirizzo IP un canale in uscita
Funzione di questo livello e’ anche la costruzione ed il
mantenimento dinamico delle tabelle; sono definiti per
questa funzione protocolli che possono essere inseriti in
questo strato, anche se utilizzano IP come se fosse un
sottolivello
Il livello di trasporto

Il modello definisce due protocolli differenti per il
trasporto:




TCP (Transmission Control Protocol) che realizza un servizio di
trasporto end-to-end affidabile orientato alla connessione. Questo
protocollo si occupa di tutte le questioni caratteristiche del livello
di trasporto di OSI
UDP (User Datagram Protocol) che realizza un servizio inaffidabile
connection less
Le applicazioni accedono a questi protocolli tramite i punti
di accesso al servizio, che nel modello si chiamano porte
(port)
Entrambi i protocolli segmentano i dati del livello di
applicazione, aggiungono un header, e passano i
segmenti al livello di internet
Livello di applicazione


Originariamente le applicazioni disponibili erano terminale
remoto, file transfer e posta elettronica
Esistono oggi innumerevoli applicazioni basate su TCP/IP









terminale remoto: telnet, rsh, ssh
file transfer: ftp, sftp
trasferimento pagine di ipertesto: http
trasferimento messaggi: smtp, nntp
controllo remoto dei nodi della rete: snmp
trasporto di interfacce grafiche: X
conversione nomi-indirizzi: dns
sincronizzazione tra computer: ntp
…
Flusso dei dati in TCP/IP
Schema dei livelli del TCP/IP
Considerazioni sui modelli







Il modello OSI e’ stato pensato a lungo, ed architettato con cura, ed
e’ stato realizzato con una chiara definizione delle funzionalita’ e dei
confini tra le sue componenti
Tuttavia la complessita’ e la mancanza di esperienza sul campo
hanno reso difficile la implementazione pratica funzionale del
protocollo
Lo standard e’ arrivato troppo tardi: il mondo aveva gia’ preso
un’altra strada
Alcuni strati sono sostanzialmente inutili, altri molto pesanti
Molte funzionalita’ vengono ripetute in modo inefficiente in strati
differenti, e mancano funzionalita’ utili (un servizio connection less a
livello di trasporto)
E’ stata realizzata una implementazione che ha avuto una certa
diffusione: Decnet/OSI (dalla DEC): questa e’ stata utilizzata per
alcuni anni nella rete di ricerca internazionale, ed in seguito
abbandonata
Nonostante dichiarazioni di intenti (il DoD affermo’ che avrebbe
pensionato i protocolli TCP/IP per una migrazione verso OSI) questa
architettura non ha sfondato
Considerazioni sui modelli (2)





Il modello TCP/IP gode i frutti di una solida esperienza sul
campo
Il suo utilizzo, diffuso anche grazie alla diffusione del
sistema operativo Unix che utilizza TCP/IP come
protocollo di rete nativo, si e’ ampliato fino a sbaragliare
la concorrenza
La sua architettura non e’ ben definita nelle separazioni
delle funzioni, e il concetto di stratificazione e’ violato (o
violabile) in molte circostanze
Il modello e’ inadatto a descrivere protocolli differenti dal
TCP/IP, quindi e’ legato alla implementazione specifica
Manca totalmente una definizione di come si debba fare
per accedere al mezzo fisico (in pratica e’ incompleto)
Confronto tra i modelli
Apocalisse dei due elefanti
Modello ibrido

Spesso per parlare di reti si prende come punto di riferimento
l’architettura OSI, ma si prende atto che i livelli di session e
presentation sono sostanzialmente inutili, e si adotta una struttura a
5 livelli:







applicazione
trasporto
rete
data link
strato fisico
In questo modo si puo’ parlare delle architetture OSI e TCP/IP
disponendo di una corrispondenza uno a uno tra gli strati,
assumendo che il modello TCP/IP raggruppi nello strato di accesso
alla rete i primi due strati OSI (che poi e’ quello che accade in
pratica)
Nel corso adotteremo questa struttura, fermandoci al livello di
trasporto
Sistemi e Tecnologie della
Comunicazione
Lezione 4: strato fisico: caratterizzazione del segnale in frequenza; formula di Nyquist
Lo strato fisico

Le principali funzioni dello strato fisico sono






definizione delle interfacce meccaniche (specifiche dei connettori)
tra il mezzo trasmissivo ed il computer
definzione delle interfacce elettriche o ottiche (definizione dei
livelli di tensione, lunghezze d’onda dei segnali)
codifica del segnale (rappresentazione dei dati in termini delle
caratteristiche del segnale, modulazione)
amplificazione e rigenerazione del segnale
definizione delle specifiche del mezzo trasmissivo (cavi, fibre)
Lo strato fisico riceve dal livello superiore un insieme di
bytes (frame) e lo trasmette sul mezzo trasmissivo come
un flusso di bit indipendenti
Trasmissione delle informazioni


Le informazioni nella trasmissione dati vengono
inviate tramite propagazione di segnali
elettromagnetici (tensioni, onde radio, luce, …)
utilizzando diversi mezzi trasmissivi (cavi in rame,
fibre ottiche, aria, spazio vuoto)
L’informazione trasmessa viene codificata tramite
la variazione di caratteristiche del segnale
trasmesso, ed interpretata in ricezione secondo le
stesse regole
Esempio

Possiamo ad esempio pensare di trasmettere la
sequenza di bit 0101100100100 tramite un
segnale ad impulsi quadri di lunghezza T in modo
che al bit 0 corrisponda un valore di tensione 0,
al bit 1 corrisponda un valore di tensione V
Segnali periodici


Nella trasmissione dati
hanno particolare
importanza i segnali
periodici
Caratteristiche:




ampiezza (A): livello
massimo del segnale
fase (φ): misura della
posizione relativa del
segnale ad un dato istante
periodo (T): intervallo
temporale della periodicita’
frequenza (f): inverso del
periodo
1
1
f  in Hertz : 1Hz 
T
sec
Caratteristiche dei segnali periodici
Altre caratteristiche

Per i segnali sinusoidali si definiscono anche:



lunghezza d’onda (λ): la distanza in metri tra due punti di uguale fase in
periodi adiacenti (la distanza tra due creste d’onda)
velocita’ di propagazione (v): la velocita’ con cui si sposta una cresta
d’onda nello spazio
In base alle definizioni si ha:
v


T
 f
Velocita’ delle onde elettromagneliche:
c  3  108 m/s (nel vuoto), c  2  108 m/s (nel rame)

Per la luce si ha
f  1014  1015 Hz    3  106  3  107 m
Somma di onde sinusoidali




La somma di onde
sinusoidali le cui
frequenze sono multipli
di una di esse e’ ancora
un segnale periodico
La frequenza piu’ bassa
si chiama fondamentale
La frequenza fn  n  f0
si chiama armonica
n-esima
La frequenza del
segnale risultante e’
pari alla frequenza
fondamentale
Caratterizzazione dei segnali in frequenza





In generale un segnale trasmesso in un certo modo in ricezione
si presenta differente a causa di effetti dovuti alla trasmissione
La trattazione dei segnali in termini della loro evoluzione
temporale si rivela complessa
Come vedremo in seguito puo’ caratterizzare la risposta della
trasmissione dei segnali in funzione della frequenza di un segnale
sinusoidale generato in trasmissione
Poiche’ non tutti i segnali sono sinusoidali, ne’ periodici, risulta di
fondamentale importanza ricondurre la trattazione di un qualsiasi
segnale in termini di segnali sinusoidali (a frequenza definita)
Esiste una teoria matematica, elaborata da Fourier, che ci
permette di considerare ogni segnale come somma di segnali
sinusoidali
Serie di Fourier


Data una qualsiasi funzione periodica di periodo T continua con
derivata continua a tratti e limitata, e’ possibile scriverla come
somma di seni e coseni:

a0 
v ( t )    an  cos2nf0 t    bn  sin 2nf0 t 
2 n1
n1
dove f0 = 1/T e’ la frequenza della funzione
I coefficienti dello sviluppo sono dati dalle relazioni:
2 T
a0    v ( t )dt
T 0
2 T
an    v ( t ) cos2nf0 t dt
T 0
2 T
bn    v ( t ) sin 2nf0 t dt
T 0
Esempio 1: funzione coseno

Eseguiamo lo sviluppo di Fourier della funzione
v( t )  A cos( 2f0t   )

I coefficienti sono:
T
2
a0   A cos2f0 t   dt  0
T 0
T
2
0 per n  1
an   A cos2f0 t    cos2nf0 t dt  
T 0
 A cos  per n  1
T
2
0 per n  1
bn   A cos2f0 t   sin 2nf0 t dt  
T 0
 A sin   per n  1

Quindi lo sviluppo e’:
A cos2f0t     A cos cos2f0t   A sin  sin 2f0t 
Forma esponenziale della serie di Fourier

La serie di Fourier puo’ essere scritta in modo piu’
generale (anche per funzioni complesse) nella forma:
f (t ) 
1
cn 
T


i 2nfo t
c

e
n
n 
T

f ( t )  e i 2nfo t dt
0
Per le funzioni reali si ha:
c n  cn
a0  c0 , an  2  Re cn , bn  2  Imcn 
Esempio 2: onda quadra

L’onda quadra e’ definita come:
T

 A per kT  t  kT  2 , k  Z
v(t )  
 A per kT  T  t  k  1T , k  Z

2
Esempio 2: onda quadra

Il calcolo di coefficienti per l’onda quadra
fornisce:
0 per n pari

cn   2A
i
per
n
dispari
 n
4A
sin( 2 nf0 t )
v t  

 n disp.
n
Altra rappresentazione

La serie di Fourier si rappresenta anche come
serie di soli coseni:

v t   v0   vn cos( 2nf0 t   n )
n1
dove
vn  an2  bn2
 bn 
 n   arctan  
 an 
Segnali non periodici




Benche’ improprio, si puo’ pensare ad un segnale
non periodico come ad un segnale periodico di
periodo infinito
La frequenza fondamentale (quindi la distanza tra
le armoniche) si riduce a zero
La rappresentazione del segnale tramite serie di
Fourier, in questo limite, sara’ costituita da
somma di frequenze sempre piu’ vicine
all’aumentare del periodo
La serie di Fourier si trasforma da somma in
integrale
Trasformata di Fourier

Data una funzione v(t) integrabile, non periodica e tale che:
si ha:



v(t ) dt  
2

i 2ft


v(t )   V f e df

dove
V ( f )  vt    vt e


si dice trasformata di Fourier di v
i 2ft
dt
Rappresentazione spettrale di un segnale



Il grafico delle ampiezze
rispetto alle frequenze di cui
e’ composto il nostro
segnale si chiama
rappresentazione spettrale
Le righe della
rappresentazione spettrale
mostrano il contributo alla
ampiezza del segnale
dovuto alle relative
frequenze
Se il segnale ha un valore
medio non nullo (cioe’ il
coefficiente a0 non e’ nullo)
il segnale ha una
componente continua (a
frequenza nulla)
Spettri continui e discreti


Una funzione periodica e’ esprimibile come
somma di funzioni sinusoidali a frequenze che
sono multipli interi della frequenza del segnale,
quindi ha uno spettro discreto, cioe’ costituito da
un insieme discreto di frequenze
Una funzione non periodica e’ esprimibile come
integrale di funzioni sinusoidali; le sue
componenti possono avere qualsiasi frequenza,
quindi avra’ uno spettro continuo
Esempio di spettro continuo

Il segnale di impulso quadro di ampiezza A
e periodo T ha per trasformata di Fourier la
funzione S ( f )  AT  sinTf 
Tf
il cui spettro e’ mostrato in figura
Potenza di un segnale

Si definisce potenza media del segnale periodico la quantita’:
1
P
T


 cn
n 

0
f t  dt
2
In base alle trasformazioni di Fourier, si puo’ dimostrare che la
potenza media del segnale periodico e’ data da (teorema di
Parseval):
P


T
2
2

 a0 
     an2  bn2 
 2  n1
Spesso la rappresentazione spettrale viene fatta graficando il modulo
dei coefficienti di Fourier dello sviluppo, evidenziando il contributo
alla potenza del segnale dovuto alle diverse armoniche
Al limite per n
∞ il contributo alla potenza delle armoniche tende
a zero (quindi i contributi principali vengono dalle armoniche piu’
basse)
Spettro dei contributi alla potenza
Larghezza di banda di un segnale




La larghezza di banda di un segnale e’ data
dall’intervallo delle frequenze di cui e’ composto il
suo spettro
Generalmente un segnale ha banda infinita
Tuttavia spesso la potenza del segnale e’
contenuta per la maggior parte in un insieme
limitato di frequenze
Questo intervallo limitato di frequenze si dice
banda efficace del segnale
Limitazione della banda in trasmissione




Nella trasmissione dei segnali e’ impossibile
trasmettere tutte le frequenze di cui e’ composto
il segnale stesso
Il mezzo trasmissivo, la tecnologia che genera il
segnale o scelte volontarie impongono una
limitazione alla banda utilizzabile
La trasmissione di un numero limitato delle
armoniche del segnale fa si che in ricezione il
segnale apparira’ differente
Maggiore e’ il numero di armoniche trasmesse,
migliore apparira’ il segnale in ricezione
Effetto della limitazione di banda




Supponiamo di voler trasmettere il carattere ASCII ‘B’, che secondo la
codifica e’ dato dalla sequenza di bit 01100010, ad una velocita’ di
trasferimento di 2000 bps
Il segnale che rappresenta il carattere di 8 bit avra’ un periodo di
8/2000 secondi, quindi una frequenza fondamentale pari a 250 Hz
La trasmissione su un canale con banda limitata permettera’ di
trasmettere solo le prime armoniche
Vediamo nella figura seguente come un canale con 2 KHz di banda (8
armoniche) permette una ricostruzione agevole del segnale inviato,
mentre un canale con banda ridotta a 500 Hz (2 armoniche) rende
molto piu’ problematica la ricostruzione dei bit trasmessi, che diventa
impossibile lasciando passare solo la prima armonica
Effetti della limitazione di banda
Velocita’ di trasmissione e larghezza di banda





Con lo stesso esempio possiamo vedere come la presenza
di un canale a banda limitata, di fatto limita la velocita’ di
trasmissione dati ottenibile sul canale
Supponiamo di avere una linea telefonica, la cui larghezza
di banda e’ circa 3.1 KHz, e di trasmettere il carattere di
prima alla velocita’ di B bit al secondo
La frequenza del segnale (cioe’ la frequenza della prima
armonica) sara’ B/8 Hz
Ne segue che l’armonica piu’ alta che potra’ attraversare il
canale avra’ n=3000/(B/8), cioe’ 24000/B.
Da questo consegue che, ad esempio, una trasmissione a
9600 bps lascera’ passare soltanto le prime due
armoniche, compromettendo la ricostruibilita’ dei bit in
ricezione, mentre una trasmissione a 2400 o 4800 bps
sara’ efficace.
Formula di Nyquist

Nyquist ha dimostrato una relazione tra la velocita’ di
trasmissione ottenibile attraverso un canale a banda
limitata:

il tasso di trasmissione dati massimo ottenibile attraverso un
canale privo di rumore con larghezza di banda H e’ dato da
B  2  H bit/s

Se si trasmettono segnali multilivello, con molteplicita’ M, il tasso
di trasmissione massimo e’ dato da:
B  2  H  log 2 M bit/s
Sistemi e Tecnologie della
Comunicazione
Lezione 5: strato fisico: caratterizzazione del canale in frequenza; capacita’ del canale
Linee di trasmissione e circuiti



Una linea di trasmissione dati puo’ essere vista come un
circuito che fa corrispondere ad un segnale in ingresso un
segnale in uscita
Il comportamento di un circuito viene descritto dalla sua
risposta in frequenza, vale a dire dalle caratteristiche del
segnale in uscita in corrispondenza ad un segnale
sinusoidale in ingresso
Si definisce funzione di trasferimento il rapporto tra il
segnale in uscita e quello in ingresso, che in genere
dipendera’ dalla frequenza del segnale in ingresso
Circuiti lineari

Un circuito lineare soddisfa le seguenti caratteristiche: detto I il
segnale di ingresso e U il segnale in uscita:






U = f(I)
f(I1+I2) = f(I1)+f(I2)
f(aI) = af(I)
La risposta di un circuito lineare ad un segnale sinusoidale sara’ in
generale un segnale sinusoidale alla stessa frequenza, con fase ed
ampiezza differenti
L’effetto del circuito sul segnale di ingresso cambiera’ al variare della
frequenza del segnale di ingresso
Il comportamento in funzione della frequenza e’ la caratterizzazione
del circuito in frequenza (cioe’ la definizione di come variano
l’ampiezza e la fase dell’uscita in funzione della frequenza)
Root Mean Square Amplitude

La potenza di un segnale sinusoidale del tipo:
vt   V sin( 2ft )
dove V e’ l’ampiezza ed f la frequenza, e’ data da:

Il valore
1
P
T

T
0
V2
v( t ) dt 
2
2
2
VRMS

V
V


2
2
e’ detto ampiezza quadratica media del segnale
Ad esempio, l’alimentazione elettrica domestica e’ data da
un segnale di tensione a 50 Hz, con VRMS=220 volt
Decibel

Per confrontare potenze o ampiezze relative si fa utilizzo
di una misura del rapporto in scala logaritmica, detto
decibel:
 P2 
dB  10  log  
 P1 

In caso di segnali sinusoidali, il decibel si puo’ esprimere
come:
 V2 2RMS 
 V2 


dB  10  log
 20  log  
2
 V

 V1 
1
RMS 

Ad esempio:





V2
V2
V2
 10  20 dB,
 0.1  20 dB,
 0.5  3 dB
V1
V1
V1
Diagrammi di Bode

La rappresentazione grafica della funzione di
trasferimento e’ realizzata tipicamente graficando il suo
modulo in dB in funzione della frequenza, anch’essa in
scala logaritmica (diagramma di Bode)
e la sua fase, anch’essa in funzione della frequenza
sempre espressa in scala logaritmica
Esmpio: circuito RC

Come esempio, calcoliamo la funzione di
trasferimento di un circuito RC misurando la
tensione in uscita ai capi del condensatore;
qui ed in seguito si esprimera’ la frequenza in
termini di pulsazione:   2f
Vin  vi e it
1
Vin
Vout 
iC R  1
iC
1
H 
1   2 R 2C 2
Arg ( H )  arctan  RC 
Diagramma del circuito RC
Frequenza di taglio





Il circuito RC di esempio lascia passare pressoche’
inalterate le frequenze inferiori ad un certo valore, mentre
attenua l’ampiezza di quelle superiori
Il circuito si comporta quindi come un filtro che elimina le
alte frequenze
I filtri di questo tipo si chiamano filtro passa basso
Si definisce frequenza di taglio la frequenza per la quale
si ha un valore di -3dB del rapporto tra le ampiezze
(corrispondente al dimezzamento del livello del segnale)
Nel caso del circuito RC visto ora, la frequenza di taglio
corrisponde alla frequenza
1
c 
RC
Filtro passa alto

Analizzando la risposta ad un circuito RC
misurando la tensione ai capi della resistenza si
ha:
Vin  vi e it
Vout  R
Vin
1
iC
1
H 
1
1 2 2 2
 RC
 1 
Arg ( H )  arctan 

 RC 
R
Filtro passa alto


In questo caso le frequenze che passano
inalterate sono quelle alte, mentre
vengono filtrate le basse frequenze
La frequenza di taglio, valutata sempre
come la frequenza a -3 dB, vale ancora
1
c 
RC
Diagramma filtro passa alto
Filtro passa banda


Un filtro passa banda e’ un circuito che lascia passare
solo le frequenze entro un certo intervallo
In questo caso avremo due frequenze di taglio, e si
definisce banda passante del circuito:
B  2  1
Canali trasmissivi come filtri


Un canale trasmissivo e’ sostanzialmente un
circuito dotato della sua funzione di trasferimento
Le condizioni ideali per la trasmissione dati e’ che
la funzione di trasferimento abbia le seguenti
caratteristiche:
Modulo di H piatto ed indipendente dalla frequenza
(per non alterare in ricezione il rapporto di intensita’
delle diverse armoniche del segnale)
 Fase di H funzione lineare della frequenza. Infatti:
A sint   a sint     a sin t   
dove  e' il ritardo che deve essere indipenden te da 
quindi
t    t      

Esempio di canale ideale
Effetti della non linearita’


Un circuito la cui risposta non sia lineare presenta un comportamento
che non puo’ essere descritto come abbiamo visto
Per dare una idea di cosa puo’ accadere, in approssimazione di piccoli
segnali di input la risposta (temporale) puo’ essere approssimata da
un polinomio
vo ( t )  a1  vi ( t )  a2  v ( t )  a3  v ( t )  ...
2
i

3
i
L’effetto dei termini non lineari si evidenzia nel caso di segnale
sinusoidale in ingresso: ponendo
vi ( t )  v  cos(t )
si ottengono in uscita termini a frequenza 2ω, 3ω, 4ω, …, cioe’
armoniche della frequenza del segnale in ingresso
Alterazioni dovute alla trasmissione dei segnali

La trasmissione dei segnali e’ sempre
accompagnata da alterazioni, che essenzialmente
si distinguono in




attenuazione (riduzione della intensita’ e distorsione)
distorsione di ritardo
rumore
Queste alterazioni comportano la possibilita’ di
commettere errori in ricezione, ed in generale
stabiliscono un limite alla distanza che puo’
percorrere un segnale ed alla velocita’ di
trasmissione che possiamo ottenere su una
larghezza di banda limitata
Attenuazione

Qualunque segnale viene attenuato per
effetto del suo trasferimento su un mezzo
trasmissivo, tanto piu’ quanto piu’ e’
grande la distanza che deve attraversare


nei mezzi guidati in genere l’attenuazione ha
un andamento logaritmico con la distanza
nei mezzi non guidati e’ il risultato di molti
fattori la cui analisi e’ piuttosto complessa
(distanza, umidita’ dell’aria, pioggia,
dispersione, …)
Attenuazione (cont.)

Vanno considerati alcuni aspetti nella trattazione della
attenuazione:



un segnale deve essere ricevuto con una intensita’ tale da essere
rilevato dai circuiti in ricezione, e deve essere distinguibile dal
rumore (vedi oltre)
l’effetto della attenuazione e’ una funzione che dipende dalla
frequenza del segnale (da cui la distorsione in ricezione)
Per ovviare al primo problema non e’ possibile
semplicemente aumentare la potenza del segnale, per
motivi di costi e perche’ al crescere della potenza
compaiono effetti non lineari nel comportamento dei
circuiti (in trasmissione o in ricezione) adibiti alla
generazione o elaborazione del segnale
Attenuazione (amplificatori e ripetitori)

Poiche’ oltre una certa distanza il segnale si
attenua troppo, si ovvia a questo in due modi, a
seconda del tipo di trasmissione

nella trasmissione analogica vengono introdotti nel
canale degli amplificatori, che aumentano la potenza
del segnale


il problema a cui si va incontro in questo caso e’ che un
amplificatore amplifica anche il rumore, quindi oltre un certo
limite amplificare diventa inutile
nella trasmissione digitale vengono introdotti nel
canale dei ripetitori, che ricostruiscono il segnale
digitale e lo rigenerano ex-novo

la rigenerazione ripulisce il segnale da tutti gli effetti distorsivi
che lo hanno modificato fino a quel punto della trasmissione
Attenuazione (equalizzatori)


La dipendenza della attenuazione dalla frequenza
comporta una distorsione legata al fatto che le
diverse armoniche che costituiscono il segnale
originato vengono alterate in modo differente
La somma delle armoniche attenuate non sara’
solo un segnale uguale attenuato, bensi’ un
segnale differente (distorto)

questo problema spesso viene limitato utilizzando delle
tecniche di equalizzazione, che in base alla conoscenza
delle caratteristiche del canale, possono amplificare in
modo differenziato le diverse frequenze, correggendo
l’effetto di distorsione (tipico nelle applicazioni foniche)
Effetto della equalizzazione
Distorsione di ritardo




La distorsione di ritardo e’ conseguente al fatto che i
segnali a diversa frequenza viaggiano nel mezzo
trasmissivo a velocita’ diversa
Questo comporta che in ricezione le diverse componenti
arrivano in tempi diversi, cioe’ sfasate tra loro, quindi si
ha una distorsione del segnale
E’ un fenomeno tipico dei mezzi guidati
Nel caso di trasmissioni di bit, alcune componenti del
segnale relative ad un certo bit possono ritardare (o
anticipare) ed interferire con le componenti relative a bit
diversi (interferenza intersimbolica)

anche in questo caso si adottano spesso tecniche di
equalizzazione per correggere il comportamento del canale
Effetto della equalizzazione
Rumore


Per rumore si intende un segnale presente
sul canale (in ricezione) che non fa parte
del segnale trasmesso
Il rumore si divide in




rumore termico (o rumore bianco)
rumore di intermodulazione
diafonia
rumore impulsivo
Rumore termico




Il rumore termico e’ dovuto alla agitazione degli
elettroni dovuta alla temperatura
Il rumore termico e’ presente sia nei circuiti
dedicati alla generazione o ricezione del segnale,
sia nel mezzo trasmissivo
E’ caratterizzato da avere una intensita’
indipendente dalla frequenza (da qui il nome di
rumore bianco)
Non puo’ essere eliminato (nell’elettronica dei
circuiti puo’ essere limitato aumentando il livello
qualitativo della realizzazione dell’elettronica)

si combatte aumentando il livello del segnale per
quanto possibile
Rumore di intermodulazione




Spesso si utilizza lo stesso mezzo trasmissivo per
trasmettere segnali indipendenti che occupano diverse
bande di frequenza disponibile su quel mezzo
(multiplexing in frequenza, lo vedremo piu’ avanti)
In questa circostanza sul canale ci saranno
contemporaneamente, ad esempio, due segnali
indipendenti a frequenza f1 ed f2
Effetti di non linearita’ possono generare segnali a
frequenze multiple di (f1+f2) o (f1-f2), e questi potrebbero
andare ad interferire con un terzo segnale
contemporaneo trasmesso intorno a quelle frequenze
Questi effetti possono essere conseguenza di
malfunzionamenti o invecchiamento dell’elettronica,
eccesso di potenza nel segnale trasmesso
Diafonia



La diafonia e’ un fenomeno di accoppiamento
elettrico tra mezzi trasmissivi vicini non isolati
adeguatamente
Il segnale trasmesso su un cavo genera per
induttanza un segnale corrispondente nel cavo
vicino, che si sovrappone al segnale trasmesso in
quest’ultimo
Si puo’ verificare anche nella trasmissione con
mezzi non guidati, quando un segnale emesso da
una antenna si disperde durante la propagazione
nell’aria; la parte dispersa puo’ guingere in
prossimita’ di un’altra antenna
Rumore impulsivo




Questa categoria di rumore e’ conseguenza di fenomeni
sporadici che possono generare segnali indesiderati
nell’elettronica o nel mezzo trasmissivo
Esempi possono essere l’accensione di dispositivi
elettricomagnetici (monitor, forni a microonde) o sbalzi di
tensione della alimentazione elettrica in vicinanza dei
circuiti o del mezzo trasmissivo
A differenza degli altri, l’effetto del rumore impulsivo non
e’ prevedibile a priori, ed e’ spesso molto piu’ elevato in
intensita’
Ha un effetto limitato nelle trasmissioni analogiche, ma
grave in quelle digitali (un picco di energia di 0.01
secondi su una linea telefonica non ha effetti sulla
comunicazione vocale, ma fa perdere 560 bit in una
comunicazione dati a 56 kbps)
Effetto del rumore nella trasmissione dati
Capacita’ del canale


Quello che interessa nella trasmissione dati e’: dato un canale con
determinate caratteristiche, e definito un tasso di errore accettabile,
quale velocita’ di trasferimento dati posso ottenere?
La legge di Nyquist (per un canale esente da rumore) dice che la
capacita trasmissiva di un canale a banda B con livello di
modulazione M e’ data da
C  2 B  log 2 M 


bps
Tuttavia non si puo’ aumentare la banda a piacere (per motivi di
costi, di impossibilita’ pratica o di scelta deliberata)
Non si puo’ nemmeno aumentare a piacere il tasso di modulazione
(M): aumentare il tasso di modulazione significa rendere piu’
complesso in ricezione distinguere il valore trasmesso, e fenomeni di
distorsione o di rumore farebbero aumentare gli errori in ricezione
Legge di Shannon


Shannon ha sviluppato e dimostrato una relazione relativa
alla capacita’ trasmissiva massima di un canale in
presenza di solo rumore bianco
Detto SNR (Signal to Noise Ratio) il rapporto di potenza
tra il segnale ed il rumore, la massima capacita’ in
assenza di errori su un canale di banda B e’ data da:
C  B  log 2 1  SNR

bps
Questo e’ un limite massimo teorico, in pratica
irraggiungibile (ad esempio perche’ non tiene conto di
altri fattori distorsivi)
Commenti alla legge di Shannon



Secondo la relazione vista, sembrerebbe possibile
aumentare il tasso di trasferimento dati
aumentando il livello del segnale
Questo e’ vero, ma come gia’ osservato
l’aumento del livello del segnale comporta
l’aumento di effetti come la non linearita’ che
vanno ad accrescere il tasso di errore in ricezione
Quindi effettivamente la limitazione di banda
costituisce un limite alla velocita’ di trasferimento
dei bit
Esempio

Supponiamo di avere un canale trasmissivo la cui
banda sia da 3 a 4 MHz, ed il cui rapporto
segnale su rumore sia 24 dB:
24dB  10 log SNR  SNR  102.4  251
La legge di Shannon dice che la capacita’
trasmissiva massima in assenza di errori e’
C  B  log1  SNR  1MHz  log252  8 Mb/s

Con quale livello di modulazione posso ottenere
questo tasso? Ce lo dice la legge di Nyquist:
C  2 B  log 2  M   M  2
8 Mbps
2 MHz
 16
Sistemi e Tecnologie della
Comunicazione
Lezione 6: strato fisico: trasmissione digitale in banda base e modulazione
Tipizzazione di dati e segnali

Dati analogici: assumono valori continui in un
determinato intervallo




Dati digitali: dati che assumono valori discreti in un certo
intervallo




voce
video
dati raccolti da sensori quali temperatura, pressione, tensione o
corrente elettrica,…
testo (caratteri, rappresentati da codifiche opportune, come
codice Morse, ASCII)
numeri interi
Segnali analogici: segnale elettromagnetico che varia le
sue caratteristiche con continuita’
Segnali numerici: segnale elettromagnetico costituito da
una sequenza di impulsi
Relazione tra dati e segnali

Un dato analogico puo’ essere rappresentato con un segnale
analogico che occupa lo stesso spettro.



il segnale che rappresenta la voce nel sistema telefonico tradizionale e’
un segnale analogico con frequenza compresa tra 300 Hz e 3400 Hz, che
riproduce lo spettro del suono emesso
Un dato digitale puo’ essere rappresentato con un segnale digitale
che identifichi i numeri con livelli di ampiezza degli impulsi
E’ possibile rappresentare dati digitali con segnali analogici (modem)
e dati analogici con segnali digitali (codec)


la comunicazione tra calcolatori attraverso una linea telefonica: il dato
numerico viene trasformato dal modem in segnale analogico, e
ricostruito in ricezione nuovamente come dato numerico da un altro
modem
la comunicazione telefonica attraverso una linea ISDN: la voce viene
digitalizzata mediante campionamenti da un codec, trasmessa come
insieme di dati numerici, rigenerata come segnale analogico in ricezione
Trasmissione dei segnali

La trasmissione dei segnali e’ detta analogica se il segnale viene
trasmesso senza curarsi del suo significato


la trasmissione digitale tiene conto del contenuto dei dati se si deve
intervenire per amplificare il segnale



il segnale non viene semplicemente amplificato, ma viene interpretato, si
estrae il contenuto informativo e si rigenera il segnale tramite apparati
detti ripetitori
questo puo’ essere fatto a prescindere dal tipo di segnale (numerico o
analogico), che a sua volta puo’ rappresentare dati analogici o numerici
vantaggi della trasmissione digitale:




in questo caso la trasmissione si limita a recapitare il segnale,
eventualmente amplificandolo in intensita’ quando necessario
immunita’ maggiore alla alterazione dei dati verso lunghe distanze
omogeneizzazione della trasmissione per diverse tipologie di dato
sicurezza e riservatezza
svantaggi della trasmissione digitale



costi superiori
maggiore complessita’ dell’elettronica
richiede rinnovo di infrastrutture gia’ esistenti
Trasmissione in banda base e modulata


Una volta generato il segnale da trasmettere,
questo puo’ essere immesso direttamente sul
canale; in questo caso si parla di trasmissione in
banda base: il segnale che trasporta le
informazioni ed il segnale sulla linea sono identici
Vi sono diverse circostanze che rendono
opportuno trasmettere il segnale in modo che
occupi una banda differente di frequenze; questo
tipo di trasmissione si realizza tramite un
processo di modulazione
Codifica dei dati numerici




La rappresentazione di dati numerici con segnali numerici
e’ normalmente fatta tramite sequenze di impulsi discreti
di tensione di una certa durata temporale.
Il dato binario e’ codificato in modo da far corrispondere
al valore di un bit un determinato livello del segnale
Il ricevitore deve sapere quando inizia e finisce il bit,
leggere il valore del segnale al momento giusto,
determinare il valore del bit in base alla codifica utilizzata
La migliore valutazione si ottiene campionando il segnale
al tempo corrispondente a meta’ bit
Caratteristiche delle codifiche


Sono possibili diverse scelte di codifica, con
caratteristiche differenti che possono
migliorare le prestazioni della trasmissione
Le caratteristiche determinanti sono:

spettro del segnale:



componenti ad alta frequenza richiedono una banda
maggiore
l’assenza di componente continua e’ preferibile
spettro concentrato nel centro della banda
Caratteristiche delle codifiche

Altre caratteristiche determinanti sono:




sincronizzazione temporale: il ricevitore deve essere
sincronizzato con il trasmettitore per identificare i bit;
alcune codifiche facilitano questa funzione
rilevazione di errore: funzione caratteristica dei livelli
superiori, ma puo’ essere utile anche a livello fisico
solidita’ del segnale rispetto ad interferenza o rumore
costo e complessita’ di realizzazione
Codifica unipolare RZ ed NRZ


La codifica unipolare RZ (Return to Zero) prevede la
trasmissione di un segnale di lunghezza T per ogni bit. Il
segnale e’ nullo in corrispondenza del bit 0, mentre e’ un
impulso di tensione di durata T/2 per il bit 1
La codifica unipolare NRZ (Non Return to Zero) differisce
dalla RZ perche’ il livello di tensione per il bit 1 rimane
alto per tutta la durata del bit
Caratteristiche della codifica NRZ

La codifica NRZ ha i pregi:



facile da progettare e realizzare
utilizzo efficiente della larghezza di banda (la potenza
e’ concentrata tra 0 ed R/2, dove R e’ la capacita’
trasmissiva in bit/s (transmission rate)
Difetti:


esiste una componente continua
lunghe sequenze di bit di uguale valore producono un
segnale continuo senza transizioni: il ricevitore puo’
perdere la sincronia
Codifica NRZ-L ed NRZI

Per migliorare le caratteristiche si fa utilizzo di una
codifica (NRZ-L: Non Return to Zero Level) che prevede
un segnale a +V per il bit 1, ed a –V per il bit 0


questo riduce l’impatto della componente continua, ma non la
annulla
Altra tecnica: codifica differenziale (NRZI: NRZ Invert on
ones): il segnale cambia in occasione di un bit 1
Codifica multilivello binario


Le codifiche a multilivello binario utilizzano tre
livelli: lo zero indica il bit 0, mentre il bit 1 e’
identificato con segnali a +V e –V alternati (AMI
bipolare: Alternate Mark Inversion)
La codifica pseudoternaria e’ la stessa, con 1 e 0
invertiti
Caratteristiche della codifica AMI

La codifica AMI ha i seguenti vantaggi rispetto alla NRZ:





Vi sono anche svantaggi:



risolve il problema della sequenza di bit 1, che presentano sempre
una transizione utilizzabile in ricezione per sincronizzare (ma resta
il problema per sequenze di 0)
La componente continua e’ di fatto azzerata
utilizza a parita’ di transmission rate una larghezza di banda
inferiore
errori isolati possono essere evidenziati come violazione del
codice
utilizza 3 livelli, quindi ogni simbolo potrebbe trasportare piu’
informazione (log2(3) = 1.58)
a parita’ di bit rate richiede circa 3 dB in piu’ rispetto alla NRZ
Utilizzata in diversi casi su linee punto-punto (ISDN)
Codifica Manchester


La codifica Manchester utilizza due livelli di tensione; il bit
1 e’ rappresentato da un segnale -V per mezzo periodo,
+V per il seguente mezzo periodo; il bit 0 e’
rappresentato in modo opposto (+V per il primo mezzo
periodo, -V per il restante mezzo periodo)
La codifica Manchester differenziale utilizza lo stesso tipo
di rappresentazione, ma rappresenta il bit 1 come
variazione rispetto alla codifica del bit precedente
Caratteristiche della codifica Manchester

Vantaggi:




Svantaggi:


sincronizzazione: ogni bit ha una transizione in mezzo, che puo’
essere utilizzata per la sincronizzazione dal ricevitore
totale assenza di componente continua
rivelazione di errore (in assenza della transizione prevista)
richiede un segnale a frequenza doppia rispetto al bit rate: 1 bit
richiede 2 baud, quindi richiede una banda doppia
L’utilizzo piu’ diffuso della codifica Manchester e’ negli
standard 802.3 (ethernet) e 802.5 (token ring) sia su
coassiale che su doppino
Codifica B8ZS

Una modifica della AMI per risolvere il
problema della sequenza di zeri e’ la B8ZS
(Bipolar with 8 Zeros Substitution):

ogni sequenza di 8 zeri viene codificata come




000+-0-+ se l’ultimo impulso e’ stato positivo
000-+0+- se l’ultimo impulso e’ stato negativo
in questo modo scompaiono lunghe sequenze
di zeri, e la sequenza e’ identificata da due
violazioni del codice AMI
Utilizzata nel Nord America
Codifica HDB3

Stessa logica per la HDB3 (High Density Bipolar 3
zeros):

ogni sequenza di 4 zeri viene codificata come

se la polarita’ dell’ultimo impulso e’ stata negativa:



se la polarita’ dell’ultimo impulso e’ stata positiva:




000- se c’e’ stato numero dispari di 1 dall’ultima sostituzione
+00+ se c’e’ stato un numero pari di 1 dall’ultima sostituzione
000+ per un numero dispari di 1 dall’ultima sostituzione
-00- per un numero pari di 1 dall’ultima sostituzione
anche in questo caso scompaiono lunghe sequenze di
zeri, e la sequenza e’ identificata da violazioni
opportune del codice AMI
Utilizzata in Europa e Giappone
Caratteristiche di B8ZS ed HDB3




Le due codifiche hanno sempre componente continua
nulla (le violazioni sono alternate)
Hanno un efficiente utilizzo della banda, con la potenza
concentrata a meta’ della banda
come con AMI, e’ possibile riconoscere gli errori singoli
Generalmente utilizzate nella trasmissione dati ad elevata
distanza
Spettro delle codifiche numeriche in banda base
Modulazione



La modulazione e’ un processo con il quale il segnale da
trasmettere (segnale modulante) viene utilizzato per
modificare nel tempo le caratteristiche di un segnale
ausiliario sinusoidale (portante)
Questa operazione ha la caratteristica di generare un
segnale che ha una occupazione di banda dell’ordine di
grandezza di quella del segnale modulante, centrata pero’
intorno alla frequenza del segnale portante
Utilizzando una portante ad alta frequenza si puo’ quindi
spostare la banda necessaria alla trasmissione delle
informazioni in un intervallo piu’ opportuno per la
trasmissione stessa
Vantaggi della modulazione

Spesso per la trasmissione sono preferibili determinati
intervalli di frequenza



ad esempio, la trasmissione via ponte radio (a vista) richiede una
antenna; la dimensione della antenna deve essere dello stesso
ordine di grandezza della lunghezza d’onda; per trasmissioni a 1
KHz l = 300 Km, per trasmissioni a 1 GHz l = 30 cm
per trasmettere i segnali radio si puo’ sfruttare la riflessione
multipla dalla ionosfera, che riflette bene frequenze di 5-30 MHz
Un altro vantaggio e’ legato alla possibilita’ di trasmettere
piu’ comunicazioni differenti e contemporanee sullo stesso
mezzo, trasferendo le bande relative alle diverse
comunicazioni in zone differenti della banda utile per la
trasmissione (multiplexing a divisione di frequenza)
Tecniche di modulazione

Il segnale modulante viene utilizzato per
modulare le caratteristiche della portante:



ampiezza: il segnale viene utilizzato per
modificare il valore della ampiezza della
portante (modulazione di ampiezza)
frequenza: il segnale modulante modifica
istante per istante la frequenza della portante
(modulazione di frequenza)
fase: il segnale modulante cambia la fase della
portante (modulazione di fase)
Esempi di modulazione
Modulazione analogica di ampiezza (AM)


Il segnale modulante e’ un segnale analogico
(es.: voce, o meglio il segnale elettromagnetico
corrispondente alla voce in banda base)
Il segnale modulato si genera in questo modo:
s( t )  1  n  x( t ) cos(c t )
L’ampiezza del segnale modulato e’ funzione del
segnale modulante; n e’ detto indice di
modulazione, e viene scelto in modo che
1  n  x( t )  0
Esempio: modulante sinusoidale

Consideriamo come esempio il segnale
modulante sinusoidale a frequenza ω:
Esempio (cont)

Il segnale modulato ha la forma:
s( t )  1  n cos(t ) cos(c t )
n
n
s( t )  cos(c t )  cos(c   ) t   cos(c   ) t 
2
2

Il suo spettro sara’ costituito da una riga in
corrispondenza della frequenza della portante,
piu’ due righe simmetriche rispetto alla prima a
distanza pari alla frequenza della modulante
Spettro del segnale modulato


In generale un segnale modulato in ampiezza ha uno spettro
costituito dallo spettro del segnale modulante raddoppiato e collocato
simmetricamente attorno alla frequenza portante (bande laterali)
Ne segue che l’occupazione di banda del segnale modulato e’ doppia
rispetto a quella del segnale modulante
Si possono adottare tecniche per sopprimere la banda laterale
inferiore, ed anche la frequenza portante mediante filtri passa banda
(Single Sided Band)

la frequenza della portante generalmente si potra’ eliminare quando il
segnale in banda base non ha componente continua o comunque vicine
alla frequenza nulla
Modulazione analogica angolare (PM)


Il segnale modulante puo’ essere utilizzato per
modificare la fase della portante (modulazione di
fase)
In questo caso il segnale modulato sara’ descritto
da
s( t )  Ac cosc t   ( t ) 
 ( t )  np x ( t )
dove np e’ l’indice di modulazione
Modulazione analogica angolare (FM)



Il segnale modulante puo’ essere utilizzato per modificare
la frequenza della portante (modulazione di frequenza)
In questo caso il segnale modulato sara’ descritto da
s( t )  Ac cosc t   ( t ) 
 ' ( t )  n f x( t )
dove nf e’ l’indice di modulazione
La frequenza istantanea e’ di fatto la velocita’ con cui
varia la fase, quindi
d
c t   ( t )   c  n f x( t )
(t ) 
dt
Spettro del segnale modulato in frequenza

Per la modulazione di frequenza si puo’ vedere come la banda
occupata per effetto della ampiezza del segnale modulante sia
F  (max  min )  n f max  x ( t )   n f Am

Si vede come per la modulazione di frequenza, un aumento della
ampiezza del segnale modulante comporti un aumento della banda
occupata, mentre nel caso della AM l’ampiezza del segnale
modulante influenza la ampiezza del segnale modulato
La modulazione angolare non e’ lineare, e genera uno spettro
generalmente costituito da banda infinita. Si puo’ approssimare alla
seguente relazione:
BT  2F  2 B  2n f Am  2 B
BT  2np Am  1B
per FM
per PM
Sistemi e Tecnologie della
Comunicazione
Lezione 7: strato fisico: modulazione di segnali numerici, digitalizzazione di segnali analogici,
multiplexing in frequenza
Modulazione di segnali numerici






La tecnica della modulazione viene utilizzata in questo
caso per trasformare un dato numerico in un segnale
analogico
Si ottiene cio’ modulando una portante sinusoidale
utilizzando il dato numerico (o il segnale numerico in
banda base che codifica il dato numerico)
In ricezione il segnale viene demodulato ricostruendo il
segnale numerico modulante
L’oggetto che realizza la conversione si chiama modem
(modulatore-demodulatore)
Un esempio comune e’ la trasmissione dati via rete
commutata
Un altro esempio e’ la trasmissione digitale su fibra ottica
Tecniche di modulazione: ASK

Partendo da un segnale numerico (ad esempio
un segnale NRZ) si puo’ modulare in ampiezza
una portante sinusoidale moltiplicando la sua
ampiezza per il segnale numerico (ASK:
Amplitude Shift Keying)
Tecniche di modulazione: FSK

Il segnale numerico puo’ essere utilizzato per
modulare in frequenza una portante sinusoidale,
modificando la sua frequenza in funzione del
segnale modulante (FSK: Frequency Shift
Keying), cioe’ facendo corrispondere due
frequenze ai due valori del bit
Tecniche di modulazione: PSK

Il segnale numerico puo’ modulare in fase una
portante sinusoidale associano un certo valore di
fase ad un certo valore di bit (PSK: Phase Shift
Keying). Nell’esempio in figura al bit 1 si associa
un cambio di fase, al bit 0 nessun cambio di fase
Forma del segnale trasmesso

I segnali trasmessi con le diverse tecniche
di modulazione hanno la seguente forma
A cos(t )
ASK : s( t )  
0
 A cos(1t )
FSK : s( t )  
 A cos(2 t )
 A cos(t   1 )
PSK : s( t )  
 A cos(t   2 )
bit 1
bit 0
bit 1
bit 0
bit 1
bit 0
Spettro del segnale trasmesso



Le considerazioni viste per la modulazione analogica
valgono anche in questo caso
Il segnale generato e’ costituito dallo spettro del segnale
modulante (quello numerico) spostato sulla frequenza
della portante
Ad esempio, i modem possono utilizzare una modulazione
FSK a due valori per trasmettere dati fino a 1200 bps su
un canale telefonico (limitato in banda a 3.1 KHz)


per la trasmissione in un verso, si utilizza una portante a 1170 Hz,
con una traslazione di 100 Hz su ciascun lato in funzione del
valore dei bit
per la trasmissione nell’altro verso, si usa la stessa tecnica con la
portante a 2125 Hz
Esempio di spettro
Modulazioni piu’ complesse: QPSK


Si ottiene una migliore efficienza del canale modulando in
modo che ogni simbolo trasporti piu’ bit
Nella modulazione QPSK (Quadrature PSK) si utilizzano
quattro angoli di fase per trasmettere due bit per
simbolo; ad esempio:





00
01
11
10
per
per
per
per
fase
fase
fase
fase
=0
= 90 gradi
= 180 gradi
a 270 gradi
Si possono utilizzare modulazioni piu’ complesse
utilizzando piu’ angoli di fase
QAM




La modulazione QAM (Quadrature AM) consiste nel
separare il segnale portante in due segnali uguali ma
sfasati di 90 gradi
Successivamente si applica una modulazione di ampiezza
a piu’ valori indipendentemente su entrambe, quindi si
ricombinano le portanti in quadratura.
Si possono applicare modulazioni combinate in fase ed
ampiezza sulle due componenti
Generalmente si rappresentano queste modulazioni su un
piano che riporta le ampiezze in quadratura sui due assi,
detti diagrammi di costellazione (i simboli sono
rappresentati da punti su questo piano; l’insieme dei
simboloi e’ detto costellazione)
Schema della QAM
Esempi


Esempi di QAM sono riportati in figura
Al complicarsi del livello della modulazione si complicano
le cose in sede di ricezione, in quanto piccoli livelli di
rumore possono diventare sufficienti ad interpretare in
modo errato il valore dei bit
Applicazioni


Queste tecniche vengono utilizzate per la
trasmissione digitale su segnale analogico
(modem, ponti radio digitali, fibre ottiche)
Per i modem l’ITU ha definito degli standard per
le trasmissioni modem a 2400 baud:



V32 (costellazione a 32 punti, 5 bit/baud di cui 1 bit di
parita’ e 4 bit di dati, 9600 bps)
V32 bis (costellazione a 128 punti, 7 bit/baud di cui 1
bit di parita’ e 6 bit di dati, 14400 bps)
…
Modulazione analogica di segnali numerici



Per poter trasmettere un segnale analogico con una
trasmissione digitale e’ necessario trasformare il segnale
analogico in un segnale numerico (o meglio in un dato
numerico)
Il processo si chiama numerizzazione del segnale
analogico e si basa sul concetto di campionamento
Il campionamento consiste nel guardare con una certa
frequenza il valore istantaneo del segnale analogico

di fatto si utilizza il segnale analogico per modulare in ampiezza
una sequenza di impulsi a frequenza fissata: il segnale risultante
sara’ una sequenza di impulsi ad ampiezza uguale al valore del
segnale analogico in corrispondenza dell’istante di tempo
corrispondente all’impulso
Il campionamento

Il problema da affrontare e’: con quale frequenza
si deve campionare il segnale per poterlo
ricostruire a partire dal segnale campionato?
Teorema del campionamento

IL teorema del campionamento (o teorema
di Nyquist-Shannon) afferma che:
dato un segnale x(t) a banda limitata B, si puo’
ricostruire completamente il segnale a partire da
un campionamento del segnale se la frequenza di
campionamento e’ F ≥ 2B
Dimostrazione
sia x ( t ) il segnale a banda fh
sia p( t ) il segnale di campioname nto a frequenza fs
il segnale campionato sara' :
x s ( t )  x ( t )  p( t )
p( t ) 

 Pne
i 2nf s t
 xs ( t ) 
n  

i 2nf s t
P
x
(
t
)
e
 n
n  
La trasformat a del segnale campionato e' :
Xs( f ) 



xs ( t )e  i 2ft dt 




i 2nf s t  i 2ft
P
x
(
t
)
e
e
dt
 n
n  
quindi
Xs( f ) 

 Pn 
n  


x ( t )e  i 2 ( f  nf s ) t dt
Dimostrazione (cont.)

 Pn 
Xs( f ) 


n  
x ( t )e  i 2 ( f  nf s ) t dt
La trasformat a del segnale e' :
X( f ) 



x ( t )e  i 2ft dt
da cui :
Xs( f ) 

 P X( f
n
 nfs )
n  
Questo significa che lo spettro del segnale campionato
e’ costituito dalla replica dello spettro del segnale
originale traslato ai multipli della frequenza del segnale
di impulsi utilizzato per campionarlo, e moltiplicato per
un fattore proporzionale (Pn)
Dimostrazione (cont.)


Se gli spettri di due repliche
adiacenti del segnale
originario non si
sovrappongono, possiamo
utilizzare in ricezione un filtro
passa basso per isolare una
sola replica del segnale,
ottenendo cosi’ un segnale il
cui spettro e’ identico
(proporzionale) allo spettro
del segnale originale
La condizione di non
sovrapposizione implica:
f h  f s  f h  f s  2 fh
cioe’ quello che si voleva
dimostrare
Osservazioni sul teorema del campionamento


In generale la frequenza di campionamento dovra’ essere
almeno leggermente superiore a 2B, per disporre di un
intervallo utile al fine di prevenire effetti di non idealita’
dei filtri
Il teorema del campionamento e’ sostanzialmente la
legge sulla massima capacita’ di un canale privo di
rumore:



il teorema afferma che possiamo ricostruire il segnale
campionando almeno a 2B, e campionando piu’ frequentemente
non otteniamo maggiori informazioni sul segnale
se il segnale rappresenta una sequenza di simboli, la massima
capacita’ di trasferimento la otteniamo quando ogni campione
identifica un simbolo
ne segue che al massimo siamo in grado di identificare 2B simboli
Tecniche di modulazione di treno di impulsi

Esistono diverse tecniche di modulazione:



PAM (Pulse Amplitude Modulation): gli impulsi sono
generati ad ampiezza proporzionale alla ampiezza del
segnale modulante
PWM (Pulse Width Modulation): gli impulsi sono
generati tutti alla stessa ampiezza, ma con durata
proporzionale alla ampiezza del segnale modulante
PPM (Pulse Position Modulation): gli impulsi sono tutti
della stessa ampiezza e di uguale durata, ma iniziano
(all’interno del periodo T) in un istante dipendente
dalla ampiezza del segnale modulante

in questo caso il ricevente deve essere sincronizzato con il
trasmittente in quanto l’ampiezza del segnale modulante
dipende dall’istante in cui si presenta l’impulso rispetto
all’istante in cui inizia il periodo relativo a quell’impulso: negli
altri casi l’impulsoi stesso puo’ fornire l’informazione di
sincronismo
PWM e PPM
Considerazioni sullo spettro

La trasmissione di un treno di impulsi di durata 
richiede una larghezza di banda almeno pari a
1
B 
2
ed essendo
1
  T e T 
si ha
2B
1
B 
 B
2
significa che la trasmissione di impulsi modulati
richiede una banda superiore alla banda del
segnale modulante
Digitalizzazione del segnale analogico



Il segnale analogico puo’ essere digitalizzato utilizzando
diverse tecniche
Lo scopo della operazione e’ quella di poter trattare il
segnale analogico come quello numerico, quindi di poter
utilizzare metodi di trasmissione numerica, con i vantaggi
che questa comporta (immunita’ dal rumore per via della
rigenerazione del segnale durante la trasmissione,
possibilita’ di utilizzare multiplexing a divisione di tempo
(vedi piu’ avanti), omogeneizzazione della trasmissione
dei segnali)
Vedremo due tecniche: PCM (Pulse Code Modulation) e
PCM non lineare
PCM





Il segnale analogico viene campionato per generare un segnale PAM.
Il segnale PAM e’ ancora un segnale analogico, e deve essere
numerizzato, cioe’ codificato in modo da associare un numero intero
al suo valore
Si realizza cio’ mediante una quantizzazione dei livelli della ampiezza
degli impulsi
Maggiore e’ il numero di livelli, migliore sara’ l’approssimazione del
segnale con il valore numerico
Tipicamente si utilizza un numero di livelli pari ad una potenza di
due, facendo cosi’ corrispondere ogni valore ad un certo numero di
bit


ad esempio, una codifica a 4 livelli genera un numero rappresentabile
con 2 bit, una codifica a 256 livelli e’ rappresentabile con 8 bit
Il segnale cosi’ generato e’ una sequenza di numeri che
rappresentano il segnale analogico (PCM: Pulse Code Modulation) e
puo’ essere trasmesso come un qualsiasi altro segnale digitale
Esempio: la digitalizzazione della voce




Come visto in precedenza, il canale telefonico utilizza una
banda di circa 3.1 KHz per la voce
Per campionare la voce il teorema di Nyquist-Shannon
afferma che servono campioni a frequenza di almeno 6.2
KHz. Per la voce lo standard definito dall’ITU prevede
8000 campioni al secondo
Il segnale PAM cosi’ generato viene quantizzato: per una
resa paragonabile al segnale trasferito analogicamente si
utilizzano 256 livelli (8 bit)
Ne segue che per trasferire la voce digitalizzata servira’
un tasso di trasmissione pari a 8 bit/campione * 8000 Hz,
cioe’ 64 Kbps (che e’ la velocita’ del canale base ISDN).
PCM non lineare




La digitalizzazione del segnale comporta una perdita di
informazione per via della approssimazione
L’aumento del numero di livelli di quantizzazione produce
a tutti gli effetti come un rumore detto rumore di
quantizzazione
Dato un certo livello di quantizzazione, i segnali
maggiormente affetti dalla approssimazione sono quelli a
bassa intensita’ (per i quali si ha un errore relativo
maggiore)
Si migliorano le prestazioni utilizzando una quantizzazione
non lineare, dove i livelli sono piu’ ravvicinati nella
regione di segnale debole, e piu’ distanziati nella regione
in cui il segnale e’ piu’ intenso
Confronto PCM e PCM non lineare
Sistemi e Tecnologie della
Comunicazione
Lezione 8: strato fisico: multiplexing FDM, WDM, TDM e gerarchie di multiplexing
Multiplexing

Il multiplexing e’ una tecnica utilizzata per trasportare piu’
comunicazioni indipendenti sullo stesso mezzo trasmissivo



questa necessita’ si ha quando c’e’ bisogno di trasmettere molte
comunicazioni ciascuna delle quali ha una piccola occupazione di
banda, e si dispone di un mezzo trasmissivo capace di una banda
molto piu’ ampia
La porzione della banda occupata da una singola
comunicazione e’ detta canale
Vedremo tre modalita’ di multiplexing:



FDM (multiplexing a divisione di frequenza)
WDM (multiplexing a divisione di lunghezza d’onda)
TDM (multiplexing a divisione di tempo)
FDM (Frequency Division Multiplexing)




Come visto in precedenza, l’effetto della modulazione analogica si un
segnale sinusiodale a frequenza f si traduce nella generazione di un
segnale il cui spettro ha la stessa forma dello spettro del segnale
modulante ma traslato attorno alla frequenza f della portante
Se ipotizziamo di disporre di una serie di segnali ciascuno con banda
B, e di un mezzo trasmissivo che ha una capacita’ di banda limitata
dai valori F1 e F2 (con F2-F1 >> B), possiamo utilizzare ciascun
segnale per modulare segnali sinusoidali alle frequenze F1+B, F1+2B,
F1+3B, etc.
I segnali modulati occuperanno porzioni distinte entro la banda
trasmissiva del mezzo, e potranno essere trasmessi
contemporaneamente senza interferire.
In ricezione, opportune operazioni di demodulazione e filtraggio
permetteranno di separare i diversi traffici.
Banda nella modulazione di frequenza
Schema di modulazione di frequenza
Generazione e ricezione del segnale





I diversi segnali da trasmettere (analogici, o digitali
trasformati in analogici via modem) modulano portanti a
diverse frequenze, dette sottoportanti
I segnali modulati vengono sommati, generando un
segnale composito in banda base; le frequenze delle
sottoportanti vengono scelte in modo da minimizzare la
sovrapposizione dei segnali sommati
Il segnale composito (che e’ analogico) puo’ essere a sua
volta utilizzato per modulare una portante per traslare il
segnale ad una frequenza adatta al mezzo trasmissivo
In ricezione si demodula, riportando il segnale composito
in banda base
Utilizzando ulteriori demodulatori (adattati alle
sottoportanti) e filtri si separano infine i segnali originari
Occupazione di banda

Se ipotizziamo di generare la modulazione con la
sola banda laterale, la larghezza di banda
occupata dal segnale composito sara’:
B

B
i
In realta’ la banda occupata e’ in genere
leggermente superiore, per mantenere una
separazione tra i diversi canali in modo da non
avere interferenza e per tenere in conto la non
idealita’ dei filtri in fase di demodulazione
Gerarchia FDM per la telefonia



Una applicazione molto diffusa e’ il multiplexing di canali
fonici per la trasmissione delle telefonate attraverso le
dorsali a larga banda in coassiale o ponte radio
Il canale fonico e’ posto a 4 KHz (per distanziare i diversi
canali multiplexati)
Sono definiti gli standard per diversi livelli di multiplexing,
per adattarsi alla capacita’ di diversi mezzi:




gruppo: 12 canali fonici, banda di 48 KHz tra 60 e 108 KHz
supergruppo: 5 gruppi, 60 canali, 240 KHz tra 312 e 552 KHz
gruppo master: 10 supergruppi, 600 canali, 2.52 MHz tra 564 KHz
e 3.084 MHz
… esistono standard fino a 230.000 canali fonici
Trasmissione radio/TV

L’esempio piu’ comune di FDM e’ la trasmissione
radiotelevisiva. Questa utilizza diverse bande di
frequenza, ciascuna delle quali viene suddivisa in canali di
una certa capacita’, idonea a trasmettere i segnali delle
diverse stazioni trasmittenti






trasmissioni a modulazione di ampiezza (AM) nella banda MF
(Medium Frequency): 300-3000 KHz , con canali da 4 KHz per
radio commerciali
trasmissioni AM nella banda HF (High Frequency): 3-30 MHz, con
canali fino a 4 KHz (radio onde corte)
trasmissioni AM o FM nella banda VHF (Very High Frequency): 30300 MHz, con canali fino a 5 MHz (radio FM e TV VHF)
trasmissioni FM nella banda UHF: 300-3000 MHz con canali fino a
20 MHz (TV UHF, ponti radio)
trasmissioni FM nella banda SHF: 3-30 GHz con canali fino a 500
MHz (microonde terrestri e satellitari)
…
ADSL




ADSL (Asymmetric Digital Subscriber Line) e’ lo standard per fornire
all’abbonato un accesso digitale a banda piu’ elevata di quanto non sia
possibile con il modem
La linea telefonica terminale e’ costituita da un doppino su cui viene
normalmente trasmessa la voce. Questa trasmissione si realizza applicando
un filtro passa basso a 4 KHz
Tuttavia il doppino ha una capacita’ di banda che raggiunge il MHz (dipende
dalla lunghezza del tratto terminale, che puo’ variare in base alla situazione
tra poche centinaia di metri a diversi Km)
Lo spettro disponibile viene suddiviso in 256 canali da 4 KHz (fino a 60 Kbps
ciascuno):




Il canale 0 viene riservato per la telefonia
I successivi 4 canali non vengono utilizzati per evitare problemi di interferenza tra
la trasmissione dati e quella telefonica
I restanti canali vengono destinati al traffico dati. Alcuni per il traffico uscente
(upstream), altri per il traffico entrante (downstream)
Il modem ADSL riceve i dati da trasmettere e li splitta in flussi paralleli da
trasmettere sui diversi canali, genera un segnale analogico in banda base per
ciascun flusso (con una modulazione QAM fino a 15 bit/baud a 4000 baud/s)
e li trasmette sui diversi canali utilizzando la modulazione di frequenza
Suddivisione dei canali nell’ADSL


In teoria l’ampiezza di banda disponibile consente un
traffico pari a 13.44 Mbps, ma non tutti i canali sono
capaci di trasmettere a piena banda. L’operatore decide
quale servizio offrire.
Generalmente vengono dedicati alcuni canali per il traffico
entrante, ed altri (meno) per il traffico uscente (da qui il
termine Asymmetric)
WDM (Wavelength Division Multiplexing)



La fibra ottica trasmette segnali elettromagnetici a
lunghezza d’onda intorno a 850, 1300 o 1550 nm
Ognuna di queste bande puo’ trasmettere segnali a
lunghezze d’onda che variano di circa 100 nm
In termini di frequenze si ha:
1  800 nm  f1 
2  900 nm  f2 
v
1
v
2
 2.50  1014 Hz
 2.22  1014 Hz
B  f1  f2  0.28  1014 Hz  28000 GHz
quindi una banda enorme a disposizione
WDM (cont.)






E’ stata sviluppata una tecnologia per poter trasmettere canali
differenti su lunghezze d’onda differenti, chiamata WDM (Wavelength
Division Multiplexing)
Si utilizza in multiplexing un combinatore ottico che mette insieme
segnali alle diverse lunghezze d’onda
In ricezione un sistema analogo separa le diverse lunghezze d’onda
Sostanzialmente e’ una tecnica FDM, con la differenza che in questo
caso il sistema sfrutta la diffrazione delle onde da reticolo, ed utilizza
sistemi passivi, quindi altamente affidabili e che non introducono
rumore
Con questa tecnologia e’ possibile gia’ ora trasmettere decine di
canali a 10 Gbps su una sola fibra
Questo meccanismo permette di incrementare notevolmente la
capacita’ trasmissiva ottenibile sulla fibra senza dover aumentare la
frequenza della generazione degli impulsi ottici (cosa che oggi
costituisce il fattore limitante per la velocita’ di trasmissione dati sulla
fibra ottica)
Schema del multiplexing WDM
TDM (Time Division Multiplexing)



Il multiplexing a divisione di tempo e’ utilizzato
quando si dispone di un canale digitale capace di
un elevato tasso di trasmissione dati in cui poter
trasmettere contemporaneamente un insieme di
comunicazioni a tasso inferiore
Invece che mettere insieme i segnali a frequenze
differenti (FDM) si mischiano i dati delle diverse
comunicazioni, inframezzando i bit delle diverse
trasmissioni
Di fatto si divide la disponibilita’ del canale in
periodi temporali, e si dedicano a turno i diversi
periodi a diversi flussi trasmissivi
Slot e frame




Ogni intervallo temporale si chiama slot e puo’
contenere uno o piu’ bit relativi ad un flusso
indipendente
Il flusso dei dati e’ organizzato in trame (frame)
Una trama e’ l’insieme di slot temorali che
contiene almeno un bit per ciascuna trasmissione
Anche in questo caso il flusso relativo ad una
singola trasmissione e’ detto canale
Schema del TDM
Sorgenti di ingresso per il TDM


I dati in ingresso non debbono necessariamente
essere tutti digitali: puo’ essere un ingresso
analogico che viene convertito in segnale digitale
tramite campionamento, con relativa generazione
del codice PCM
I segnali in ingresso non debbono nemmeno
essere tutti ad uguale tasso trasmissivo

Ad esempio, possiamo fare multiplexing TDM di due
canali a 1200 bps ed uno a 2400 bps su un canale a
4800 bps, costruendo un frame di 4 bit (di 833
microsecondi) e dedicando una slot (1 bit) ciascuno ai
canali a 1200 bps, e due slot (2 bit) al canale a 4800
bps
TDM sincrono


Il TDM sincrono prevede di avere in
ingresso un certo numero di trasmissioni a
cui e’ staticamente allocato un canale, cioe’
ogni slot temporale e’ dedicata ad una
particolare trasmissione
Quando un ingresso non ha dati da
trasmettere, la trasmissione continua e le
slot dedicate a quel canale non
trasporteranno dati
Sincronizzazione e framing





Poiche’ i frame sono trasmessi in continuazione, il ricevente deve
poter identificare l’inizio dei frame e mantenere il sincronismo
Per fare cio’ il frame conterra’ alcuni bit dedicati allo scopo: in genere
si dedicano uno o piu’ bit di controllo che assumono valori ben
definiti e difficilmente presenti nel campo dei dati
All’inizio il ricevente cerca di identificare i bit di sincronizzazione:
quando li trova in un certo numero di frame consecutivi, assume di
avere agganciato il sincronismo e inizia a gestire il traffico dei dati
Durante il traffico, il ricevente continua a verificare i bit di
sincronizzazione
Se si perde la sincronizzazione, il ricevente ritorna in modalita’ di
sincronizzazione fino a che non identifica nuovamente i limiti dei
frame
Pulse stuffing




Uno dei problemi principali e’ la sincronizzazione dei diversi canali da
trasmettere, che essendo indipendenti non necessariamente hanno
un clock in comune
Una variazione relativa dei diversi clock puo’ far perdere la
sincronizzazione nella costruzione del frame
Diversamente, si potrebbe avere un insieme di trasmissioni i cui tassi
trasmissivi non sono multipli uno dell’altro
Per ovviare a questi problemi si usa una tecnica detta pulse stuffing:




il tasso trasmissivo in uscita e’ leggermente superiore alla somma dei
tassi in ingresso
i bit in eccesso in ogni slot vengono riempiti con bit fittizi di
giustificazione, per allineare i diversi ingressi
qualora si rendesse necessario, questi spazi possono essere utilizzati per
risincronizzare gli ingressi
esisteranno bit di controllo nella trama per gestire le diverse eventualita’
Esempio
Gerarchie digitali



Anche per il TDM esistono gerarchie di
multiplexing definite come standard per la
trasmissione a diversi tassi in funzione delle
possibilita’ trasmissive del mezzo
Il Nord America ed il Giappone utilizzano una
gerarchia (nata prima) diversa da quella
standardizzata dall’ISO ed adottata in Europa
Entrambi utilizzano come base di durata
temporale del frame quella necessaria alla
trasmissione di un canale vocale (8000
campionamenti al secondo = 125 microsecondi di
tempo per il frame)
Gerarchia Nordamericana




Il frame del livello primario e’ costituito dall’unione di 24 canali vocali
Un frame contiene un campionamento per canale (24 canali * 8 bit =
192 bit) piu’ un bit di sincronizzazione di frame
Il tasso di trasmissione sara’ quindi 1.544 Mbps
Per la trasmissione di dati numerici si utilizza lo stesso frame, in cui
vengono messi insieme 23 canali dati, mentre un byte viene riservato
ad un ulteriore dato di sincronizzazione
Gerarchia Nordamericana (cont.)


Il formato descritto si chiama DS-1, o T1
Il livelli gerarchici successivi sono:




T2: 4*T1 a 6.312 Mbps
T3: 7*T2 a 44.736 Mbps
T4: 6*T3 a 274.176 Mbps
Si puo’ osservare come ad ogni livello successivo
il tasso trasmissivo reale e’ superiore a quello
utile, in quanto ad ogni passaggio si devono
introdurre nella trama bit di controllo (per il
framing, per la gestione della linea, per
identificare gli errori)
Gerarchia digitale europea



L’ITU-T ha prodotto uno standard differente da quello
nordamericano, adottato in Europa ed altrove
Questo standard si basa come quello americano sul
canale fonico, con tempo di frame di 125 microsecondi
La gerarchia prevede i seguenti livelli di aggregazione:





E1: 32 canali vocali (2 dedicati a controllo) a 2.048 Mbps
E2 = 4*E1 a 8.448 Mbps
E3 = 4*E2 a 34.368 Mbps
E4 = 4*E3 a 139.264 Mbps
E5 = 4*E4 a 565.148 Mbps
Sonet e SDH



Sonet (Synchronous Optical NETwork) ed SDH
(Sinchronous Digital Hierarchy) sono due
standard di multiplexing gerarchico sviluppati per
la trasmissione su fibra ottica
L’obiettivo e’ quello di sfruttare l’ampia banda
trasmissiva della fibra per poter ospitare le
trasmissioni delle gerarchie digitali gia’ viste
I due standard (AT&T e ITU-T) sono leggermente
differenti



STS-1/OC-1: 51.84 Mbps (ospita un T3)
STS-3/OC-3 e STM-1: 155.52 Mbps (ospita un E4)
… fino a STS-192/OC-192 e STM-64 a 9.9 Gbps
Frame del Sonet


Il frame e’ costituito da 810 byte (di durata temporale
125 microsecondi, da cui i 51.84 Mbps), e si descrivono
come una matrice di 9 righe e 90 colonne
Le prime tre colonne vengono dedicate ad informazioni di
controllo




i primi due byte assumono sempre lo stesso valore e sono
utilizzati per il framing
un byte viene utilizzato come puntatore per indicare l’inizio dei
dati validi sul frame, in modo da poter inviare dati utili anche se
questi si presentano mentre si sta preparando un frame, senza
dover attendere il frame successivo
alcuni byte nel campo di controllo sono utilizzati per costruire un
singolo canale dati per il management, o anche un canale vocale
altri byte di controllo sono usati per informazioni di parita’,
allineamento delle singole trame ed informazioni sul loro
contenuto
Schema del frame in Sonet
TDM asincrono




Un limite del TDM sincrono e’ che quando un canale in ingresso non
trasmette, la capacita’ di banda assegnata a quel canale non viene
utilizzata (le slot dedicate al canale non trasportano dati utili)
Una soluzione talvolta adottata e’ quella di accettare in input un
insieme di canali per cui il tasso totale e’ superiore al tasso
trasmissivo del canale in uscita
L’ipotesi e’ che non tutti trasmetteranno contemporaneamente a
piena banda
Si utilizzano dei buffer per poter gestire gli intervalli in cui la banda in
uscita non e’ sufficiente a gestire i dati in ingresso


va pero’ considerato che maggiore e’ la dimensione dei buffer, maggiore
e’ il ritardo introdotto in trasmissione, quindi non si puo’ eccedere; d’altra
parte minore e’ la dimensione dei buffer, minore e’ il margine oltre il
quale si perdono dati
In questa modalita’ di multiplexing, non essendoci una assegnazione
statica tra canale e trasmittente, si dovranno introdurre informazioni
di controllo per identificare la trasmissione associata alle slot
Sistemi e Tecnologie della
Comunicazione
Lezione 9: strato fisico: mezzi trasmissivi
Mezzi trasmissivi

Vedremo una panoramica sui diversi mezzi
trasmissivi utilizzati tipicamente nelle reti di
computer, sia guidati:



doppino e sue varianti
cavo coassiale
fibra ottica
che non guidati:





ponti radio
trasmissioni satellitari
radiodiffusione
infrarossi
Ne vedremo le caratteristiche e le applicazioni
piu’ diffuse
Il doppino




Il doppino (o doppino intrecciato) e’ costituito da una
coppia di fili di rame isolati separatamente
La coppia di fili viene intrecciata, e costituisce una linea di
comunicazione singola
Solitamente si utilizzano fasci di doppini, che possono
essere costituiti da qualche coppia fino a centinaia di
coppie (per lunghe distanze)
Il doppino e’ il mezzo piu’ economico e piu’ semplice da
maneggiare
Il doppino: caratteristiche


Utilizzato sia per trasmissioni analogiche che digitali
Tra i mezzi guidati e’ quello piu’ sensibile a:






attenuazione del segnale sulla distanza: questo limita la distanza
massima oltre la quale si richiede l’inserimento di amplificatori o
ripetitori; tipicamente e’ necessario inserire amplificatori ogni 4/5 Km,
mentre per le trasmissioni digitali si deve far uso di ripetitori ogni 2/3 Km
interferenza: una coppia di fili si comporta come una antenna; si limita il
problema tramite l’avvolgimento della coppia di fili in una specie di
spirale; questo riduce la ricettivita’ della “antenna” a segnali esterni
diafonia: questo fenomeno viene combattuto utilizzando avvolgimenti di
passo differente tra coppie adiacenti
rumore impulsivo
Per segnali analogici, il doppino fornisce una larghezza di banda di
circa 1 MHz
Per segnali digitali si ottengono su brevi distanze tassi trasmissivi fino
a 1 Gbps
UTP (Unshielded Twisted Pair)



L’ITU-T ha stabilito degli standard per la realizzazione dei doppini finalizzati
alla trasmissione dati
Gli standard prevedono cavi costituiti solitamente da quattro coppie di fili,
isolati singolarmente ed avvolti in spire a due a due; non e’ prevista
schermatura aggiuntiva (UTP: Unshielded Twisted Pair)
Le differenze delle diverse categorie sono essenzialmente nella realizzazione
degli avvolgimenti (piu’ o meno frequenti); le categorie sono definite in base
a capacita’ di banda entro distanze definite (100 m)





UTP cat. 3: garantisce fino a 16 MHz di banda
UTP cat. 4: fino a 20 MHz
UTP cat. 5: fino a 100 MHz
Esistono definizioni per standard piu’ performanti (cat. 5e, cat. 6, cat. 7)
I doppini UTP cat. 3 sono detti anche di qualita’ fonica, e sono utilizzati sia
per la telefonia che per la trasmissione dati fino a 10 Mbps. I doppini UTP
cat. 5 sono utilizzati nelle reti locali a velocita’ superiore (fino a 1 Gbps)
STP (Shielded Twisted Pair)




L’ITU-T ha anche definito una standard per doppini dotati
di schermatura, ottenuta avvolgendo l’insieme di coppie
con una calza conduttrice, in modo da ridurre la
sensibilita’ a segnali esterni
Questo standard si chiama STP (Shielded Twisted Pair) e
viene utilizzato nella trasmissione dati sulle reti locali,
come l’UTP cat. 5.
La migliore schermatura permette all’STP di fornire a
parita’ di attenuazione una banda piu’ ampia (300 MHz)
Pur avendo migliori prestazioni l’STP e’ un cavo piu’ rigido
dell’UTP, quindi di minore maneggevolezza, ed e’
utilizzato solamente in ambienti in cui sono presenti forti
sorgenti di disturbi elettromagnetici
Applicazioni del doppino

Il doppino per le sue caratteristiche di maneggevolezza e
di basso costo e’ molto diffuso



per la telefonia (quasi tutte le connessioni del sistema telefonico
nell’ultimo tratto sono costituite da doppini)
per le reti locali (il cablaggio degli edifici e’ generalmente
realizzato tramite UTP o STP)
Utilizzato sia per trasmissioni analogiche

canale telefonico a 4 KHz, canali dati via modem o modem ADSL
sia per trasmissioni digitali




Ethernet (10 Mbps)
FastEthernet (100 Mbps)
Gigabit Ethernet (1 Gbps)
altri protocolli (token ring, …)
Il cavo coassiale

Il cavo coassiale e’ costituito da un conduttore
interno in rame, avvolto in un isolante di
materiale plastico (dielettrico) attorno al quale e’
posto il conduttore esterno, costituito da una
calza metallica, il tutto ricoperto da un
rivestimento esterno isolante
Il cavo coassiale (cont.)




La sua struttura permette un miglior isolamento
elettromagnetico, quindi una minore sensibilita’ alle
interferenze ed alla diafonia, ed una minore attenuazione
del segnale sulla distanza (che pure rimane il maggior
problema di questo mezzo) rispetto al doppino
E’ capace di una larghezza di banda fino a 500 MHz
Per questi motivi e’ molto diffuso per le connessioni a
lunga distanza, per trasmissioni a larga banda
Come il doppino necessita di amplificatori o ripetitori ogni
qualche Km (piu’ frequenti in caso di trasmissione
digitale, in funzione del tasso trasmissivo)
Utilizzo del cavo coassiale

Esistono due tipi di cavo coassiale in base alle
caratteristiche elettriche (che dipendono dalla geometria
del cavo), utilizzati storicamente per scopi differenti:


Cavo con impedenza a 75 Ω: usualmente utilizzato per la
trasmissione analogica (distribuzione televisiva, TV via cavo,
tratte di back-bone del sistema telefonico con multiplexing FDM);
in multiplexing FDM puo’ trasportare oltre 10000 canali vocali
contemporanei
Cavo a 50 Ω: solitamente utilizzato nella trasmissione digitale (per
reti locali, come Ethernet, token bus, e nelle connessioni dati a
livello geografico)

Lo standard Ethernet specifica due cavi differenti a 50 Ω : il cavo
“giallo”, o cavo thick, piu’ grosso e poco maneggevole, la cui
lunghezza massima arriva intorno a 500 m, ed il cavo “nero”, o thin,
piu’ flessibile e che non puo’ essere piu’ lungo di circa 180 m.
Fibra ottica

Il cavo in fibra ottica e’ costituito da





nucleo: sottile filo di sostanza vetrosa, generalmente silicio, molto fragile,
attraverso il quale si propaga la luce
mantello: sostanza che avvolge il nucleo con proprieta’ ottiche differenti dal nucleo
guaina: sostanza plastica protettiva che avvolge il mantello, che protegge il cavo
da umidita’ e deformazioni
Le proprieta’ ottiche di nucleo e mantello sono tali che la luce introdotta nel
nucleo con direzione opportuna non possa piu’ uscire dal nucleo, ma venga
riflessa in modo da viaggiare lungo il nucleo fino a destinazione
I cavi per utilizzo breve possono essere a coppie di fibre; cavi per lunghe
tratte possono invece contenere centinaia di fibre distinte
Trasmissione lungo la fibra: la rifrazione



Quando un raggio di luce passa da un mezzo ad un altro,
subisce un cambio di direzione (rifrazione)
L’ampiezza dell’angolo di rifrazione dipende dalle
caratteristiche fisiche dei due mezzi
Esiste un angolo di incidenza (angolo critico) oltre il quale
il raggio viene completamente riflesso entro il mezzo piu’
denso
Fibre multimodali





Nelle fibre multimodali il nucleo ha uno spessore di circa 50 micron
In queste condizioni la luce puo’ avere diversi angoli di incidenza
(diversi “modi” di propagazione) e percorrere traiettorie spezzate di
lunghezza diversa; questa fibra si dice multimodale con indice a
gradino
Una categoria simile e’ la fibra in cui l’indice di rifrazione nel nucleo
non e’ costante, ma variabile; la luce percorre traiettorie curve,
sempre con modi diversi in funzione dell’angolo di incidenza
(multimodale con indice graduato) e genera un impulso in uscita piu’
stretto
In entrambi i casi l’impulso in ingresso subisce una distorsione
temporale dovuta ai diversi modi di propagazione, e genera un
segnale in uscita (nel dominio tempo) generalemente allargato
rispetto al segnale in ingresso
La larghezza dell’impulso limita la velocita’ di trasmissione dati in
quanto gli impulsi devono essere spaziati e separati temporalmente in
ricezione per essere identificati
Fibre monomodali



Nelle fibre monomodali
il nucleo ha uno
spessore di 8-10 micron
Riducendo la
dimensione del nucleo
si riducono i modi di
propagazione della
luce; arrivando alle
dimensioni simili alla
llunghezza d’onda, la
luce si puo’ propagare
solo lungo il modo
principale, cioe’ quello
che non ha riflessioni
In questo caso l’impulso
di luce non subisce
distorsione in uscita, e
la fibra e’ capace di
tassi trasmissivi
maggiori
Led e laser

Il segnale luminoso viene generato in due
modi differenti:


tramite LED (Light Emitting Diode): piu’
economico, adatto per trasmissioni a tratta
corta su fibre multimodali ed a basso tasso
trasmissivo
tramite diodi ad emissione laser: molto piu’
costoso, adatto per trasmissioni ad alto tasso
trasmissivo per lunghe distanze, piu’ sensibile
al calore
Lunghezze d’onda


L’assorbimento del segnale sulla distanza dipende dalla
lunghezza d’onda utilizzata
Ci sono tre bande in cui l’assorbimento ha una risposta
piatta in frequenza, e bassa: queste sono le bande
utilizzate per la trasmissione su fibra: 850 nm, 1300 nm e
1550 nm
Caratteristiche delle fibre ottiche

La fibra ottica e’ un ottimo mezzo per la trasmissione dati,
per diversi fattori:



banda trasmissiva: abbiamo gia’ visto come la banda disponibile
sulla fibra si aggiri intorno ai 30 THz (30000 GHz), sfruttabile
tramite WDM; la tecnologia attuale permette tassi trasmissivi fino
a 10 Gbps su singola lambda, ma in laboratorio si raggiungono
tassi maggiori a breve distanza
dimensione e peso: le fibre sono molto piu’ sottili e leggere dei
cavi in rame (problema non indifferente sia per i cablaggi nelle
tubature cittadine, sia per la stesura di cavi multipli a lunga
distanza, anche transoceanici)
attenuazione ridotta: la fibra garantisce una attenuazione
significativamente inferiore al rame: questo permette l’utilizzo di
ripetitori solo ogni qualche decina di Km o oltre a seconda della
tecnologia utilizzata (laser e fibre monomodali sono piu’ efficienti)
Utilizzo della fibra ottica



La fibra ottica sta’ soppiantando il cavo coassiale
per le connessioni a larga banda trasmissiva ed a
lunga distanza
Gia’ da tempo utilizzata nelle reti locali per le
trasmissioni ad elevato tasso trasmissivo (1001000-10000 Mbps) a distanze che il rame non
riesce a raggiungere
Ultimamente in incremento il suo utilizzo verso le
case dei privati per soppiantare il rame in vista di
servizi on demand via cavo (TV, cinema, giochi,
musica, internet, telefonia, videofonia, …) che
richiederanno sempre piu’ banda
Mezzi non guidati


La trasmissione di dati viene spesso realizzata utilizzando
la trasmissione di onde elettromagnetiche nell’aria o nello
spazio
Si possono considerare essenzialmente due diverse
regioni dello spettro che hanno utilizzi differenti a causa
delle differenti proprieta’ della trasmissione nelle tre
regioni:


radiodiffusione: trasmissione di onde in una banda compresa tra il
KHz ed il GHz; in questa regione le onde si propagano in modo
diffusivo, ed e’ utilizzata generalmente in modalita’ unidirezionale
per le trasmissioni radio o televisive
microonde: nella regione compresa tra 1 e 40 GHz la
propagazione delle onde elettromagnetiche e’ abbastanza
direzionale (o direzionabile con antenne paraboliche) , e viene
utilizzata per trasmissioni punto-punto in ponte radio, o
trasmissioni satellitari punto-punto o broadcast
Lo spettro elettromagnetico
Radiodiffusione


La radiodiffusione viene utilizzata generalmente per la trasmissione
analogica di segnali radio-televisivi in modalita’ broadcast
Utilizza due tecniche trasmissive differenti in funzione della regione di
frequenze:


nella regione fino al MHz (VLF, LF ed MF) il segnale si propaga seguendo
la curvatura terrestre ed attraversa bene gli ostacoli: una stazione
trasmittente puo’ essere ricevuta fino a 1000 Km di distanza; oltre
l’attenuazione (proporzionale all’inverso del quadrato della distanza)
diviene eccessiva
nella regione dal MHz al GHz (HF, VHF e UHF) il segnale viene assorbito
dalla superficie della terra, ma viene riflesso molto bene dalla ionosfera; i
segnali vengono quindi inviati verso il cielo raggiungono la stazione
ricevente dopo la riflessione
Trasmissione via ponte radio



La banda di frequenza delle microonde (1-40 GHz) ha la caratteristiche di
poter utilizzare antenne paraboliche di dimensioni maneggevoli (fino a
qualche metro di diametro) per poter collimare e dare direzione all’emissione
Si puo’ quindi realizzare una comunicazione punto-punto tra sorgente e
destinazione con allineamento ottico delle antenne: la trasmissione e’
rettilinea, ed e’ indispensabile la visibilita’ tra le antenne delle stazioni
comunicanti
Questa tecnica di trasmissione va in competizione con le linee in coassiale e
via fibra ottica



per le lunghe distanze, quando l’alternativa con mezzo guidato risulta troppo
costosa o impossibile per motivi morfologici
per le brevi distanze (ad esempio per connettere due palazzi vicini di una stessa
compagnia) come alternativa alla stesura di una fibra qualora si dovesse
attraversare suolo pubblico o di altra proprieta’, per evitare le complicazioni
connesse alle autorizzazioni
Utilizzando diverse stazioni ripetitrici si riescono a coprire distanze elevate
(svariate centinaia di Km); una singola tratta puo’ coprire in condizioni
favorevoli fino a qualche centinaia di Km
Ponti radio (cont.)

Gli aspetti caratteristici della trasmissione in questa banda
di frequenza sono

l’attenuazione con la distanza, che segue la relazione
 4d 
L  10 log 
 dB
  
2


ed e’ superiore a quella del coassiale, che cresce col logaritmo
della distanza, ed e’ anche funzione crescente con la frequenza
l’attenuazione dovuta alla interferenza (da altre stazioni, da
riflessioni della stessa trasmissione)
attenuazione da pioggia o umidita’, fortemente crescente con la
frequenza
Ponti radio (cont.)


Data la dipendenza dell’attenuazione dalla
distanza, per le tratte lunghe si utilizzano
generalmente due bande di frequenza: 2-6 GHz e
10-14 GHz
Le connessioni a breve distanza possono
utilizzare le frequenze piu’ alte (fino a 40 GHz)
per le quali si hanno i vantaggi:



antenne piu’ piccole
fascio piu’ collimato (quindi minore necessita’ di
potenza)
minori problemi di interferenza per lo scarso utilizzo di
trasmissioni in quella regione di frequenza
Utilizzo dei ponti radio


Generalmente utilizzati per trasmissioni
analogiche (fonia, televisione) o digitali (per reti
private o utilizzate dalle compagnie telefoniche
fornitrici di servizi)
Le diverse bande di frequenza sono suddivise in
canali di diversa larghezza (non uniformi nei
diversi paesi), con canali tra i 7 MHz (a 2 GHz) ed
i 220 MHz (a 18 GHz), e tassi trasmissivi che
vanno dai 12 ai 274 Mbps (in funzione della
banda disponibile e del livello di modulazione
utilizzato, solitamente QAM-x)
Trasmissioni satellitari





Il satellite si comporta come una stazione ripetitrice del segnale di un
ponte radio
Il segnale viene inviato dalla stazione terrestre al satellite (uplink),
che lo rimanda a terra verso la stazione o le stazioni riceventi
(downlink), generalmente utilizzando frequenze differenti
Un satellite opera su piu’ bande di frequenza, con la tecnologia FDM;
i singoli canali si chiamano transponder (canali tra 15 e 500 MHz di
banda)
Sui canali il satellite puo’ fare TDM per gestire diverse comunicazioni
Le bande utilizzate sono quelle tra 1 e 10 GHz



sopra l’attenuazione atmosferica e’ troppo grande
sotto ci sono interferenze ed assorbimento dalla ionosfera
Il sovraffollamento delle frequenze spinge attualmente verso l’utilizzo
di bande a frequenza superiore, nonostante che i problemi di
attenuazione atmosferica divengano sempre piu’ importanti
Satelliti

GEO (Geostationary Earth Orbit): satelliti a 36000 Km di quota in
orbita equatoriale, che appaiono in posizione fissa nel cielo




MEO (Medium Earth Orbit): satelliti a 18000 Km di quota, con 6 ore
di periodo dell’orbita



questi satelliti sono adatti alla trasmissione dati in quanto il puntamento
delle antenne e’ fisso
per motivi di interferenza i satelliti vengono distanziati di due gradi,
quindi si possono avere al massimo 180 satelliti
la trasmissione dati deve tenere conto del ritardo di propagazione del
segnale, che e’ pari a 0.25 secondi (inefficienti i protocolli con controllo
degli errori e ritrasmissione dei pacchetti)
inadatti per la trasmissione dati
esempio: i satelliti del GPS (Global Positioning System)
LEO (Low Earth Orbit): tra 750 e 1500 Km di quota


molto veloci nel transito, ma vicini, quindi si ha poco ritardo e si richiede
poca potenza in trasmissione
esempi: Iridium (per fonia, fax, dati, navigazione), Globalstar.
Riferimenti

Gli argomenti sviluppati nell’ambito del livello fisico possono essere
approfonditi sullo Stallings:





Utili approfondimenti anche sul Tanenbaum:



cap. 3: concetti generali, caratterizzazione di segnale e canale in
frequenza, alterazioni della trasmissione, leggi di Nyquist e Shannon
cap. 4: mezzi trasmissivi
cap. 5: codifica dei dati analogici e digitali (fino al § 5.4 compreso)
cap. 8: multiplexing (escluso ISDN, prestazioni TDM asincrono, xDSL)
cap. 2: (solo gli argomenti trattati a lezione)
In entrambi i testi si possono trovare utili riferimenti bibliografici per
chi desidera approfondire gli argomenti (non richiesto all’esame)
Per le parti trattate a lezione e non presenti sui testi, fare riferimento
ai lucidi ed agli appunti delle lezioni
Sistemi e Tecnologie della
Comunicazione
Lezione 10: data link layer: definizione, framing, codici di correzione degli errori
Il data link layer




Il Data Link Layer (anche livello di collegamento dati, o piu’
semplicemente: livello 2) ha la funzione principale di fornire allo
strato di rete servizi per il recapito di dati al nodo direttamente
adiacente sulla rete
Il compito del data link layer e’ quindi quello di organizzare il
trasferimento dei dati tra due apparati adiacenti, e di fornire una
interfaccia definita per consentire allo strato di rete di accedere ai
servizi offerti
Apparati adiacenti significa logicamente connessi da un “tubo” che
trasmette i bit da una parte e li riceve dall’altra, nell’ordine di
trasmissione
Il data link layer utilizzera’ i servizi dello strato fisico per il recapito
dei dati al suo processo paritario sul calcolatore ricevente, ma
logicamente la comunicazione avverra’ direttamente con il processo
di data link layer remoto

come sia fatto il “tubo” non e’ argomento che riguardi il data link layer,
ma lo strato fisico: non importa se ci sia un cavo, una fibra, una
sequenza di mezzi differenti con interposti ripetitori, convertitori
elettrico/ottici, modem, multiplexer, antenne o altro
Il data link layer (cont.)


Per realizzare le sue funzioni il data link layer riceve i dati dallo strato
di rete (pacchetti), li organizza in trame (frame) eventualmente
spezzando in piu’ frame il blocco di dati ricevuto dal livello 3,
aggiunge ad ogni frame una intestazione ed una coda (header e
trailer), e passa il tutto allo strato fisico per la trasmissione
In ricezione il data link layer riceve i dati dallo strato fisico, effettua i
controlli necessari, elimina header e trailer, ricombina i frame e passa
i dati ricevuti allo strato di rete
Servizi del DLL

Normalmente la progettazione dello strato 2 fornisce allo
strato di rete i servizi




trasmissione dati senza riscontro e senza connessione
trasmissione dati affidabile senza connessione
trasmissione affidabile con connessione
La classe di servizio non affidabile senza connessione e’
adatta su linee di elevata qualita’




il controllo sugli errori e la ritrasmissione di frame errati comporta
una inefficienza in termini di numero di bit trasmessi rispetto ai
dati, con riduzione del tasso utile ed aumento della probabilita’ di
errore
il controllo puo’ essere demandato ai livelli superiori a vantaggio
della efficienza del livello di data link
generalmente questi servizi sono utilizzati su rete locale
come detto piu’ volte, servizi non affidabili sono utilizzati anche
per il traffico voce e video
Servizi del DLL (cont.)

La classe di servizio affidabile con connessione e’ adatta
su linee piu’ frequentemente soggette ad errori




demandare il controllo e la ritrasmissione ai livelli superiori (che
generalmente trasmettono pacchetti costituiti da piu’ frame) in
caso di elevata probabilita’ di errore potrebbe causare la
ritrasmissione di molti pacchetti, mentre al livello due puo’ essere
sufficiente la ritrasmissione del singolo frame
tipicamente utilizzata su linee a grande distanza (connessioni
WAN), anche se la fibra ottica riduce notevolmente questo
problema
Il data link layer deve quindi poter offrire le diverse classi
di servizio, per soddisfare le diverse esigenze conseguenti
alle diverse circostanze
I servizi vengono forniti attraverso una serie di regole di
comunicazione (protocolli) tra i livelli di data link dei
calcolatori adiacenti per realizzare il trasferimento dei dati
Problematiche del livello 2

Per poter svolgere le sue funzioni il data link layer
dovra’ curare i seguenti aspetti:



la organizzazione del flusso di bit in frame, con
controllo per la sincronizzazione, inserimento e
rimozione di header e trailer, riordinamento dei frame
in ricezione
organizzare il trasferimento dei dati in modo da gestire
eventuali errori di trasmissione, utilizzando codici di
correzione degli errori o codici di identificazione degli
errori e gestendo la ritrasmissione dei frame errati
realizzare il controllo di flusso, per utilizzare in modo
efficiente il canale trasmissivo impedendo al contempo
ad un trasmettitore veloce di sovraccaricare un
ricevitore lento
Framing





Per trasportare i bit il Data Link Layer utilizza i servizi
dello strato fisico
Lo strato fisico non puo’ garantire il trasferimento privo di
errori, che dovranno essere gestiti dal DLL
Per fare cio’ il DLL organizza i bit in frame, ed effettua i
controlli per ogni frame
La gestione del frame deve prevedere in primo luogo la
possibilita’ del ricevente di identificare il frame, quindi si
devono adottare regole per delimitarlo e poterne
identificare i limiti in ricezione
Esistono diverse tecniche



conteggio dei caratteri
byte di flag, e byte stuffing
bit(s) di flag di inizio, e fine e bit stuffing
Framing a conteggio di caratteri



Il conteggio dei caratteri prevede l’utilizzo di un frame costituito da
caratteri, ed un campo iniziale per specificare il numero dei caratteri
di cui e’ costituito il frame
In ricezione si legge nel campo iniziale la lunghezza del frame, e si
identifica cosi’ il primo carattere appartenente al frame successivo
Questo algoritmo e’ molto debole, in quanto in caso di errore non si
riesce piu’ a riagganciare la sincronizzazione
Frame con byte di flag





Il problema della sincronizzazione puo’ essere risolto utilizzando un
carattere speciale per indicare l’inizio e la fine del frame (flag)
In questo modo la perdita di sincronia si recupera semplicemente
aspettando il carattere di inizio del frame
Si presenta il problema di gestire l’eventualita’ che il carattere di flag
compaia nel campo dei dati: la soluzione e’ quella di utilizzare un
carattere di escape da inserire prima del byte di flag nel campo dati,
in modo da indicare al ricevente che quel carattere fa parte dei dati e
non della struttura di controllo
In ricezione il carattere di escape verra’ rimosso dal campo dati
Va pero’ considerato che anche il carattere di escape puo’ capitare
casualmente nel campo dati: per evitare che venga erroneamente
rimosso un carattere di escape facente parte dei dati, anche il
carattere di escape verra’ preceduto dal carattere di escape stesso, in
modo da identificarlo in ricezione come parte dei dati allo stesso
modo dell’eventuale carattere di flag
Frame con byte di flag (cont.)

In molti protocolli si utilizza la coppia di caratteri DLE-STX (Data Link
Escape – Start of Text) per delimitare l’inizio del frame, e la coppia
DLE-ETX (End of Text) per delimitarne la fine; ogni volta che il
carattere DLE compare nel campo dati viene raddoppiato.
Framing con bit stuffing

L’utilizzo di protocolli basati sulla lunghezza del carattere a livello di
data link non sempre e’ auspicabile






non tutti i codici sono concordi sulla lunghezza del carattere (7/8 bit
ASCII, 16 bit UNICODE, …)
non sempre e’ adatto un frame costituito da un numero intero di caratteri
(vedi ad esempio SONET)
Per ovviare a questo si utilizza una tecnica che prevede per indicare
l’inizio e la fine del frame una sequenza predefinita di bit (solitamente
01111110)
Ogni qualvolta la sequenza di flag compare nel campo dati, e’
sufficiente inserire in modo opportuno un bit che ne altera la
sequenza (per la sequenza usuale, si inserisce un bit 0 dopo cinque
bit 1 consecutivi)
In ricezione ogni volta che si riceve una sequenza di 5 bit 1 seguiti da
un bit 0, lo zero viene eliminato
Anche in questo caso l’operazione di stuffing rende inequivocabile la
sequenza di inizio e fine del frame, e quindi possibile la
risincronizzazione
Esempio di bit stuffing
Tecniche multiple



Va infine considerato che molti protocolli, per
aumentare la ridondanza del protocollo,
utilizzando piu’ di una tecnica assieme,
tipicamente abbinando il conteggio dei caratteri
ad una delle due tecniche di byte o bit stuffing
In ricezione si semplifica il controllo in quanto il
delimitatore di fine si cerca solo nella posizione
indicata come fine del frame dal contatore
Va osservato come questo non permette
comunque di rinunciare alla necessita’ dello
stuffing, che resta indispensabile per la
risincronizzazione del frame
Frammentazione





Spesso lo strato di rete utilizza pacchetti di dimensione
inadatta allo strato di data link
In questa condizione, il livello 2 spezza il pacchetto in piu’
frammenti, e tratta ciascun frammento
indipendentemente (applica a ciascuno header, trailer e
limiti del frame)
Per poter consegnare in ricezione allo strato di rete il
pacchetto originario il livello 2 dovra’ occuparsi di
ricombinare i frame nell’ordine corretto
Sara’ quindi necessario numerare i frame in un apposito
campo dell’header per poterli riordinare
Vedremo piu’ approfonditamente come questo venga
fatto nella analisi del controllo di flusso e di errore
Controllo degli errori


Come gia’ visto, lo strato fisico non puo’ garantire una
consegna di bit senza errori
Lo strato di data link deve quindi operare algoritmi per
assicurarsi che i frame inviati vengano ricevuti






tutti
senza errori
senza duplicati
nell’ordine corretto
Solitamente si utilizza una forma di riscontro che il
ricevente manda al mittente per confermare la corretta
ricezione dei frame
Questo viene fatto tramite l’invio di pacchetti appositi di
acknowledge positivo (ACK) o negativo (NACK)
Problematiche del controllo degli errori




Il controllo deve prevedere un meccanismo per
correggere o identificare gli errori di trasmissione
La perdita completa di un frame, o la perdita di un ACK,
lascia il trasmittente in attesa dell’ACK, quindi si dovranno
inserire timer per la ritrasmissione automatica di frame
La perdita di un ACK comporta la ritrasmissione di un
frame gia’ ricevuto correttamente, quindi si deve
identificare questa eventualita’ e scartare il duplicato,
tramite ad esempio la numerazione dei frame
I meccanismi adottati per questa funzione sono differenti
e dipendono dal protocollo utilizzato; ne vedremo alcuni
tra i piu’ comuni
Controllo di flusso





Puo’ capitare che una sorgente sia in grado di trasmettere
ad un tasso piu’ alto della capacita’ di ricevere a
destinazione
Senza controllo, questo implica che la destinazione
inizierebbe a scartare frame trasmessi correttamente per
mancanza di risorse (tempo di processamento, buffer)
Il protocollo deve poter gestire questa situazione e
prevedere meccanismi per rallentare la trasmissione
Tipicamente il protocollo prevedera’ dei frame di controllo
con cui il ricevente puo’ inibire e riabilitare la trasmissione
di frame, cioe’ il protocollo stabilisce quando il
trasmittente puo’ inviare frame
Vedremo diverse tecniche, che si differenziano per
complessita’ ed efficienza di utilizzo della linea
Controllare gli errori?

Perche’ occuparsi degli errori trasmissivi? Vediamo un esempio pratico:


Una linea ISDN a 64 Kbps viene ritenuta idonea a fornire servizio se il numero di
frame errati e’ inferiore ad uno al giorno
Ipotizzando di utilizzare frame di 1000 bit, e di trasmettere a piena banda, si ha:
86400 s/giorno * 64000 bps
 5.53  106 frame/gior no
1000 bit/frame
1
PFE 
 1.8  10  7 max prob. di frame errato
6
5.53  10

Ora, ipotizzando un BER di una parte su milione, si ha:
PBE  10 6  PB  1  10 6
PF   PB 
1000

 0.999  PFE  1  PF   0.001
cioe’ senza controllo di errori il tasso di frame errati e’ 5000 volte superiore a
quello richiesto, quindi e’ necessario operare per identificare e correggere gli errori
trasmissivi
Errori di trasmissione

Esistono due strategie per gestire errori di trasmissione
del livello fisico:

utilizzare codifiche a correzione di errore (forward error
correction): la codifica utilizzata e’ in grado di identificare i bit
errati nel frame e di correggerli in ricezione


utilizzata tipicamente su linee ad alto tasso di errore, per le quali
l’overhead della codifica e’ conveniente rispetto alla ritrasmissione del
frame che ha elevate probabilita’ di essere ancora errato
utilizzare codifiche ad identificazione di errore: la codifica e’ in
grado di capire se c’e’ stato un errore durante la trasmissione; in
conseguenza dell’errore il protocollo chiedera’ la ritrasmissione del
frame, o non fara’ nulla, aspettando lo scadere del timer in
trasmissione

utilizzata tipicamente su linee a basso tasso di errore, nelle quali la
ritrasmissione del frame errato risulta piu’ conveniente dell’overhead
di una codifica a correzione di errore
Codeword e distanza di Hamming



Un messaggio da inviare e’ costituito da m bit di dati, a cui si
aggiungono r bit di ridondanza finalizzata alla rilevazione o correzione
di errore
La quantita’ di bit trasmessi e’ costituita da n = m+r bit. Chiamiamo
codeword l’insieme di n bit trasmessi
Date due codeword, si definisce distanza di Hamming tra le codeword
il numero di bit corrispondenti che differiscono, cioe’ il numero di “1”
nel risultato dell’OR esclusivo tra le codeword; ad esempio le due
codeword
10001001
10110001
00111000
hanno distanza di Hamming pari a 3
Correzione e rivelazione di errori
basati sulla distanza di Hamming




L’idea e’ che per trasformare una codeword in
un’altra codeword a distanza d, sono necessari d
errori sul bit
Normalmente i codici ammettono tutte le possibili
2 m combinazioni di bit sui dati, ma non tutte le 2 r
combinazioni sui bit di controllo
Dato l’algoritmo che determina gli r bit di
controllo associati alle possibili combinazioni degli
m bit di dati, esisteranno codeword valide e
codeword invalide
La distanza minima tra le codeword valide e’
detta distanza di Hamming della codifica
Correzione e rivelazione di errori basati
sulla distanza di Hamming (cont.)



Ogni errore di bit trasformera’ la codeword trasmessa (valida) in una
codeword differente
Per poter rivelare d errori, il codice dovra’ avere una distanza di
Hamming pari a d+1 (in questo modo d errori non potranno mai
trasformare una codeword valida in un’ altra codeword valida)
L’esempio piu’ semplice e’ il bit di parita’: questo e’ un codice a
distanza due, che permette di identificare l’errore di singolo bit




dato un set di m bit, la codeword e’ costituita da m+1 bit dove l’ultimo
bit e’ determinato dalla parita’
la codeword valida piu’ vicina si trova cambiando un bit dei dati, ma
questo obbliga a cambiare anche il bit di parita’, quindi la distanza del
codice e’ 2
un errore di singolo bit provoca sempre la trasformazione di una
codeword valida in una non valida (viola la parita’)
Naturalmente questi codici in generale non sono in grado di rivelare
errori di d+1 bit (o superiori) in trasmissione
Correzione e rivelazione di errori basati
sulla distanza di Hamming (cont.)








Questa tecnica viene utilizzata per la correzione degli errori
Per poter identificare e correggere d errori, serve una codifica a distanza
2d+1
In questo modo d errori trasformeranno una codeword valida in una
codeword invalida, ma tale che la codeword valida trasmessa risulta quella a
distanza minima, quindi e’ identificabile
Ad esempio, supponiamo che le codeword valide siano 0000000000
0000011111 1111100000 e 1111111111.
La distanza del codice e’ 5
Supponiamo di trasmettere 0000000000, e di avere 2 errori in trasmissione,
ad esempio riceviamo 1100000000.
Il ricevente sa che la codeword trasmessa e’ quella piu’ vicina (che dista 2
dalla codeword ricevuta), cioe’ ricostruisce il dato corretto
In caso di errori di piu’ bit, la codifica commettera’ un errore di
interpretazione (proseguendo nell’esempio, se in trasmissione e’ stata
trasmessa la codeword 1111100000 e si sono verificati 3 bit di errore,
ricevendo 1111101011, il ricevente correggera’ il dato ricevuto in
1111111111)
Metodo di Hamming per un codice di
correzione di un bit



Per realizzare la correzione di 1 bit di errore dobbiamo realizzare un
codice a distanza 3
Si puo’ vedere la cosa nel seguente modo: per ciascun insieme di dati
dovremo avere una codeword valida ed n codeword invalide,
ottenute cambiando ad uno ad uno un bit della codeword valida
Si ha pertanto:
 n  1 2 m
codeword necessarie
2 n combinazio ni possibili
 n  1  2 m  2 n  2  mr 
 m  r  1 2 m  2 m 2 r  r  2 r  m  1

Questa relazione definisce il limite inferiore di r
Ad esempio, per trasmettere la codifica ASCII a 7 bit dovremo
utilizzare 4 bit di ridondanza
Metodo di Hamming per un codice di
correzione di un bit (cont.)




Hamming ha ideato un modo efficiente per realizzare questa codifica
Numeriamo i bit della codifica partendo da sinistra, iniziando da 1
I bit di ridondanza stanno nelle posizioni 1, 2, 4, … (quelle che
rappresentano le potenze di 2)
I bit dei dati occupano le altre posizioni; ciascuna posizione puo’
essere espressa come somma di potenze di due:



7 = 1+2+4
10 = 2+8
Ciascun bit di ridondanza viene valutato per definire la parita’ (pari o
dispari) dell’insieme dei bit la cui posizione e’ tale da avere il numero
di posizione di quel bit di ridondanza nella sua scomposizione



il bit 1 definira’ la parita’ dei bit 1, 3, 5, 7, ..
il bit 2 definira’ la parita’ dei bit 2, 3, 6, 7, 10, 11, 14, 15, …
il bit 4 definira’ la parita’ dei bit 4, 5, 6, 7, 12, 13, 14, 15, …
Metodo di Hamming per un codice di
correzione di un bit (cont.)



Ogni bit di dati contribuisce alla parita’ dei bit di controllo tali che la somma
delle posizioni di questi bit di controllo eguaglia la posizione del bit in
questione, in quanto questi sono i bit le cui posizioni fanno parte della
scomposizione in potenze di due della posizione del bit stesso
In ricezione si calcolano i bit di parita’ sulla base dei dati ricevuti, e si
confrontano con i valori ricevuti; sommando le posizioni dei bit di controllo
risultati errati, si ottiene la posizione del bit errato (si otterra’ zero se non c’e’
stato errore)
Ad esempio, supponiamo di trasmettere il carattere H, la cui codifica ASCII e’
1001000. La codifica di Hamming (pari) per H e’ 00110010000 (in azzurro i
bit di ridondanza)
Se in ricezione otteniamo 0011011000 (con un errore di trasmissione, nel bit
in posizione 6) e proviamo a ricalcolare la parita’, otteniamo:
bit 1: x+1+0+1+0 = 0 giusto

bit 2: x+1+1+1+0 = 1 errato

bit 4: x+0+1+1 = 0 errato

bit 8: x:0+0 = 0 giusto
quindi il bit errato sara’ in posizione 2+4 = 6


Questo vale anche per identificare un eventuale errore sul bit di controllo,
che risultera’ essere l’unico errato
Tecnica per correzione di errori a grappolo







Spesso gli errori su una linea di trasmissione dati si presentano a
grappoli (burst)
Ad esempio, un evento di rumore impulsivo provoca l’errore di un
certo numero di bit consecutivi
Benche’ la codifica Hamming permetta di correggere solo errori
singoli, si usa un trucco per identificare e correggere gli errori a
grappolo fino ad una lunghezza massima
Una sequenza di K codeword consecutive viene rappresentata in
colonna, ed i bit vengono trasmessi per colonna
Un evento di errore burst di lunghezza non superiore a K provochera’
la trasmissione errata di non piu’ di K bit consecutivi (nell’ordine di
trasmissione)
Poiche’ i bit sono trasmessi in colonne, risulteranno errati non piu’ di
un bit per ciascuna codeword
In questa condizione gli errori burst di lunghezza non maggiore di K
potranno essere corretti in ricezione
Esempio di codifica di Hamming
Sistemi e Tecnologie della
Comunicazione
Lezione 11: data link layer: codici di rilevazione di errore, gestione degli errori
La rilevazione di errore




Un codice a rilevazione di errore ha lo scopo di
permettere al ricevente di determinare se vi sono
stati errori in trasmissione
Il codice non ha la finalita’ di correggere l’errore,
ma solo di rilevare che c’e’ stato
Per raggiungere lo scopo si utilizzano bit di
controllo in aggiunta ai bit dei dati
La tecnica utilizzata e’ di assegnare in
trasmissione ai bit di controllo un valore
opportuno in funzione dei bit dei dati; in ricezione
si calcolano nuovamente i valori dei bit di
controllo e si fa la verifica con quelli ricevuti
Tecniche di codifica

Abbiamo gia’ visto un esempio: il bit di parita’







questa codifica permette la rilevazione di qualunque errore
singolo, ed in generale di un numero dispari di errori
un numero pari di errori non potra’ essere rilevato
la codifica sara’ quindi in grado di identificare burst di errori con
probabilita’ del 50%
Anche in questo caso si puo’ utilizzare la tecnica di trasmettere K
codeword in colonna per identificare errori burst di lunghezza non
superiore a K; errori piu’ estesi, o piccole serie multiple di errori
produrranno un valore valido per ogni riga con probabilita’ 0.5
la probabilita’ che l’errore non venga rilevato sara’
complessivamente pari a 2  k
il vantaggio di questa codifica e’ il basso overhead (1 bit per ogni
frame)
Generalmente si utilizza una tecnica piu’ efficiente, detta
CRC (Cyclic Redundancy Check), o codifica polinomiale
Rappresentazione di sequenze di bit
tramite polinomi



Una sequenza di N bit puo’ essere rappresentata tramite
un polinomio a coefficienti binari, di grado pari a N-1, tale
che i suoi coefficienti siano uguali ai valori dei bit della
sequenza
Il bit piu’ a sinistra rappresenta il coefficiente del termine
di grado N-1, mentre il bit piu’ a destra rappresenta il
termine noto (di grado 0)
Ad esempio, la sequenza 1001011011 puo’ essere
rappresentata dal polinomio
x9  x6  x4  x3  x 1

Il grado del polinomio e’ determinato dal primo bit a
sinistra di valore 1 presente nella sequenza
Aritmetica dei polinomi in modulo 2

L’aritmetica dei polinomi a coefficienti binari si gestisce
con le regole della aritmetica modulo 2:

le somme e le sottrazioni non prevedono riporti; sono pertanto
coincidenti ed equivalenti all’OR esclusivo:
10011011 
11001010 
01010001

00110011 
11001101 
11111110
le divisioni sono eseguite normalmente, tranne che le sottrazioni
seguono la regola sopra detta; in questi termini, il divisore “sta”
nel dividendo quando il dividendo ha lo stesso numero di bit del
divisore, mentre non si puo’ dividere quando il dividendo ha meno
bit del divisore
Divisione binaria di polinomi

Ad esempio:
x6  x3  x2 1
x x
2
x4  x3  x2 1
con resto
x 1

Codifica polinomiale (CRC)




La tecnica consiste nel considerare i dati (m bit) da
inviare come un polinomio di grado m-1
Trasmettitore e ricevitore si accordano sull’utilizzo di un
polinomio generatore G(x) di grado r
Il trasmettitore aggiunge in coda al messaggio una
sequenza di bit di controllo (CRC) in modo che il
polinomio associato ai bit del frame trasmesso, costituito
dall’insieme di dati e CRC, sia divisibile per G(x)
In ricezione si divide il polinomio associato ai dati ricevuti
per G(X)


se la divisione ha resto nullo, si assume che la trasmissione sia
avvenuta senza errori
se la divisione ha resto non nullo, sono certamente avvenuti errori
Codifica polinomiale (cont.)

Dal punto di vista logico, la generazione del codice CRC
avviene nel seguente modo:






Sia M(x) il polinomio associato agli m bit di dati
Sia G(x) il polinomio generatore di grado r
Si aggiungono r bit a valore 0 in fondo ai bitr di dati; il polinomio
associato all’insieme di m+r bit e’ quindi x M(x)
Si calcola il resto della divisione x r M(x)/G(x), che sara’ un
polinomio R(x) di grado inferiore ad r, quindi rappresentativo di
una sequenza di r bit
Si costruisce
la sequenza di bit associata al polinomio
r
T(x) = x M(x)-R(x), che equivale ad aggiungere i bit
corrispondenti a R(x) in coda ai dati da inviare: vanno riportati
tutti gli r bit associati ad R(x), quindi anche eventuali zeri in testa
al resto; questa e’ una sequenza di m+r bit
E’ evidente che il polinomio T(x) risultera’ divisibile per G(x) con
resto nullo
Esempio di calcolo di CRC

Supponiamo di voler trasmettere con CRC la sequenza
1101011011, utilizzando il polinomio generatore
x4  x 1




equivalente alla sequenza di bit 10011
Si costruisce la sequenza 11010110110000, e la si divide
per 10011
Il resto della divisione e’ 1110
Il frame che verra’ trasmesso sara’ quindi
11010110111110
In ricezione si divide la sequenza ricevuta per lo stesso
polinomio, e si verifica che il resto sia nullo
Caratteristiche del polinomio generatore




La codifica CRC si basa sulla definizione del polinomio
generatore G(x)
Le caratteristiche del polinomio determinano quali errori
saranno rilevabili e quali invece potranno passare
inosservati
Detto T(x) il polinomio associato al frame trasmesso, il
polinomio associato al frame ricevuto puo’ essere
espresso come T(x)+E(x), dove E(x) avra’ coefficiente 1
per ogni bit che e’ stato modificato da errori trasmissivi
Risulta chiaro che un errore passera’ inosservato solo se
T(x)+E(x) sara’ divisibile per G(x), ma essendo per
definizione T(x)/G(x) = 0, l’errore passera’ inosservato se
E(x) sara’ divisibile per G(x)
Caratteristiche del polinomio generatore (cont.)

Errori di singolo bit: il polinomio E(x) avra’ la forma
E( x)  xi

dove i e’ il bit errato; un polinomio G(x) costituito da piu’ di un termine non
potra’ dividere E(x)
Errori di coppie di bit: il polinomio ha la forma

E ( x )  x i  x k  x k  x ik  1

con i  k
in questo caso G(x) non potra’ essere divisore di E(x) se

G(x) non divide x k per ogni k: gia’ visto

G(x) non divide ( x k+1) per ogni k possibile (cioe’ fino a k pari al numero di bit del
frame): esistono ink letteratura molti polinomi semplici e di basso grado che non
sono divisori di (x +1) fino a valori di K molto elevati; ad esempio, il polinomio
G ( x )  x 15  x 14  1
non divide (x k+1) per K<32768
Caratteristiche del polinomio generatore (cont.)

Errori in numero dispari di bit:

se G(x) contiene a fattore (x+1) non puo’ essere
divisore di un polinomio con numero dispari di
elementi:





Per assurdo, supponiamo che E(x) sia divisibile per (x+1)
si puo’ scrivere E(x) = (x+1)Q(x)
calcoliamo E(1) = (1+1)Q(1) ma 1+1 = 0, quindi E(1) = 0
Pero’ se E(x) ha un numero dispari di elementi, E(1) e’ la
somma di un numero dispari di 1, che fa 1
si ha quindi un assurdo che nega l’ipotesi di partenza
Caratteristiche del polinomio generatore (cont.)

Sequenze di errori di lunghezza ≤ r




un burst di errori lungo K si puo’ rappresentare
come E(x) = xj (xk-1+xk-2+…+1)
j determina la distanza dell’ultimo bit errato
dall’ultimo bit del frame
come detto, E(x) non divide xj
la restante parte di E(x) non potra’ essere
divisibile per G(x) se K ≤ r
Caratteristiche del polinomio generatore (cont.)

Sequenze di errori di lunghezza r+1



in questo caso E(x) sara’ divisibile per G(x)
solo se il burst genera una sequenza identica
al polinomio generatore
la probabilita’ che questo accada e’ (½)r-1
Sequenze di errori di lunghezza maggiore

si puo’ dimostrare, nella assunzione che tutti i
bit possano essere errati con uguale
probabilita’, che negli altri casi la probabilita’
che E(x) sia divisibile per G(x) e’ pari a (½)r
Polinomi standard


Viste le caratteristiche dei polinomi, si sono identificati
diversi polinomi opportuni per rendere molto improbabile
la mancata rilevazione di errori
I piu’ comuni a 16 bit sono
x 16  x 15  x 2  1
x 16  x 12  x 5  1

CRC - 16
CRC - CCITT
Un polinomio standard a 32 bit utilizzato in molte
applicazioni (tra cui IEEE 802) e’ il CRC-32:
x 32  x 26  x 23  x 22  x 16  x 12  x 11 
x 10  x 8  x 7  x 5  x 4  x 2  x  1
Gestione degli errori

I protocolli a rilevazione di errore devono gestire due tipi
di evento:



dove la perdita puo’ essere un evento noto (ricezione di
un frame errato) o un evento ignoto (distruzione del
frame in trasmissione)
Generalmente si utilizzano una o piu’ delle seguenti
tecniche:




perdita di un frame
perdita di un riscontro
riscontro positivo
attesa di timeout per la ricezione dell’ACK e ritrasmissione
riscontro negativo
Questi meccanismi si chiamano ARQ (Automatic Repeat
reQuest)
Gestione degli errori

Esistono diversi meccanismi di ARQ, che si
basano sulle funzionalita’ dei diversi
protocolli di controllo di flusso




ARQ stop-and-wait
ARQ go-back N
ARQ selective reject
Poiche’ il loro funzionamento dipende da
questi protocolli, li vedremo assieme
all’analisi del controllo di flusso
Sistemi e Tecnologie della
Comunicazione
Lezione 12: data link layer: controllo di flusso, protocolli stop-and-wait e sliding window
Controllo di flusso




L’implementazione del data link layer prevedera’ la
realizzazione della interfaccia con i livelli adiacenti, ad
esempio due procedure from-network-layer() e tonetwork-layer() per scambiare dati con il livello superiore,
e due procedure analoghe per scambiare dati con lo
strato fisico
In aggiunta sara’ prevista una procedura wait-for-event()
che mettera’ il data link layer in attesa di un evento
Questo evento sara’ in generale la segnalazione, da parte
di uno dei due livelli adiacenti, che sono disponibili dei
dati
Infine, saranno definite procedure per il trattamento dei
dati (inserimento/rimozione di header, calcolo di
checksum, …)
Controllo di flusso (cont.)




In ricezione, il data link layer verra’ svegliato per
prelevare dati dallo strato fisico, processarli, e passarli
allo strato di rete
Di fatto il DDL in ricezione non sara’ in grado di
rispondere ad eventi per il tempo che intercorre tra la
chiamata alla procedura from-physical-layer() e la fine
della procedura to-network-layer()
In questo intervallo di tempo, dati in arrivo saranno messi
in buffer, in attesa di essere processati
Poiche’ il tempo di elaborazione non e’ nullo, si deve
gestire l’eventualita’ che i dati arrivino troppo
velocemente
Controllo di flusso a priori




Un semplice meccanismo puo’ essere quello di valutare i
tempi di risposta del ricevente, ed inserire dei ritardi nel
processo di trasmissione per adattarlo alla capacita’ di
ricezione
Il problema e’ che il tempo di processamento in ricezione
non e’ una costante e puo’ dipendere dal numero di linee
che il nodo ricevitore deve gestire
Basarsi sul caso peggiore comporta un grosso limite di
efficienza
Vedremo esempi di protocolli che implementano un
controllo di flusso di complessita’ crescente al fine di
utilizzare al meglio la banda
Protocollo simplex stop-and-wait

Ipotizziamo che






il canale sia privo di errori
il traffico dati scorra in una direzione sola, dal trasmittente (A) al
ricevente (B), cioe’ protocollo simplex
Il protocollo stop-and-wait prevede che A, dopo aver
inviato il frame, si fermi per attendere un riscontro
B, una volta ricevuto il frame, inviera’ ad A un frame di
controllo, cioe’ un frame privo di dati, allo scopo di
avvisare A che puo’ trasmettere un nuovo frame
Il frame di riscontro di indica generalmente con il termine
ACK (ACKnowledge) o RR (Receiver Ready)
Va osservato che il traffico dati e’ simplex, ma i frame
devono viaggiare nelle due direzioni, quindi il canale fisico
deve essere almeno half-duplex
Efficienza del protocollo stop-and-wait


A inizia ad inviare un frame a B al tempo T=0, e potra’
inviare un altro frame solo dopo aver ricevuto l’ACK da B
Il tempo di attesa e’
T = Tframe+Tprop+Tproc+Tack+Tprop+Tproc

dove Tframe e Tack sono i tempi necessari a trasmettere il
frame e l’ack, Tprop e’ il tempo di propagazione del
segnale sul mezzo trasmissivo, Tproc e’ il tempo di
processamento dei dati
Assumendo nulli Tproc e Tack si ha
T = 2Tprop+Tframe
Efficienza stop-and-wait (cont.)

Si definisce efficienza dell’utilizzo del canale il rapporto tra il tempo
impiegato a trasmettere il frame, ed il tempo totale di attesa prima di
poter trasmettere nuovamente:
u = Tframe/(2Tprop+Tframe)

Definiamo la quantita’
a= Tprop/Tframe

Possiamo quindi scrivere
u=1/(1+2a)

Al crescere di a si riduce l’efficienza di utilizzo del mezzo
Efficienza stop-and-wait (cont.)

Il valore di a dipende dalle caratteristiche della
linea:

detti d la lunghezza in metri del mezzo, V la velocita’ di
propagazione del segnale, R il tasso trasmissivo ed L la
lunghezza in bit del frame, si ha
Tprop = d/V

Tframe = L/R --> a = (Rd)/(LV)
Quindi possiamo vedere che, a parita’ degli altri
fattori, l’efficienza si riduce con:



l’aumento del tasso trasmissivo
l’aumento della distanza
la riduzione della dimensione del frame
Efficienza stop-and-wait (cont.)
Efficienza stop-and-wait (cont.)

Il valore di a puo’ essere interpretato come il rapporto tra la
lunghezza in bit della linea e la lunghezza in bit del frame (cioe’
quanti frame stanno sulla linea); infatti


la durata del bit e’ dato dall’inverso del rate:
1
Tb 
R
la lunghezza spaziale del bit e’ data dalla velocita’ di trasmissione del
segnale per la durata del bit, quindi
d b  V  Tb 

il numero di bit che stanno sulla linea e’ dato dal rapporto tra la
lunghezza della linea e la lunghezza del bit:
Nb

V
R
quindi
d
dR


db
V
Nb
Rd
a

LV
L
Calcolo di efficienza

Connessione via modem a 56 Kbps, distanza di 1
Km dalla centralina, con frame lungo 1000 bit.
L’efficienza sara’:
Rd
56  10 3  10 3
4
a


3
.
2

10
LV
1000  2  10 8
1
u
 0.9994
1  2a

Connessione geografica a 1000 Km con frame di
424 bit, e throughput di 155 Mbps:
Rd
155  10 6  10 6
3
a


1
.
8

10
LV
424  2  10 8
1
u
 2.7  10  4
1  2a
Protocollo stop-and-wait con errori (cont.)

Se aggiungiamo la eventualita’ di avere errori, dovremo
gestire la perdita di frame






se arriva a B un frame errato, B lo scarta e non fa nulla
allo stesso modo se il frame viene perduto, B non sapra’ che e’
stato inviato un frame, e l’ACK non verra’ inviato
per evitare che A aspetti per sempre si deve introdurre un timer
in A, che viene fatto partire dopo la trasmissione del frame
questo implica la necessita’ di disporre di un buffer in cui A possa
memorizzare il frame fino alla ricezione del relativo ACK
allo scadere del timer, A inviera’ nuovamente il frame
il valore del timer va valutato accuratamente per impedire che un
timer troppo corto provochi la ritrasmissione prima che l’ACK
possa arrivare, mentre un timer troppo lungo costituira’ una
inutile inefficienza
Protocollo stop-and-wait con errori (cont.)


La stessa procedura permette di fronteggiare la perdita di
ACK, pero’ in questo caso A inviera’ nuovamente il frame
che B ha gia’ ricevuto
Per ovviare a questo problema i frame devono essere
numerati



poiche’ l’ambiguita’ da risolvere e’ quella di distinguere un frame
da quello precedente, e’ sufficiente numerare i frame 0 e 1 (un bit
nell’header)
gli ACK riporteranno l’informazione di quale sia il frame ricevuto
(in generale si riporta il numero del prossimo frame che B si
aspetta di ricevere)
Qualora B dovesse ricevere un duplicato, lo scarta ma
rimanda lo stesso ACK precedentemente inviato
Efficienza stop-and-wait con errori


L’efficienza e’ sempre data dal rapporto tra il tempo impiegato per la
trasmissione della trama ed il tempo che passa prima che A possa inviare la
trama successiva
Il tempo che passa sara’ il tempo di timeout per il numero di ritrasmissioni
dovute ad errore, piu’ il tempo per la trasmissione con successo:
T trasm  ( N T  1 )  T timeout  T frame  2 T prop

Ipotizzando che il tempo di timeout sia pari all’intervallo di tempo dopo il
quale A si aspetta di ricevere l’ACK (in realta’ sara’ leggermente di piu’) si ha:
u
T frame
N T  T frame  2 T prop


NT
dove NT e’ il numero di trasmissioni effettuate
1
 1  2 a 
Efficienza stop-and-wait con errori (cont.)

Detta PFE la probabilita’ di avere un errore (rilevato), il
numero di trasmissioni dello stesso frame sara’
NT 

P 
FE
i 1
( i 1 )
1

1  PFE
quindi l’efficienza del protocollo stop-and-wait con errori
e’ data da
u
1  PFE
1  2 a 
Trasmissioni full duplex



Quando il canale di comunicazione permette
l’invio di dati in entrambe le direzioni
contemporaneamente e’ possibile definire
protocolli di comunicazione detti full duplex
In caso di linea full duplex il canale trasmette
frame di dati in un verso e frame di ACK relativi
alla comunicazione nel verso opposto, mischiati
tra loro
I frame saranno distinti da una informazione
contenuta nell’header del frame, che etichetta i
frame come “dati” o come “frame di controllo”
Acknowledge in piggybacking

Per motivi di efficienza spesso si utilizza una tecnica
(detta “piggybacking”) per evitare di dover costruire e
trasmettere un frame di ACK:



si dedica un campo dell’header di un frame di dati per trasportare
l’ACK della trasmissione in senso inverso
Quando si deve trasmettere un ACK, si aspetta di dover
trasmettere un frame di dati che possa trasportare
l’informazione di ACK
Se non ci sono dati da inviare, si dovra’ comunque inviare
un frame di ACK prima che scada il timeout del
trasmittente

questo implica il dover utilizzare un altro timer per decidere dopo
quanto tempo inviare comunque l’ACK in caso di mancanza di dati
da inviare in senso inverso
Protocolli a finestra scorrevole





I protocolli a finestra scorrevole (sliding window) permettono di
inviare piu’ di un frame prima di fermarsi per attendere il riscontro,
fino ad un valore massimo W fissato a priori
Poiche’ in ricezione possono arrivare piu’ frame consecutivi, i frame
devono essere numerati per garantire in ricezione che non si siano
persi frame: saranno dedicati n bit di controllo per la numerazione,
ed i frame potranno avere numero da 0 a 2n-1
In ricezione non e’ necessario riscontrare tutti i frame: il ricevente
puo’ attendere di ricevere un certo numero di frame (fino a W) prima
di inviare un solo riscontro cumulativo
La numerazione dei frame e’ in modulo 2n, cioe’ il frame successivo a
quello numerato 2n-1 avra’ come identificativo il numero 0
Per non avere sovrapposizione dei numeri identificativi tra i frame in
attesa di riscontro, questi non dovranno essere in numero maggiore
di 2n, quindi si avra’ sempre W ≤ 2n; in funzione del protocollo usato
si potranno avere restrizioni maggiori
Protocolli a finestra scorrevole (cont.)

Questo tipo di protocolli necessita’ di maggiori risorse di
buffer:





in trasmissione devono essere memorizzati i frame inviati in
attesa di riscontro, per poterli ritrasmettere in caso di necessita’
ad ogni riscontro ricevuto, vengono liberati i buffer relativi ai
frame riscontrati, per occuparli con i nuovi frame trasmessi
a seconda del protocollo anche in ricezione di deve disporre di
buffer, ad esempio per memorizzare frame fuori sequenza;
ad ogni riscontro inviato, i frame riscontrati vengono passati allo
strato di rete ed i relativi buffer vengono liberati per poter
accogliere nuovi frame in arrivo
ed una maggiore complessita’ di calcolo
La dimensione della finestra (W) puo’ essere fissata a
priori dal protocollo, ma esistono protocolli che
permettono di modificarne il valore dinamicamente
tramite informazioni di controllo del protocollo
La finestra in trasmissione




In trasmissione si deve tenere conto dei frame inviati e non
riscontrati, e del numero massimo di frame che possono essere
ancora inviati prima di dover fermare la trasmissione
Si utilizza una sequenza di numeri, indicanti gli identificativi dei frame
In questa sequenza di numeri si tiene conto di una finestra che
contiene l’insieme dei frame che il trasmittente e’ autorizzato ad
inviare
Con il procedere della trasmissione la finestra scorre in avanti:




inizialmente la finestra ha limiti 0 e W-1
ad ogni frame inviato, il limite inferiore della finestra cresce di una unita’;
quando la finestra si chiude (cioe’ quando sono stati inviati W frame in
attesa di riscontro) la trasmissione deve fermarsi
per ogni frame riscontrato, il limite superiore della finestra si sposta in
avanti di una unita’ (o piu’ se si e’ ricevuto un riscontro cumulativo),
permettendo al trasmittente di inviare nuovi frame
La dimensione della finestra di trasmissione varia, ma non puo’ mai
superare il valore di W
La finestra in ricezione








In ricezione si deve tenere conto dei frame ricevuti di cui non e’ stato ancora
inviato l’ACK, e del numero di frame ancora accettabili
Si utilizza una finestra analoga a quella in ricezione: la finestra contiene i
numeri dei frame accettabili
il limite inferiore e’ il numero del frame successivo all’ultimo ricevuto, mentre
il limite superiore e’ dato dal primo non ancora riscontrato piu’ W
Ad ogni nuovo frame ricevuto il limite inferiore della finestra cresce di una
unita’, mentre ad ogni acknowledge inviato il limite superiore avanza di una
unita’
La dimensione della finestra non puo’ eccedere il valore di W (tutti i frame
ricevuti sono stati riscontrati)
Quando la finestra si azzera significa che si devono per forza inviare i
riscontri, perche’ la ricezione e’ bloccata
Qualsiasi frame ricevuto con numero fuori dalla finestra di ricezione sara’
buttato via
La finestra in ricezione non deve necessariamente avere la stessa dimensione
della finestra in trasmissione

ad esempio una finestra in ricezione piu’ piccola costringera’ il ricevente ad inviare
ACK prima che in trasmissione sia stata azzerata la finestra
Esempio con W = 7
Efficienza del protocollo sliding
windows senza errori

Un protocollo che permette di trasmettere piu’
frame prima di attendere un riscontro comporta
un utilizzo piu’ efficiente della linea:

se la finestra e’ sufficientemente ampia da non averla
esaurita in trasmissione prima che arrivi l’ ACK del
primo frame inviato, il flusso non si interrompe mai,
cioe’ l’efficienza vale 1; questo si ha quando il tempo
di W trasmissioni supera il tempo necessario a ricevere
il riscontro del primo frame:
T trasm  W  T frame  T frame  2 T prop 
W  1  2a
Efficienza del protocollo sliding
windows senza errori (cont.)

se la finestra non e’ sufficientemente ampia, si ha:
T trasm  W  T frame
T  T frame  2T prop
quindi l’efficienza e’ data da:
W
u
1  2a
che e’ W volte maggiore rispetto a quella del protocollo stop-andwait
Calcolo di efficienza

Connessione geografica a 1000 Km con frame di
424 bit, e throughput di 155 Mbps stop-and-wait:
1
u
 2.7  10  4  R eff  R  u  41 Kbps
1  2a

Stessa connessione con finestra a 8 bit (W=256):
u  256  2.7  10 4  6.9  10 2  R eff  10.7 Mbps
Sistemi e Tecnologie della
Comunicazione
Lezione 13: data link layer: protocolli go-back-n e selective reject; esempi: HDLC, PPP
Protocolli sliding windows con errori

L’utilizzo di un protocollo sliding window permette
di utilizzare meglio la linea, ma complica il
problema di gestire gli errori:



il trasmittente, prima di accorgersi che un frame e’
stato ricevuto con errore, ha gia’ inviato altri frame
in ricezione possono quindi arrivare frame corretti con
numero di sequenza successivo ad un frame rigettato
(non ricevuto)
Esistono due protocolli che gestiscono in modo
differente questa situazione:


protocollo go-back-N
protocollo selective reject
Protocolli sliding windows con errori



Questi protocolli prevedono l’invio sia di frame ACK (per
riscontrare un frame), indicati anche come RR (Receiver
Ready), che NAK (Not AcKnowledged), indicato anche
come REJ (REJect), utilizzato per informare il trasmittente
che e’ stato ricevuto un frame fuori sequenza
Sia gli ACK (RR) che i REJ riportano l’indicazione del
numero di sequenza del frame che e’ atteso in ricezione
(quello successivo all’ultimo riscontrato)
Questi protocolli implementano anche frame di controllo
RNR (Receiver Not Ready) che impongono al trasmittente
di fermarsi fino alla ricezione di un nuovo RR; questi
possono essere utilizzati come ulteriore controllo di flusso,
per gestire situazioni non di errore ma di congestione o
temporanea sospensione della attivita’ in ricezione
Protocollo go-back-N


Questo protocollo segue la logica che in ricezione
vengano rifiutati tutti i frame successivi ad un
frame danneggiato o mancante
Esistono due possibilita’:

frame errato: in questo caso B scarta il frame:


se A non invia frame successivi, non accade nulla fino allo
scadere del timer di A, quindi A ricomincia ad inviare frame a
partire dal primo non riscontrato
se A invia frame successivi, B risponde con un REJ dei frame
ricevuti, in modo da notificare ad A che il frame indicato nel
REJ e’ andato perso; al primo REJ ricevuto, A ricomincia dal
primo frame non riscontrato
Protocollo go-back-N (cont.)

ACK errato: in questo caso B ha accettato il
frame:

se A non invia frame successivi, allo scadere del
timer:



A invia nuovamente il frame; B lo rifiuta (duplicato) ma
invia nuovamente l’ACK
alternativamente, al timeout A puo’ inviare un frame di
controllo per chiedere conferma dell’ultimo frame ricevuto
correttamente, a cui B risponde con l’ACK relativo
se A invia frame successivi, B risponde con l’ACK del
frame successivo; poiche’ gli ACK sono cumulativi,
l’ACK del frame successivo riscontra anche quello di
cui A non ha ricevuto l’ACK, quindi il trasferimento
dati continua senza interruzioni
Esempio di go-back-N



In questa immagine gli ACK sono
indicati come RR (Receiver Ready)
Alla ricezione del frame 5 B
identifica la perdita del 4, ed invia
un REJ che indica il 4 come frame
atteso; questo permette a B di
ripartire dal 4 prima del timeout
la perdita di RR7 comporta un
timeout in quanto B non ha
riscontrato i frame 7 e 0 in tempo;
in questa situazione A sollecita un
frame di RR, riceve il riscontro fino
al frame 0 e ricomincia da 1
Dimensione della finestra per il go-back-N

Poiche’ i riscontri sono cumulativi, la dimensione della
finestra deve essere W ≤ 2n-1; infatti





supponiamo di avere n=3 (quindi numeri da 0 a 7) e scegliamo
per W il valore 8
A invia il frame 7, e riceve ACK0 (riscontro del frame 7)
poi A invia i frame da 0 a 7, e riceve ACK0
A non puo’ sapere se tutti i frame sono stati ricevuti (ACK0 e’ il
riscontro dell’ultimo frame inviato) o sono stati tutti perduti (ACK0
e’ il riscontro ripetuto del primo frame inviato precedentemente
Se nell’esempio la finestra e’ W = 7, A puo’ inviare frame
da 0 a 6; a questo punto


se sono arrivati tutti, A ricevera’ ACK7
se sono andati tutti persi, A ricevera’ ACK0
quindi con W ≤ 2n-1 non c’e’ ambiguita’
Protocollo selective reject



Il protocollo selective reject prevede che in
ricezione possano essere accettati frame fuori
sequenza, utilizzando un meccanismo di
ritrasmissione selettiva dei frame errati
in questo modo si riduce ulteriormente il numero
di frame ritrasmessi, mantenendo la caratteristica
di recapitare allo strato di rete i dati nell’ordine
corretto
In ricezione i frame fuori ordine (ma dentro la
finestra) vengono mantenuti nei buffer fino a che
non siano stati ricevuti tutti i frame intermedi
Protocollo selective reject (cont.)




Quando si ha un frame perduto, B ricevera’ il frame
successivo fuori sequenza, al quale rispondera’ con un
ACK relativo al frame perduto
A non ritrasmette tutti i frame successivi a quello, ma solo
quello perduto, quindi proseguira’ con la normale
sequenza
B ha memorizzato i frame successivi, ed alla ricezione del
frame ritrasmesso liberera’ tutti i buffer inviando un ACK
relativo all’ultimo frame ricevuto correttamente
In caso di perdita dell’ACK, sara’ il timeout di A a
generare un frame di sollecito di ACK per B, che
rispondera’ di conseguenza
Esempio di selective reject



Alla ricezione del frame 5 B
identifica la perdita del 4, ed invia
un REJ che indica il 4 come frame
atteso; questo permette a B di
trasmettere il 4 dopo aver
trasmesso il 6
Nel frattempo A ha memorizzato il 5
ed il 6, ed alla ricezione del 4 invia
l’RR per il 6
la perdita di RR1 comporta un
timeout in quanto B non ha
riscontrato i frame 1 e 2 in tempo;
in questa situazione A sollecita un
frame di RR, riceve il riscontro fino
al frame 2 e ricomincia da 3
Dimensione della finestra per il protocollo
selective reject


La ricezione non sequenziale limita ulteriormente la massima dimensione
della finestra in funzione del numero di bit per la numerazione del frame
Come prima, supponiamo di avere 3 bit, ed una finestra a dimensione 7
(idonea per il protocollo go-back-N)







A trasmette da 0 a 6, B risponde con ACK7 e sposta la sua finestra in
(7,0,1,2,3,4,5)
l’ACK7 si perde; dopo il timeout A ritrasmette il frame 0
B accetta 0 come un nuovo frame (ipotizza che il 7 sia andato perduto) e
trasmette NACK7
A riceve NACK7, lo identifica come un errore di protocollo e chiede la ripetizione
del riscontro, a cui B risponde con un ACK7
A ritiene a questo punto che i frame da 0 a 6 siano arrivati tutti e riparte con i
nuovi: 7,0,1,…
A riceve 7 (OK) ma lo 0 nuovo lo interpreta come duplicato di quello ricevuto
precedentemente e lo butta; quindi si prosegue
in questo esempio lo strato di rete riceve il frame 0 vecchio al posto del
frame 0 nuovo
Per eliminare l’ambiguita’ e’ necessario che le finestre in trasmissione e
ricezione non si sovrappongano; questo si ottiene imponendo che la finestra
abbia dimensione W ≤ 2(n-1), cioe’ la meta’ dello spazio di indirizzamento dei
frame
Efficienza del protocollo selective-reject


Per valutare sommariamente l’efficienza del protocollo
selective-reject si possono fare le stesse considerazioni
fatte per il protocollo stop-and-wait: l’efficienza la si
ottiene dividendo l’efficienza del protocollo sliding
windows senza errori per il numero di trasmissioni di ogni
pacchetto dovute agli errori
Detta P la probabilita’ di avere un frame errato, si ha
quindi:
1  P

u   W 1  P 

 1  2a
W  2a  1
W  2a  1
Efficienza del protocollo go-back-N


L’errore su un frame comporta la necessita’ di ritrasmettere quel frame e tutti i K frame
successivamente inviati prima di ricevere il NAK
Detta P la probabilita’ di avere un frame errato, la probabilita’ di dover trasmettere i
volte il frame e’ data da
P i 1   1  P 
ed il numero di frame trasmessi nel caso di i errori e’ dato da
1  K  i  1  
da cui il numero di frame complessivamente trasmessi per inviare con successo il
frame in questione e’

  1  K  Ki  P
i 1
 1  P  
i 1
1 K 
K
1  P  KP

1 P
1 P
Efficienza del protocollo go-back-N (cont)
Efficienza del protocollo go-back-N (cont)
Efficienza del protocollo go-back-N (cont)

Ora, considerando di effettuare il conto sul primo
frame trasmesso nella finestra, K e’ il numero di
frame inviati prima di ricevere il REJ, cioe’:
K W
se W  1  2 a
K  1  2a
se W  1  2 a
quindi l’efficienza del protocollo e’
u
1 -P
1  2 aP
W 1  P 
u
 2 a  1  1  P  WP 
se W  1  2 a
se W  1  2 a
Confronto di prestazioni
Protocollo HDLC




HDLC (High-level Data Link Control) e’ un protocollo di
linea standard ISO, che implementa lo sliding window sia
in modalita’ go-back-N che selective-reject con rilevazione
degli errori tramite CRC a 16 o 32 bit
E’ uno dei protocolli piu’ utilizzati nelle connessioni puntoa-punto geografiche
Derivato dal protocollo IBM SDLC (Synchronous Data Link
Control), come altri protocolli (ADCCP standardizzato da
ANSI ed utilizzato da DEC)
E’ stato utilizzato come base di sviluppo per ulteriori
protocolli di linea, come LAP e LAPB utilizzati dai protocolli
X.25 e derivati
Caratteristiche di HDLC

HDLC e’ un protocollo progettato per essere flessibile, in
modo da poterlo usare in diverse modalita’:

configurazione sbilanciata, in cui una stazione (primaria) ha
funzioni di controllo e gestione della comunicazione, ed una o piu’
stazioni (secondarie) trasmettono dati solo come risposte ad
interrogazioni della stazione primaria



configurazione bilanciata, in cui due stazioni sono connesse ed
hanno uguale rango


questa configurazione si utilizza in ambienti in cui un calcolatore
centrale e’ connesso a piu’ stazioni terminali “non intelligenti”
la stazione primaria mantiene connessioni logiche individuali con le
stazioni secondarie
questo e’ l’utilizzo piu’ frequente, caratteristico nei link geografici
In entrambe le configurazioni il protocollo permette le
trasmissioni half-duplex e full-duplex
Caratteristiche di HDLC (cont.)

L’HDLC specifica tre differenti modalita’ di trasferimento
dati, in funzione della configurazione della linea:



NRM (Normal Response Mode): modalita’ di risposta normale;
utilizzata in configurazione sbilanciata, in cui le stazioni
secondarie non possono trasmettere senza richiesta esplicita
ABM (Asynchronous Balanced Mode): modalita’ asincrona
bilanciata; utilizzata nella configurazione bilanciata
ARM (Asynchronous Response Mode): modalita’ di risposta
asincrona; utilizzata in configurazione sbilanciata, in cui pero’ i
dati possono essere trasmessi dalle stazioni secondarie senza
preventiva autorizzazione. Il controllo della linea resta prerogativa
della stazione primaria.
Struttura del frame in HDLC




Il protocollo e’ orientato al bit, ed utilizza la tecnica del bit
stuffing
La struttura della trama e’ la seguente:
La flag e’ costituita dalla sequenza 01111110; lo stuffing
viene eseguito inserendo un bit 0 dopo ogni sequenza di
5 bit 1 nel campo dati
La sequenza 01111111 seguita da una sequenza di 1
viene utilizzata per indicare che il frame in corso di
trasmissione e’ invalido e va scartato
Campo indirizzo






Il campo indirizzo serve ad identificare la stazione che ha inviato il frame, o
la stazione a cui e’ destinato, ed e’ utilizzato in configurazione sbilanciata
quando ci sono diverse stazioni secondarie
Nella configurazione punto-punto non e’ utilizzato e puo’ essere omesso
E’ normalmente costituito da 8 bit, ma puo’ essere esteso a lunghezze
superiori, sempre multipli di 8 bit
Il bit a sinistra di ciascun ottetto vale 1 per indicare l’ultimo ottetto dedicato
all’indirizzamento (0 altrimenti)
I restanti 7 bit di ciascun ottetto fanno parte dell’indirizzo della stazione
secondaria che ha inviato o deve ricevere il frame
Esiste un indirizzo speciale (tutti bit 1) per indicare che il frame e’ destinato a
tutte le stazioni secondarie
Campo di controllo

L’HDLC specifica tre diversi tipi di frame





frame di informazione, dedicato alla trasmissione di dati
frame di supervisione, dedicato alla trasmissione di informazioni di controllo
frame senza numero, anche questi dedicati ad informazioni di controllo
Il campo di controllo permette di distinguere il tipo di frame, e trasporta
informazioni di controllo
Questo campo puo’ avere dimensione 8 o 16 bit:
Campo di controllo (information frame)





Il frame di tipo informazione ha uno 0 nel primo bit del campo di
controllo
Il campo N(S) e’ dedicato alla numerazione del frame trasmesso, ed il
campo N(R) al riscontro in piggybacking
Questi campi hanno dimensione 3 bit, quindi permettono una
numerazione di 8 frame, ma puo’ essere utilizzato un campo a 7 bit
(in questo caso si utilizza un campo di controllo a 16 bit)
Il bit P/F (poll/final) e’ utilizzato per sollecitare nella stazione
ricevente un frame di tipo supervisione senza attendere trasmissioni
di dati in senso inverso per l’utilizzo del piggybacking
Il bit P/F nella configurazione in modalita’ sbilanciata indica la
richiesta della stazione primaria di informazioni di controllo della
comunicazione alla secondaria; la risposta potra’ comportare piu’
frame (indicati dal bit P) fino all’ultimo che e’ indicato con il bit F
Campo di controllo (supervision frame)


Il frame di tipo supervisione ha i primi due bit di valore 10
Questo frame presenta un campo di due bit (S) che ne definisce il
significato:





il tipo 00 indica un frame di controllo RR, cioe’ il normale acknowledge,
utilizzato in assenza di piggybacking; in questo caso il campo N(R)
trasporta l’informazione del riscontro
il tipo 01 indica un frame di tipo REJ, utilizzato nella implementazione del
go-back-N; il campo N(R) indica il frame da cui il ricevente deve ripartire
nella trasmissione in verso opposto
il tipo 10 indica un frame di tipo RNR (Receiver Not Ready), che indica il
riscontro indicato nel campo N(R), ma obbliga la stazione che lo riceve
ad interrompere le trasmissioni fino al successivo RR
il tipo 11 indica un frame di tipo SREJ (Selective REJect), che chiede la
ritrasmissione del solo frame indicato in N(R) secondo il protocollo
selective-reject
Il bit P/F ha la stessa funzione che ha nel frame di informazione.
Campo di controllo (unnumbered frame)



Il frame di tipo unnumbered ha i primi due bit del campo
di controllo con valore 11; per questo frame il campo di
controllo e’ sempre di 8 bit
Solitamente utilizzato per la trasmissione di informazioni
di controllo della linea o di inizializzazione (per la
definizione dei valori opzionali), puo’ essere utilizzato
anche per la trasmissione di frame di dati con servizio
senza connessione ed inaffidabile
Per i frame unnumbered, oltre al bit P/F, sono disponibili
nel campo di controllo 5 bit (M) per definire il tipo di
informazione trasmessa
Campo di controllo (unnumbered frame) (cont.)

I frame unnumbered utilizzati nella fase di inizializzazione sono
relativi a





segnalazione di richiesta di inizializzazione della linea
definizione della modalita’ di trasferimento dati (NRM, ABM, ARM)
definizione della modalita’ normale o estesa per i numeri di sequenza dei
frame (a 3 o 7 bit)
accettazione o rifiuto delle impostazioni proposte dalla controparte
Frame unnumbered utilizzati durante il trasferimento dati possono
essere:






richiesta di informazioni di controllo
notifica di ricezione di frame invalido (questi frame hanno 24 bit nel
campo dati per descrivere il problema incontrato)
richiesta di reset della linea
richiesta/notifica di disconessione
unnumbered acknowledge (riscontro di frame unnumbered)
test
Campo di informazione




Questo campo e’ presente solo nei frame di tipo
information o unnumbrered
Il campo di informazione e’ costituito dai dati che lo strato
di rete deve trasferire (con frame di tipo I o U) o dati di
controllo della linea (frame di tipo U)
Questo campo puo’ avere una dimensione variabile, ma
limitato da un valore massimo che deve essere
predefinito nella configurazione del protocollo
La dimensione del campo di informazione e’ normalmente
determinata dalla dimensione dei dati che vengono
passati dallo strato di rete, e puo’ raggiungere qualche
migliaio di bytes
Campo di rilevazione di errore



Questo campo e’ dedicato al CRC, normalmente a
16 bit
In circonstanze particolari (frame molto lunghi o
linee molto rumorose) puo’ essere utilizzato un
polinomio a 32 bit ; in questo caso il campo CRC
sara’ di 32 bit
Il codice impiegato di norma e’ il CRC-CCITT per
il controllo a 16 bit, o il CRC-32 (standard ISO)
per il controllo a 32 bit
Point to Point Protocol (PPP)





Il PPP e’ un protocollo generico di livello due per
connessioni punto-punto tra due stazioni
E’ nato per l’utilizzo come strato di data link di Internet
(cioe’ da TCP/IP) ma e’ progettato per poter servire altri
protocolli di livello 3
Il suo utilizzo e’ specifico per le connessioni punto a
punto (sulle reti locali broadcast generalmente si
utilizzano altri protocolli di livello 2)
Tipicamente utlizzato per connettere il PC di casa ad
Internet utilizzando una connessione via modem, ma puo’
essere utilizzato su linee seriali HDLC, SONET etc…
Le specifiche del PPP sono definite in numerosi RFC (a
partire dal 1661 e seguenti)
Caratteristiche

Le principali caratteristiche del PPP sono







protocollo orientato al byte, con framing tramite byte di flag e
byte stuffing
utilizzo di codifica a rilevazione di errori
supporto di un protocollo (LCP: Link Control Protocol) per la
gestione della connessione, test della linea, negoziazione dei
parametri della comunicazione
supporto di un protocollo (NCP: Network Control Protocol) per la
negoziazione dei parametri relativi al protocollo di rete
soprastante
supporto – tramite NCP – per diversi protocolli di rete
autenticazione
implementa servizio non affidabile, ma puo’ essere configurato
tramite LCP per fornire un servizio affidabile
Il frame del PPP




Il frame del PPP e’ costruito sull’esempio del frame HDLC
I limiti del frame sono definiti da un byte di flag di valore 0x7E
(01111110), ma a differenza di HDLC il protocollo e’ orientato al
carattere ed utilizza il byte stuffing (escape: 0x7D)
Il campo address e’ definito per essere sempre 0xFF (tutti uno), in
quanto il protocollo non prevede di dover distinguere diverse
potenziali stazioni trasmittenti
Il campo control ha per default il valore 0x03 (00000011), che indica
frame senza numero, e questo e’ l’utilizzo previsto originariamente, e
quello piu’ frequente; e’ possibile negoziare tramite LCP una modalita’
di numerazione dei frame (RFC 1663) per poter fornire un servizio
affidabile in caso di canale fisico ad alto tasso di errore
Il frame del PPP


Poiche’ i campi address e control hanno, nella maggior parte dei casi,
sempre lo stesso valore, il protocollo LCP puo’ negoziare di farne a
meno (compressione dell’header)
Il campo protocol (2 byte, negoziabili a 1) indica a quale protocollo si
riferiscono i dati del campo payload




questi possono essere relativi a protocolli dello strato di rete (IP, IPX,
Appletalk, OSI, …) ed hanno valori che iniziano con bit 0
protocolli di negoziazione (LCP, diversi NCP per i diversi protocolli di rete
supportati), con valori che iniziano con bit 1
Il campo payload trasporta i dati, ed ha lunghezza variabile (di norma
1500 byte)
Il campo checksum trasporta il CRC, normalmente a 16 bit ma
estendibile in configurazione a 32
Funzionamento del PPP






Il PC inizia una connessione via modem verso il provider
Stabilita la connessione a livello fisico, si attiva il PPP, che
inizia la negoziazione dei parametri della connessione
tramite il protocollo LCP
Stabiliti i valori dei parametri per la connessione corrente,
opzionalmente si avvia una procedura di autenticazione
Segue una fase di negoziazione dei parametri del
protocollo di livello 3, tramite il protocollo NCP
A questo punto la connessione a livello 3 e’ stabilita, e gli
applicativi possono trasmettere i dati in rete lungo la pila
dei protocolli
Alla fine del collegamento il PPP attiva, tramite LCP, una
procedura per la chiusura della connessione
LCP



Il protocollo LCP ha la funzione di negoziare le caratteristiche della
trasmissione a livello 2
Non fornisce le specifiche dei parametri (che sono definiti e capiti dal
PPP), ma solo un mezzo per negoziarli
Sostanzialmente LCP ha quattro tipi di istruzioni:

configure: permette ai processi paritari PPP di proporre, accettare,
rifiutare con controproposte o dichiarare non negoziabili i parametri
relativi a








massima dimensione del payload
abilitazione della autenticazione
protocollo di rete da utilizzare
abilitazione del controllo sulla qualita’ della linea
compressione dell’header
terminate: per notificare ed accettare la disconnessione della linea
reject: per comunicare che un frame non e’ stato interpretato (errore non
rilevato o utilizzo di versioni differenti di PPP)
echo: per il controllo della qualita’ della linea (ad esempio utilizzabile per
testare la funzionalita’ del canale trasmissivo in caso di problemi)
NCP






Il protocollo NCP e’ dedicato alla configurazione dei parametri relativi
al protocollo di rete che viene servito dal PPP
Generalmente il corretto funzionamento del protocollo di livello 3
prevede la configurazione di alcuni parametri specifici, quali indirizzo
di rete, indirizzo del gateway di riferimento ed altri ancora
Tipicamente il proprietario del PC che si connette al provider non ha
modo di sapere come configurare questi parametri
Il protocollo PPP, implementando NCP, permette una configurazione
automatica di questi parametri, che generalmente vengono definiti
dinamicamente all’atto della connessione
Poiche’ ogni protocollo di rete ha i propri parametri di configurazione,
diversi in numero e significato, il PPP dovra’ fornire una
implementazione specifica per ogni protocollo di rete supportato
Il PPP supporta sempre il protocollo IP (e quindi lo stack TCP/IP nel
suo complesso)
Sistemi e Tecnologie della
Comunicazione
Lezione 14: data link layer: sottostrato MAC (definizione, protocolli di assegnazione del canale)
Reti geografiche e reti locali


Quanto visto fin’ora e’ relativo a comunicazioni a livello due tra
stazioni connesse da una linea punto-punto
La totalita’ delle reti geografiche e la quasi totalita’ delle reti
metropolitane sono costituite da connessioni punto-punto, per motivi
tecnici, economici o legali




la impossibilita’ di stendere un cavo proprietario lungo una tratta
geografica di fatto obbliga il progettista della rete geografica ad
appoggiarsi alle linee delle compagnie di telecomunicazione
quando anche fosse possibile l’utilizzo di una linea proprietaria, in molti
casi entrano in gioco fattori economici che fanno preferire l’affitto di linee
gia’ esistenti alla realizzazione di una infrastruttura proprietaria
Nel caso delle reti locali questi limiti non esistono: spesso l’area da
interconnettere e’ tutta sotto il controllo della azienda o ente
interessato, come il piano di un edificio, un palazzo o un campus
In questa condizione il progettista ha molta liberta’ nello scegliere la
tecnologia ed il protocollo migliore, in base a costi, prestazioni,
semplicita’ di gestione, robustezza, …
Canali broadcast

L’estensione limitata delle reti locali permette l’utilizzo di protocolli
che sfruttano un mezzo trasmissivo comune a tutte le stazioni
interconnesse (canali broadcast)




reti locali con bus trasmissivo (Ethernet, token-bus)
reti locali ad anello condiviso (FDDI, token ring)
reti wireless a comunicazione broadcast, cioe’ non direzionale
(802.11a/b/g)
Caratteristica di queste tecnologie e’ la disponibilita’ a costi contenuti
di una rete ad alte prestazioni ed a bassissimi tassi di errore

sono normali rapporti di 1 a 1000 sui tassi di errore dei canali in uso su
rete locale rispetto ai canali tipici delle reti geografiche


questo permette di realizzare, come in effetti si fa, protocolli di livello 2 che
forniscono servizi non affidabili, demandando ai livelli superiori i controlli sulla
integrita’ dei dati
questa considerazione non si applica alle connessioni wireless, che anzi
sono molto rumorose, a fronte pero’ della loro caratteristica unica che e’
il supporto alla mobilita’ della stazione connessa
Allocazione del canale condiviso




In queste reti esiste un problema che nelle reti punto-punto non
esiste: stabilire quale stazione acquisisce il diritto di utilizzare il
mezzo trasmissivo in condizioni di competizione (cioe’ quando piu’ di
uno vuole trasmettere dati nello stesso intervallo di tempo)
Il problema e’ analogo alla gestione della comunicazione verbale tra
gruppi di persone: deve esistere un meccanismo per regolare la
comunicazione in quanto la sovrapposizione delle trasmissioni rende
tutte le trasmissioni incomprensibili
Esistono protocolli per definire l’assegnazione del canale condiviso,
che fanno parte del data link layer
La complessita’ di questo problema e la sua relativa indipendenza
dalle questioni relative al trasferimento dei frame fanno si che
l’argomento sia trattato come sottostrato indipendente del livello 2,
chiamato MAC (Medium Access Control)
Assegnazione statica del canale




Studiando lo strato fisico abbiamo visto come lo stesso canale possa
essere utilizzato da diversi utenti tramite tecniche di multiplexing
FDM o TDM
Queste tecniche hanno la caratteristica di risultare efficienti e
funzionali quando il traffico degli utenti e’ regolare e prevedibile, in
modo da poter allocare per ogni trasmissione le risorse che questa
richiede e che generalmente utilizzera’ per la maggior parte del
tempo
In condizioni di traffico irregolare, le utenze che hanno allocato
banda o slot temporali e che non le utilizzano costituiscono una
inefficienza per l’utilizzo del canale
In genere i calcolatori connessi ad una rete locale non producono un
flusso regolare di dati da trasmettere, ma piuttosto alternano periodi
di inattivita’ a momenti in cui la quantita’ di dati da trasferire e’
elevata: si possono facilmente trovare differenze di tre ordini di
grandezza tra i picchi di traffico ed il rate medio prodotto da una
stazione
Assegnazione statica del canale (cont.)


In questo ambito la tecnica di multiplexing
risulta essere molto inefficiente
Altro motivo di inadeguatezza e’ dato dalla
complessita’ da affrontare per aggiungere
nuove stazioni alla rete locale

se il multiplexing di una configurazione e’ tale
da sfruttare al meglio le risorse del mezzo
trasmissivo, un nuovo inserimento comporta la
necessita’ di una riconfigurazione complessiva
della distribuzione delle slot temporali o delle
bande di frequenza
Assegnazione dinamica del canale


Per assegnazione dinamica si intende un meccanismo
grazie al quale il canale viene assegnato al volo a chi ne
ha bisogno, secondo criteri specifici dei protocolli,
cercando un modo efficiente di risolvere le contese
L’analisi – sia dal punto di vista logico che quantitativo di questi protocolli si basa su alcuni presupposti

Modello della stazione: ci sono N stazioni indipendenti, ciascuna
con un programma utente che genera frame a frequenza
costante; quando il frame e’ generato, la stazione non fa nulla
fino a che il frame non e’ stato trasmesso con successo (l’analisi
di modelli in cui la stazione puo’ utilizzare il tempo di attesa per
eseguire altri programmi modificando la frequenza di generazione
dei frame in funzione del ritardo in trasmissione risulta
enormemente piu’ complessa)
Assegnazione dinamica del canale (cont)


Presupposto di canale singolo: esiste un unico canale
trasmissivo, attraverso il quale transitano tutte le
comunicazioni; non c’e’ modo per una stazione per
poter avere informazioni se non attraverso questo
canale (non e’ possibile instaurare un meccanismo per
richiedere l’allocazione del canale del tipo: “alzo la
mano”)
Presupposto della collisione: due frame trasmessi
contemporaneamente si sovrappongono, il segnale
diventa distorto ed incomprensibile; anche la
sovrapposizione di un solo bit provoca il fallimento
della trasmissione di entrambi i frame. Questo evento
si chiama collisione, ed e’ l’unica causa di errore
trasmissivo.
Le collisioni possono essere rivelate da tutte le stazioni
connesse al mezzo.
Assegnazione dinamica del canale (cont)

Presupposto sull’istante di inizio della trasmissione.
Esistono due alternative mutuamente esclusive:



tempo continuo: una stazione puo’ iniziare a trasmettere un
frame in qualsiasi istante
tempo suddiviso in slot: le stazioni sono sincronizzate tra loro,
ed i frame possono essere inviati solo all’inizio delle slot
temporali. In questa situazione una slot puo’ contenere 0, 1 o
piu’ frame interi: nel primo caso nessuno trasmette, nel
secondo caso la trasmissione ha successo, nel terzo caso si
verifica una collisione
Presupporto di rilevamento di occupazione del canale.
Anche in questo caso esistono due alternative:


le stazioni, prima di iniziare la trasmissione, sono in grado di
capire se qualcuno sta’ gia’ trasmettendo (ad esempio:
ethernet)
le stazioni non effettuano la rilevazione di occupazione del
canale; solo dopo aver trasmesso possono capire se la
trasmissione ha avuto successo (ad esempio: wireless)
Protocolli ad accesso multiplo

Aloha puro




il protocollo prevede semplicemente che la stazione che deve
trasmettere un frame lo trasmette immediatamente
i frame sono di lunghezza uguale e fissata
le trasmissioni potranno sovrapporsi, generando una collisione; le
stazioni sono in grado di verificare l’evento di una collisione
ascoltando il canale e verificando se qualcun altro trasmette
durante la propria trasmissione
in caso di collisione, la stazione attende un tempo casuale e poi
ritrasmette
Aloha puro



in generale il protocollo avra’ una buona probabilita’ di riuscita
quando il traffico e’ molto basso (poche stazioni, e trasmissioni
rarefatte)
in caso di alti carichi, le collisioni cresceranno, e con esse le
ritrasmissioni, fino a rendere la trasmissione di fatto impossibile
Il calcolo della capacita’ di trasporto (S) del canale in funzione del
numero di tentativi di trasmissione per tempo di frame (G) e’
S  Ge

2 G
Il protocollo ha quindi una efficienza massima quando per ogni
tempo di frame ci sono G = 0.5 tentativi di trasmissione; in questa
condizione l’efficienza di utilizzo del canale e’ pari circa al 18%
Aloha a slot temporali

Slotted aloha




questo protocollo migliora il precedente introducendo il concetto
di tempo diviso in slot
ciascuna slot contiene esattamente un frame
ogni stazione che vuole trasmettere un frame, deve aspettare la
successiva slot temporale per trasmettere
in questo modo si riduce il numero di collisioni



nel protocollo aloha puro un frame trasmesso all’istante 0 andra’ in
collisione se c’e’ stata un’altra stazione a voler trasmettere un frame
nell’intervallo tra [-T, T]
nel protocollo slotted aloha un frame trasmesso andra’ in collisione se
c’e’ stata un’altra stazione a voler trasmettere un frame nell’inetrvallo
[-T,0], in quanto le stazioni che desiderano trasmettere un frame
dopo l’istante 0 devono aspettare la slot successiva
questo protocollo richiede che le stazioni siano tutte sincronizzate
temporalmente
Aloha a slot temporali (cont.)

L’efficienza dell’utilizzo del canale con questo protocollo e’
data da
S  Ge
G
e per G = 1 raggiunge il suo valore massimo (37%) che
e’ doppio rispetto ad aloha puro
Protocolli con rilevamento della portante


Una delle maggiori inefficienze dei protocolli
aloha e’ determinato dal fatto che la trasmissione
viene fatta senza controllare prima se il canale e’
libero
Vediamo una classe di protocolli che migliora la
situazione: protocolli con rilevamento della
portante (CSMA: Carrier Sense Multiple Access)


in questo contesto il termine portante indica in
generale il livello del segnale presente sul mezzo
trasmissivo
il segnale non e’ necessariamente un segnale costituito
dalla modulazione di una portante, ma anche, ad
esempio, un segnale in banda base
CSMA 1-persistente

Il piu’ semplice di questi protocolli ha il seguente
funzionamento:

quando un calcolatore ha dati da trasmettere, ascolta
il segnale presente sul mezzo trasmissivo




se trova il canale libero, trasmette il frame
se trova il canale occupato, continua ad ascoltare fino a che il
canale non si libera, e poi trasmette il frame
in caso di collisione, la stazione aspetta un tempo
casuale e ripete l’algoritmo
Il protocollo si chiama 1-persistente perche’
quando trova il canale occupato, resta in ascolto
continuamente, ed appena il canale si libera
trasmette con probabilita’ 1 (sempre)
CSMA 1-persistente (cont.)

Con questo protocollo acquista grande importanza il
ritardo di propagazione del segnale tra due stazioni



infatti, quando una stazione inizia a trasmettere, una seconda
stazione potrebbe voler trasmettere, ed ascolta il canale
se il segnale trasmesso dalla prima stazione non ha ancora avuto
il tempo di propagarsi fino alla seconda stazione, questa trovera’
il canale libero e trasmettera’, generando una collisione
Maggiore e’ il ritardo di propagazione, piu’ numerose
saranno le collisioni dovute alla eventualita’ sopra
descritta

nota: questa situazione si presentera’ sempre ed
indipendentemente dal ritardo di propagazione qualora due
stazioni volessero trasmettere mentre una terza sta’
trasmettendo: alla fine della trasmissione della terza stazione, le
due stazioni in attesa si metteranno sempre a trasmettere
contemporaneamente
CSMA 1-persistente (cont.)



Come slotted aloha, questo protocollo non
interferisce con le trasmissioni gia’ in atto
A differenza di slotted aloha, questo protocollo
non prevede di dover attendere la time slot
successiva, evitando ad esempio di lasciare
inutilizzata una slot temporale per il tempo di
durata della slot stessa
Inoltre CSMA 1-persistente non richiede la
sincronizzazione delle stazioni connesse alla rete
CSMA non persistente


Si differenzia dal precedente per il fatto che una stazione, quando
vuole trasmettere ma trova il canale occupato, non resta ad ascoltare
in continuazione, ma attende un tempo casuale e riprova
Questo meccanismo riduce sensibilmente le collisioni dovute al fatto
che due stazioni vogliano trasmettere durante la trasmissione di una
terza:





ora le stazioni attenderanno generalmente tempi diversi prima di
ritentare
la prima che ritenta trovera’ il canale libero e trasmettera’
la seconda trovera’ nuovamente il canale occupato, quindi non interferira’
ed aspettera’ ancora
Questo protocollo alza notevolmente l’efficienza di utilizzo del canale
con l’aumento del carico, cioe’ delle stazioni connesse alla rete
Il problema principale di questo protocollo e’ che in condizioni di
elevato carico il tempo che intercorre tra l’istante in cui la stazione
vuole trasmettere e l’istante in cui riesce a trasmettere puo’ crescere
enormemente
CSMA p-persistente


In questa ultima versione del protocollo a rilevamento della portante, il
tempo e’ suddiviso in slot temporali come nello slotted aloha
In questo caso, chi desidera trasmettere ascolta il canale continuamente e
quando lo trova libero






trasmette con probabilita’ p, oppure attende la slot successiva con probabilita’
(1-p)
alla slot successiva, se libera, trasmette nuovamente con probabilita’ p o aspetta la
successiva con probabilita’ 1-p, e cosi’ via
in caso di collisione, o se durante i tentativi di trasmissione qualche altra stazione
inizia a trasmettere, la stazione attende un tempo casuale e ripete l’algoritmo
Questo protocollo e’ una via di mezzo tra il protocollo 1-persistente (a cui
tende per p che tende ad 1) e quello non persistente
Come nel caso di CSMA non persistente, ad elevato carico e per bassi valori
di p cresce l’efficienza di utilizzo della linea ma cresce il ritardo di
trasmissione rispetto all’arrivo dei dati dallo strato di rete
Per alti valori di p l’efficienza di utilizzo della linea descesce rapidamente con
l’aumentare del carico
Confronto tra protocolli CSMA
Rilevamento delle collisioni




Un ulteriore miglioramento delle prestazioni si ha con i
protocolli CSMA/CD (Carrier Sense, Multiple Access,
Collision Detection)
Questi protocolli prevedono che una stazione, rilevata una
collisione sul frame che sta’ trasmettendo, interrompe la
trasmissione del frame, riducendo in questo modo l’
occupazione del canale con frame comunque invalidi
Questi protocolli sono alla base di molti protocolli utilizzati
sulla LAN, tra cui Ethernet
La caratteristica principale di questi protocolli e’ la durata
del tempo in cui il canale e’ conteso tra stazioni pronte a
trasmettere
Intervallo di contesa

Dopo quanto tempo una stazione e’ certa di avere
allocato il canale per la sua trasmissione?
Detto T il tempo necessario alla propagazione del segnale
tra le due stazioni piu’ lontane, si ha:




se la stazione A trasmette un frame al tempo 0, la stazione B
potrebbe iniziare una trasmissione al tempo T-ε (con ε piccolo,
T- ε e’ l’ultimo istante in cui il canale apparira’ libero a B)
la stazione B si accorgera’ della collisione al tempo T, mentre la
stazione A dovra’ aspettare che il segnale trasmesso da B la
raggiunga prima di accorgersi della collisione
quindi una stazione potra’ essere certa di avere allocato il canale
se non compaiono collisioni per un tempo 2T
ad esempio, su un canale lungo 1 Km si ha 2T = 10μs, che a 10
Mbps corrisponde al tempo di 100 bit
Intervallo di contesa (cont.)



La trasmissione con protocolli CSMA/CD consiste in una alternanza
tra intervalli di contesa, ciascuno dei quali lunghi 2T, intervalli di
trasmissione, in cui una stazione e’ riuscita ad allocare il mezzo
trasmissivo, ed intervalli di inattivita’, in cui nessuno deve trasmettere
dati
L’efficienza del canale dipendera’ dalla durata degli intervalli di
contesa, che crescera’ con la durata del tempo di propagazione T e
crescera’ col numero di trasmissioni tentate per unita’ di tempo
Anche in questo caso l’aumento del carico trasmissivo produce un
crollo della efficienza oltre un certo limite, in modo analogo ai
protocolli precedenti
Codifiche per i protocolli a contesa

In tutti i protocolli fin qui analizzati esiste il
presupposto che chi trasmette sia in grado di
rilevare una collisione



questo richiede che la codifica fornisca un metodo per
identificare una sovrapposizione di trasmissioni
ad esempio codifiche che assegnano una tensione di 0
volt al simbolo 0 non sempre sono in grado di
identificare la collisione: due sequenze 01010101… e
10101010… contemporanee potrebbero non essere
rilevate come collisione, ma come sequenza 111111…
i protocolli su cavo utilizzano normalmente la codifica
Manchester, che accomuna a questa caratteristica la
trasmissione implicita delle informazioni di sincronismo
Caratteristiche dei protocolli a contesa


Date le caratteristiche dei protocolli e’ evidente che il tipo
di trasmissione a livello due non potra’ essere altro che
half-duplex, in quanto non possono coesistere due
trasmissioni contemporanee sul mezzo trasmissivo
Si puo’ anche osservare come i protocolli fin qui visti non
saranno in grado di offrire servizi affidabili



evitare la collisione di per se non garantisce che il frame arrivi
integro
in linea di principio si potrebbe utilizzare una tecnica di riscontro,
ma questi protocolli hanno una efficienza che crolla in funzione
del numero di frame trasmessi nell’unita’ di tempo
per le comunicazioni su cavo, l’elevata affidabilita’ del mezzo fisico
(dovuta alle brevi distanze) rende piu’ efficiente demandare il
controllo ai livelli superiori piuttosto che appesantire il carico con
frame di acknowledgement
Protocolli senza collisione


Sono stati sviluppati protocolli per regolare l’accesso al
mezzo che non comportano collisioni
Vedremo due esempi:

protocollo a prenotazione



per protocollo a prenotazione si indica un protocollo per cui una
stazione annuncia a tutti il suo desiderio di comunicare, prima di
iniziare la trasmissione vera e propria
poiche’ tutti vengono a conoscenza a priori che la stazione deve
trasmettere, nessuno interferisce con la trasmissione
protocollo a turno (round robin)



in questo caso ad ogni stazione e’ data a turno la possibilita’ di
trasmettere
al proprio turno, una stazione trasmette i frame disponibili,
generalmente per un periodo di tempo massimo predeterminato,
quindi il turno passa alla stazione successiva
il controllo della sequenza puo’ essere centralizzato (una stazione
master che fa un polling delle altre stazioni) o distribuito (tramite lo
scambio di un gettone), in entrambi i casi seguendo un ordine
sequenziale predeterminato
Protocollo a prenotazione

Un esempio di protocollo a prenotazione e’ il protocollo a mappa di bit
elementare:






sulla rete ci sono N stazioni, numerate da 0 a N-1
alla fine della trasmissione di un frame inizia un periodo di contesa, in cui ogni
stazione, andando per ordine di indirizzo, trasmette un bit che vale 1 se la
stazione deve trasmettere, 0 altrimenti
al termine del periodo di contesa (privo di collisioni in quanto ogni stazione
aspetta il suo turno) tutti hanno appreso quali stazioni devono trasmettere, e le
trasmissioni procedono un frame alla volta sempre andando per ordine
se una stazione riceve dati da trasmettere quando la fase di prenotazione e’
terminata, deve attendere il successivo periodo di contesa per prenotare la propria
trasmissione
L’efficienza di questo protocollo e’ bassa per grandi valori di N e basso carico
trasmissivo; in queste condizioni una stazione deve attendere tutti gli N bit
delle altre stazioni (delle quali la maggior parte o la totalita’ non desidera
trasmettere) prima di poter trasmettere
In condizioni di carico elevato l’overhead dovuto agli N bit di prenotazione si
distribuisce sui ~N frame da trasmettere, riducendo l’inefficienza complessiva
del protocollo
Protocollo round robin: token ring

Token ring (standard IEEE 802.5)



questo protocollo prevede l’utilizzo di una topologia ad anello
sull’anello circola un piccolo frame, detto token (gettone) che le stazioni
ricevono da una parte e ritrasmettono dall’altra in continuazione
una stazione e’ autorizzata a trasmettere dati solo quando e’ in possesso
del token





la stazione riceve il token, lo trattiene ed inizia a trasmettere dati
terminata la trasmissione, ritrasmette il token in coda ai frame di dati
esistono specifiche a 4 e 16 Mbps
Esiste una versione modificata del token ring standardizzata per
trasmissione su doppio anello in fibra ottica, detto FDDI (Fiber
Distributed Data Interface) a 100 Mbps
L’IEEE ha sviluppato uno standard molto simile, dedicato alle
topologie a bus (token bus: IEEE 802.4)

in questo protocollo il problema aggiuntivo e’ determinato dalla
necessita’ di configurare un ordine sequenziale delle stazioni, che viene
fatto in una fase di inizializzazione del protocollo
Protocollo round robin: token ring

Il protocollo token ring (come tutti quelli a turno) e’ poco efficiente in
condizioni di basso carico


In condizioni di carico elevato, quando tutti vogliono trasmettere,
l’efficienza del protocollo sfiora l’unita’



la stazione che deve trasmettere deve attendere di ricevere il token (o in
generale deve attendere il suo turno) prima di poterlo fare, anche se il
canale non e’ occupato
il solo overhead e’ dovuto alla necessita’ che ha una stazione di
identificare il token prima di poter trasmettere
in questi protocolli il token e’ scelto in modo opportuno per minimizzare
l’overhead
Una importante caratteristica di questo genere di protocolli e’ la
possibilita’ di valutare un tempo massimo di ritardo per le
trasmissioni


una stazione che desidera trasmettere dovra’ attendere al piu’ N tempi di
trasmissione (uno per stazione, nel caso tutti debbano trasmettere)
prima che tocchi nuovamente ad essa
questo permette l’utilizzo del protocollo in situazioni in cui i tempi di
risposta possono essere determinanti (ad esempio una catena di
montaggio)
Sistemi e Tecnologie della
Comunicazione
Lezione 15: data link layer: Ethernet e FastEthernet
Ethernet e IEEE 802.3




Ethernet nasce come protocollo CSMA/CD da una
collaborazione DEC/Intel/Xerox, standardizzato nel 1978
Pochi anni dopo viene pubblicato lo standard IEEE 802.3,
ereditato in seguito dall’ISO come 8802.3 con differenze
minime che sono state poi accorpate
Normalmente si utilizzano Ethernet ed IEEE 802.3 come
sinonimi
Ethernet, intesa come tecnologia, si e’ sviluppata a partire
dalla prima versione a 10 Mbps, a cui e’ seguito un nuovo
standard a 100 Mbps, quindi uno a 1000 Mbps; e’ gia’
stato sviluppato uno standard a 10 Gbps non ancora
diffuso sul mercato
Cablaggio in Ethernet

Lo standard prevede quattro tipi differenti di
cablaggio per Ethernet:
10Base5: cavo coassiale di tipo thick, di lunghezza
massima 500 m
 10Base2: cavo coassiale di tipo thin, di lunghezza
massima 185 m
 10BaseT: doppino intrecciato, di lunghezza massima
100 m
 10BaseF: fibra ottica capace di connessioni fino a 2000
m
La nomenclatura (nei primi due casi) indica la velocita’
(10), il fatto che il segnale trasmesso e’ in banda base
(Base), e la lunghezza espressa in centinaia di metri

Cablaggio 10Base5



Cavo coassiale di tipo thick, di lunghezza massima 500 m; e’ possibile
connettere al cavo, a distanza di 2.5 m, prese vampiro a cui connettere le
stazioni;
Alla presa vampiro e’ attaccato un transceiver, il modulo analogico che
controlla il cavo per rilevare collisioni
Il transceiver e’ connesso all’interfaccia di rete del calcolatore da un cavo
apposito che puo’ essere lungo 50 m




il cavo transceiver e’ generalmente costituito da 5 coppie di cui due sono dedicate
al traffico nei due versi, due al controllo, una opzionale alla alimentazione del
transceiver stesso
ad alcuni transceiver possono essere collegati fino a 8 stazioni
Il cavo coassiale deve essere terminato ai due estremi da un “tappo” a 50
Ohm per eliminare le riflessioni
I problemi principali di questo tipo di cavo sono



la rigidita’ del cavo
la difficolta’ nell’identificare la sorgente di eventuali problemi (lunghezze eccessive,
prese difettose, interruzioni totali o parziali del conduttore)
la difficolta’ tecnica dell’inserimento di nuove stazioni tramite le prese a vampiro
Cablaggio 10Base2




Cavo coassiale di tipo thin, di lunghezza massima 185 m,
anch’esso terminato ai due capi da impedenze a 50 ohm
Le connessioni sono operate tramite connettori BNC a
forma di T che permette di connettere alla T l’interfaccia
della stazione (o un cavo thin che porta all’interfaccia
della stazione, ma di lunghezza molto ridotta in quanto
introduce riflessioni)
In questa soluzione il transceiver risiede direttamente
nella interfaccia di rete della stazione connessa
I vantaggi rispetto al 10Base5 sono



la maneggevolezza
la semplicita’ di aggiunta di nuove stazioni (se la T e’ gia’
predisposta, altrimenti si deve interrompere il cavo)
l’affidabilita’ dei connettori (maggiore che nel caso del 10Base5,
ma comunque fonte di problemi)
Cablaggio 10BaseT






Uno sviluppo tecnologico successivo ha portato alla realizzazione di uno schema di
cablaggio che fa uso di doppini in rame
Ogni stazione e’ collegata tramite un cavo UTP (cat. 3 o superiore) ad un dispositivo a
piu’ porte chiamato HUB
L’HUB non elabora i dati, ma costituisce dal punto di vista logico il mezzo condiviso: i
cavi in rame vengono connessi dall’elettronica interna all’HUB in modo da simulare il
mezzo condiviso
L’HUB svolge le funzioni di un ripetitore, che rigenera il segnale e lo invia a tutte le
linee connesse (tranne quella da cui ha ricevuto il frame)
Se si verifica una trasmissione contamporanea di due o piu’ stazioni connesse all’HUB,
si avra’ una collisione
L’utilizzo di questa tecnica di cablaggio porta numerosi vantaggi dal punto di vista
pratico




semplicita’ di cablaggio (spesso potendo sfruttare il cablaggio telefonico preesistente)
semplicita’ nella aggiunta, rimozione o spostamento delle stazioni connesse
affidabilita’ meccanica del mezzo fisico e semplificazione della ricerca dei guasti
Lo svantaggio di questa soluzione sta’ nella distanza limitata, che e’ di 100 m per l’UTP
cat. 3, 200 m per l’UTP cat. 5
Schema dei cablaggi in rame
Ripetitori



Per aumentare la distanza coperta dalla rete e’ possibile collegare piu’
cavi tra loro tramite ripetitori
Dal punto di vista del data link layer, l’unica differenza di una
struttura con ripetitori e’ data dal ritardo trasmissivo introdotto dalla
loro presenza
Lo standard prevede dei limiti alla estendibilita’ della rete tramite
ripetitori:



tra due transceiver non possono esserci piu’ di 4 ripetitori
tra due transceiver non possono esserci piu’ di 2.5 Km
L’utilizzo di ripetitori permette lo sviluppo di topologie diverse per il
cablaggio di un edificio
Codifica




Sul mezzo condiviso la condizione di “assenza di
trasmissione” e’ necessariamente identificata da
assenza di segnale
Non sono quindi possibili codifiche che utilizzino il
segnale a 0 volt per identificare un bit
La necessita’ di trasferire l’informazione di clock
assieme al segnale ha portato alla invenzione
della codifica Manchester gia’ vista
Lo standard Ethernet utilizza la codifica
Manchester con segnali a +0.85 V e -0.85 V (altri
protocolli, come token ring, fanno uso della
codifica Manchester differenziale)
Struttura del frame

Il frame inizia con un “preambolo” di 8 byte con sequenza 10101010



la codifica Manchester genera un segnale in onda quadra a 10 MHz di
durata 6.4 μs che permette ai rivevitori di sincronizzarsi
la sincronizzazione deve essere mantenuta per il resto del frame,
utilizzando la caratteristica della codifica Manchester per aggiustare la
sincronia
Seguono due campi di indirizzo relativi alla destinazione ed alla
sorgente del frame

l’indirizzo e’ costituito da 2 o da 6 byte, ma le specifiche a 10 Mbps
utilizzano solo campi da 6 byte
Indirizzo Ethernet


L’indirizzo Ethernet normalmente viene indicato come sequenza di 6
byte rappresentati da una coppia di caratteri esadecimali, separati da
“:” o da “-” (es: 08:00:2b:a2:01:5f)
Per la destinazione sono previsti indirizzi ordinari (con il primo bit 0)
ed indirizzi di gruppo (primo bit 1)



l’indirizzo di gruppo permette la trasmissione multicast: un solo frame
destinato e ricevuto da piu’ destinazioni (rara)
l’indirizzo costituito da tutti 1 indica “per tutti” e permette la
comunicazione broadcast (utilizzata da molti protocolli di livello
superiore)
Il secondo bit indica indirizzi globali (se vale 0) o a valenza locale (se
vale 1)


gli indirizzi globali sono assegnati dall’IEEE: ogni interfaccia di rete
prodotta nel mondo ha un suo indirizzo globale che e’ unico
gli indirizzi locali possono essere assegnati dall’amministratore di rete ed
hanno garanzia di unicita’ solo localmente
Campo di tipo

Segue un campo di 2 byte che serve ad
indicare al ricevente cosa deve fare del
frame ricevuto


generalmente il livello 2 viene utilizzato da piu’
protocolli dello strato di rete simultaneamente
il campo type indica al ricevente a quale
processo deve essere recapitato il frame
Campo dati e riempimento


Il campo dati trasporta le informazioni del protocollo di livello 3 ed ha
dimensione variabile, con un limite superiore
La sua dimensione massima e di 1500 byte, e fa si che la lunghezza
massima del frame Ethernet sia 1518 byte (preambolo elscuso)



il valore massimo e’ determinato dal fatto che il transceiver deve ospitare
l’intero frame in RAM, ed al momento della definizione dello standard la
RAM era piu’ costosa di oggi
Lo standard prevede che un frame Ethernet non possa essere
inferiore a 64 byte
In caso di necessita’ il campo dati e’ seguito da un campo di
riempimento costituito da tutti 0 per fare in modo che la somma
dati+riempimento sia di almeno 46 byte

e’ compito dei livelli superiori forzare il campo dati ad essere almeno di
46 byte, od introdurre un indicatore di lunghezza per discriminare i dati
dal riempimento
Requisito di lunghezza minima del frame





Questo requisito e’ dovuto al fatto che una stazione deve poter
identificare una collisione sul frame che sta’ trasmettendo
Detto T l’intervallo di tempo per la propagazione del segnale lungo il
mezzo tra le stazioni piu’ lontane, nel caso peggiore un eventuale
segnale di collisione arriva al trasmittente dopo 2T secondi
Se la trasmissione terminasse entro 2T secondi, la stazione riterrebbe
di aver trasmesso con successo quando invece potrebbe essere
avvenuta una collisione
Lo standard Ethernet prevede la possibilita’ di avere 5 tratte da 500
m connesse da 4 ripetitori, ed il tempo di propagazione, tenuto in
conto il ritardo introdotto dai ripetitori, e’ di circa 25 μs; il frame deve
quindi durare almeno 50 μs che a 10 Mbps significano 500 bit
Il frame trasmesso deve essere lungo almeno 500 bit (arrotondato a
512 bit = 64 byte)
Il campo di checksum

L’ultimo campo e’ dedicato al checksum,
realizzato tramite un codice CRC a 32 bit
Differenze tra Ethernet ed IEEE 802.3

La standardizzazione IEEE (1997) ha introdotto due
modifiche:



l’ultimo byte del preambolo e’ trasformato in un byte di inizio
frame (Start Of Frame) di valore 10101011
il campo “type” e’ stato trasformato nel campo “length”, e
contiene la lunghezza del campo dati espressa in ottetti
Fortunatamente al momento della standardizzazione
nessuno aveva ancora utilizzato un type di valore inferiore
a 1500 (e dopo e’ stato proibito) , per cui le due differenti
definizioni possono coesistere sulla stessa LAN
Protocollo di accesso al mezzo

La gestione dell’accesso al mezzo avviene tramite un algoritmo noto col
nome di backoff esponenziale binario






inizialmente una stazione si comporta secondo il protocollo 1-persistente
dopo la prima collisione il tempo viene diviso in slot di 512 bit (51.2 μs) e la
stazione attende un tempo casuale di 0 o 1 slot, poi riprova
se avviene un’altra collisione la stazione attendera’ un numero di slot scelto a caso
tra 0 e 3
in generale dopo la n-esima collisione il tempo di attesa sara’ scelto casualmente
tra 0 e 2n-1, fino ad un massimo di 1023 intervalli (alla decima collisione
consecutiva)
raggiunto il valore di 1023, questo valore non viene piu’ aumentato, ed il
protocollo ritenta la trasmissione fino a raggiungere 16 collisioni consecutive,
limite oltre il quale il livello 2 comunica allo strato superiore un errore
Questo meccanismo si adatta al carico presente sulla rete


in condizioni di basso carico la stazione riesce rapidamente a trasmettere
in condizioni di carico elevato, l’aumento esponenziale degli intervalli di attesa
rende i tentativi sufficientemente rarefatti da permetter a tutte le stazioni di
trasmettere con ritardi contenuti
Prestazioni di Ethernet

Come gli altri protocolli CSMA anche Ethernet presenta le
seguenti caratteristiche




in condizioni di basso carico i tempi di ritardo sono contenuti e
l’efficienza assomiglia al CSMA 1-persistente con la miglioria
legata al fatto che c’e’ rilevazione della collisione
in condizioni di carico elevato crescono le collisioni, ma l’algoritmo
di backoff esponenziale fa si che le stazioni mutino il loro
comportamento rendendo il protocollo simile ad un CSMA ppersistente con p sempre piu’ piccolo
quindi al crescere del carico l’andamento dell’efficienza tende ad
appiattirsi su una percentuale di valore non nullo
c’e’ una forte dipendenza dalla dimensione media dei frame
trasmessi; piu’ piccolo e’ il frame, piu’ pesa l’overhead del periodo
di contesa rispetto al periodo di trasmissione riuscita
Commutazione in Ethernet: lo switch




Al crescere delle stazioni connesse aumenta l’inefficienza del
protocollo
Per risolvere questo problema si fa uso di un dispositivo, detto switch
Lo switch e’ un oggetto costituito da una scheda interna (backplane)
ad alta velocita’ trasmissiva su cui possono essere innestate svariate
schede di linea, ciascuna contenente diversi connettori
i connettori sono connessi a doppini 10BaseT; ciascuno connette una
stazione alla rete
Funzionamento dello switch


Quando una stazione trasmette un frame, questo giunge
allo switch
Lo switch sa (vedremo dopo come) a quale porta di quale
scheda e’ connessa la stazione a cui e’ destinato il frame



se la stazione e’ connessa ad una porta della stessa scheda il
frame e’ inoltrato su quella porta
se la stazione e’ connessa ad una scheda diversa, il frame viene
trasmesso internamente alla scheda di destinazione attraverso il
backplane, e da li inviato sulla porta connessa alla stazione
destinataria
La scheda di backplane funziona con un protocollo
proprietario, sviluppato dal produttore, generalmente a
capacita’ molto superiore a 10 Mbps
Funzionamento dello switch (cont.)

Quando due stazioni connesse alla stessa scheda trasmettono
contemporaneamente:

negli switch piu’ vecchi la scheda e’ di fatto un HUB: tutte le linee sono
elettricamente connesse a formare un unico dominio di collisione, e la
trasmissione contemporanea provoca una collisione gestita secondo il
protocollo a contesa via backoff esponenziale binario



va osservato che la collisione riguarda solo le stazioni connesse alla scheda in
questione
in questo caso e’ possibile solo una trasmissione per ogni scheda, ma diverse
schede possono trasmettere frame in parallelo
gli switch piu’ moderni dispongono di un buffer per ogni porta: il frame
viene memorizzato ed inoltrato sulla porta di destinazione appena
possibile



in questo caso non esiste possibilita’ di collisione, perche’ ogni porta puo’
trasmettere e ricevere contemporaneamente senza influire sulle trasmissioni
altrui
sara’ lo switch ad occuparsi di memorizzare su buffer il frame se non puo’
inoltrarlo immediatamente
in questo modo si realizza una comunicazione full duplex a piena banda
Funzionamento dello switch (cont.)



E’ possibile utilizzare alcune porte di uno switch come
accentratore di linee: una porta puo’ essere connessa ad
un HUB o ad un’altro switch, in modo da separare i
domini di collisione
Questa tecnologia permette di aumentare notevolmente
l’efficienza complessiva in condizioni di carico elevato, di
fatto eliminando il problema delle collisioni o confinandolo
entro rami distinti contenenti un numero di stazioni
ridotto
Utilizzando gli switch in cascata si possono realizzare
topologie ad albero rendendo molto flessibile la struttura
topologica della rete e piu’ semplice il suo sviluppo nel
tempo

utilizzando questa topologia si deve fare molta attenzione a non
creare delle connessioni circolari
Apprendimento della topologia







Per sapere su quale porta debba essere trasmesso il frame, lo switch deve
creare e mantenere aggiornata una tabella relativa alla associazione tra
indirizzo di destinazione e porta
La costruzione manuale di questa tabella sarebbe troppo costosa in termini di
gestione della rete, ed e’ stato opportunamente inventato un meccanismo di
auto apprendimento
Inizialmente questa tabella e’ vuota, e lo switch deve inoltrare ciascun frame
ricevuto su tutte le porte connesse
Poiche’ i frame contengono l’indirizzo del mittente, ad ogni frame che arriva
lo switch impara che la stazione che ha inviato il frame e’ raggiungibile
attraverso la porta da cui e’ arrivato il frame stesso
Con il passare del tempo lo switch riempie la tabella e puo’ svolgere la sua
funzione in modo sempre piu’ efficiente
Tutti i frame broadcast e multicast continueranno a dover essere trasmessi su
tutte le porte connesse (tranne quella di provenienza), cosi’ come i frame
destinati ad indirizzi non presenti nella tabella
L’aggiunta di stazioni connesse viene gestita dallo switch automaticamente
attraverso il meccanismo di auto apprendimento
Limiti di funzionalita’ degli switch


I limiti di funzionalita’ dello switch sono determinati dalla sua capacita’ di
ritrasmettere i frame alla velocita’ necessaria
Poiche’ lo switch permette una trasmissione full duplex su tutte le porte di
ogni scheda, il backplane puo’ costituire il limite alla capacita’ di supportare il
traffico generato



Un altro problema puo’ derivare dal limite dei buffer:




negli switch moderni di elevata qualita’ il backplane e’ costruito in modo da
garantire un throughput sufficiente alla trasmissione a piena banda di tutte le sue
porte contemporaneamente
negli switch piu’ vecchi o di qualita’ inferiore la capacita’ del backplane e’
comunque molto elevata, e si gioca sul fatto che difficilmente tutti trasmettono a
piena banda nello stesso momento (questo e’ sempre vero in condizioni normali)
supponiamo che due stazioni trasmettano a piena banda verso una terza stazione
lo switch riceve un traffico di 20 Mbps in ingresso, ma dispone di soli 10 Mbps in
uscita verso la destinazione
non e’ possibile smistare tutto il traffico
In entrambe le situazioni i frame in eccesso verranno buttati via dallo
switch: sara’ compito dei livelli superiori delle stazioni coinvolte gestire la
situazione con ritrasmissioni e controllo di flusso
Fast Ethernet



Nel 1992 IEEE ha riunito il comitato 802.3 per
sviluppare un protocollo a 100 Mbps basato sulla
tecnologia Ethernet
Il lavoro si e’ sviluppato secondo una linea guida
fondamentale: mantenere la compatibilita’ con le
LAN esistenti
Questo ha significato:



mantenere lo stesso formato del frame
mantenere le stesse interfacce
mantenere le stesse regole procedurali
Fast Ethernet (cont.)



L’aumento della velocita’ di un fattore 10 a parita’ di
lunghezza minima del frame richiede che per rilevare le
collisioni si debba accorciare di un fattore 10 la lunghezza
massima del cavo
Questo non avrebbe permesso di mantenere le strutture
di cablaggio preinstallate
La soluzione e’ stata di rinunciare al cavo coassiale;
FastEthernet (802.3u) prevede come topologie possibili
solo connessioni via HUB o switch, utilizzando come mezzi
trasmissivi




UTP cat. 3: 100Base-T4 (max. 100 m)
UTP cat. 5: 100Base-TX (max. 100 m)
Fibra ottica: 100Base-FX (max 2000 m)
nota: il protocollo – come vedremo – permette per il rame
lunghezze maggiori; solo le specifiche limitano a 100 m la
lunghezza dei cavi in rame, ma spesso si riesce a realizzare la
connessione FastEthernet anche a 200 m
Codifiche per FastEthernet

La codifca Manchester a 100 Mbps richiede 200 Mbaud,
improponibile per i doppini alle distanze richieste, quindi
si e’ cambiata la codifica


gli apparati moderni che gestiscono il clock e le distanze ridotte
permettono di rinunciare ai suoi benefici
100Base-T4: lo standard per l’UTP cat. 3 prevede l’utilizzo
di 4 doppini con segnali a 25 MHz (supportati dal cavo a
100 m di distanza)



un doppino dedicato alla trasmissione in un verso, uno a quella in
verso opposto, due commutabili
si trasmette un segnale ternario: con tre doppini si hanno 27
simboli, che possono trasferire 4 bit di informazione con un po’ di
ridondanza
25 MHz per 4 bit fornisce i 100 Mbps richiesti, ma non full duplex
Codifiche per FastEthernet (cont.)


100Base-TX: l’UTP cat. 5 a 100 m e’ capace di supportare una
frequenza di 125 MHz
Lo standard prevede l’utilizzo di due coppie (una per verso di
trasmissione) utilizzanti una codifica a due livelli detta 4B/5B
ereditata da FDDI (modificata per annullare la componente continua
e per motivi spettrali)





ogni gruppo di 5 periodi di clock contiene 32 combinazioni
16 sono utilizzate per per trasmettere 4 bit di dati, alcune delle altre per
funzioni di controllo
le 16 combinazioni dedicate ai dati sono state scelte opportunamente per
garantire un adeguato numero di transizioni del segnale allo scopo di
facilitare la sincronizzazione in ricezione
4 bit ogni 5 periodi di clock a 125 MHz fornisce i 100 Mbps desiderati,
per ogni coppia di cavo, garantendo la comunicazione full duplex
100Base-FX: la connessione e’ realizzata tramite una coppia di fibre
multimodali (una per ogni direzione) capaci di una distanza massima
di 2000 m, ed utilizzano la codifica 4B/5B a 125 MHz convertita in
segnale ottico
Caratteristiche del FastEthernet

Lo standard cosi’ definito permette di utilizzare le
stesse regole di protocollo di Ethernet

per le connessioni in rame, sono possibili topologie ad
albero tramite HUB o switch



ciascun HUB costituisce un dominio di collisione separato; la
collisione e’ gestita con il meccanismo di contesa regolato
dall’algoritmo di backoff esponenziale binario di Ethernet
la lunghezza massima del cavo per il funzionamento
dell’algoritmo basato sulla rilevazione della collisione e’ 10
volte minore del limite per Ethernet, quindi pari a 250 m,
compatibile con la lunghezza massima degli UTP
per le connessioni in fibra la lunghezza eccede quella
massima per la corretta gestione delle collisioni, per
cui 100Base-FX puo’ essere utilizzata solo con switch
Velocita’ miste






Tutti gli switch possono utilizzare connessioni a velocita’ miste, con porte a
10 o 100 Mbps
La velocita’ della porta generalmente (non sempre) puo’ essere negoziata
dalle due interfacce all’atto della accensione delle macchine, cosi’ come la
modalita’ di trasmissione (half duplex o full duplex)
In questo modo e’ possibile pianificare una migrazione della rete da Ethernet
a FastEthernet senza dover cambiare tutti gli apparati di commutazione e le
interfacce nello stesso momento
Le vecchie interfacce di rete, realizzate secondo lo standard Ethernet, non
sono capaci di negoziare, ma gli switch possono capire da soli e configurare
automaticamente la porta in modo opportuno
Gli switch di qualita’ (“manageble”, cioe’ configurabili) possono essere
configurati manualmente per definire le modalita’ di funzionamento delle
porte (essenziale per mettere daccordo interfacce che non si parlano
correttamente in fase di inizializzazione)
Le porte in fibra non hanno queste caratteristiche: per le connessioni in fibra
se si cambia la tecnologia dello switch si deve cambiare l’interfaccia
Sistemi e Tecnologie della
Comunicazione
Lezione 16: data link layer: Gigabit Ethernet, Wireless (strato fisico)
Gigabit Ethernet

Fast Ethernet ha sbaragliato la concorrenza







Qualsiasi altro protocollo del momento (FDDI, Token ring, Token bus) non ha
retto alla concorrenza
Tuttavia alcuni fattori hanno spinto a cercare soluzioni piu’ veloci



costi bassi (in particolare per le connessioni in rame)
alta velocita’
alte prestazioni (grazie alla tecnologia di switching)
flessibilita’ di topologia (e’ banale aggiungere, rimuovere, spostare stazioni o interi
rami della rete)
compatibilita’ all’indietro, con possibilita’ di migrare progressivamente la propria
infrastruttura di rete
alcuni nuovi protocolli promettevano prestazioni migliori (ATM), anche se a costi
molto elevati
esigenze di banda sempre superiore, per applicazioni multimediali interattive, o in
generale per la crescita esponenziale delle dimensioni dei dati da maneggiare e
della cresciuta velocita’ di elaborazione degli stessi da parte dei calcolatori
Nel 1995 IEEE inizia a lavorare su un nuovo incremento di velocita’ per
Ethernet, e nel 1998 viene pubblicato lo standard 802.3z (Gigabit Ethernet)
Caratteristiche di Gigabit Ethernet



L’obiettivo e’ lo stesso: realizzare un protocollo 10 volte piu’ veloce
mantenendo tutte le caratteristiche del precedente (stessa struttura e
dimensione del frame, stesso schema di indirizzamento, stesso tipo di
servizio non affidabile)
Di nuovo si e’ deciso di fare a meno della connettivita’ su coassiale (a
maggior ragione, per gli stessi motivi)
Come Fast Ethernet, Gigabit Ethernet prevede due modalita’ operative



full duplex (quella normale): la connessione e’ tra due switch o tra la stazione e lo
switch; le porte sono dotate di buffer e le collisioni non sono possibili, quindi non
c’e’ utilizzo di CSMA/CD
half duplex: la connessione e’ con un hub, che non e’ dotato di buffer e connette
elettricamente le linee in ingresso; c’e’ possibilita’ di collisione e va utilizzato
CSMA/CD
La gestione delle collisioni riduce di un fattore 100 la dimensione massima
del cavo rispetto ad Ethernet (25 m); per estendere questo limite a 200 m si
utilizzano due tecniche:


carrier extension: l’interfaccia inserisce riempitivi per portare la dimensione del
frame ad almeno 512 byte; poiche’ questa aggiunta e’ eseguita dall’hardware e
rimossa dalla interfaccia in ricezione, le specifiche del protocollo non cambiano
frame bursting: permette a chi trasmette di inviare piu’ di un frame per volta; se
l’aggregato non raggiunge i 512 byte, si applica ancora il carrier extension
Collisioni in Gigabit Ethernet


Queste specifiche rendono il protocollo
meno efficiente in occasione di trasmissioni
di frame piccoli
Tuttavia l’utilizzo di Gigabit Ethernet in
modalita’ CSMA/CD (con HUB) e’
raramente applicata, anche perche’ il costo
di uno switch e di poco superiore a quello
di un HUB
Specifiche per i mezzi trasmissivi

Gigabit Ethernet specifica l’utilizzo di
diversi mezzi trasmissivi:




1000Base-SX: fibra ottica multimodale (fino a
550 m)
1000Base-LX: fibra ottica monomodale (fino a
5000 m)
1000Base-T: 4 coppie di cavo UTP cat. 5 (fino
a 100 m)
1000Base-CX: 2 coppie di cavo STP (fino a 25
m) (raramente utilizzata)
Codifiche in Gigabit Ethernet

Su fibra si utilizza una codifica nota come 8B/10B: una sequenza di 8
bit e’ codificata utilizzando 10 bit:

1024 codeword per 8 bit: c’e’ margine per scegliere opportunamente le
codeword in modo che




non ci siano mai piu’ di 4 bit uguali consecutivi
non ci siano mai piu’ di sei 0 o sei 1
spesso una sequenza ha piu’ codeword associate, e viene scelta la
migliore in funzione delle precedenti inviate per mantenere alternanza tra
0 ed 1 ed annullare la componente continua che passa nell’elettronica di
conversione ottico/elettrico
Su rame si utilizzano tutte le quattro coppie del cavo UTP in modalita’
duplex con un simbolo a 5 livelli



ogni ciclo di clock trasmette 5 simboli per coppia: 2 bit piu’ un bit usato
per segnali di controllo si ciascuna coppia
8 bit per ciclo a 125 MHz danno il throughput di 1 Gbps
la modalita’ di trasmissione duplex si realizza con una elettronica
complessa finalizzata al trattamento del segnale per separare l’ingresso
dall’uscita
Controllo di flusso in GE



Poiche’ lo standard ammette la connessione di
una stazione GE con una FE o Ethernet, e’ stato
introdotto un meccanismo per il controllo di
flusso a livello MAC
Lo switch comunica all’interfaccia GE della
stazione di sospendere le trasmissioni di frame
utilizzando un frame Ethernet normale, con tipo
0x8808 (seguito da parametri nel campo dati,
indicanti tra l’altro per quanto tempo sospendere
la trasmissione)
Un meccanismo analogo esiste nelle specifiche di
Fast Ethernet
Reti wireless

Motivazioni:



principalmente la diffusione di computer portatili, per offrire
mobilita’ senza perdita di connessione
un altro fattore e’ l’estensibilita’ della rete senza necessita’ di
cablaggio
Bande trasmissive ISM


lo strato fisico e’ realizzato con la trasmissione omnidirezionale in
modulazione digitale di una portante
esistono bande di frequenza dedicate all’utilizzo senza necessita’
di registrazione ed allocazione



queste bande si chiamano ISM (Industrial, Scientific, Medical)
la legislazione specifica determinate caratteristiche obbligatorie per
utilizzare queste bande, come ad esempio la potenza massima di
trasmissione e l’utilizzo di tecniche trasmissive spread spectrum
le bande utilizzate nelle trasmissioni wireless sono a 2.4 GHz ed a
5 GHz

in questa regione le trasmissioni competono con apparati
radiocomandati, telefoni cordless, forni a microonde, …
Standard 802.11x


L’IEEE ha definito diversi standard nel corso del
tempo per le trasmissioni wireless
Questi standard sono




IEEE 802.11 con tre differenti tecniche trasmissive (IR,
FHSS, DSSS) e velocita’ ad 1 o 2 Mbps nella banda a
2.4 GHz
IEEE 802.11b a velocita’ 1, 2, 5.5 e 11 Mbps nella
banda a 2.4 GHz
IEEE 802.11a con velocita’ fino a 54 Mbps nella banda
a 5 GHz
IEEE 802.11g fino a 54 Mbps nella banda a 2.4 GHz
Strato fisico per le reti 802.11

802.11 ad infrarosso




utilizza trasmissioni a 0.85 e 0.95 micron
supporta velocita’ a 1 e 2 Mbps
di fatto non utilizzato
802.11 FHSS (Frequency Hopping Spread Spectrum)




utilizza 79 canali ad 1 MHz a partire da 2.4 GHz con la tecnologia
Frequency Hopping: la trasmissione salta ad intervalli temporali
definiti (minori di 400 ms) da una frequenza ad un’altra secondo
una sequenza pseudocasuale nota a tutti
la banda disponibile ad ogni istante e’ 1 MHz
questa tecnica fornisce sicurezza (impossibile seguire la
comunicazione senza conoscere la sequenza pseudocasuale) e
solidita’ contro il multipath fading (quando arriva il segnale
riflesso la ricezione e’ gia’ spostata su un altro canale)
supporta standard ad 1 e 2 Mbps, con codifiche a 2 o 4 simboli
con (G)FSK
Strato fisico per le reti 802.11 (cont.)

802.11 DSSS (Direct Sequence Spread Spectrum)



il tempo di un bit viene suddiviso in m intervalli temporali
il valore trasmesso e’ la combinazione in or esclusivo dei bit dei
dati (di durata Tb) combinati con una sequenza pseudocasuale o
predefinita di bit, ciascuno di durata Tc=Tb/m, detti chip
lo standard opera nella banda a 2.4 GHz ed utilizza una sequenza
fissa di 11 chip (sequenza di Barker) per codificare un bit di dati
Strato fisico per le reti 802.11 (cont.)

802.11 DSSS (Direct Sequence Spread Spectrum) (cont.)

la banda disponibile e’ suddivisa in 14 canali di 5 MHz ciascuno, a
partire da 2.412 GHz




le stazioni debbono essere configurate per determinare il canale
utilizzato
non tutti i canali sono disponibili in tutti i paesi
in USA il canale 14 e’ proibito, in Spagna sono ammessi solo il 10 e
l’11, in Italia sono tutti ammessi
le antenne trasmettono a 11 MHz; con modulazioni PSK a 2 o 4
livelli e 11 chip per bit lo standard permette trasmissioni a 1 o 2
Mbps

poiche’ l’ampiezza di banda del segnale inviato e’ intorno ai 22 MHz,
nonostante i filtri dell’elettronica per non interferire due trasmissioni
indipendenti nella stessa area debbono utilizzare canali separati da
almeno 5 canali
Strato fisico per le reti 802.11 (cont.)

802.11b


questo standard prevede l’utilizzo della banda a 2.4 GHz per
trasmettere fino a 11 Mbps
utilizza la tecnica HR-DSSS (High Rate DSSS)


prevede trasmissioni a 1 e 2 Mbps in modalita’ compatibile con
802.11 DSSS e velocita’ a 5.5 e 11 Mbps




questa tecnica utilizza codeword non fisse
802.11b prevede l’utilizzo di codeword a 8 chip, sempre a 11 MHz
utilizzando PSK a 4 livelli (2 chip per simbolo)
la trasmissione a 2.75 Mchip/s trasmette 2 o 4 bit per chip
producendo i rate a 5.5 o 11 Mbps
la velocita’ di trasmissione e’ adattabile dinamicamente in
funzione della potenza del segnale, del carico e del rumore
presenti
il suo campo di azione si aggira, in assenza di ostacoli, attorno ai
150/200 m
Strato fisico per le reti 802.11 (cont.)

802.11a


questo standard prevede l’utilizzo della banda a 5 GHz per
trasmettere fino a 54 Mbps
utilizza la tecnica OFDM (Orthogonal FDM)





similmente ad ADSL utilizza 52 canali distinti, di cui 48 per i dati e 4
per la sincronizzazione, con sottoportanti separate di 0.3125 MHz
(per un totale di 20 MHz disponibili)
a differenza della FDM classica, le frequenze delle sottoportanti sono
scelte in modo tale che lo spettro di ogni sottoportante modulata
abbia ampiezza zero in corrispondenza della frequenza della altre
sottoportanti (da qui il termine orthogonal)
utilizza differenti tecniche di encoding e di modulazione per
supportare velocita’ di 6, 9, 12, 18, 24, 36, 48 e 54 Mbps a 250
KHz di symbol rate
il suo campo di azione copre poche decine di metri
questo standard e’ stato definito da poco, ed ancora poco diffuso
Strato fisico per le reti 802.11 (cont.)

802.11g




questa e’ l’evoluzione di 802.11b che prevede
un data rate fino a 54 Mbps
utilizza la stessa tecnica OFDM di 802.11a nella
banda di frequenze a 2.4 GHz, con tecniche di
modulazione piu’ complesse
ultimo arrivato tra gli standard, non ha ancora
un utilizzo diffuso
ancora da verificare sul campo la reale
possibilita’ di andare alla velocita’ massima
CSMA: stazione nascosta




Come esempio consideriamo tre stazioni A, B e C tali che B sia a
portata di A e di C, ma A e C non possano rilevare le rispettive
trasmissioni
Se C sta trasmettendo dati a B, A non potra’ rilevare l’occupazione
del canale in quanto e’ fuori portata
A iniziera’ a trasmettere ed il suo segnale arrivera’ a B interferendo
con i dati che C sta’ trasmettendo
Questo e’ detto problema della stazione nascosta
CSMA: stazione esposta




Se nelle stesse ipotesi supponiamo che A stia trasmettendo verso
un’altra destinazione, e che B desideri inviare dati a C
B ascolta il canale e lo trova occupato, quindi non trasmette
In realta’ il canale sarebbe disponibile (nella ipotesi che la
destinazione della trasmissione di A sia fuori dalla portata di B)
perche’ in C i segnali non interferirebbero
Questo e’ il problema della stazione esposta
MACA


L’inefficacia del protocollo CSMA deriva dal fatto che per
le trasmissioni wireless quello che conta e’ l’interferenza
in prossimita’ del ricevente, mentre l’analisi della portante
che puo’ fare una stazione e’ solo in prossimita’ di se
stessa, cioe’ del trasmittente
Il protocollo MACA (Multiple Access with Collision
Avoidance) tenta di risolvere il problema nel seguente
modo:

il trasmettitore A invia un piccolo frame (RTS: Request To Send)
al ricevitore B



il frame RTS contiene la richiesta di trasmettere un frame a B,
specificandone la lunghezza
il ricevitore B trasmette un piccolo frame di conferma (CTS: Clear
To Send) ad A, con le stesse informazioni del RTS
quando A riceve il CTS trasmette il frame di dati a B
MACA (cont.)

Tutte le stazioni che ricevono il frame RTS sanno che




Queste stazioni attenderanno senza trasmettere un tempo
sufficiente alla trasmissione dei dati
Le stazioni nascoste non vedono il frame RTS, ma vedono
il frame CTS, quindi sanno che


B rispondera’ con un CTS
in seguito A trasmettera’ un frame di dati di lunghezza specificata
in RTS
trasmesso il CTS B dovra’ ricevere il frame di dati, di lunghezza
specificato nel CTS
Queste stazioni attenderanno senza trasmettere per il
tempo necessario alla trasmissione del frame di A (che
loro non vedranno in quanto nascoste, ma sanno che ci
sara’)
MACA (cont.)


Collisioni saranno possibili se un frame RTS venisse
trasmesso contemporaneamente verso una destinazione
collocata nel campo di ricezione dei due trasmittenti: i
due frame andranno perduti
In questo caso la stazione che non riceve il CTS dopo un
timeout applica l’algoritmo di backoff esponenziale binario
e ritenta
MACAW

Il protocollo MACAW (MACA per Wireless)
introduce migliorie specifiche per le applicazioni
wireless




nella maggior parte dei casi la mancanza di ACK a
livello 2 provoca la ritrasmissione solo a livello 4, con
grossi ritardi
per questo motivo e’ stato introdotto l’utilizzo di frame
di ACK con meccanismo stop-and-wait
si e’ anche notato che CSMA puo’ essere utilizzato per
impedire ad una stazione di trasmettere un RTS
durante la trasmissione di un altro RTS verso la stessa
destinazione
infine si e’ modificato l’algoritmo di backoff in modo da
applicarlo separatamente ai diversi flussi trasmissivi
Sistemi e Tecnologie della
Comunicazione
Lezione 17: data link layer: Wireless (protocollo), LLC, bridge
Protocollo del sottostrato MAC di 802.11

802.11 supporta due modalita’ operative:

DCF (Distributed Coordination Function)




PCF (Point Coordination Function)



prevede la comunicazione tra stazioni senza un arbitraggio
centralizzato
questa modalita’ prevede la contesa del mezzo e la gestione delle
collisioni
nota come rete ad hoc
prevede che ci sia una stazione base che coordina la trasmissione di
tutti
in questa modalita’ non ci sono collisioni perche’ l’ordine delle
trasmissioni e’ determinato dalla stazione di controllo
Tutte le schede wireless devono supportare la
trasmissione DCF, mentre quella PCF e’ opzionale (ma
molto diffusa)
Protocollo in modalita’ DCF

In questa modalita’ si utilizza un protocollo
chiamato CSMA/CA (Carrier Sense Multiple
Access Collision Avoidance) che opera in
due modi

la stazione controlla se il canale e’ libero (per
quello che puo’ vedere)



se e’ libero trasmette (senza collision detection)
se e’ occupato, aspetta che si liberi e trasmette
se si verifica una collisione (rilevata) utilizza il
backoff esponenziale binario e ritenta
Protocollo in modalita’ DCF (cont.)

la seconda modalita’ e’ derivata da MACAW,
con utilizzo di RTS, CTS ed ACK per ogni frame
trasmesso

l’interfaccia della stazione che rileva un RTS o un
CTS rivendica per se’ un canale virtuale NAV
(Network Allocation Vector) che impedisce alla
stazione di trasmettere per tutto il tempo che deve
durare la trasmissione in preparazione, fino all’ACK
Protocollo in modalita’ DCF (cont.)



Poiche’ le reti wireless sono molto rumorose, il protocollo prevede
la possibilita’ di spezzare il frame in frammenti, ciascuno
trasmesso e riscontrato individualmente
i frammenti vengono inviati tutti di seguito, senza bisogno di invio
di RTS
le stazioni in ascolto utilizzaranno il NAV per attendere solo fino al
primo riscontro: per evitare colisioni con gli altri frammenti si
utilizza un meccanismo che vedremo piu’ avanti
Protocollo in modalita’ PCF





Nella modalita’ PCF la stazione base sonda le altre
stazioni per vedere se hanno frame da trasmettere
La trasmissione e’ regolata ed autorizzata dalla stazione
base e non avvengono collisioni
Il protocollo specifica la modalita’ di interrogazione, e
prevede che le stazioni si registrino con la stazione base
per entrare nel meccanismo delle interrogazioni
La stazione base regola tutto il meccanismo della
trasmissione, comprese le informazioni sulle sequenze di
salto di frequenza (per FHSS) e le temporizzazioni
Il protocollo, ottimizzato per i computer portatili, prevede
anche che la stazione base possa imporre alla stazione
mobile di mettersi in modalita’ di sospensione, al fine di
risparmiare batteria
Coesistenza PCF e DCF

802.11 prevede un meccanismo di attesa a tempi
differenziati che permette la coesistenza di PCF e DCF

terminata una trasmissione, inizia un periodo di tempo detto SIFS
(Shotr IntreFrame Spacing), dopo il quale puo’ trasmettere solo:





una stazione che ha ricevuto l’ACK di un frammento ed invia un altro
frammento (in questo modo la stazione potra’ trasmettere tutti i
frammenti senza perdere il controllo del canale)
una stazione che ha ricevuto un RTS ed invia un CTS (gli altri
aspettano)
una stazione che ha ricevuto una interrogazione (in modalita’ PCF) e
puo’ rispondere (solo lei)
in ogni caso c’e’ sempre al massimo una stazione che puo’
trasmettere dopo un intervallo SIFS, quindi non ci possono essere
collisioni
l’intervallo SIFS permette alle stazioni con trasmissioni in corso
(dopo un frammento, dopo un RTS, dopo una interrogazione) di
portare a termine la trasmissione
Coesistenza PCF e DCF (cont.)

il secondo intervallo temporale in ordine di lunghezza
e’ detto PIFS (PCF IFS); se nessuno ha trasmesso tra
lo scadere del SIFS e lo scadere del PIFS, sono
autorizzate le trasmissioni che la stazione base utilizza
in modalita’ PCF per interrogare le stazioni



in questo modo la stazione base ha la priorita’ su tutto il
traffico “non in corso”
esiste un meccanismo per evitare che una stazione base
allochi per sempre il canale con trasmissioni di interrogazione,
lasciando spazio alle eventuali trasmissioni DFS
il terzo intervallo di tempo e’ detto DIFS (DCF IFS): se
nessuno ha trasmesso frame PCF entro la scadenza del
DIFS, iniziano le regole di contesa relative alle
trasmissioni in modalita’ DCF

questo e’ il momento per poter trasmettere un frame RTS
Coesistenza PCF e DCF (cont.)

L’ultimo intervallo (EIFS: Extended IFS) e’ utilizzato
(alla priorita’ piu’ bassa) dalle stazioni che hanno
ricevuto un frame danneggiato per annunciare il fatto
Frame in 802.11

Esistono tre tipi di frame



dati: dedicati al trasferimento dei dati dei
protocolli superiori
gestione: dedicati alle funzioni di gestione
della cella, quali associazione, autenticazione,
interrogazione
controllo: sono i frame ACK, RTS, CTS
Frame di dati

La struttura del frame di dati e’ costituita da
diversi campi


frame control: definisce la versione del protocollo, il
tipo di frame, se il frame proviene o e’ diretto alla rete
di distribuzione (Ethernet, ad esempio), se sara’
seguito da altri frammenti, se e’ una ritrasmissione, se
e’ stata utilizzata crittazione
durata: specifica per quanto tempo il frame occupera’
il canale
Frame di dati (cont.)

quattro indirizzi, che definiscono







destinazione del frame (per il recapito)
sorgente del frame (usato per l’ack)
stazione base di partenza del frame
stazione base di arrivo del frame
queste distinzioni servono, ad esempio, per distinguere il fatto che il
frame 802.11 e’ trasmesso da A verso l’access point B, ma la
destinazione e’ la stazione C che si trova sulla rete cablata oltre l’access
point
Il campo sequenza numera i frammenti
Infine i dati (fino a 2312 byte) ed il checksum con CRC a 32 bit
Altri frame


I frame di gestione hanno un formato
simile, ma solo due campi address in
quanto il loro traffico e’ confinato entro la
cella
I frame di controllo non hanno campo dati
ne’ sequenza; l’informazione del controllo
inviato (RTS, CTS, ACK) e’ contenunto nel
campo subtype dei byte di controllo di
frame
Access point




Le reti wireless sono connesse alla rete cablata
(una qualche rete 802.x) tramite una stazione
che ha funzioni di bridge (converte il protocollo
tra 802.11 ed il protocollo della rete cablata)
Questa stazione e’ detta access point
L’access point ha anche funzioni di stazione di
controllo della cella per le trasmissioni in
modalita’ PCF
E’ possibile realizzare topologie di estensione
della rete tramite una catena di access point che
rimpallano la trasmissione wireless di un frame
fino a raggiungere la rete cablata
LLC (IEEE 802.2)



I protocolli MAC visti fin qui non esauriscono le funzioni del data link
layer
Le specifiche dei protocolli MAC devono essere filtrate per poter
offrire allo strato di rete una interfaccia analoga ai protocolli delle
linee punto-punto
IEEE ha definito le specifiche di un sottostrato del data link layer che
fornisce verso l’alto questa interfaccia, appoggiandosi sopra il
sottostrato MAC: il Logical Link Control
Funzioni del LLC






La funzione principale del LLC definito da IEEE e’ di mascherare allo
strato di rete le specifiche dei protocolli 802
utilizzati a livello di MAC, in modo da offrire allo strato superiore una
interfaccia uniforme
Un esempio del suo utilizzo e’ quello di implementare un servizio
orientato alla connessione, o non connesso ma affidabile per la
comunicazione a livello 2
Lo strato di rete passa i suoi dati al LLC, che aggiunge un suo header
con le informazioni di numerazione del frame, riscontro etc.
Quindi il LLC passa al sottostrato MAC il campo dati che il MAC
gestisce con le sue specifiche
In ricezione il MAC recapita il frame al LLC che rimuove l’header e
passa i dati allo strato di rete
Il formato dell’header ed i meccanismi di funzionamento del LLC
ricalcano quelli dell’HDLC
LLC e TCP/IP


In TCP/IP lo strato di rete (IP) richiede
solamente trasmissioni “best-effort”, cioe’
inaffidabili, al data link layer
Di fatto in TCP/IP il LLC non fa nulla piu’
che passare i dati di IP al sottostrato MAC
Commutazione tra LAN



Esiste la necessita’ di interconnettere reti locali differenti
sviluppatesi in modo indipendente, utilizzanti protocolli
differenti
Queste reti possono essere connesse con tecnologie di
internetworking operando a livello di rete
Tuttavia e’ spesso possibile ed opportuno realizzare
l’interconnessione a livello di data link



per motivi di costi: un apparato di interconnessione a livello di
rete, specie in passato, risulta piu’ costoso
per motivi di prestazioni: l’interconnessione a livello di data link
permette di sfruttare le tecnologie di rete locale
per motivi di flessibilita’: spesso lo spostamento di una stazione
su rami interconnessi a livello di data link non richiede
riconfigurazioni
Il bridge


Il dispositivo che realizza l’interconnessione a livello di data link si chiama
bridge
Il bridge interconnette due reti locali potenzialmente utilizzanti tecnologia
differente



Questi dispositivi lavorano a livello di data link, quindi non si occupano di
analizzare i dati del livello di rete
Il frame in arrivo al bridge viene trasferito dallo strato fisico allo strato di
data link





generalmente i bridge realizzano una interconnessione tra reti 802.x ed 802.y
generalmente i sottolivelli MAC delle reti locali interconnesse saranno differenti
il frame risale il sottolivello MAC per giungere al sottolivello LLC che e’ comune
il bridge determina a quale rete locale il frame debba essere inviato, ed il frame
riscende la pila dei protocolli passando al sottostrato MAC di destinazione, quindi
al livello fisico di destinazione e viene trasmesso
Di fatto i bridge effettuano una conversione di protocollo tra diversi
sottostrati MAC
Per realizzare questa funzionalita’ il bridge deve supportare un protocollo
MAC per ogni linea interconnessa
Esempio di trasmissione attraverso bridge
Bridge trasparente



La modalita’ “trasparente” indica che il bridge si limita ad
inoltrare il frame verso la rete locale su cui si trova la
stazione di destinazione (o verso tutte le reti se la
destinazione non e’ nota o se il frame e’ broadcast)
In questa modalita’ il bridge realizza una estensione
logica della rete locale, eventualmente mascherando
differenze di protocollo
Il bridge funziona quindi in modalita’ store-and-forward
utilizzando le tabelle di instradamento

abbiamo gia’ visto il funzionamento di questo meccanismo
studiando lo switch, che puo’ essere visto come un bridge
monoprotocollo in modalita’ trasparente
Bridge in modalita’ non trasparente


I bridge possono essere configurati ed utilizzati
per realizzare un filtro alla trasmissione dei frame
da una rete all’altra
Il filtro puo’ essere realizzato in funzione del
protocollo o degli indirizzi


in generale si utilizzano le proprieta’ di filtraggio per
evitare di propagare un protocollo specifico su rami in
cui questo protocollo non e’ utilizzato, ad esempio per
limitare la propagazione del protocollo Appletalk o
NetBIOS su rami privi di clienti appropriati
si puo’ cosi’ limitare la propagazione del traffico
broadcast inutile
Spanning tree


Per aumentare l’affidabilita’ della connettivita’ all’interno
di una rete locale si possono connettere i bridge (o gli
switch) della rete con linee ridondanti
Questo genera percorsi circolari che, senza opportune
contromisure, impedirebbero al meccanismi di auto
apprendimento e di inoltro di funzionare correttamente
Spanning tree (cont.)



Perlman ha sviluppato un meccanismo detto spanning tree, standardizzato
come IEEE 802.1D, che permette ai bridge di configurarsi automaticamente
in modo da disabilitare i link che generano ridondanza, ottenendo cosi’ una
struttura ad albero
Il protocollo continua a operare in modalita’ di controllo durante il
funzionamento della rete, ed attiva o disattiva le connessioni in base alle
esigenze (ad esempio se un bridge smette di funzionare, vengono attivati i
link di ridondanza che permettono di raggiungere i rami che altrimenti
rimarrebbero tagliati fuori
Tutti i bridge della topologia devono supportare il protocollo dello spanning
tree
Riferimenti

Data Link Layer punto-punto:


Tanenbaum cap. 3 tranne § 3.5
Medium Access Control

Tanenbaum cap. 4 ma solo le parti viste a
lezione:

escludere § 4.1.1, 4.2.3, 4.2.4, 4.2.5, 4.3.5, da
4.4.5 fino a 4.6.7, da 4.7.6 in poi
Sistemi e Tecnologie della
Comunicazione
Lezione 18: network layer: introduzione, algoritmi di routing
Funzioni dello strato di rete



Allo strato di trasporto la comunicazione tra i processi
paritari di livello 4 deve apparire come una comunicazione
punto-punto
Lo strato di rete ha quindi come funzione quella di fornire
allo strato di trasporto un servizio per la consegna dei dati
in modo da mascherare l’infrastruttura della rete (la
sottorete)
Nomenclatura:



host o end-node: stazione su cui opera lo strato di trasporto che
deve trasmettere o ricevere i dati utilizzando il servizio dello
strato di rete
pacchetto: insieme di dati+header+trailer che lo strato di rete
costruisce e deve trasmettere fino a destinazione
router: stazione intermedia che opera a livello 3, che riceve i
pacchetti e li inoltra attraverso la (sotto)rete
Funzioni dello strato di rete (cont.)



In generale due host sono separati da un certo numero di
nodi, interconnessi da svariate linee
Spesso sono possibili piu’ tragitti tra i due nodi (ad
esempio nelle reti magliate)
Potenzialmente i nodi sono separati da reti funzionanti
con tecnologie differenti
Funzioni dello strato di rete (cont.)

Lo strato di rete dovra’ quindi occuparsi dei
seguenti argomenti

determinare quale tragitto tra quelli disponibili
dovranno seguire i dati (instradamento, routing)


reagire a modifiche di topologie della rete



questo puo’ richiedere che lo strato di rete conosca la
topologia della rete
se esiste un meccanismo dinamico per l’apprendimento della
topologia, questo permettera’ di apprenderne anche le
modifiche nel tempo
evitare di sovraccaricare linee quando sono disponibili
percorsi alternativi (congestione)
risolvere i problemi connessi al transito attraverso reti
differenti (internetworking)
Servizi offerti allo strato superiore

Inizialmente OSI prevedeva che lo strato di rete fornisse
solo un servizio connection oriented



in modo analogo al funzionamento del servizio telefonico
questo servizio, caldeggiato dalle compagnie telefoniche,
permette di operare fatturazione a tempo e di offrire servizi di
qualita’ riservando le risorse a priori
In seguito c’e’ stata forte richiesta di introdurre nello
standard anche un servizio connection less, e cosi’ e’
stato fatto


l’inaffidabilita’ intrinseca della sottorete richiede un meccanismo
piu’ flessibile per il recapito dei dati
comunque lo strato di trasporto dovra’ occuparsi della integrita’
dei dati, inutile farlo anche a livello di rete
Servizio connection less


Il servizio senza connessione richiede che i pacchetti siano instradati
indipendentemente uno dall’altro
Generalmente un router dispone di una tabella che definisce su quale
linea di uscita debba essere trasmesso un pacchetto in base alla
destinazione finale



il router riceve il pacchetto, lo memorizza per analizzarlo, quindi lo
trasmette in base alla tabella (store and forward)
Ogni pacchetto deve quindi contenere l’indirizzo di destinazione
Poiche’ le tabelle possono modificarsi nel tempo, non e’ detto che
tutti i pacchetti seguano la stessa strada
Servizio connection oriented







L’idea di base e’ di associare ad una connessione un circuito virtuale
nella sottorete
Si definisce a priori – durante la fase di inizializzazione della
connessione – la sequenza di router che i pacchetti dovranno
attraversare
Tutti i pacchetti appartenenti alla stessa connessione seguiranno la
stessa strada
L’instradamento del pacchetto sara’ quindi fatto in base alla sua
appartenenza ad una connessione e non alla sua destinazione finale
L’intestazione del pacchetto sara’ piu’ semplice, dovendo contenere
solo l’identificativo della connessione
La connessione potra’ essere stabilita in modo da garantire le risorse
necessarie alla trasmissione, rendendola piu’ affidabile
Una connessione successiva tra gli stessi nodi potrebbe definire un
circuito virtuale differente dal precedente
Tabelle per la definizione dei circuiti virtuali


Il nodo sceglie un identificativo per il circuito virtuale, utilizzando un numero
(il piu’ basso disponibile)
Il router adiacente non e’ detto che abbia disponibile l’identificativo scelto dal
nodo




potrebbe averlo gia’ assegnato ad un’altro circuito virtuale proveniente da un altro
nodo
In generale scegliera’ un identificativo differente, ma lo associera’
all’identificativo scelto dal nodo per i pacchetti provenienti dal nodo stesso
Questo processo si itera fino a destinazione
Ogni router avra’ quindi una tabella del tipo
Nodo provenienza


Circuito virtuale
Nodo destinazione
Circuito virtuale
Ad ogni pacchetto in arrivo da un certo nodo (host o router) contenente un
certo identificativo, il router cerchera’ nella tabella l’host a cui inoltrare il
pacchetto e l’identificativo relativo
Sostituira’ l’ID vecchio col nuovo ed inoltrera’ il pacchetto
Confronto
Problema
Datagrammi
Circuito virtuale
Impostazione circuito
Non necessaria
Richiesta
Indirizzamento
Ogni pacchetto contiene
l’indirizzo completo di mittente e
destinatario
Ogni pacchetto contiene
un numero di circuito
virtuale
Informazioni sullo stato
I router non conservano
informazioni sullo stato delle
connessioni
Ogni CV richiede spazio
nella tabella dei router
per la connessione
Routing
Ogni pacchetto instradato
indipendentemente
Il percorso e’ definito
all’impostazione del CV
Effetto dei guasti
Nessuno tranne i pacchetti che si
trovano sul router che si guasta
al momento del guasto
Tutti i CV che
attraversano il router che
si guasta vengono
terminati
Qualita’ del servizio
Difficile
Semplice
Controllo congestione
Difficile
Semplice
Routing ed inoltro


La funzione principale dello strato di rete e’ il routing
Questo e’ il processo che permette al router di scegliere – tramite un
algoritmo – la linea di uscita verso cui instradare i dati


Spesso si possono distinguere le due operazioni:



questa operazione sara’ ripetuta per ogni pacchetto dal resvizio
connection less, o una sola volta all’inizio per il servizio connection
oriented
inoltro: il processo che, in base all’indirizzo di destinazione o al circuito
virtuale, sceglie la linea di uscita in funzione di dati noti (tabelle, stato
delle linee, …)
routing: il processo di creazione ed aggiornamento della tabella (detta
tabella di routing) che associa alla destinazione la linea di uscita da
utilizzare; questa operazione viene eseguita in base ad algoritmi detti
algoritmi di routing
Per molti algoritmi queste sono operazioni distinte eseguite in
momenti diversi da processi distinti all’interno dello strato di rete
Caratteristiche di un algoritmo di routing

E’ desiderabile che un algoritmo di routing abbia
le seguenti caratteristiche






correttezza: ovvio
semplicita’: meno soggetto ad errori in
implementazione o in esecuzione
robustezza: la rete non e’ stabile, e l’algoritmo deve
poter fare fronte alle modifiche di topologia
stabilita’: convergenza verso l’equilibrio
imparzialita’: servire qualunque tragitto possibile senza
penalizzare nessuno
ottimizzazione: efficienza globale
Algoritmi adattivi e non adattivi

Esistono due classi di algoritmi di routing



non adattivi: l’algoritmo per l’instradamento viene calcolato a priori e non si
modifica piu’ (routing statico)
adattivi: questi algoritmi modificano le tabelle in funzione di cosa accade sulla rete
(modifiche di topologia, carico sulla rete)
Gli algoritmi adattivi si differenziano in base alla sorgente delle informazioni



locale
dai router vicini
da tutti i router della rete
al momento in cui effettuano le modifiche



ad intervalli regolari
in funzione del carico della rete
in funzione di modifiche della topologia
ed al tipo di informazioni su cui si basano le decisioni (la metrica)



la distanza
il numero di salti
il tempo di transito stimato
Percorso piu’ breve



Gli algoritmi di routing spesso si basano sulla analisi della rappresentazione
della rete tramite un grafo (i punti identificano i router, gli archi
rappresentano le linee di connessione)
Per scegliere il percorso ottimale la soluzione e’ trovare il percorso piu’ breve,
in base ad una certa metrica
Possono essere scelte differenti metriche:









distanza geografica
numero di salti
costo delle linee
ritardo di accodamento
distanza chilometrica
larghezza di banda
o una funzione di alcune di queste
Definita una metrica, le linee potranno essere etichettate con un numero
(peso o metrica): piu’ basso e’ il numero, “piu’ breve” e’ la linea (quindi
preferibile)
La distanza di un percorso e’ dato dalla somma delle distanze dei singoli salti
Dijkstra ha ideato un algoritmo (Shorted Path First) che determina, in base
alla topologia ed ai pesi, il cammino piu’ breve tra due nodi del grafo
Algoritmo di Dijkstra
Routing statico


L’esempio piu’ semplice di algoritmo non adattivo e’ il routing statico
La tabella di routing viene inserita a mano nella configurazione del
router, e non viene modificata dinamicamente


eventualmente puo’ essere modificata manualmente anche in corso
d’opera
Questo algoritmo e’ virtualmente ingestibile in condizioni di reti anche
banalmente complesse, ma viene utilizzato diffusamente quando si
presentano circostanze particolari:


un router ha una unica connessione
un router ha piu’ di una connessione, ma per tutte le connessioni tranne
una c’e’ una destinazione ben precisa che non puo’ cambiare per motivi
di topologia, e l’ultima connessione deve essere utilizzata per tutte le
altre destinazioni
Instradamento multicammino



Questa tecnica si applica quando esistono piu’
percorsi possibili, e si vogliono utilizzare tutti,
ciascuno con intensita’ di carico potenzialmente
differente
A ciascun cammino viene assegnato un peso, e la
scelta di instradamento viene fatta in base ad
una estrazione casuale pesata
In questo modo si separa il traffico
statisticamente con probabilita’ pari al peso delle
alternative (per ogni pacchetto in caso di
protocollo senza connessione, per ogni circuito
virtuale in caso di protocollo connection oriented)
Instradamento flooding


Altro esempio di algoritmo statico, prevede di inoltrare
ogni pacchetto entrante su tutte le linee disponibili tranne
quella da cui e’ arrivato
Viene generato un elevato numero di duplicati del
pacchetto, che possono anche ritornare piu’ volte a chi lo
ha gia’ ricevuto


si utilizza in ogni pacchetto un contatore di hop (salti),
inizializzato ad un valore massimo e decrementato da ogni router:
allo 0 il pacchetto viene eliminato
si puo’ anche utilizzare un meccanismo per evitare le
ritrasmissioni




ad ogni pacchetto viene assegnato dal router che lo trasmette per
primo un numero di sequenza ed il suo indirizzo
ogni router tiene una tabella dei numeri di sequenza originati dai
diversi router e gia’ trasmessi
se arriva un pacchetto gia’ trasmesso si evita la ritrasmissione
se i numeri di sequenza sono incrementali, la tabella da memorizzare
sara’ di dimensioni ragionevoli (si memorizza solo l’ultimo)
Algoritmo flooding (cont.)

Gli aspetti negativi di questo algoritmo sono
essenzialmente legati alla inefficienza



ogni pacchetto va a finire su tutte le linee della rete, provocando
un utilizzo inefficiente della rete stessa
ogni pacchetto va a finire su tutti i router, aumentando il carico di
lavoro dei router stessi (CPU, occupazione di buffer)
Aspetti positivi sono:


qualsiasi pacchetto arrivera’ nel tempo piu’ breve possibile (segue
tutte le strade, anche la piu’ veloce)
estremamente resistente a modifiche della topologia



anche il malfunzionamento di grandi porzioni della rete permette il
recapito del pacchetto se almeno un cammino rimane operativo
non richiede una conoscenza a priori della topologia della rete
Scarsamente utilizzato per via della inefficienza, le
caratteristiche di estrema affidabilita’ di questo protocollo
sono sfruttate in diverse circostanze particolari, ad
esempio in campo militare
Algoritmo della patata bollente



Questo meccanismo e’ finalizzato a liberarsi del
pacchetto nel piu’ breve tempo possibile basando
la scelta su informazioni locali del router
Tipicamente la linea scelta per l’inoltro del
pacchetto e’ quella con la coda piu’ corta
Questo algoritmo puo’ essere migliorato
utilizzando una combinazione tra lunghezza della
coda e costi delle linee


in condizioni di carico ridotto saranno privilegiati i costi
in condizioni di carico elevato, sara’ data priorita’ alla
lunghezza della coda
Distance vector (Bellman-Ford)

Algoritmo adattivo sviluppato attorno al 1960, utilizzato per molto tempo



Ad ogni linea e’ assegnata una distanza, valutata in base ad una metrica,
indicata anche col nome di costo
La tabella di routing e’ costituita dalla associazione di tre informazioni:






Arpanet lo ha utilizzato fino al 1979 nella implementazione chiamata RIP (ancora
in uso adesso in realta’ di piccole dimensioni)
destinazione
distanza fino alla destinazione
linea di uscita
La tabella di routing viene scambiata con tutti i router adiacenti
In base alle informazioni ricevute dai vicini viene ricostruita la tabella di
routing nuova
Il valore della distanza avra’ un certo limite massimo, indicante che la
destinazione non e’ raggiungibile


nel caso di metrica ad hop, la distanza di infinito sara’ pari al numero massimo di
hop possibili nella rete piu’ uno
in caso di metrica secondo i ritardi puo’ essere piu’ complesso determinare
l’irraggiungibilta’ della destinazione: si deve valutare a priori un valore
ragionevolmente elevato ma non troppo
Distance vector (Bellman-Ford)

Valutazione delle distanze:

il router deve conoscere i router adiacenti, ed il costo delle linee
che li connettono direttamente




per fare questo un router scambia a tempi definiti con i propri vicini
dei pacchetti per essere aggiornati sulla loro presenza
se la metrica scelta dipende dal ritardo della linea, questi pacchetti
sono utilizzati per aggiornare la valutazione del costo della linea
diretta verso il router adiacente
Quando viene ricevuta la tabella di routing dai vicini, per ogni
destinazione si valuta la distanza aggiungendo alla distanza
riportata dal router adiacente quella relativa alla linea che li
connette
Tra tutte le distanze relative alla stessa destinazione riportate dai
router adiacenti, e rivalutate in base alla distanza verso ciascun
router adiacente, si sceglie quella con distanza inferiore
Distance vector (Bellman-Ford)

Come esempio, vediamo la costruzione della tabella di
routing del router J
Problemi del Distance Vector





Il distance vector, in condizioni normali, raggiunge sempre la convergenza
Il problema e’ che la convergenza e’ lenta, in particolare in occasione della
perdita di un router (o di una linea)
Questo problema e’ noto come conto all’infinito, e peggiora all’aumentare del
numero di router
Nell’esempio, a sinistra vediamo cosa accade quando il router A viene
acceso, a destra se si spegne o se va giu’ il link con B
In quest’ultimo caso si vede come l’informazione che A non e’ piu’
raggiungibile si propaga con lentezza
Link State


Per superare i problemi legati al distance vector
e’ stato sviluppato un algoritmo differente, il link
state, che basa il suo funzionamento sulla
conoscenza che ciascun router deve avere
relativamente ai collegamenti di tutti gli altri
router della rete
L’lalgoritmo si sviluppa secondo i seguenti punti:





scoprire i router adiacenti ed i loro indirizzi
misurare il costo della linea verso ogni vicino
costruire un pacchetto contenente questi dati
inviare questa informazione a tutti i router della rete
elaborare in base alle informazioni ricevute da tutti i
router i percorsi piu’ brevi per ogni destinazione
Scoperta dei vicini


Per realizzare questa funzione il protocollo prevede che
un router invii ciclicamente (a cominciare dalla sua
accensione) sulle linee a disposizione dei pacchetti
speciali detti “HELLO”
Questi pacchetti contengono l’indirizzo di rete del router
che lo invia



l’indirizzo del router deve essere unico in tutta la rete, per poter
essere distinto da tutti gli altri
Il router che riceve un HELLO, deve rispondere con un
pacchetto analogo
In questo modo un router, alla accensione, impara a
conoscere tutti i vicini, ed i vicini acquisicono
l’informazione della esistenza del nuovo router
Misura del costo della linea


L’algoritmo si basa, come vedremo, sulla conoscenza del costo delle
linee dirette con i router vicini
Come prima, sono possibili diverse metriche



generalmente il router utilizza un pacchetto speciale, detto ECHO, al
quale il router adiacente deve rispondere immediatamente
misurando il tempo di andata e ritorno e dividendo per due si ha una
misura del ritardo della linea
E’ possibile inserire nel computo il ritardo dovuto al carico del traffico,
contando il tempo di accodamento del pacchetto


questa soluzione puo’ comportare instabilita’ nel routing: nel caso di un
doppio cammino, quello migliore sara’ caricato di traffico, quindi l’altro,
scarico, diventera’ preferibile, ma dopo poco tempo il secondo sara’
carico di traffico mentre il primo sara’ scarico, rendendo nuovamente
preferibile il primo, e cosi’ via.
in queste circostanze e’ piu’ opportuno utilizzare metodi di suddivisione
del carico utilizzando opportunamente i costi delle linee
Costruzione dello stato dei collegamenti



Ora il router dispone dello stato dei suoi collegamenti
Questi dati vengono messi in una tabella contenente il
nome del router in questione, un numero sequenziale, un
numero indicante l’eta’ del pacchetto, e l’elenco di record
“router adiacente”-”ritardo della linea”
Questi pacchetti possono essere costruiti periodicamente,
o in occasione di modifiche di topologia
Distribuzione del link state

Il problema di propagare l’informazione agli altri ha due
aspetti




bisognerebbe sapere a priori chi sono gli altri
via via che il pacchetto raggiunge alcuni router, questi potrebbero
cambiare la loro topologia mentre altri no, quindi si potrebbero
verificare inconsistenze che impediscono la diffuzione completa
dell’informazione
L’idea fondamentale, che risolve entrambi i problemi, e’ di
utilizzare il flooding per propagare le informazioni di link
state
Il carico complessivo sulla rete dovuto al meccanismo di
flooding e’ accettabile in quanto solo i pacchetti di link
state vengono propagati con questa tecnica
Distribuzione del link state

Vi sono alcuni aspetti da osservare




Questo meccanismo ha pero’ due problemi





il numero di sequenza viene incrementato da un router ogni volta che genera un
nuovo pacchetto di link state
questo permette ai router che devono instradare l’informazione via flooding di
rimuovere dalla rete i pacchetti relativi ad informazioni obsolete
per evitare numeri duplicati si utilizza una numerazione a 32 bit
al riavvio del router, questo ricominciera’ da zero!
se per un errore di trasmissione non rilevato giungesse un numero alto al posto di
uno basso, tutti i pacchetti successivi verrebbero scartati
Per ovviare a questi problemi si inserisce anche un numero indicante l’ “eta’”
del pacchetto, che viene decrementato di una unita’ al secondo
Quando l’eta’ raggiunge lo zero, l’informazione viene comunque considerata
obsoleta e scartata
Tipicamente i pacchetti di link state vengono inviati ogni qualche secondo o
decina di secondi, quindi un valore di eta’ dello stesso ordine di grandezza
garantisce di poter ricevere sempre informazioni aggiornate
Elaborazione dei percorsi



Quando un router ha ricevuto una serie
completa di pacchetti sullo stato dei
collegamenti dei router della rete, di fatto
conosce la topologia della rete (i router ed
i costi delle linee)
Viene quindi eseguito l’algoritmo di Dijkstra
per valutare i percorsi in base al cammino
piu’ breve
Il risultato di questi calcoli viene utilizzato
per costruire la tabella di routing
Caratteristiche del link state



Questo protocollo richiede ai router una discreta capacita’
di memoria (per memorizzare i pacchetti del link state,
che sono in numero proporzionale al numero di router ed
al numero medio di collegamenti per router)
Richiede anche capacita’ di calcolo per eseguire gli
algoritmi di Dijkstra una volta per ogni destinazione
Ha pero’ la caratteristica di rispondere molto rapidamente
a modifiche della topologia



appena un router vede una modifica, manda le informazioni
aggiornate a tutti i router immediatamente
la nuova topologia si stabilizza sulla rete in tempi di alcuni
secondi al massimo, contro i minuti o decine di minuti
dell’algoritmo distance vector
Anche per questo, come per tutti gli algoritmi di routing
adattivi, il malfunzionamento di un router che annunci
informazioni errate puo’ avere effetti disastrosi
Implementazioni del link state




La prima implementazione di un protocollo di routing Link
State e’ stata fatta per DECnet, col nome di IS-IS
(Intermediate System to Intermediate System),
successivamente standardizzata come protocollo CLNS di
OSI
Una sua successiva estensione, nota col nome di I-IS-IS
(Integrated IS-IS) supportava l’utilizzo di protocolli
differenti, come DECnet, TCP/IP, Appletalk ed altri) anche
contemporaneamente
In TCP/IP ne e’ utilizzata una implementazione derivante
dall’IS-IS che ha per nome OSPF (Open Shortest Path
First), che ha sostituito protocolli Bellman-Ford (RIP) nella
totalita’ delle reti di una certa dimensione
A differenza di I-IS-IS, OSPF e’ una implementazione
monoprotocollo (solo TCP/IP)
Routing gerarchico

Al crescere delle dimensioni della rete i protocolli di
routing manifestano difficolta’ crescenti



La risposta a questo problema e’ il routing gerarchico


per i tempi di convergenza, come nel caso di protocolli distance
vector
per le dimensioni delle tabelle di routing da memorizzare ed
elaborare
i router vengono divisi in regioni (geograficamente o secondo altri
criteri)
il routing viene operato a due livelli:


internamente alla regione i router utilizzano un protocollo che si
preoccupa della topologia esclusivamente all’interno della regione
alcuni router per ciascuna regione operano il routing interregionale e conoscono il modo per raggiungere le altre regioni,
senza conoscerne la topologia interna
Routing gerarchico (cont.)

Il routing gerarchico puo’ occasionalmente generare
cammini non ottimali, ma il vantaggio in termini di
riduzione delle tabelle di routing vale la spesa
Routing broadcast



Alcune applicazioni desiderano inviare pacchetti a
molti o tutti gli host della rete
Molti protocolli di livello di data link delle reti
locali hanno questa funzionalita’, che pero’ non e’
disponibile nelle reti geografiche
Esistono diverse soluzioni:

la sorgente invia un pacchetto distinto a tutte le
destinazioni



poco pratico, perche’ la sorgente deve sapere quali sono le
destinazioni possibili
costoso in termini di efficienza
l’instradamento flooding puo’ essere utilizzato a questo
scopo, ma ha il difetto di inondare la rete di pacchetti
Routing broadcast (cont.)



Una soluzione funzionale (anzi, la soluzione ottimale) e’ quella di
applicare un algoritmo funzionalmente simile allo spanning tree del
data link layer, a partire dal router che ha generato la trasmissione
Questo meccanismo si basa sul principio di ottimalita’: se il cammino
ottimale da I a J attraversa K, allora il percorso ottimale da K a J
segue la stessa strada
L’insieme dei cammini ottimali da un router verso tutte le destinazioni
non puo’ quindi contenere percorsi circolari, cioe’ ha una struttura ad
albero, detta sink tree
Routing broadcast (cont.)

Utilizzando il sink tree, la trasmissione del
pacchetto broadcast si puo’ ottenere
semplicemente:


i router inviano il pacchetto solo sulle proprie linee
uscenti appartenenti a quel sink tree
Questo protocollo ha il difetto che ogni router
deve essere capace di calcolare il sink tree
relativo al router che ha generato il pacchetto,
quindi deve conoscere la topologia della rete


ad esempio il distance vector non puo’ farlo
il link state puo’ farlo
Routing broadcast (cont.)

Una soluzione che non richiede la conoscenza
della topologia e’ quella nota come reverse path
forwarding:

quando un router riceve un pacchetto broadcast da
una sorgente, calcola se l’interfaccia da cui ha ricevuto
il pacchetto e’ quella verso la quale instraderebbe un
pacchetto destinato al router sorgente



se la strada e’ la stessa, allora il router che ha ricevuto il
pacchetto appartiene al sink tree del router sorgente, ed
inoltra il pacchetto su tutte le altre linee
se la strada non e’ la stessa, il pacchetto viene scartato
E’ meno efficiente del sink tree, ma di
applicabilita’ piu’ generale
Routing broadcast (cont.)

Il numero di pacchetti generati dal reverse path
forwarding e’ superiore a quello del sink tree, ma
ampiamente inferiore rispetto alla soluzione del
meccanismo flooding
Sistemi e Tecnologie della
Comunicazione
Lezione 19: network layer: congestione, internetworking
Congestione della rete


La congestione della rete e’ il fenomeno che si verifica
quando le sorgenti immettono nella rete piu’ pacchetti di
quanti la rete riesca a trasmettere a destinazione
Le cause della congestione possono essere molteplici




diversi flussi verso la stessa linea: i pacchetti non possono essere
trasmessi al ritmo con cui arrivano ad un router, si forma una
coda nel router
l’esaurimento dei buffer nel router determina lo scarto dei
pacchetti successivi
anche la lentezza della CPU del router (nell’analizzare i pacchetti,
la tabella di routing, o per attivita’ di logging degli eventi) puo’
provocare lentezza di risposta ed esaurimento della memoria
aumentare la memoria non serve: code lunghe amuentano il
ritardo di inoltro dei pacchetti; quando il ritardo cresce, i pacchetti
scadono, verranno scartati ed andranno ritrasmessi comunque
Effetto valanga

Tipicamente l’insorgere di congestione in un punto della
rete ha un effetto che in mancanza di contromisure
peggiora nel tempo:




i pacchetti vengono scartati dal router, quindi verranno ritrasmessi
provocando un ulteriore aumento del flusso verso la zona
congestionata
i pacchetti ritrasmessi andranno in generale ad aumentare il
carico anche a monte del router congestionato, provocando un
sovraccarico conseguente anche in altre zone della sottorete
Questo provoca un effetto a valanga che, in prossimita’ di
una certa soglia di sovraccarico, rapidamente porta la
rete in condizioni di congestione diffusa
Senza azioni correttive la rete puo’ collassare
Principi generali per il controllo della congestione

Le contromisure si classificano in due categorie:

soluzioni a ciclo aperto: si opera in sede di progetto della rete,
destinando risorse di banda, CPU, memoria, valutando scelte di
routing e valutando correttamente il tempo di vita massimo di un
pacchetto




un lungo tempo di vita fa si che i pacchetti intasino la rete per molto
tempo
un tempo troppo corto provochera’ la ritrasmissione troppo spesso
la progettazione deve considerare anche il comportamento del
protocollo di trasporto
soluzioni a ciclo chiuso: queste si attivano tenendo in conto lo
stato corrente della rete, ed operando retroazioni, quindi



definire le metriche ed i meccanismi per rilevare la congestione
definire i modi per la trasmissione di queste informazioni in punti
dove operare correttivi
attivare le azioni correttive
Controllo del sistema

Le metriche per l’identificazione di una
congestione (imminente) sono diverse:






percentuale di pacchetti scartati
lunghezza media delle code
frequenza dei pacchetti scaduti
ritardo medio dei pacchetti
Alcune di queste metriche sono utilizzabili dalla
sorgente per provocare una autolimitazione del
traffico immesso nella rete
In tutti i casi valori crescenti indicano un
peggioramento della situazione
Controllo nella rete connection oriented

Una soluzione al problema e’ il controllo di
ammissione:



quando una parte della sottorete risulta congestionata,
nessun circuito virtuale puo’ essere definito attraverso
quella zona
alternativamente si permettono nuove connessioni solo
attraverso strade diverse (se possibile)
si possono anche attivare meccanismi piu’ stringenti
nella allocazione delle risorse per le nuove connessioni


tipicamente le reti a circuiti virtuali fanno una sorta di
overbooking delle risorse
impedire ulteriori overbooking permette di garantire che le
nuove connessioni dispongano delle risorse necessarie, e non
aggraveranno la situazione
Controllo nelle reti connectionless


Il router puo’ tenere sotto controllo lo stato delle
sue linee e determinare lo stato di allarme
Una soluzione (utilizzata nel DECnet) prevede che
il router in stato di allarme setti un bit particolare
nell’header dei pacchetti


lo strato di trasporto della destinazione ricopia il bit di
congestione nel pacchetto di acknowledge, quindi la
sorgente rileva il problema e riduce la velocita’ di
trasmissione
poiche’ qualunque router puo’ settare il bit di allarme,
la condizione di allarme termina solo qiando tutti i
router coinvolti nel tragitto congestionato sono tornati
in condizione normale
Choke packet

Una soluzione diversa consiste nel comunicare
direttamente alla sorgente il problema, tramite
un pacchetto specifico detto choke packet




il pacchetto originale viene marcato in modo da non
generare altri chocke packet durante il resto del suo
tragitto
il choke packet contiene le informazioni di quale
destinazione e’ affetta dal problema
la sorgente puo’ quindi ridurre di una certa
percentuale il rate di trasmissione verso quella
destinazione
dopo un intervallo di tempo definito di assenza di
choke packet, la sorgente riprende ad aumentare il
rate di trasmissione
Choke packet hop-by-hop

Il meccanismo del choke packet difetta di lentezza nella risposta al
problema


fino a che il choke packet non arriva alla sorgente, questa continua ad
inviare troppo rapidamente per la rete
Una soluzione migliorativa e’ che il choke packet, durante il tragitto,
provoca in ciascun router la diminuzione delle trasmissioni verso la
sorgente (choke packet hop by hop)



quando il choke packet raggiunge il primo router a monte di quello
congestionato, questo rallenta alleviando il router congestionato, ed
aggrava la sua situazione perche’ a monte il traffico e’ sempre a rate
elevato, ma solo finche’ il choke packet non fa un altro hop
via via che il choke packet viaggia all’indietro, ogni router rallenta le
trasmissioni verso il successivo
il meccanismo sposta verso la sorgente parte del problema, ma per
tempi brevi, cioe’ spalma la congestione su diversi router che saranno in
crisi per tempi brevi ed in modo meno intenso
Scarto dei pacchetti



Quando non ce la si fa piu’ i router scartano i pacchetti
Questo generalmente provoca ritrasmissioni, che non risolvono il
problema
Si puo’ pero’ sfruttare il comportamento dello strato di trasporto per
scartare oculatamente i pacchetti e ridurre il carico



se lo strato di trasporto ha un meccanismo del tipo go-back-n, e’
opportuno scartare i pacchetti piu’ nuovi, in modo da generare meno
ritrasmissioni
in alcuni protocolli di trasporto (come il TCP) la perdita di pacchetti
provoca un rallentamento della velocita’ di trasmissione, cosa funzionale
alla soluzione del problema di congestione
Normalmente questa tecnica viene utilizzata prima di raggiungere
una condizione totalmente congestionata, per evitare di non avere
risorse per gestire il problema (Random Early Detection)
Internetworking



L’evoluzione delle reti si e’ sviluppata indipendentemente nelle
diverse realta’ locali (dal punto di vista geografico o amministrativo)
Le diverse necessita’ hanno prodotto la definizione e
l’implementazione di reti utilizzanti protocolli differenti
Si utilizzano protocolli variegati sia a livello di rete locale che
geografica








quasi tutti i PC utilizzano TCP/IP
molti PC utilizzano NETBIOS
i mainframe IBM delle grandi aziende utilizzano SNA o DECnet
i MacIntosh utilizzano (anche) Appletalk
alcune LAN di PC usano IPX (Novell)
molte aziende telefoniche usano ATM
wireless rappresenta uno standard differente dagli altri
Un bel giorno si e’ scoperto opportuno che alcune – o tutte – queste
realta’ possano comunicare tra loro
Problematiche di internetworking

Le differenze tra reti sono di diversa natura


esistono differenze a livello di strato fisico o di data
link layer
a livello di rete, differenze possono derivare da





comunicazione tra reti connection oriented e connection less
utilizzo di funzionalita’ in una rete non previste dall’altra rete
(ad esempio, controllo di flusso, comunicazione multicast o
qualita’ di servizio)
differenze di indirizzamento, che richiedono tabelle di
conversione
alcuni protocolli di rete possono richiedere dimensioni
massime dei pacchetti di valore differente
differenze possono presentarsi anche a livello di
trasporto o di applicazione
Connessioni tra reti





Livelli fisici differenti possono essere connessi da convertitori di
segnale (ad esempio, una tratta costituita da una connessione in
coassiale che si inserisce in un ponte radio, per finire in una
connessione in fibra ottica)
A livello di data link layer abbiamo visto l’interconnessione tra
protocolli differenti tramite dispositivi detti bridge
A livello di rete una possibile soluzione e’ l’utilizzo di router
multiprotocollo
Le conversioni di protocollo a livello di trasporto o di applicazione
vengono eseguite da dispositivi chiamati generalmente gateway
(termine talvolta utilizzato anche per indicare i router nel contesto del
livello di rete)
Nel seguito vedremo il problema relativo allo strato di rete
Circuiti virtuali concatenati

Quando l’interconnessione e’ relativa a due sottoreti
orientate alla connessione, e’ possibile operare nel
seguente modo





al momento di stabilire la connessione, la sottorete si accorge che
la destinazione e’ esterna alla rete
viene stabilito un circuito virtuale tra la sorgente ed il router piu’
vicino al bordo della sottorete di partenza
il router crea quindi una connessione con il gateway (router)
multiprotocollo che interconnette le due reti adiacenti, ed “incolla”
la connessione con la sorgente a questa nuova connessione
analogamente il router multiprotocollo creera’ una connessione
(secondo le specifiche del protocollo della rete successiva, che lui
conosce) verso un router vicino situato nella nuova sottorete ed
associa i due circuiti virtuali
questo processo puo’ iterarsi fino alla destinazione, realizzando
una concatenazione di circuiti virtuali da sorgente a destinazione
Circuiti virtuali concatenati

Questa tecnica funziona bene quando le caratteristiche delle comunicazioni
orientate alla connessione sono simili


In caso contrario la natura della connessione puo’ essere pregiudicata


ad esempio tutte le reti forniscono un flusso affidabile
la rete della sorgente e della destinazione possono offrire un servizio affidabile, ma
se nel mezzo c’e’ una rete con servizio connection oriented inaffidabile,
l’affidabilita’ della connessione viene chiaramente pregiudicata
Questa tecnica e’ spesso utilizzata anche a livello di trasporto (dove esiste
sempre un protocollo connection oriented affidabile)
Collegamento connectionless



In questo caso il servizio fornito allo strato di trasporto e’ di tipo
datagram (inaffidabile)
Come previsto dal protocollo ogni pacchetto e’ instradato
indipendentemente, ed i percorsi dei pacchetti potrebbero anche
attraversare gateway differenti
In questo caso i problemi sono maggiori




i router multiprotocollo debbono estrarre dal pacchetto in transito le
informazioni essenziali, e tentare di tradurre queste informazioni nel
protocollo della rete verso cui il pacchetto viene instradato
questo raramente puo’ essere fatto se i protocolli non sono molto simili
altro problema grave e’ l’indirizzamento: protocolli diversi utilizzeranno
indirizzamenti diversi, e non sempre e’ possibile mantenere una
mappatura sul gateway
Questo approccio ha il vantaggio di essere utilizzabile anche con reti
a circuiti virtuali; tentare di fare il contrario provoca problemi
Tunneling


Non esiste una soluzione generale per realizzare
una interconnessione di reti: ogni situazione va
risolta in modo opportuno
Un caso particolare ma molto frequente e’ quello
di una interconnessione tra reti differenti, dove
pero’ la rete di partenza e quella di arrivo sono
omogenee

ad esempio una LAN connessa in TCP/IP alla rete di
partenza, deve attraversare una sottorete ATM per
raggiungere una rete TCP/IP a destinazione
Tunneling (cont.)

In questo caso si puo’ applicare una semplice tecnica
nota come tunneling:





il pacchetto della rete di partenza arriva al gateway, che dispone
di un collegamento verso un router della rete da attraversare
(secondo il protocollo della rete in questione)
il router inserisce il pacchetto nel campo dati di un pacchetto del
protocollo specifico della rete da attraversare, ed indirizza il nuovo
pacchetto al gateway che connette la rete intermedia con quella
di destinazione
il gateway di destinazione riceve il pacchetto, estrae da questo il
pacchetto originario e lo instrada secondo il protocollo della rete
di destinazione, uguale a quello della rete di partenza
in questo caso la rete intermedia si comporta a tutti gli effetti
come un tubo, i cui dettagli sono ignoti a mittente e destinatario
i due gateway dovranno avere nella tabella di routing
l’informazione che le destinazioni connesse al gateway
dirimpettaio vanno raggiunte attraverso di lui, tramite il tunnel
Tunneling (cont.)


Questa tecnica e’ applicata diffusamente in Internet, dove
le destinazioni sono generalmente reti locali che utilizzano
il TCP/IP, e le dorsali di interconnessione possono
attraversare reti di qualunque tipo
Il TCP/IP (in particolare IP) supporta questo tipo di
trasferimento dei dati
Routing in una internet


Il routing attraverso una interconnessione di reti si
gestisce in modo simile al routing gerarchico
Si utilizza un routing a due livelli




il routing interno a ciascuna rete sara’ gestito tramite un
protocollo di routing interno (Interior Gateway Protocol) quale ad
esmpio RIP, OSPF, CLNS, X.25
il traffico interno non si preoccupa di questioni relative
all’internetworking; le zone interne vengono chiamate
Autonomous System (AS)
i gateway (router multiprotocollo) utilizzeranno tra loro un
protocollo differente (Exterior Gateway Protocol), che permettera’
ai gateway di decidere attraverso quali reti instradare il pacchetto
fatta la scelta, si puo’ utilizzare il tunneling per trasferire i dati a
destinazione
Frammentazione

L’attraversamento di reti differenti puo’ richiedere che un
gateway spezzi il pacchetto in frammenti per motivi di
protocollo




un pacchetto IP puo’ essere lungo 65515 byte
se si deve attraversare una Ethernet, deve essere spezzato in
frammenti di circa 1500 byte
se poi deve attraversare una rete ATM, deve essere ulteriormente
frammentato in parti di 48 byte ciascuna
Esistono due modi di affrontare il problema


evitare il problema a monte: il protocollo puo’ tentare di capire la
dimensione minima richiesta dalle reti da attraversare, ed imporre
questo limite alla sorgente, o evitare di transitare su reti che non
possono supportare la dimensione del pacchetto originato
meglio: permettere ai router di frammentare il pacchetto
Frammentazione (cont.)

In caso di frammentazione, esistono ancora due strategie

riassemblare il pacchetto all’uscita della rete che ha importa la
frammentazione (ATM fa cosi’)




questo rende la frammentazione trasparente alle reti a valle, cioe’ ai
gateway successivi, che lo riceveranno intero
puo’ pero richiedere di frammentare e riassemblare piu’ volte il
pacchetto (lavoro aggiuntivo per i gateway)
inoltre i gateway devono sapere quando hanno ricevuto tutti i
frammenti, e devono poterli riordinare (quindi tutti i pacchetti devono
uscire dalla rete intermedia attraverso lo stesso gateway)
non riassemblare il pacchetto frammentato, ma trasmettere i
diversi frammenti fino a destinazione, dove il pacchetto verra’
riassemblato (IP usa questa soluzione)


questo ha il vantaggio di non dover ripetere piu’ volte la stessa
operazione
i gateway non si devono preoccupare del riassemblaggio
Frammentazione (cont.)

Gli aspetti negativi della frammentazione non
traspasrente sono




tutti gli host devono saper riassemblare il pacchetto
l’overhead della frammentazione (una intestazione completa per
ogni frammento) si propaga fino a destinazione
si deve introdurre una numerazione che permetta di riassemblare
il pacchetto e di identificare pezzi mancanti
IP utilizza la seguente tecnica


ogni frammento deve avere una dimensione fissa (quella richiesta
dalla rete di transito), tranne l’ultimo
l’intestazione deve contenere il numero del pacchetto, un bit che
indica il frammento finale, ed un numero che indica l’offset in
byte del primo byte del frammento rispetto al pacchetto originale
Frammentazione (cont.)
Sistemi e Tecnologie della
Comunicazione
Lezione 20: network layer: IP, ARP, ICMP
Internet Protocol (IP)



IP e’ il protocollo di rete della suite TCP/IP
Definito negli RFC 791 e 1122
Dall’RFC 791:






IP ha la funzione di recapitare un insieme di bit (internet datagram) dalla
sorgente alla destinazione attraverso un sistema di reti interconnesse
Non sono previsti meccanismi di affidabilita’, controllo di flusso,
sequenzialita’, rilevazione o correzione di errore
Il recapito viene operato direttamente se la destinazione appartiene alla
stessa rete della sorgente, attraverso un sistema intermedio (router)
altrimenti
Se possibile il datagramma viaggia intero, altrimenti viene spezzato in
piu’ parti, ciascuna trasportata poi individualmente; in questo caso il
datagramma viene riassemblato a destinazione
Ip si preoccupa di trasmettere il datagramma da un host all’altro, fino
alla destinazione, una rete alla volta
Questa definizione corrisponde ad un protocollo che fornisce un
servizio connection less inaffidabile
Delivery locale o remoto

Due host appartengono alla stessa rete se sono nella stessa rete
locale, o se sono i due punti terminali di una connessione puntopunto



“stessa rete locale” va intesa in senso logico: possono esistere host
appartenenti a reti IP distinte anche se sono connessi alla stessa rete
locale, ed host appartenenti alla stessa rete IP anche se sono connessi a
due reti locali connesse da un link punto-punto opportunamente
mascherato
sono comunque casi particolari; in generale vale la corrispondenza
“rete IP = LAN”
IP distingue il modo in cui viene recapitato il datagramma:


se sorgente e destinazione fanno parte della stessa rete, il datagramma
viene consegnato direttamente utilizzando il protocollo di data link layer
sottostante (delivery locale)
in caso contrario, deve esistere sulla rete direttamente connessa al
mittente un router capace di trasmettere il datagramma attraverso le reti
che interconnettono mittente e destinatario;
il datagramma verra’ trasmesso al router (tramite delivery locale) e
questo instradera’ a sua volta il datagramma ad altri router direttamente
connessi fino a raggiungere la destinazione
Indirizzamento IP

Per poter identificare il destinatario, ogni host e router
devono avere un indirizzo (IP) univoco, che distingue la
rete di appartenenza dalle altre, e l’host dagli altri host
appartenenti alla stessa rete


l’indirizzamento IP e’ gerarchico, a due livelli: indirizzo di rete ed
indirizzo di host, a differenza di quello Ethernet che e’ piatto
in realta’ ogni interfaccia di rete (cioe’ ogni connessione ad una
rete) deve avere un indirizzo IP


generalmente i PC hanno una sola interfaccia di rete, ma i router
(sempre) o i server di grosse dimensioni (talvolta) hanno piu’
interfacce di rete: ciascuna di queste deve avere un indirizzo IP
tutti i nodi IP hanno un ulteriore indirizzo, detto loopback, che
rappresenta un indirizzo fittizio indicante “se stesso”, ed utilizzato
per motivi di diagnostica o per simulare connessioni di rete di un
host con se stesso
Struttura dell’indirizzo IP

L’indirizzo IP e’ costituito da 32 bit, o 4
byte, generalmente rappresentati da 4
numeri decimali di valore compreso tra 0 e
255, separati da un punto


ad esempio: 10.103.0.21
Questo indirizzo contiene una parte che
specifica la rete, ed una parte che
identifica l’host all’interno di quella rete
Classi di indirizzi

Gli indirizzi IP sono raggruppati in diverse categorie, dette
classi:

indirizzi di classe A: tutti quelli che iniziano con un bit 0, cioe’ con
il primo byte di valore compreso tra 0 e 127

gli indirizzi di classe A hanno il primo byte dedicato all’indirizzo di
rete, i restanti all’indirizzo di host




ad esmpio, l’indirizzo 20.9.0.200 individua l’host appartenente alla rete
“20”, il cui indirizzo di host e’ 9.0.200
esistono quindi 125 network di classe A (le reti 0, 10 e 127 non
vengono utilizzate)
ciascuna rete di classe A puo’ indirizzare 224 host differenti (quasi 17
milioni)
indirizzi di classe B: tutti quelli che iniziano con la sequenza di bit
10, cioe’ con il primo byte di valore compreso tra 128 e 191

gli indirizzi di classe B hanno i primi due byte dedicati all’indirizzo di
rete, i restanti due dedicati all’indirizzo di host


131.154.10.21 indica l’host di indirizzo “10.21” appartenente alla rete
“131.154”
esistono quindi 16383 reti di classe B, ciascuna contenente 65533
host
Classi di indirizzi (cont.)

indirizzi di classe C: tutti quelli che iniziano con la sequenza di bit
110, cioe’ con il primo byte di valore compreso tra 192 e 223



indirizzi di classe D: tutti quelli che iniziano con la sequenza di bit
1110, cioe’ con il primo byte compreso tra 224 e 239


questi indirizzi hanno i primi tre byte dedicati alla rete, il quarto
all’indirizzo di host (193.206.144.1 indica l’host “1” della rete
“193.206.144”)
in classe C esistono circa 2 milioni di reti, ciascuna contenente al piu’
254 host
gli indirizzi di classe D sono dedicati all’indirizzamento dei gruppi
multicast
indirizzi di classe E: tutti quelli che iniziano con la sequenza di bit
1111, cioe’ con il primo byte compreso tra 240 e 255

gli indirizzi di classe E sono dedicati ad utilizzi sperimetali, e non
devono mai essere utilizzati come effettivo indirizzo di macchine sulla
rete
Indirizzi speciali

L’indirizzo contenente tutti “0” nel campo di host viene utilizzato per
indicare la rete




L’indirizzo 0.0.0.0 ha il significato di “questo host di questa rete”, e
viene utilizzato dai calcolatori che, in fase di boot, non conoscono
ancora il proprio indirizzo IP
L’indirizzo IP con tutti “0” nella parte di rete ha il significato di
“questa rete”


l’indirizzo 10.0.0.0 indica la rete “10” (di classe A)
l’indirizzo 193.206.144.0 indica la rete “193.206.144” (di classe C)
ad esempio, se l’host 193.206.144.10 vuole inviare sulla rete locale un
pacchetto all’host 193.206.144.20, puo’ indirizzarlo a 0.0.0.20
Queste convenzioni spiegano perche’ la rete di classe A: 0.0.0.0 non
venga utilizzata come rete indirizzabile in IP: ad esempio, se cosi’
non fosse, il pacchetto indirizzato all’host 1 di una qualunque rete
tramite la notazione “questa rete”.1 non potrebbe essere distinto dal
pacchetto indirizzato all’host 1 della rete 0.0.0.0
Indirizzi speciali (cont.)

L’indirizzo 255.255.255.255 (tutti bit 1)
rappresenta l’indirizzo broadcast della rete locale
direttamente connessa


e’ l’indirizzo utilizzato per inviare un pacchetto IP
broadcast sulla propria rete
L’indirizzo con tutti 1 nel campo host rappresenta
l’indirizzo broadcast della rete specificata nel
campo rete


ad esempio: l’indirizzo 130.90.255.255 indica l’indirizzo
broadcast della rete 130.90.0.0
questo meccanismo permette di indirizzare un
pacchetto a tutti gli host di una rete remota
Indirizzi dedicati a scopi speciali

La rete di classe A 127.0.0.0 e’ dedicata all’interfaccia di loopback


Tre campi di indirizzamento sono dedicati ad indirizzi privati





l’interfaccia prende sempre l’indirizzo 127.0.0.1
10.0.0.0 (una rete di classe A)
da 172.16.0.0 a 172.31.0.0 (16 reti di classe B)
da 192.168.0.0 a 192.168.255.0 (256 reti di classe C)
Gli indirizzi privati possono essere utilizzati all’interno di una rete privata, ma
non devono mai venire annunciati nelle tabelle di routing (cosi’ come la rete
dell’interfaccia di loopback)
Il routing verso le macchine ad indirizzo privato deve essere fatto dal router
di interconnessione con la rete pubblica ad insaputa del resto della rete


lo scopo degli indirizzi privati e’ quello di poter utilizzare la tecnologia TCP/IP in
una realta’ locale senza dover necessariamente chiedere ed utilizzare indirizzi
pubblici
una tecnica diffusa che fa uso di questi indirizzi per dare connettivita’ senza
sprecare indirizzi pubblici e’ il NAT (Network Address Translation) che vedremo in
seguito
Routing e classi

In base alle convenzioni sulle classi di indirizzi,
qualunque indirizzo contiene in se l’informazione
della rete di appartenenza



l’indirizzo 100.31.254.20 appartiene alla rete 100.0.0.0
(classe A)
l’indirizzo 191.23.0.43 appartiene alla rete 191.23.0.0
(classe B)
Questo permette ai pacchetti di essere indirizzati
specificando solamente l’indirizzo di 32 bit, senza
informazioni aggiuntive su quale sia la rete di
appartenenza della destinazione (e del mittente)
Assegnazione degli indirizzi in Internet



Affinche’ tutto funzioni correttamente in una internet gli
indirizzi devono essere assegnati da una autorita’ centrale
che garantisca innanzi tutto l’unicita’ delle assegnazioni
Per Internet gli indirizzi sono assegnati dalla ICANN
(Internet Corporation for Assigned Names and Numbers)
La ICANN ha poi delegato organizzazioni regionali
(Europa, Asia, America, …) assegnando loro gruppi di
indirizzi da riassegnare al loro interno


per l’Europa: RIPE NCC
A loro volta le organizzazioni regionali possono delegare
verso il basso, partizionando gli indirizzi a loro destinati
dalla ICANN

in Italia: diverse istituzioni (ISP); per gli enti di ricerca si deve
chiedere a GARR
Carenza di indirizzi




Lo spazio di indirizzamento disponibile conta due miliardi di indirizzi,
raggruppabili in 16500 reti di enormi dimensioni e 2 milioni di reti di
piccole dimensioni
Sembrava impossibile esaurire lo spazio di indirizzamento
La 100000-sima rete si e’ connessa in Internet nel 1996!
Tre i fattori che hanno determinato l’insorgere di problemi:

lo spazio di indirizzamento delle classi A, e spesso anche quello delle
classi B, e’ troppo vasto: nessuna rete puo’ contenere 16 milioni di nodi
distinti, o anche solo 65000




un enorme numero di indirizzi rimangono inutilizzati
una azienda o campus a cui e’ stata assegnata una classe A che deve
estendere la sua rete per interconnettere diversi dipartimenti su reti locali
distinte hanno bisogno di altre reti, benche’ il numero di indirizzi disponibile
ecceda di gran lunga la necessita’ di indirizzi di host
la connessione punto-punto tra due router richiede l’utilizzo di una rete
IP, per la quale sono utilizzati solo due indirizzi
lo spazio di indirizzamento delle reti di classe C risulta troppo piccolo con
il crescere delle reti locali
Subnet

Per risolvere i problemi di carenza di indirizzi di rete e’
stata sviluppata una tecnica detta subnetting




un campus a cui e’ stata assegnata una rete di classe A puo’
suddividere il suo campo di indirizzi in gruppi piu’ piccoli,
trattando ogni gruppo come se fosse una “rete” a se stante
ad esempio, se la rete assegnata e’ la 100.0.0.0, il campus puo’
dedicare gli indirizzi 100.1.0.0 ad un dipartimento, gli indirizzi
100.2.0.0 ad un secondo dipartimento e cosi’ via, trattando le due
reti come se fossero reti di classe B
affinche’ tutto funzioni a dovere, il router del campus dovra’
annunciare verso l’esterno la sola rete di classe A, mentre
internamente potra’ trattare i vari pezzi come se fossero reti piu’
piccole
per implementare le sottoreti e’ necessario introdurre una
informazione aggiuntiva agli indirizzi di rete, che specifichi quali
bit dell’indirizzo definiscano l’indirizzo della (sotto)rete e quali
definiscano l’indirizzo degli host
Network mask

Per identificare quali bit definiscono la rete e quali bit l’host, si utilizza una
“maschera”, anch’essa costituita da 32 bit, col significato seguente:




Con questa convenzione, gli indirizzi di classe A hanno maschera 255.0.0.0,
quelli di classe B hanno maschera 255.255.0.0, quelli di classe C hanno
maschera 255.255.255.0
Utilizzando opportunamente le maschere e’ possibile spezzare una rete in
sottoreti:


se un bit della maschera vale 1, il corrispondente bit dell’indirizzo fa parte
dell’indirizzo della rete
se un bit della maschera vale 0, il corrispondente bit dell’indirizzo fa parte
dell’indirizzo di host
100.1.0.0 con maschera 255.255.0.0 indica una rete che puo’ indirizzare gli host
da 100.1.0.1 a 100.1.255.254
Tutte le reti possono essere “subnettate”, anche le classi C:

la rete 193.206.144.0 (classe C) puo’ essere ad esempio suddivisa in quattro
sottoreti:




193.206.144.0 255.255.255.192 (indirizzi da 0 a 63)
193.206.144.64 255.255.255.192 (indirizzi da 64 a 127)
193.206.144.128 255.255.255.192 (indirizzi da 128 a 191)
193.206.144.192 255.255.255.192 (indirizzi da 192 a 255)
Network mask (cont.)

Una notazione molto diffusa per indicare la maschera e’ quella di indicare in
coda all’indirizzo il numero di bit, a partire dal piu’ significativo, che
costituiscono l’indirizzo di rete



Vale la pena di osservare che la sottorete di dimensioni minime deve avere
un campo di 4 indirizzi: uno per indicare la sottorete, uno per indicare il
broadcast, ed almeno uno per indirizzare un host; poiche’ al campo host
vanno assegnati un certo numero di bit, un bit non e’ sufficiente, quindi ne
servono almeno due, che forniscono due indirizzi per host


la rete 131.154.20.0 255.255.255.0 si indica anche con la notazione
131.154.20.0/24: i primi 24 bit costituiscono l’indirizzo di rete
la subnet 193.206.144.64 255.255.255.192 si indica con 193.206.144.64/26 (26
bit per l’indirizzo di rete)
questa tecnica e’ utilizzata per assegnare indirizzi di rete alle connessioni puntopunto tra i router, risparmiando il maggior numero di indirizzi possibile
La definizione delle sottoreti non coinvolge la authority internazionale (o
quella regionale) per gli indirizzi

le sottoreti fanno tutte parte dell’insieme degli indirizzi gia’ assegnati
Accorpamento di reti

L’indirizzamento a classi ha anche portato al problema opposto:



una classe C prevede un massimo di 254 indirizzi (lo 0 ed il 255 non sono
utilizzabili)
spesso aziende o universita’ hanno aumentato il numero di host connessi
in rete fino ad eccedere questo limite
Utilizzando la tecnica della maschera e’ possibile accorpare classi C
con indirizzi contigui opportuni



ad esempio, la sezione INFN di Genova ha avuto assegnate 4 classi C,
dalla 193.206.144.0 alla 193.206.147.0
il valore binario di queste reti e’
11000001 11001110 10010000 00000000
11000001 11001110 10010001 00000000
11000001 11001110 10010010 00000000
11000001 11001110 10010011 00000000
utilizzando una maschera a 22 bit e’ possibile accorpare queste quattro
reti in una unica rete IP indicata come 193.206.144.0/22 (o con
maschera 255.255.252.0)
Classless InterDomain Routing




Per gestire questo nuovo schema di
indirizzamento il modo in cui il router gestisce le
tabelle di routing deve cambiare
E’ stato introdotto un nuovo standard che
specifica queste modifiche (RFC 1519), col nome
di CIDR
Secondo questo standard ogni record della
tabella di routing specifica l’indirizzo della
destinazione con la sua maschera, in modo da
superare la definizione delle classi
Non esiste piu’ una vera distinzione tra una rete
100.1.2.0/24 ed una rete 200.201.20.0/24
Classless InterDomain Routing

Questa soluzione comporta pero’ un problema potenziale grave:



l’aumento considerevole delle reti indirizzabili puo’ far esplodere la
dimensione delle tabelle di routing, che virtualmente potrebbero dover
contenere milioni di record
Per ovviare a cio’ gli indirizzi vengono assegnati per quanto possibile
a blocchi alle varie organizzazioni regionali e locali
Queste organizzazioni devono annunciare verso l’esterno della loro
area solo una rete, che costituisce l’aggregato delle sottoreti al suo
interno
Instradamento con CIDR


I pacchetti IP non sanno nulla delle maschere: come instradare?
Supponiamo di dover instradare un pacchetto indirizzato a
130.251.61.129, e di avere nelle tabelle di routing:





130.0.0.0/8 verso l’interfaccia 1
130.251.0.0/16 verso l’interfaccia 2
130.251.61.0/24 verso l’interfaccia 3
130.251.61.64/26 verso l’interfaccia 4
La scelta viene sempre fatta verso la rete (adatta) che ha la
maschera piu’ lunga

nell’esempio si ha:






1000010
1000010
1000010
1000010
1000010
1111011 0011101 10000001
1111011
1111011 0011101
1111011 0011101 01
(indirizzo di destinazione)
(130.0.0.0/8)
(130.251.0.0/16)
(130.251.61.0/24)
(130.251.61.64/26)
In questo caso l’indirizzo non fa parte della rete relativa alla quarta riga,
ma puo’ far parte delle reti relative alle altre righe; tra queste si
scegliera’ l’interfaccia 3 perche’ e’ quella verso la rete adatta con la
maschera piu’ lunga
Pacchetto IP


Il pacchetto IP e’ costituito da un header di lunghezza
fissa 20 byte, piu’ una parte opzionale (fino a 40 byte)
Il campo version contiene il numero identificativo della
versione di IP (per IPv4 e’ 4, per IPv6 e’ 6)

questo permette transizioni lente in caso di evoluzione del
protocollo
Pacchetto IP (cont.)



Il campo IHL (4 bit) contiene la lunghezza dell’header in
parole di 32 bit (quindi un massimo di 60 byte
complessivi)
Il campo type-of-service serve ad indicare diverse classi
di servizio (precedenza del pacchetto, basso ritardo, etc.),
di solito ignorato dai router
total-length indica la lunghezza totale del pacchetto in
byte, che ha un valore massimo di 65535
Pacchetto IP: frammentazione

I campi identification, DF, MF e fragment-offset sono dedicati alla
frammentazione


ogni datagramma IP inviato da una sorgente ha un numero identificativo
differente dagli altri, riportato nel campo identification
se un datagramma viene frammentato, ogni frammento contiene nel
campo identification lo stesso valore, mentre nel campo fragment-offset
viene indicata la posizione del primo byte del frammento rispetto all’inizio
del datagramma, espressa in multipli di 8 byte



in base all’identification la destinazione puo’ raggruppare i diversi frammenti,
in base a total-length ed agli offset, la destinazione puo’ valutare se si fossero
persi frammenti del datagramma
il bit MF (More Fragments) viene impostato a 0 nell’ultimo frammento (o
nel datagramma se non viene frammentato), ad 1 altrimenti
il bit DF (Don’t Fragment) viene impostato ad 1 se il datagramma non
deve essere frammentato
Pacchetto IP (cont.)




Il campo time-to-live e’ un contatore che viene decrementato via via che il
pacchetto viaggia in rete
Il pacchetto viene buttato via quando il time-to-live arriva a zero
Normalmente dovrebbe essere decrementato ad ogni secondo o ad ogni hop,
ma talvolta i router non tengono conto del tempo
Il campo protocol indica il protocollo di livello superiore a cui sono destinati i
dati del pacchetto


Il campo checksum contiene un codice CRC a 16 bit relativo al solo header



vi sono diversi protocolli che possono fare uso di IP, come TCP (6) ed UDP (17),
ma anche ICMP (1) ed altri
viene controllato solo l’header per motivi di performance, secondo la logica di
TCP/IP che delega il controllo della affidabilita’ ai livelli superiori
il campo checksum viene ricalcolato ad ogni hop, in quanto alcuni dei campi
precedenti (come quelli relativi alla frammentazione o time-to-live) cambiano
durante il trasferimento del pacchetto
Source e destination address contengono gli indirizzi a 32 bit del sorgente e
del destinatario del pacchetto
Pacchetto IP (cont.)

Le opzioni aggiuntive dell’header vengono utilizzate, se
necessario, per svariati motivi, tra cui




security options: classifica il pacchetto da “non classificato” a “top
secret”; router che onorano questi campi possono essere indotti a
instradamenti differenti in base a questa opzione
record route: istruisce i router a registrare il loro indirizzo nei
successivi campi opzionali via via che il pacchetto transita in rete
(usato per motivi di debug del routing)
loose o strict source routing: istruisce i router a seguire un
instradamento specifico definito dalla sorgente (che riempie i
campi opzionali con gli indirizzi dei router che il pacchetto deve
attraversare)
Sono disponibili 40 byte per queste opzioni

ogni campo inizia con un ottetto che definisce il tipo di
estensione, seguito eventualmente da uno o piu’ ottetti
contenenti le informazioni relative (indirizzi IP, timestamp, …)
Instradamento locale: ARP

Per instradare un pacchetto IP verso una destinazione
appartenente alla stessa rete del mittente viene
incapsulato il pacchetto IP in un pacchetto dello strato di
data link sottostante (ad esempio: Ethernet)


Il problema da risolvere e’ come fare a sapere a quale
indirizzo di data link (Ethernet) inviare il pacchetto



un host conosce il proprio indirizzo IP e la propria rete di
appartenenza: analizzando l’indirizzo di destinazione di un
pacchetto l’host puo’ capire se il destinatario appartiene alla sua
stessa rete, e quindi operare il delivery locale
l’host conosce solo l’indirizzo IP del destinatario
serve quindi una mappa che associ un indirizzo IP della stessa
rete al suo indirizzo di data link
Per risolvere questo problema IP si appoggia ad un
protocollo chiamato ARP (Adderss Resoluzion Protocol)
ARP

Quando un host con indirizzo IP1 ed indirizzo hardware HW1 deve
inviare un pacchetto IP ad un host con indirizzo IP2 sulla stessa rete,
ARP si procura l’informazione necessaria in questo modo:





viene costruito un pacchetto di data link (ARP request) contenente IP1,
HW1, ed IP2, con un campo dedicato ad HW2 riempito con tutti 0
questo pacchetto viene inviato broadcast sulla rete locale
tutti ricevono il pacchetto ARP, ma solo l’host che ha l’indirizzo IP2 lo
processa (gli altri lo scartano)
l’host costruisce un pacchetto di data link (ARP response) contenente
l’informazione mancante, e lo invia direttamente ad HW1 (non
broadcast)
ARP sul primo host acquisisce quindi l’informazione dell’indirizzo Ethernet
dell’host remoto, e lo comunica ad IP, che puo’ cosi’ incapsulare i propri
pacchetti IP in frame del protocollo di data link indirizzati alla
destinazione corretta
ARP cache




Per migliorare le prestazioni, ARP puo’ gestire sull’host locale una cache in
memoria
Ogni volta che viene appresa una nuova associazione IPaddress-Hwaddress,
viene memorizzata nella cache
Quando ARP deve individuare un indirizzo HW, prima controlla nella cache:
se l’informazione e’ presente viene utilizzata senza inviare pacchetti sulla rete
Le entry nella cache di ARP hanno un tempo di scadenza, per evitare che
eventi quali sostituzione di schede di rete o reindirizzamento degli host
possano rendere impossibile la comunicazione


alla scadenza del tempo di validita’ l’entry viene rimossa dalla cache, ed una
successiva richiesta per quell’indirizzo provochera’ una nuova emissione di ARP
request sulla LAN
Alcuni sistemi permettono di definire nella cache di ARP delle entry manuali
prive di scadenza



talvolta necessarie, qualora l’host di destinazione non supporti correttamente il
protocollo ARP
questa tecnica puo’ essere utilizzata anche per motivi di efficienza
in ogni caso difficile da mantenere aggiornata la cache delle macchine: meglio
evitare
ICMP




Internet Control Message Protocol e’ il protocollo utilizzato per
monitorare il funzionamento del livello di rete
Esistono una dozzina di messaggi ICMP destinati ad avvisare i router
o gli host di qualche evento specifico della rete
ICMP non ha lo scopo di rendere IP affidabile, ma di notificare allo
strato di rete problemi non transienti nella comunicazione a livello 3
in modo da attivare quelle reazioni dinamiche al malfunzionamento
della rete necessarie, ad esempio, a ridisegnare dinamicamente la
topologia utilizzata per l’instradamento
ICMP utilizza IP come protocollo di trasporto per instradare i propri
messaggi

in questo senso c’e’ una sorta di miscuglio degli strati in IP:


ICMP e’ una parte del protocollo di rete, in quanto ha funzioni di
(auto)controllo dello strato di rete e non fornisce servizi agli strati superiori
tuttavia ICMP utilizza IP come sottoprotocollo per trasmettere le sue
informazioni tra gli host/router interessati
Messaggi ICMP

I principali messaggi ICMP disponibilio sono:





destinazione irraggiungibile: questo messaggio e’ inviato dai
router agli host sorgenti di un pacchetto IP per notificare che la
destinazione non e’ raggiungibile
time exceeded: viene notificato alla sorgente di un pacchetto che
il pacchetto ha raggiunto la scadenza del time-to-live
problema di parametri: un router annuncia al router che gli ha
inviato un pacchetto che i parametri dell’header sono inconsistenti
source quench: utilizzato (in passato) per rallentare la sorgente
che trasmette troppo velocemente in caso di congestione;
l’evoluzione del TCP/IP ha spostato pero’ il controllo della
congestione sul livello di trasporto
redirect (reindirizzamento): il router avvisa l’host sorgente che ha
inviato il pacchetto iniziale secondo un instradamento errato (ad
esempio: se ci sono due router sulla LAN, ed un pacchetto viene
inviato da un host verso il router sbagliato)
Messaggi ICMP (cont.)

echo ed echo reply: utilizzati per verificare la
raggiungibilita’ di un host:



quando un host riceve un ICMP ECHO da una
sorgente, deve immediatamente rispondere con un
ICMP ECHO REPLY
molte utility fanno uso di questo messaggio ICMP
(ad esempio ping)
timestamp e timestamp response: analoghi ai
messaggi ECHO/ECHO REPLY, inseriscono nei
pacchetti informazioni di tempo per valutare il
ritardo della connessione
Sistemi e Tecnologie della
Comunicazione
Lezione 21: network layer: protocolli di routing in IP, IPV6
Routing in TCP/IP




Una rete TCP/IP (come Internet) e’ costituita da
un insieme di Autonomous Systems interconnessi
Ogni AS adotta un algoritmo di routing
indipendente da quello adottato negli altri AS
Gli algoritmi di routing degli AS sono indicati
generalmente col nome di IGP (Interior Gateway
Protocol)
La comunicazione tra gli AS e’ governata da un
algoritmo di routing differente, indipendente dai
protocoli IGP utilizzati internamente, indicato con
il nome generico di EGP (Exterior Gateway
Protocol)
Protocolli IGP: RIP





Il primo protocollo di routing interno utilizzato in Internet
e’ il RIP (Routing Information Protocol), ereditato da
Arpanet
RIP e’ un protocollo basato sull’algoritmo distance vector
Deve la sua diffusione al fatto che una sua
implementazione (routed) era compresa nella Berkeley
Software Distribution di Unix che supportava il TCP/IP
Adatto a reti di dimensioni limitate, ha iniziato a mostrare
i suoi limiti gia’ alla fine degli anni ’70
Attualmente ancora utilizzato come protocollo di routing
in qualche piccola rete privata
RIP (cont.)

Caratteristiche del modello distance vector utilizzate da
RIP:



Usa numero degli hop come metrica per il costo dei link: tutte le
linee hanno costo 1
Il costo massimo e’ fissato a 15, quindi impone il suo uso su reti
di estensione limitata (diametro inferiore a 15 hop)
Le tabelle di routing vengono scambiate tra router
adiacenti ogni 30s via un messaggio di replica del RIP
(RIP response message) o avviso di RIP (RIP
advertisment)

Questo messaggio contiene voci della tabella del mittente per un
massimo di 25 reti di destinazione dell’AS
RIP (cont.)

Qualora un router non ricevesse informazioni da un suo
vicino per 180s, quest’ultimo viene etichettato come
irraggiungibile



I router possono inviare anche messaggi di richiesta del
costo dei vicini verso una destinazione usando messaggi
di richiesta del RIP
I messaggi di richiesta e di replica vengono inviati usando
come trasporto l’UDP (protocollo di trasporto del TCP/IP
connection less inaffidabile)


Quando questo si verifica, modifica la sua tabella di routing e
propaga l’informazione a tutti i suoi vicini ancora raggiungibili
I pacchetti UDP vengono trasportati in un datagram IP standard
RIP di fatto usa un protocollo del livello di trasporto
(UDP) su un protocollo di rete (IP) per realizzare le
funzioni di instradamento che sono proprie del livello di
rete
Protocolli IGP: OSPF

Nel 1979 Internet e’ passata ad un protocollo di
tipo link state




ciascun router utilizza il flooding per propagare lo stato
delle sue connessioni agli altri router della rete
ciascun router conosce la topologia completa della rete
Alla fine del 1988 e’ stato sviluppato un
successore chiamato OSPF (Open Short Path
First), definito nell’RFC 2328
OSPF e’ oggi il piu’ diffuso protocollo IGP
utilizzato in Internet
Caratteristiche di OSPF

OSPF e’ stato progettato cercando di soddisfare diversi
requisiti:




nessun vincolo di brevetto (O = Open)
supporto di diverse metriche per la distanza (distanza fisica, hop,
ritardo, costo della linea, …)
algoritmo capace di reagire dinamicamente e rapidamente ad
eventi che modificano la topologia (link state)
instradamento basato sul tipo di servizio (sfruttando i campi
esistenti nell’header di IP, ad esempio)





questo e’ stato incluso in OSPF, ma tutti (implementazioni ed
applicativi) hanno continuato ad ignorare questa possibilita’
capacita’ di bilanciare il carico su diversi cammini
supporto per sistemi gerarchici (quindi routing gerarchico anche
all’interno dello stesso AS)
implementazione di sicurezza
supporto per il tunneling
Connessioni di OSPF

OSPF gestisce tre tipi di connessione:


linea punto-punto tra router
rete locale multiaccesso


rete geografica multiaccesso



ogni linea fisica e’ costituita da due archi, uno per ogni verso
una rete multiaccesso e’ considerata come un punto del grafo, connessa
a ciascun router della rete da una coppia di archi
OSPF assegna un costo ad ogni arco, e determina il cammino piu’
breve in base al costo complessivo del tragitto


rete geografica connessa al resto dell’AS da piu’ di un router
OSPF considera la rete come un grafo con i router come punti, e le
linee come archi


una rete locale dotata di piu’ accessi, quindi di piu’ router
i cammini nei due versi di una singola connessione possono avere costi
differenti
I nodi di rete non hanno peso in OSPF, ed la loro connessione al
router viene valutata a costo 0
Rete OSPF e schematizzazione
OSPF: le aree


Al crescere delle dimensioni anche alcuni AS sono
diventati troppo complessi per essere gestiti in
modo non gerarchico
OSPF permette di dividere un AS in piu’ aree



ogni area e’ una rete o un insieme di reti direttamente
connesse
le aree non hanno componenti sovrapposti
in ciascun AS deve esistere un’area dorsale (l’area 0) a
cui sono collegate tutte le altre aree dell’AS

e’ possibile passare da un’area qualunque ad un’altra area
dell’AS attraverso la dorsale, che le connette tutte
OSPF: tipi di router

OSPF definisce quattro tipi di router





router interni (internal router): router interni ad un’area
router di confine (border router): router che collega due o piu’
aree (una e’ sempre l’area della dorsale)
router di dorsale (backbone router): router interno della dorsale
router di confine dell’AS (boundary router): router che collega l’AS
ad uno o piu’ AS differenti
Naturalmente le funzioni possono sovrapporsi



un router di confine e’ anche router interno
un boundary router e’ anche un backbone router
un backbone router non connesso ad altre aree o ad altri AS e’ un
router interno (per l’area 0)
OSPF: costruzione delle tabelle


Secondo il protocollo link state, ogni router di ogni area
conosce la topologia dell’area e puo’ effettuare routing
interno
I router di backbone accettano le informazioni anche dai
router di confine delle altre aree


in questo modo ogni router di backbone sa a quale router di
confine di un’area inviare i pacchetti destinati a quella area
Le informazioni delle adiacenze dei router di confine verso
l’area di backbone sono propagate dentro l’area

in questo modo ogni router interno sa a quale router di confine
della propria area inviare un pacchetto destinato ad un’altra area
Schema rete OSPF
BGP (protocollo di tipo EGP)


Gli AS sono generalmente gestiti da una stessa
organizzazione, e spesso sono racchiusi entro i confini
nazionali
La connessione tra diversi AS deve essere regolata da un
protocollo che tenga conto di parametri aggiuntivi, che
OSPF o altri protocolli IGP non possono considerare



ad esempio, un AS puo’ voler accettare pacchetti provenienti da
un altro AS solo se destinati al suo interno, ma non come transito
un AS potrebbe accettare di fare da transito per alcuni (che
magari hanno pagato per il servizio) e non per altri
Per soddisfare queste esigenze e’ stato realizzato il
protocollo BGP (Border Gateway Protocol)
Caratteristiche del BGP




Il BGP e’ progettato per poter tenere conto di vincoli indipententi dalla logica
del cammino piu’ breve
BGP considera la rete (costituita dai boundary router) come un grafico a
maglia, dove gli AS sono punti e le connessioni tra AS linee
I costi delle linee ed eventuali vincoli vengono generalmente configurati
manualmente sui router
BGP si basa sulla logica del distance vector:


La sostanziale differenza rispetto al distance vector e’ che le informazioni
scambiate contengono anche i cammini completi verso le destinazioni (per
questo viene definito come algoritmo path vector)



ogni router scambia con i vicini la propria tabella di routing
in conseguenza di cio’ un router sa che, scegliendo una certa strada, attraversera’
determinati AS
in questo modo possono essere applicati i vincoli sul routing
Va osservato che la conoscenza dei percorsi completi permette di risolvere il
problema del conto all’infinito, in quanto ogni router e’ in grado di capire se
un percorso scelto dal vicino passa per se stesso, e quindi scartarlo
Messaggi BGP



In BGP si definiscono peer (pari) i nodi adiacenti nel grafo
Le informazioni BGP vengono propagate nella rete attraverso lo
scambio di messaggi BGP tra peer
Sono definiti 4 tipi di messaggio:




OPEN: i peer comunicano usando il protocollo di trasporto TCP ( a
differenza del RIP che utilizza UDP). In questo modo un gateway
stabilisce un primo contatto con un peer per autenticarsi e fornire
informazioni sul timer
KEEPALIVE: e’ il messaggio che il peer ricevente l’OPEN spedisce in
risposta al peer mittente, ma viene usato anche per far sapere a un peer
che il sender e’ attivo anche se non ha informazioni nuove da inviare
UPDATE: serve per aggiornare informazioni di nuovi percorsi ma anche
di revocare informazioni gia’ inviate ormai obsolete
NOTIFICATION: usato per informare un peer della presenza di un
errore trasmesso in precedenza o per chiudere una sessione BGP
IPv6 (versione 6)

All’inizio degli anni ’90 l’IETF inizio’ la ricerca di un
successore di IPv4


Basandosi sul trend dell’epoca si affacciavano previsioni di
esaurimento degli indirizzi tra il 2008 e il 2018



Motivazione primaria: la necessita’ di ampliare lo spazio di indirizzi che
potesse soddisfare tutte le nuove esigenze di interconnessione di nuovi
elaboratori
Nel 1996 l’American Registry for Internet Numbers dichiarava esaurita la
classe A, risultava assegnato il 62% dello spazio indirizzi di classe B e il
37% di quelli della classe C
Sebbene questo consentisse comunque ancora del tempo prima
dell’esaurimento totale, lo sforzo necessario e il tempo previsto per
trovare un’alternativa stimolo’ l’avvio dello studio e progettazione di un
nuovo protocollo
Fu sviluppato un protocollo che i progettisti modellarono
sull’IPv4 esistente, ampliando e migliorando alcune sue
caratteristiche, chiamato IPv6 (o IPng: next generation)
Obiettivi di IPv6







Indirizzamento illimitato
Semplicita’ del protocollo per ridurre i tempi di
elaborazione nei router
Sicurezza
Supporto per pacchetti di grosse dimensioni
Gestione del tipo di servizio
Prevedere evoluzioni future del protocollo
Supportare i protocolli di livello superiore che si
appoggiano ad IPv4
Indirizzi IPv6


IPv6 prevede l’utilizzo di indirizzi a 16 byte (128 bit)
La notazione utilizzata e’ una sequenza di otto gruppi di
quattro cifre esadecimali, separate da “:”
8000:0000:0000:0000:0123:4567:89AB:CDEF

Per rappresentare piu’ comodamente gli indirizzi si
possono utilizzare ottimizzazioni:


si possono omettere gli zeri ad inizio di un gruppo
(:0123: diventa :123:)
si possono omettere gruppi di zeri consecutivi, rappresentati da
una sequenza “::”
8000::123:4567:89AB:CDEF

Gli indirizzi IPv4 sono rappresentati con 6 gruppi di zeri, e
due gruppi che rappresentano l’indirizzo IPv4
(rappresentabili anche in notazione decimale):

::89AB:CDEF oppure ::137.171.205.239
Indirizzi IPv6 (cont.)



Come per IPv4 l’indirizzo contiene una
informazione di rete ed una informazione di host
La notazione per definire quale parte dell’indirizzo
e’ dedicato alla rete e’ quella di specificare la
lunghezza in bit dell’indirizzo di rete dopo un “/”
in coda all’indirizzo (come in IPv4)
Anche in IPv6 la “rete” e identificata dall’indirizzo
con tutti “0” nel campo di indirizzo dell’host
Pacchetto IPv6

Il pacchetto IPv6 e’ costituito da un header di lunghezza
fissa (40 byte) ed un campo dati; il campo dati puo’
opzionalmente contenere altri header prima dei dati
veri e propri
Header di IPv6


Il campo version non cambia significato, ed assume il
valore 6
Il campo traffic class serve ad identificare i pacchetti che
necessitano di un instradamento particolare



essenzialmente introdotto per supportare il traffico prioritario, o il
traffico di tipo voce o video stream che richiede ritardi costanti
un campo simile esiste nell’header di IPv4, inutilizzato
Il campo flow label e’ stato introdotto per identificare in
qualche modo i pacchetti appartenenti allo stesso flusso
trasmissivo



sempre al fine di supportare meglio il traffico voce/video
e’ un tentativo di identificare il flusso di dati di una “connessione”
in un protocollo connection less
attualmente in fase sperimentale
Header di IPv6 (cont.)

Il campo payload length indica la lunghezza del pacchetto in byte,
esclusi i 40 byte fissi dell’header


Il campo next header indica



il protocollo del livello di trasporto a cui sono destinati i dati (TCP o UDP)
se non c’e’ intestazione estesa
il tipo di intestazione estesa successiva utilizzata (se c’e’): in questo caso
sara’ il corrispondente campo dell’header dell’ultima intestazione estesa a
specificare il protocollo di trasporto di destinazione
Il campo hop limit e’ equivalente al campo time to live dell’header
IPv4, ma ora ha l’esclusivo significato di conto degli hop



la lunghezza massima del pacchetto e’ di 65536 bytes (+ 40)
viene decrementato ad ogni hop; raggiunto lo zero il pacchetto viene
scartato
ha la stessa funzione del corrispondente campo IPv4: evitare che un
pacchetto rimanga troppo a lungo in rete in caso di problemi di routing
Gli ultimi campi sono gli indirizzi sorgente e destinatario del
pacchetto
Cosa non c’e’ piu’

Il campo IHL (Internet Header Length) che rappresenta la
lunghezza dell’header



non e’ piu’ necessario, perche’ la lunghezza dell’header e’ fissata
a 40
Il campo protocol e’ sostituito dal campo next header
I campi riguardanti la frammentazione




IPv6 non prevede che i router eseguano frammentazione, perche’
fa perdere tempo
i nodi IPv6 tentano di identificare la dimensione corretta dei
pacchetti da scambiarsi in modo dinamico
non basta: se il router non puo’ inoltrare un pacchetto, invia un
messaggio (ICMP) indietro per notificare il fatto e butta il
pacchetto
di fatto risulta piu’ efficiente fare in modo che l’host di partenza
invii i pacchetti di dimensione corretta che non frammentare nei
router
Cosa non c’e’ piu’ (cont.)

Il campo checksum



IPv6 non utilizza checksum sui suoi pacchetti,
per motivi di efficienza
pur nel caso ridotto di un checksum dedicato
all’header, il controllo della correttezza risulta
un processo molto costoso per i router
essendoci meccanismi analoghi a livello di data
link ed a livello di trasporto, IPv6 ne fa a meno
Intestazione estesa

I progettisti di IPv6 hanno previsto la possibilita’
di utilizzare header aggiuntivi (extension header)


il campo next header dell’header fisso identifica con un
codice opportuno il tipo di extension header che segue
Ciascun extension header inizia con 2 byte:


next header: il tipo di estension header che segue il
corrente (o il protocollo di destinazione se il corrente e’
l’ultimo header)
extension header length: la lunghezza in byte
dell’extension header corrente (i diversi tipi hanno
lunghezze differenti, ed alcuni tipi hanno lunghezza
variabile)
seguita dai dati specifici dell’hestension header
Tipi di estension header

Sono stati definiti 6 tipi di estension header






opzioni hop-by-hop: sono opzioni che tutti i router devono
esaminare; al momento e’ definito un solo tipo di opzione (jumbo
datagram) che serve per poter inviare pacchetti di dimensione
superiore a 64 KB
opzioni di destinazione: introdotte per essere interpretate
dall’host di destinazione, attualmente non ancora definite
(fornisce flessibilita’ al protocollo per utilizzi futuri)
opzioni di routing: per implementare source-routing, cioe’
instradamento definito dalla sorgente (simile al loose source
routing di IPv4)
opzioni di frammentazione: da utilizzare se “la sorgente” deve
frammentare (i router non frammentano); gestita come in IPv4
autenticazione: finalizzato a fornire un meccanismo per accertare
l’identita’ del mittente del pacchetto
crittazione: finalizzato a proteggere i dati tramite codifiche di
cifratura
Transizione da IPv4 a IPv6


Problema che deve essere affrontato perche’ mentre
l’IPv6 puo’ essere costruito compatibile con IPv4 nel
senso che puo’ spedire, instradare e ricevere datagram
IPv4, IPv4 non e’ in grado di gestire datagram IPv6
Possibile opzione



Definire giorno e ora in cui tutte le macchine si
aggiornano da IPv4 a IPv6
Questa soluzione e’ stata gia’ provata in passato per altre
transizioni quando la rete era ancora agli esordi e
provoco’ non pochi problemi
Diventa ancor piu’ impensabile oggi che i nodi e i router
convolti sono decine (centinaia?) di milioni
Opzione: nodi dual stack



Questa opzione prevede l’introduzione di nodi
IPv6 compatibili, in cui i nodi IPv6 dispongono
pure di una completa implementazione IPv4
I nodi IPv6/IPv4 (RFC 1933) hanno entrambi gli
indirizzi e devono essere in grado di determinare
se il nodo con cui devono parlare e’ un nodo IPv6
compatibile o solo IPv4
Questo puo’ comunque portare come risultato
che 2 nodi IPv6 compatibili si scambino
comunque tra loro datagram IPv4
Opzione tunneling





Un alternativa al dual stack definita nell’RFC 1933
prevede il tunneling
Il tunneling permette di risolvere il problema evidenziato
nell’approccio dual stack
Viene definito un tunnel tra nodi IPv6 che puo’ passare
attraverso un percorso IPv4
Verranno incapsulati i datagram IPv6 nei datagram IPv4
Il nodo destinazione del tunnel IPv6 determina che il
datagram IPv4 contiene un datagram IPv6, lo estrae e lo
inoltra come se l’avesse ricevuto direttamente dal nodo
mittente dall’altra estremita’ del tunnel
Sistemi e Tecnologie della
Comunicazione
Lezione 22: transport layer: introduzione, funzionalita’
Funzione del livello di trasporto

Il livello di trasporto ha lo scopo di fornire allo
strato superiore un servizio di trasferimento dei
dati end to end, mascherando completamente al
livello superiore il fatto che tra i due host
terminali esista una rete di qualsiasi tipo,
topologia, tecnologia e complessita’



per OSI lo strato superiore e’ il livello di sessione
per TCP/IP lo strato superiore e’ il livello di
applicazione
Per assolvere le sue funzioni lo strato di trasporto
utilizza i servizi dello strato di rete
Necessita’ dello strato di trasporto

Perche’ introdurre un nuovo strato?





lo strato di rete opera su tutte le macchine attraversate dai dati,
indipendentemente
in mancanza di uno strato che operi esclusivamente sui nodi
terminali della comunicazione l’utente della rete non puo’ tenere
sotto controllo cosa accade ai dati una volta che lasciano l’host
sorgente
lo strato di trasporto rende trasparente allo strato superiore la
complessita’ (l’esistenza!) della sottorete
La presenza di uno strato intermedio tra applicazione e
rete puo’ offrire un meccanismo per rendere affidabile
una comunicazione su sottoreti inaffidabili
Inoltre offre al suo utente una interfaccia indipendente
dalle diverse tecnologtie dello strato di rete
Servizi forniti allo strato superiore

Lo strato di trasporto offre



servizio affidabile orientato alla connessione
servizio inaffidabile non orientato alla connessione
In modo analogo ai servizi equivalenti dello strato di rete:

il servizio orientato alla connessione realizza un trasferimento dei
dati affidabile (controllo della integrita’, della completezza,
dell’ordine) e permette di gestire controllo di flusso; i dati
vengono trasferiti con un procedimento in tre fasi




si stabilisce la connessione
si inviano i dati attraverso la connessione
si chiude la connessione
il servizio non orientato alla connessione fornisce un meccanismo
di trasferimento dati “best-effort”: ogni blocco di dati viene
inviato e ci si dimentica di lui; se arrivano, bene, se no
l’applicazione dovra’ farsi carico di operare azioni correttive (se
necessarie)
Primitive di servizio


Le primitive di servizio costituiscono l’interfaccia che lo strato di
trasporto rende disponibile allo strato superiore
Per il servizio connection oriented si possono elencare in






LISTEN: lo strato superiore notifica al trasporto che e’ pronto a ricevere
una connessione
CONNECT: lo strato superiore chiede allo strato di trasporto di effettuare
una connessione (si traduce nell’invio da parte del trasporto di un
messaggio “Connection Request” al destinatario)
SEND: lo strato superiore chiede al trasporto di inviare dati
RECEIVE: lo strato superiore chiede allo strato di trasporto di
trasmettergli i dati in arrivo
DISCONNECT: lo strato superiore chiede di chiudere la connessione (si
traduce nell’invio da parte dello strato di trasporto di un messaggio
“Disconnection Request”)
Per il servizio connection less, le due primitive SEND e RECEIVE
possono essere sufficienti
Protocollo di trasporto


Il livello di trasporto realizza le sue funzioni comunicando
con il processo paritario secondo un protocollo definito
Le informazioni vengono scambiate tramite la
trasmissione di blocchi di dati



Il protocollo si dovra’ occupare dei meccanismi per gestire
i diversi eventi (ove necessari):






in OSI si chiamano TPDU (Transport Protocol Data Unit)
in TCP/IP si chiamano segmenti (ma spesso anche pacchetti)
come si stabilisce la connessione
come si chiude una connessione
controllo di flusso
controllo degli errori, ritrasmissioni e acknowledge
ordinamento in sequenza dei dati
Le problematiche sono simili a quelle del livello di data
link
Differenze rispetto al data link

Il fatto che a livello di trasporto i due terminali
siano separati da una rete provoca complicazioni



e’ necessario un indirizzamento per gestire diverse
applicazioni utenti del servizio di trasporto
a livello 2 un pacchetto o arriva o non arriva, mentre a
livello 4 la sottorete provoca ritardi e riapparizione di
pacchetti che si credevano perduti e quindi ritrasmessi,
con conseguente duplicazione
il numero delle connessioni cui il livello di trasporto
deve far fronte e’ molto piu’ elevato che nel caso del
data link layer: non sara’ possibile dedicare a tutti i
buffer necessari alle comunicazioni
Ritardo dei pacchetti e numeri di sequenza



Come visto a livello di data link, la gestione delle funzioni di
acknowledge e ritrasmissione prevede di utilizzare numeri di
sequenza sulle TPDU inviate in una connessione
Il fatto che la rete possa ritardare il recapito dei pacchetti comporta
delle necessita’ sulla scelta dei numeri di sequenza
Vediamo un esempio che mostra come partire sempre da 0 puo’
comportare dei problemi:





si stabilisce una connessione e si iniziano ad inviare TPDU con seq = 0
dopo 10 secondi la TPDU con seq = X si ferma in un router
congestionato; viene reinviata dopo il tempo di timeout e la connessione
si chiude
si apre subito un’altra connessione, nuovamente con seq = 0
a questo punto la TPDU originaria si sblocca ed arriva a destinazione
prima che una TPDU con seq = X della nuova connessione venga inviata
la vecchia TPDU verra’ accettata e si ha un errore
Ritardo dei pacchetti e numeri di sequenza

Per ovviare a questo problema, si devono prendere delle
precauzioni:

lo strato di rete deve essere in grado di invalidare pacchetti
troppo vecchi


la assegnazione dei numeri di sequenza iniziali deve essere fatta
in modo da essere sicuri che non esistano sulla rete TPDU con
numerazione valida


in questo modo un numero di sequenza gia’ utilizzato puo’ essere
riutilizzabile dopo un tempo pari o superiore al tempo di vita
massimo dei pacchetti
solitamente i numeri di sequenza iniziali di una connessione vengono
scelti (da chi inizia la connessione) con un valore legato ad un
orologio
una scelta opportuna rende impossibile avere ritardati con numeri
di sequenza validi che possano essere interpretati in modo errato
Stabilire la connessione


Il problema della inaffidabilita’ della sottorete e dei
duplicati ritardati si presenta anche nella fase di
inizializzazione della connessione
Per risolverli e’ stato sviluppato un meccanismo detto
handshake a 3 vie:



il client invia una TPDU di Connection Request in cui propone un
certo valore iniziale di sequenza
il server risponde con un acknowledge che riporta il valore iniziale
di sequenza proposto dal client, ed il valore di sequenza proposto
dal server per il traffico in senso inverso
il client invia una terza TPDU che riporta l’acknowledge per il
numero di sequenza iniziale proposto dal server, e riporta
nuovamente il proprio numero di sequenza iniziale
(eventualmente questa TPDU puo’ anche trasportare i primi dati)
Handshake a tre vie

Il meccanismo visto risponde positivamente ai problemi di duplicati
sulla rete


sempre nella ipotesi che non possano esistere contemporaneamente
sulla rete TPDU con lo stesso numero di sequenza (vedi slide precedenti)
In figura a sinistra la procedura normale, a destra cosa accade se
arriva una Connection Request ritardata relativa ad una vecchia
connessione
Handshake a tre vie (cont.)


In figura e’ mostrato cosa accade se arriva una
Connection Request ritardata relativa ad una
vecchia connessione, seguita dalla TPDU di
acknowledge finale, anch’essa ritardata
Poiche’ host 2 ha
proposto come seq il
valore y e riceve
l’acknowledge per z si
accorge che deve
scartare la TPDU
Rilascio della connessione




Anche qui ci sono problemi da affrontare
La connessione puo’ essere rilasciata in modo asimmetrico o
simmetrico
Nel modo asimmetrico la
disconnessione viene decisa da
uno dei due, che invia una TPDU
Disconnect Request e chiude
Questo puo’ comportare la
perdita di dati, come mostrato in
figura: dopo la disconnessione
l’host 2 non accetta piu’ i dati in
ingresso
Rilascio simmetrico


Il rilascio simmetrico richiede che le parti siano entrambe
consapevoli e daccordo
Sorge il problema (insolubile) di essere entrambi sicuri
che l’altro sia daccordo (problema dei due eserciti)
Rilascio simmetrico (cont.)

La soluzione adottata usualmente e’ un handshake a tre
vie con timeout:





il primo invia una TPDU Disconnect Request, ma lascia la
connessione aperta in ricezione ed avvia un timer
il secondo invia in risposta una TPDU Disconnect Request
lasciando aperta la connessione, ed avvia un timer
il primo risponde alla DR ricevuta con una TPDU di ACK
e chiude la connessione
in caso di perdita delle TPDU i timeout provocheranno, a seconda
dei casi, una ritrasmissione o il rilascio definitivo della
connessione anche in assenza di riscontro
Questa soluzione garantisce quasi sempre che nessun
dato venga perduto
Rilascio simmetrico (cont.)
Controllo di flusso e buffering



Come visto per il data link layer, il controllo di flusso puo’ essere
gestito tramite un protocollo sliding window
Questo protocollo richiede che vengano dedicati buffer in
trasmissione per contenere le TPDU inviate e non ancora riscontrate,
e buffer in ricezione per contenere dati ricevuti in ordine non corretto
Tuttavia il livello di trasporto presenta problemi che non affliggono il
data link layer



un host puo’ dover gestire a livello di trasporto svariate decine di
connessioni contemporanee: si devono trovare le risorse per i buffer
la dimensione dei buffer e’ un altro problema: le applicazioni possono
richiedere di trasferire blocchi dati di dimensioni molto differenti (dal
singolo carattere di una sessione telnet a svariati KB di un file transfer);
allocare buffer di dimensioni definite puo’ costituire un problema
lo strato applicativo potrebbe liberare i buffer in ricezione in modo lento,
generando una situazione in cui una TPDU e’ stata riscontrata in quanto
ricevuta, ma il buffer allocato dalla TPDU non e’ ancora libero
Alternative in funzione della sottorete

In caso di sottorete inaffidabile, il trasmittente deve
mantenere i dati nei buffer


in questo caso il ricevente potrebbe non utilizzare buffer specifici
per la connessione, ma ad esempio un pool di buffer per tutti,
richiedendo la disponibilita’ di buffer dinamicamente e scartando
le TPDU in caso di indisponibilita’ (tanto il trasmittente conserva i
dati)
Se la sottorete offre un servizio affidabile:


se il ricevente rende disponibili buffer in ricezione, il trasmittente
potrebbe farne a meno
se pero’ il ricevente non puo’ garantire spazio sufficiente di buffer,
l’affidabilita’ della sottorete garantisce il recapito ma non
l’accettazione, quindi la risorsa di buffer deve essere allocata
anche in trasmissione
Alternative in funzione della TPDU size


Se le TPDU hanno generalmente una dimensione simile si
puo’ allocare un pool di buffer uguali
In caso contrario questa soluzione rappresenta uno
spreco di risorse



utilizzare buffer di dimensioni medie puo’ essere piu’ efficiente,
ma le TPDU di grosse dimensioni vanno a occupare piu’ buffer,
complicandone notevolmente la gestione
possono essere utilizzati buffer a dimensione variabile, ma anche
questo complica la gestione dei dati
una terza possibilita’ e’ l’utilizzo di un grosso buffer circolare per
ogni connessione

in questo caso si semplifica la gestione dei buffer, ma di nuovo si ha
spreco di risorse per connessioni a basso carico trasmissivo
Alternative in funzione della applicazione


Applicazioni che utilizzano TPDU piccole possono
essere efficientemente gestite tramite un pool
comunie ed allocazione dinamica dei buffer in
trasmissione e ricezione (TPDU piccole significa
buona probabilita’ di trovare buffer disponibili)
Applicazioni tipo file transfer richiedono invece la
disponibilita’ in ricezione di un pool di buffer pari
alla window size (come nel caso del data link
layer), per sfruttare al meglio la banda
disponibile
Gestione dinamica dei buffer

Poiche’ le caratteristiche delle diverse connessioni
possono cambiare rapidamente, e le esigenze
sono differenti, la soluzione adottata e’ che le
due parti regolino dinamicamente le allocazioni


ad esempio, se due stazioni dedicano un pool comune
di buffer alle connessioni attive tra i due host, e ad un
certo punto il numero di connessioni aumenta, il
ricevitore potra’ comunicare al trasmittente che il
numero di buffer per una singola connessione e’
diminuito
Il protocollo di trasporto deve prevedere questa
possibilita’
Buffer dinamici come window size


L’utilizzo della gestione dinamica dei buffer permette al ricevente di
regolare la velocita’ del trasmittente in funzione della quantita’ di
buffer disponibili in ricezione; di fatto il numero di buffer disponibili in
ricezione definisce la window size
Quello che viene fatto dal protocollo e’ sostanzialmente la seguente
cosa:





il trasmittente (all’atto dell’attivazione della connessione) richiede un
certo numero di buffer in funzione delle sue esigenze
il ricevente risponde concedendo il numero di buffer che puo’ offrire, ed il
ricevente memorizza il numero e tiene conto della disponibilita’ di buffer
in ricezione durante tutta la trasmissione
ad ogni TPDU inviata il trasmittente riduce il numero di buffer che il
ricevente ha disponibili
quando arriva a zero il trasmittente si ferma
ad ogni acknowledge, il ricevente comunica quanti buffer ha disponibili
Separazione ack/window size

Tuttavia, come gia’ detto, gli eventi “TPDU riscontrata” e “buffer liberato”
nello strato di trasporto non sono contemporanei




questo e’ essenzialmente dovuto al fatto che “chi libera il buffer” e’ un applicativo
scritto dall’utente (non dal progettista della rete), che magari riceve 4 KB di TPDU
ma le legge un byte per volta
Questo fatto obbliga a separare la funzione dell’acknowledge dalla
definizione della window disponibile (cioe’ dei buffer disponibili in ricezione)
Di fatto il ricevente puo’ inviare un riscontro relativo a tutte le TPDU
trasmesse, ma comunque indicare disponibilita’ di buffer a zero (quindi
bloccare il trasmittente)
Quando l’applicativo libera uno o piu’ buffer, il ricevente inviera’ un nuovo
ack (relativo sempre all’ultima TPDU rucevuta) ma comunicando la nuova
disponibilita’ di buffer


questo puo’ generare uno stallo, perche’ le TPDU di controllo non vengono
riscontrate e non hanno timeout: se l’ultima TPDU (ack+nuovi buffer liberi) si
perde, il trasmittente resta fermo ed il ricevente pure
per risolvere questa situazione ogni host deve periodicamente trasmettere una
TPDU di controllo per fornire l’ack e la situazione dei buffer
Controllo della congestione



Quando il collo di bottiglia e’ la rete, il controllo di flusso
non e’ sufficiente
Il controllo di questa situazione nel livello di trasporto e’
compito del trasmittente
Il livello di trasporto non definisce meccanismi;
generalmente a livello pratico si utilizza la tecnica
seguente:



il trasmittente utilizza come parametro di misura il numero di
TPDU che non hanno ricevuto un ack prima del timeout
ciclicamente viene effettuata una analisi di questo dato
quando si verifica un aumento dei timeout, il trasmittente riduce
la velocita’ di trasmissione, ad esempio riducendo la window size
(anche se c’e’ disponibilita’ di buffer in ricezione)
Indirizzamento: TSAP


Un processo applicativo deve specificare a quale applicazione remota
vuole connettersi
Lo strato di trasporto puo’ servire contemporaneamente diverse
applicazioni




quando riceve una connection request, (o dati in una trasmissione
connection less) deve sapere a quale applicazione trasmetterli
E’ necessario quindi associare univocamente ad una applicazione un
punto di accesso al trasporto
In pratica si devono utilizzare indirizzi a livello di trasporto, per
identificare l’applicazione destinataria dei dati
Questi indirizzi in OSI sono chiamati TSAP (Transport Service Access
point)

in TCP/IP esiste una cosa equivalente: in questo caso gli indirizzi sono
chiamati porte
Quale TSAP?



Un applicativo server deve quindi registrarsi presso il
protocollo di trasporto (tramite la primitiva LISTEN) per
creare la associazione “applicazione-TSAP”
L’applicativo client, per connettersi con il server, deve
sapere a quale TSAP remoto (di quale NSAP remoto, cioe’
di quale indirizzo di rete) connettersi
Per conoscere l’NSAP, generalmente esiste un applicativo
di conversione nome-indirizzo che risolve questo
problema (si presuppone che almeno si conosca il nome)



in OSI si chiama servizio di directory (X.500)
in TCP/IP si chiama Domain Name System
Per conoscere il TSAP si puo’ (parzialmente) utilizzare un
sistema simile
TSAP “ben noti”

La soluzione adottata usualmente e’ quella di associare
sempre lo stesso TSAP a tutte le applicazioni server (sui
diversi host) che svolgono la stessa funzione






server
server
server
server
server
web
di posta elettronica
di connessione remota
di sincronizzazione oraria
di file transfer
L’applicativo client in questo modo puo’ specificare al
livello di trasporto a quale TSAP di quale host deve essere
fatta la connessione, in quanto il TSAP e’ predefinito dallo
standard dell’applicativo server
TSAP ad hoc

I TSAP ben noti sono quelli che offrono servizi standardizzati




servizi che rispondono ad un protocollo ben definito
generalmente lo standard specifica il TSAP da utilizzare (piu’ spesso si
limita a suggerirlo)
in TCP/IP esiste un sistema che, analogamente al DNS, associa una
stringa di caratteri alle porte dei servizi, ma a differenza del DNS non e’
distribuito: le associazioni si trovano in un file di testo interrogato dagli
applicativi (/etc/services in unix/linux)
Se si devono utilizzare applicativi sviluppati localmente, per funzioni
specifiche, la strategia da utilizzare e’ quella di definire un TSAP per
questo servizio sulle sole macchine interessate dalla applicazione


il client in qualche modo deve essere messo al corrente del TSAP da
utilizzare
buona norma e’ quella di non utilizzare TSAP assegnati ai servizi
standardizzati
Sistemi e Tecnologie della
Comunicazione
Lezione 23: transport layer: TCP e UDP
Trasporto in TCP/IP

TCP/IP utilizza due protocolli di trasporto




Entrambi i protocolli forniscono una interfaccia agli applicativi per la
trasmissione dei dati, ed utilizzano IP per il trasporto dei dati (e, nel
caso di TCP, delle informazioni di controllo del protocollo)
Esiste una interfaccia di programmazione, chiamata socket,
standardizzata per il linguaggio C


UDP (User Datagram Protocol): protocollo inaffidabile connection less
TCP (Transmission Control Protocol): protocollo connection oriented
affidabile
esistono implementazioni di interfacce al socket anche per altri linguaggi
(ad esempio per il perl)
Questo rende possibile scrivere applicazioni specifiche (home-made)
che debbano far uso della rete di trasmissione dati in aggiunta agli
applicativi standardizzati esistenti (generalmente forniti con il sistema
operativo)
Indirizzamento del trasporto in TCP/IP





Le applicazioni che utilizzano il TCP/IP si registrano sullo strato di trasporto
ad un indirizzo specifico, detto porta
La porta e’ il meccanismo che ha a disposizione una applicazione per
identificare l’applicazione remota a cui inviare i dati
La porta e’ un numero di 16 bit (da 1 a 65535; la porta 0 non e’ utilizzata)
TCP/IP permette alla applicazione di registrarsi su una porta definita (nel
caso dei server) o su una qualunque porta libera scelta dal livello di trasporto
(spesso e’ il caso dei client)
Per rendere funzionali i servizi di utilizzo diffuso, TCP/IP prevede che
determinati servizio utilizzino dal lato server delle porte ben definite


il valore dei numeri di porta vengono definiti negli RFC che definiscono il
protocollo delle applicazioni in questione
Esiste una autorita’ centrale, lo IANA (Internet Assigned Numbers Authority),
che pubblica la raccolta dei numeri di porta assegnati alle applicazioni negli
RFC (http://www.iana.org)

non solo: lo IANA centralizza la gestione anche di altro, come le assegnazioni dei
numeri di protocollo dei diversi protocolli di trasporto utilizzati nel protocol number
di IP o l’assegnazione dei domini di primo livello del DNS
User Datagram Protocol





UDP implementa un servizio di consegna inaffidabile dei dati a
destinazione
UDP riceve i dati dalla applicazione e vi aggiunge un header di 8
byte, costruendo cosi’ il segmento da inviare
L’applicazione specifica (l’indirizzo di rete e) la porta di destinazione,
ed in ricezione UDP recapita il campo dati al destinatario
UDP non si preoccupa di sapere nulla sul destino del segmento
inviato, ne’ comunica alla applicazione qualsiasi informazione
Di fatto costituisce semplicemente una interfaccia ad IP (che fornisce
lo stesso tipo di servizio), con l’aggiunta di fare multiplexing del
traffico delle applicazioni su IP

tramite il meccanismo delle porte a cui sono associate le applicazioni, di
fatto UDP realizza un multiplexing dei dati delle diverse applicazioni su IP
Orientato al datagramma

A differenza di TCP, UDP si occupa di un
datagramma per volta




quando una applicazione passa dati ad UDP, UDP li
maneggia in un unico segmento, senza suddividerlo in
pezzi
il segmento di massime dimensioni che UDP puo’
gestire deve stare interamente nel campo dati del
pacchetto IP
il segmento viene passato ad IP che eventualmente lo
frammenta, ma a destinazione UDP ricevera’ il
datagramma intero
l’applicazione di destinazione ricevera’ quindi il blocco
completo di dati inviato dalla applicazione che li ha
trasmessi
Il segmento UDP

Il segmento UDP e’ costituito da un header
di lunghezza fissata (8 byte) piu’ il campo
dati, che deve avere dimensione massima
tale da stare dentro il campo dati di IP

poiche’ il pacchetto IP puo’ essere lungo 65535
byte, il campo dati UDP puo’ essere lungo al
massimo (65535 – 8 – lunghezza header IP)
byte
UDP header

L’header e’ costituito da quattro campi di due byte:



source e destination port: le porte di associazione alle applicazioni
mittente e destinataria dei dati
length: lunghezza del segmento in byte (compreso l’header)
checksum: questo campo contiene una checksum del segmento
completo (anzi: viene aggiunto uno pseudo-header con le
informazioni degli indirizzi IP di sorgente e destinazione)



l’utilizzo del campo checksum e’ opzionale, e l’applicativo puo’
decidere di non utilizzarlo (in questo caso il campo e’ riempito con
zeri)
molti applicativi non lo utilizzano per motivi di efficienza
se viene utilizzato, un errore provoca la rimozione del segmento
senza che vengano prese altre iniziative
Caratteristiche di UDP

Benche’ inaffidabile, UDP ha caratteristiche che
per molte applicazioni sono appetibili

puo’ utilizzare trasmissione multicast o broadcast


TCP e’ un protocollo orientato alla connessione, quindi per
definizione non puo’ gestire una comunicazione tra piu’ di due
entita’
e’ molto leggero, quindi efficiente


la dimensione ridotta dell’header impone un overhead minimo,
ed una rapidita’ di elaborazione elevata
la mancanza di meccanismi di controllo rende ancora piu’
rapida l’elaborazione del segmento ed il recapito dei dati
Applicativi che utilizzano UDP


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


Applicativi che si scambiano messaggi (e non flussi di byte) di piccole
dimensioni, e che non risentono della perdita di un messaggio




stream voce/video
interrogazione di database
sincronizzazione oraria
in questi casi la perdita della richiesta e della risposta provoca un nuovo
tentativo di interrogazione
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
Applicativi standard su UDP


Sono molti, ed in aumento
Gli applicativi che storicamente utilizzano UDP
sono






DNS, sulla porta 53
TFTP (Trivial File Transfer Protocol), sulla porta 69
NetBIOS Name Service (anche WINS) sulla porta 137
SNMP (Simple Network Management Protocol) sulla
porta 161
NTP (Network Time Protocol) sulla porta 123
NFS (Network File System) via portmap
Transmission Control Protocol


TCP e’ stato progettato per offrire un flusso
di byte affidabile orientato alla connessione
TCP offre i seguenti servizi allo strato
applicativo:




protocollo orientato alla connessione
affidabilita’ dei dati (controllo, ritrasmissione,
ordinamento)
gestione del controllo di flusso
gestione della congestione
Trasmissione dei dati in TCP



TCP trasmette dati in segmenti, ciascuno costituito da un
header ed un campo dati
TCP considera i dati da trasmettere come flusso di byte (a
differenza di UDP che opera in termini di messaggi)
TCP utilizza buffer in trasmissione e ricezione per la
gestione dei dati


TCP non invia necessariamente i dati appena li riceve dalla
applicazione: per motivi di efficienza puo’ tenere nei buffer i dati
da inviare fino a che non ce ne siano abbastanza per evitare
messaggi troppo piccoli
L’informazione sul numero di sequenza e’ quindi riferito al
byte trasmesso, ed e’ utilizzato sia per l’acknowledge che
per il riordinamento e la ritrasmissione
Dimensione del segmento TCP


Il segmento TCP e’ costituito da un header di 20
byte (piu’ campi opzionali, come in IP) seguito
dal campo dati
La dimensione massima del segmento TCP deve
stare nel campo dati di un pacchetto IP

poiche’ il pacchetto IP ha lunghezza massima 65535
byte, con un header di 20 byte, il campo dati di TCP
avra’ valore massimo 65495 byte (ma in caso di
utilizzo di intestazione estesa sara’ meno)
MTU, MRU e MSS


Ogni rete e’ caratterizzata dall’avere un valore massimo della dimensione del
campo dati nel frame a livello 2
Questa lunghezza si chiama MTU (Maximum Transfer Unit)



Ogni volta che IP deve inviare un pacchetto piu’ grande della MTU deve
frammentare
Per motivi di efficienza TCP tiene conto di questo, e la MTU solitamente
definisce la dimensione massima del segmento TCP (meno i 20 byte
dell’header IP)



nel caso di Ethernet, la MTU e’ di 1500 byte
va osservato che TCP non sa nulla sulla eventuale intestazione estesa di IP, che
potrebbe ridurre il campo utile nel pacchetto IP: in questo caso si avrebbe
frammentazione
Per tentare di raggiungere la massima efficienza, i due lati della connessione
TCP si scambiano le informazioni delle rispettive MTU, in modo che il
trasmittente possa correttamente dimensionare i segmenti in base al valore
minimo tra le due MTU (quella in ricezione viene chiamata MRU: Maximum
Receive Unit) per definire la MSS (Maximum Segment Size)
MSS = min(MTU,MRU) – 20 byte
In caso di mancanza di informazioni (dipende dalle implementazioni del TCP)
viene utilizzato come valore di default 536 byte (il valore di default del
pacchetto IP: 576 bytes meno i 20 byte di header IP e meno i 20 byte
dell’header TCP
Connessione TCP

TCP utilizza per la connessione il meccanismo di handshake a 3 vie


un segmento (SYN) viene inviato dal client al server; questo trasporta il
sequence number iniziale del client, e le informazioni di porta sorgente e
destinazione
un segmento (SYN+ACK) viene inviato in risposta dal server; questo
trasporta l’acknowledge del SYN precedente, ed il sequence number
iniziale el server, per le comunicazioni in verso opposto




se nessuno ascolta sulla porta di destinazione, il server inviera’ un segmento
RST (Reset) per rifiutare la connessione
un segmento di ACK viene inviato dal client al server; questo riporta lo
stesso sequence number iniziale (non sono ancora stati trasmessi dati) e
l’acknowledge del secondo segmento SYN
A questo punto la connessione viene considerata stabilita (la
connessione e’ definita dalla quaterna host1-port1-host2-port2)
I messaggi di SYN possono opzionalmente trasportare le informazioni
di MTU/MRU per determinare il MSS della connessione
Disconnessione TCP


La connessione TCP e’ full duplex
Per la disconnessione, si utilizza un handshake a
due vie per ogni direzione:





chi vuole disconnettere invia un segmento FIN
l’altro invia un ACK del FIN: il primo considera chiusa
la comunicazione in quel verso, ma non nel verso
opposto
la stessa cosa fa il secondo quando non ha piu’ dati da
trasmettere, ed aspetta il relativo ACK
il tutto spesso viene fatto con tre segmenti, inviando il
secondo FIN assieme all’ACK del primo
Vengono utilizzati dei timer per aggirare il
problema dei due eserciti
Controllo di flusso

Il controllo di flusso viene
realizzato tramite la
comunicazione dello spazio
nei buffer disponibile in
ricezione



lo spazio viene
comunicato sempre in
termini di byte liberi nei
buffer
Come gia’ visto, il
meccanismo permette al
ricevente di regolare la
trasmissione del
trasmittente, in modo
disgiunto dagli
acknowledge
La “dimensione della
finestra” (quanti segmenti
si possono inviare) e’ data
dal rapporto tra i byte a
disposizione ed il valore
del MSS
Controllo della congestione


Accanto alla finestra di ricezione (legata ai buffer) viene utilizzata una
finestra di congestione: il limite a cui si puo’ trasmettere e’ il minimo tra la
finestra di ricezione e quella di congestione
Per prevenire le congestioni, il TCP utlizza una tecnica detta “slow start”:






inizialmente il trasmittente inizializza la finestra di congestione al valore del MSS,
ed invia un segmento
se il segmento riceve l’ACK, raddoppia la finestra di congestione, e via cosi’ fino al
massimo valore determinato dalla finestra di ricezione, o fino a che si incontra un
timeout; questo valore viene quindi mantenuto per la comunicazione
in base alla insorgenza di timeout o di ack duplicati (o di ICMP source quench), il
trasmittente puo’ valutare l’insorgere di una congestione
quando questo avviene, la finestra di congestione viene ridotta ad un MSS, ed una
soglia viene impostata alla meta’ del valore precedente (il limite raggiunto dallo
startup lento)
riprende la progressione iniziale, ma solo fino al valore di soglia, oltre il quale si
incrementa la dimensione di un MSS per volta
In questo modo il TCP tenta di prevenire la congestione (con l’avvio lento),
ed abbatte immediatamente la trasmissione di segmenti quando la
congestione inizia a presentarsi, risale rapidamente fino ad un certo valore
per non perdere in efficienza e poi piu’ lentamente per non ricreare le
condizioni di congestione
Controllo della congestione
Header TCP
Header TCP (cont.)

source e destination port


sequence number (32 bit)


il valore dell’ultimo byte riscontrato piu’ uno (cioe’ del successivo atteso)
TCP header length (4 bit)


il valore del primo byte trasmesso nel segmento; all’atto della
connessione viene stabilito il valore iniziale, basato sul clock del
trasmittente
acknowledge number (32 bit)


le porte del sorgente e del destinatario, che permettono di identificare le
applicazioni a cui sono destinati i dati (16 bit ciascuna)
il numero di gruppi di 32 bit contenuti nella intestazione; necessario
perche’ sono previsti campi opzionali (non piu’ di 60 byte)
flag URG (urgent)

il campo dati contiene dati urgenti, che devono essere passati alla
applicazione prima degli altri ancora in attesa nei buffer (ad esempio: il
CTRL^C in applicazioni di terminale remoto)
Header TCP (cont.)

flag ACK


flag PSH (push)


utilizzato per comunicare che la connessione deve essere abortita, o
quando viene rifiutata una nuova connessione
flag SYN (synchronize)


indica che l’applicativo ha richiesto l’invio dei dati senza ulteriore attesa
(ed in ricezione deve essere fatto lo stesso)
flag RST (reset)


il segmento trasporta un riscontro; tutti i segmenti tranne il primo
dovrebbero averlo settato
utilizzato per stabilire una connessione; questi segmenti definiscono il
sequence number iniziale per i due versi
flag FIN (finish)

utilizzato per comunicare alla controparte che non si hanno piu’ dati da
inviare e che si desidera chiudere la connessione; il doppio FIN con
relativo riscontro genera il rilascio della connessione
Header TCP (cont.)

window size (16 bit)



checksum (16 bit)


la dimensione in byte dello spazio disponibile dei buffer in
ricezione: il valore massimo e’ di 64 KB
le reti moderne molto veloci rendono questo limite inefficiente: e’
possibile utilizzare un header opzionale per accordarsi su una
window size a 30 bit (buffer fino ad 1 GB)
obbligatoria per TCP (al contrario di UDP); anche in TCP la
checksum viene calcolata su tutto il segmento piu’ uno pseudo
header che riporta gli indirizzi IP di sorgente e destinazione
urgent pointer (16 bit)

definisce l’offset dell’ultimo byte facente parte dei dati urgenti
quando la flag URG e’ settata
Header opzionali

Le opzioni sono definite da una lunghezza, un tipo, ed i
dati relativi; sono definite diverse opzioni, tra cui:





padding: necessario in presenza di opzioni per rendere il campo
header nel suo complesso un multiplo di 32 bit
MSS: utilizzato con i segmenti SYN per determinare il MSS
scambiandosi i valori di MTU ed MRU
window scale: utilizzata per definire la dimensione della finestra
fino a 30 bit
selective acknowledge: TCP utilizza normalmente il go-back-N;
questa opzione permette di utilizzare il selective reject
timestamp: utilizzata per valutare (a livello di trasporto) il round
trip time e poter definire valori opportuni per i timer interni
Applicazioni che usano TCP

Tutte quelle che richiedono affidabilita’ dei dati, e che non
hanno bisogno della comunicazione multicast/broadcast


la comunicazione in TCP e’ orientata alla connessione tra due
punti terminali; non puo’ quindi supportare comunicazione
multicast
Esistono tantissime applicazioni; tra le piu’ diffuse:







file transfer (port 21)
login remoto criptato (ssh, port 22)
login remoto (port 23)
posta elettronica (port 25)
TFTP (port 69) (esiste anche su UDP)
HTTP (port 80) (il protocollo del World Wide Web)
…
Riferimenti

Network Layer:


Tanenbaum cap. 5 fino a § 5.2.6, da § 5.3 a §
5.3.5, da § 5.5 a § 5.6.5, e § 5.6.8
Transport Layer:


Tanenbaum cap. fino a § 6.1.2, da § 6.2 a §
6.2.4, da § 6.4 a § 6.4.1, da § 6.5 a § 6.5.9
interessante (non fatto a lezione e non
richiesto all’esame) il paragrafo 6.6 sulle
prestazioni di una rete
Scarica

STC