Sei sulla pagina 1di 65

1

SOMMARIO

1.INTRODUZIONE…………………………………………………………….....………3
HARDWARE DI RETE
CLASSIFCAZIONE SECONDO SCALA
SOFTWARE DI RETE E GERARCHIE DI PROTOCOLLI
RETI E STANDARTIZZAZIONE
2.LIVELLO FISICO………………………………………………………………...……7
MEZZI TRASMISSIONE GUIDATI
TRASMISSIONI WIRELESS
SATELLITI PER LE TELECOMUNICAZIONI
SISTEMA TELEFONICO PUBBLICO COMMUTATO
SISTEMA TELEFONICO MOBILE
3.LIVELLO DATA LINK……………………………………………………..………...12
SINCRONIZZAZIONE
INIZIO E FINE TRASMISSIONE
INDIRIZZAMENTO
CONTROLLO ERRORI
CONTROLLO DI FLUSSO
PROTOCOLLI DATA-LINK
4.SOTTTOSTRATO MAC……………………………………………………………..19
ASSEGNAZIONE DEL CANALE
PROTOCOLLI AD ACCESSO MULTIPLO
PROTOCOLLI AD A.M. CON RILEVAMENTO DELLA PORTANTE
PROTOCOLLI SENZA COLLISIONE
IEEE 802
CODIFICA MANCHESTER
BYNARY EXPONENTIAL BACKOFF
LAN LOGICHE
802.3U FAST ETHERNET
802.3Z GIGABIT ETHERNET
802.3ae 10GE
COMPONENTI DI RETE
802.11 : WIRELESS LAN
PROTOCOLLO DEL SOTTOSTRATO MAC
SERVIZI
802.16 WIRELESS A BANDA LARGA (WIMAX)
802.15 BLUETOOTH
5. LIVELLO NETWORK……………………………………………………………….34
ALGORITMI DI ROUTING
ALGORITMI NON ADATTATIVI
ALGORITMI ADATTATIVI
2
ROUTING GERARCHICO
ROUTING BROADCAST
ROUTING MULTICAST
ROUTING PER HOST MOBILI
CONTROLLO DELLA CONGESTIONE
QUALITA’ DEL SERVIZIO
PRENOTAZIONE RISORSE
CONTROLLO AMMISSIONE
PIANIFICAZIONE DEI PACCHETTI
SERVIZI INTEGRATI
SERVIZI DIFFERENZIATI
INTERNETWORKING
PROTOCOLLO TCP/IP
PROTOCOLLI DI ROUTING TRA GATEWAY
INTERNET MULTITASKING
INTERNET PROTOCOL VERSIONE 6 (IPv6)
6.LIVELLO TRASPORTO……………………………………………………………..53
PRIMITIVE DEL SERVIZIO TRASPORTO
INDIRIZZAMENTO
CREAZIONE CONNESSIONE
CHIUSURA CONNESSIONE
CONTROLLO DI FLUSSO
MULTIPLEXING
LIVELLO DI TRASPORTO DEL MODELLO TCP/IP
7. LIVELLO APPLICAZIONE………………………………………………………...63
DOMAIN NAME SISTEM
POSTA ELETTRONICA
IL WORLD WIDE WEB
3
1.INTRODUZIONE

Le reti di calcolatori suscitano un vivo interesse,questo perche possono venire utilizzate per condividere
risorse ,cioè rendere disponibile a chiunque sulla rete programmi,periferiche e dati,indipendentemente
dalla posizione fisica dell’utente o della risorsa.
Le reti sono anche un potente mezzo di comunicazione dato che eliminano l’ostacolo della distanza, ne è
un’esempio l’e-commerce.
Inoltre le reti hanno trovato sempre più spazio nelle applicazioni domestiche per accesso a informazioni
remote,comunicazioni da persona a persona,intrattenimento interattivo ;visto il largo uso delle reti anche
le reti mobili trovano un largo impiego.

HARDWARE DI RETE

Esistono due tipi di tecnologie trasmissive:


 Collegamenti broadcast : hanno un solo canale di comunicazione condiviso tra tutte le macchine
della rete.Dei pacchetti vengono inviati da ciascuna macchina e ricevuti da tutte le altre (che
riconoscono il destinatario grazie al campo indirizzo) che processano il pacchetto se l’indirizzo
corrisponde a quello della macchina ,altrimenti il pacchetto viene ignorato.
Nel campo indirizzo è possibile inviare a tutti i destinatari (inserendo un opportuno codice nel campo
indirizzo) che poi processano il pacchetto.
In alcuni casi è possibile trasmettere a soli sottoinsiemi di macchine (multitasking).
 Collegamenti punto a punto : consistono in molte connessioni tra singole coppie di macchine.Questi
collegamenti sono tipici delle reti su larga scala,dato che per andare da sorgente a destinatario sono
possibili perscorsi multipli don diversa lunghezza.

CLASSIFICAZIONE SECONDO SCALA

 LAN : data le dimensioni contenute si possono avere alte velocità e pochi errori.Viene maggiormente
utilizzata la tecnologia broadcast dove si differenziano le topologie a bus (cioè realizzata con cavo
lineare) e ad anello(macchine collegate una ad una).

In una rete a bus al massimo una macchina alla volta può trasmettere ,e un meccanismo di arbitraggio
4
risolve i conflitti nel caso in cui più macchine vogliano trasmettere.
Nella rete ad anello,ogni bit si propaga in modo autonomo senza aspettare il resto del pacchetto a cui
appartiene.Esistono varie regole per arbitrare l’accesso come ad esempio l’attribuzione dei turni alle
macchine (IEEE 802.5).
Le reti broadcast si possono ulteriormente suddividere in statiche e dinamiche dove nelle prime viene
suddiviso il tempo in intervalli discreti,permettendo a ogni macchina di eseguire il broadcast solo al
proprio turno.Con questo metodo vengono sprecati molti cicli di clock quando non vengono effettuate
comunicazioni,quindi si preferisce il modello dinamico.
 MAN : rete metropolitana che spesso consiste nella divisione di un servizio tra gli utenti di un’area (ad
esempio dall’antenna della tv via cavo alle abitazioni della città)
 WAN : copre una vasta area e racchiude macchine destinate ad eseguire programmi utente (Host).
Gli host sono collegati tra loro da delle sottoreti (Subnet) che trasportano i messaggi da un’host
all’altro.Genericamente queste subnet sono controllate dai gestori (telefonia,internet ecc.) mentre gli
host dagli utenti.

SOFTWARE DI RETE E GERARCHIE DI PROTOCOLLI

La maggior parte delle reti è strutturata come pila di strati o livelli,con lo scopo di ogni strato di offrire
determinati servizi agli strati superiori,cioè il servizio viene offerto un servizio nascondendo i dettagli
degli strati inferiori.
Il protocollo è l’intermediario per la comunicazione tra due strati e in fondo agli strati si trova il livello
fisico col quale è possibile effettuare le comunicazioni.
Quindi un servizio definisce quali operazioni lo strato è in grado di offrire su richiesta dei suoi utenti ,cioè
lavora tra il provider e il servizio utente .
Il protocollo invece è l’insieme di regole che controllano il significato e il formato dei pacchetti.

Modello di riferimento OSI

Definisce ciò che ogni strato deve compiere :


 Strato fisico: si occupa della trasmissione dei bit grezzi sul canale di comunicazione.Deve assicurarsi
che ogni bit sia ricevuto con lo stesso valore col quale è stato inviato,cioèarrivando ai problemi di
tensione e tempo trasmissione,lo stabilimento della comunicazione iniziale e il tipo di comunicazione.
 Strato data-link: cerca di rilevare gli errori di trasmissione in modo di non trasmetterli allo strato
superiore.Per fare questo il trasmettitore viene forzato a suddividere i dati d’ingresso in data-
frame,trasmessi sequenzialmente.Se vengono ricevuti il ricevitore conferma la correttezza inviando un
ack-frame.
Regola anche la velocità di traffico per evitare che un trasmettitore veloce saturi un ricevitore
lento(controllo di flusso) .
 Strato network: controlla lo stato della sottorete:gestisce la modalità con cui i pacchetti vengono
inoltrati dalla sorgente alla destinazione.
L’inoltro si potrebbe basare su tabelle statiche incluse nella rete oppure potrebbe essere altamente
dinamico per rendere eterogenee le comunicazioni tra le reti.
 Strato trasporto: lo strato trasporto accetta dati dallo strato superiore e li prepara per lo strato network
e si assicura che tutti i pezzi arrivino all’altra estremità.
In poche parole un programma sulla macchina sorgente comunica con la macchina del destinatario
utilizzando intestazione dei messaggi e messaggi di controllo.
 Strato sessione: serve per tenere traccia del turno da trasmettere o ricevere,per la gestione dei token
(evitare che le due parti tentino la stessa operazione nello stesso istante) e sincronizzazione (visionare
5
trasmissione per consentirne ripresa).
 Strato presentazione: si preoccupa della sintassi e della semantica dell’informazione
trasmessa.Gestisce strutture dati astratte e consente lo scambio e la definizione di strutture dati a livello
superiore.
 Strato applicazione: comprende una varietà di protocolli richiesti dagli utenti,dalla richiesta di pagine
web al trasferimento file.

Modello di riferimento TCP/IP

Questo modello nacque dall’esigenza del dipartimento della difesa di avere una rete che potesse
sopravvivere alla perdita dell’hardware senza interrompere le comunicazioni ,e con un’architettura
flessibile dato che erano previste richieste divergenti.
Anch’esso utilizza un servizio di trasmissione end-to-end e indipendente dalla rete,è orientato alla
applicazioni e diviso in tre strati:
 Strato internet: il suo scopo è consentire agli host di mandare pacchetti in qualsiasi rete ,e di farli
viaggiare in modo indipendente l’uno dall’altro e nel caso in cui vengano ricevuti in disordine lo strato
superiore li riordina.
Lo strato fornisce un formato e un protocollo per i pacchetti (IP) dato che il suo scopo è quello di
consegnare i pacchetti a destinazione corretta.
 Strato trasporto: progettato per consentire la comunicazione tra entità pari degli host sorgente e
destinazione.
Sono stati definiti due protocolli per il trasporto:il TCP (Trasmission Control Protocol)che è un
protocollo affidabile orientato alla connessione che permette a un flusso di byte emessi da un computer
di raggiungere senza errori il destinatario.
Il protocollo suddivide il flusso di byte entrante in messaggi discreti e passa ciascun frammento allo
strato internet e nella destinazione si compone il messaggio.
Questo protocollo gestisce anche il flusso per fare in modo che una sorgente veloce non saturi un
ricevente lento
L’altro protocollo utilizzato è l’UDP (User Datagram Protocol) è un protocollo non affidabile senza
connessione per le applicazioni che non vogliono garanzia di ordinamento e il controllo del flusso.
 Strato applicazione: contiene i protocolli a livello superiore come quelli per scambio file, posta
elettronica.
 Strato host-network: questo strato è posto sotto lo strato internet ,dice solo che l’host si deve collegare
alla rete usando qualche protocollo che gli permetta di spedire pacchetti IP .Questo protocollo varia da
rete a rete.

RETI E STANDARDIZZAZIONE

Esistono vari tipi di reti da quelle su scala mondiale a quelle più ridotte,tutte con diversi obbiettivi,scopi e
tecnologie.
La più conosciuta è senza dubbio internet che però è un'insieme di reti che usano certi protocolli e offrono
servizi comuni.
La storia di internet nasce però negli anni 50 con la creazione di ARPANET la prima rete fatta costruire
in america per motivi militari,datà l'inaffidabilità delle reti telefoniche di allora,creata da ricercatori con
sussidi e permessi dal governo.
Arpanet prese sempre più piede fra le università americane,perche anche grazie al nuovo protocollo tcp/ip
divenne di più semplice impiego ,e negli anni '80 quando ad Arpanet furono connesse molte altre reti fu
creato il DNS (Domain Name System) per organizzare i computer in domini e per abbinare i nomi degli
host a indirizzi IP.
6
Data la natura militare della rete Arpanet dove era possibile operare solamente con u visto del
dipartimento della difesa nacque in america un'altra rete NSFNET che collegava diversi supercomputer
posizionati in parti opposte del paese e anche alcune reti regionali,sfruttado il protocollo tcp/ip.
Il successo istantaneo della rete portò a un'ulteriore miglioramento nel 1990 e qualche anno dopo,come
anche Arpanet,venne affidata ai gestori che iniziarono a costruire la rete mondiale che noi tutti oggi
conosciamo.
Quindi per le reti di computer,come per le altre,si è visto che su larga scala porta un notevole vantaggio
avere dei protocolli comuni a tutte le macchine che operano in rete.
Nel corso degli anni si sono andati a formare due tipi di starndard,quelli "de facto",stabiliti senza piani
formali e quelli regolarmente autorizzati da organizzazioni che possono essere
volontarie,nazionali,continentali.
7
2.LIVELLO FISICO

MEZZI DI TRASMISSIONE GUIDATI

Questa tipologia di mezzi di trasmissione sfrutta la proprietà dei metalli di condurre energia elettrica.
Si differenziano dunque per le loro proprietà elettriche come resistenza,capacità e induttanza che
influenzano le prestazioni del cavo; l'impedenza,che racchiude queste tre proprietà,e ci indica la potenza
inviata che arriva al ricevitore e la distorsione del segnale.
Inoltre i cavi ottimali sono caratterizzati da una buona velocità di propagazione,bassa
attenuazione(dispersione segnale l crescere della distanza) e bassa diafonia (disturbo del campo elettrico).
Anche le proprietà strutturali e geometriche influenzano il rendimento dei cavi:
 Doppino: il doppino telefonico è composto da due condutori di rame isolati,avvolti l'uno all'altro in una
forma elicoidale,dato che in questo modo i due campi elettrici si annullano.
Possono essere usati per trasmettere segnali analogici e digitali e sono largamente impiegati data la loro
compatibilità con la telefonia.
L'ampiezza di banda dipende dal diametro del cavo e dalla distanza percorsa ma si possono arrivare per
brevi distanze anche a velocità di alcuni Mb al secondo.
 Cavo coassiale: è formato da un filo di rame conduttore rivestito da materiale isolante e poi da una
schermatura a calza e da una guaina protettiva.
Questo cavo permette di percorrere distanze più lunghe e di avere velocità più elevate,inoltre la
costruzione e la schermatura forniscono più ampiezza di banda ed eccellente immunità al rumore.
Inizialmente era usato dalle aziende telefoniche per le connessioni su lunghe distanze,ora è molto
utilizzato per reti metropolitane e televisioni via cavo.
 Fibra ottica: sono poco ingombranti,non soggette a interferenze ,sicure e hanno una notevole larghezza
di banda.Sono però molto costose e richiedono di personale specializzato per l'installazione.
Le fibre ottiche sono costituite da un tubicino sottile di plastica o vetro in grado di guidare la luce
(nucleo),con uno strato di vetro con indice di rifrazione più basso del nucleo (cladding),coperto da un
rivestimento protettivo.
Il sistema di trasmissione sono formati da una sorgente che accetta un segnele elettrico,lo converte e lo
trasmette tramite impulsi luminosi rappresentanti un valore binario (luce =1,assenza di luce =0).

Il ricevitore è formato da un fotodiodo che genera un impulso elettrico quando è colpito dalla luce ;
questo processo richiede più tempo della trasmissione dati,quindi rappresenta il collo di bottiglia della
trasmissione.
Le fibre sono adatte solo a collegamenti punto a punto;i canali sono monodirezionali,quindi ci vogliono
due fibre per fare un sistema trasmittente-ricevente.
La trasmissione tra due fibre può essere multimodale,cioè dove la sorgente luminosa è un LED la cui luce
non è concentrata quindi soggetta a dispersione.
All'interno del cavo il fascio luminoso rimbalza sul cladding e quindi viene mantenuta nel nucleo;questo
però causa attenuazione e dispersione.
Le fibre step-index e graded-index differsicono per il grado di rifrazione del cladding ; nelle prime
abbiamo una velocità e un percorso maggiore rispetto alle seconde.
Nella trasmissione monomodale la sorgente luminosa è un laser ILD con una luce molto concentrata,che
mantiene un andamento lineare all'interno della fibra.
Questo metodo permette un'ampiezza di banda maggiore su distanze più lunghe ma il costo è superiore e
l'installazione è più complessa e inoltre la durata è minore.
8

TRASMISSIONI WIRELESS

Un’antenna trasmette onde elettromagnetiche che posssono essere ricevute da un ricevitore a una certa
distanza.
Le onde si propagano eseguendo oscillazioni;il numero di oscillazioni al secondo si chiama frequenza e si
misura in Hertz;la distanza tra due valori massimi dell’onda consecutivi si chiama lunghezza d’onda
indicata con λ.
La velocità delle onde elettromagnetiche è costante e uguale al prodotto tra lunghezza d’onda e la
frequenza .Nel vuoto le onde viaggiano alla velocità della luce c=3 x 10^8m/s,quindi λ x f = c.
La lunghezza d’onda è inversamente proporzionale alla frequenza quindi al crescere della frequenza
diminuisce la lunghezza d’onda e viceversa.

Le onde elettromagnettiche sono descritte dallo spettro elettromagnetico che rappresenta le onde al
variare della frequenza.
Nello spettro ci sono primale onde di frequenza più bassa ,poi si passa alle frequenze percepibili
dall’orecchio umano,si passa poi alle prime forme di luce per arrivare ai raggi x e ai raggi gamma.
Le caratteristiche fisiche delle onde e le modalità di propagazione dipendono dalle frequenze utilizzate.le
caratteristiche più importanti per l’uso delle onde nella trasmissione dati per le reti sono:
-la persistenza,cioè la possibilità di superare le pareti e altri ostacoli senza attenuazione.
-la direzionalità,cioè la possibilità di orientare in una direzione la loro propagazione
-la velocità massima di trasmissione,cioè l’ampiezza di banda.
-la distanza efficace per la trasmissione
Le frequenze più basse si propagano in tutte le direzioni,le frequenze più alte possono essere concentrate
in una direzione ma prmettono di trasportare una maggiore quantità di dati.
Le reti wireless per trasmettere i dati possono usare onde elettromagnetiche di vario tipo, quali:

Onde Radio

Facili da generare e possono viaggiare per lunghe distanze ma sono soggette a inerferenze da parte di
apparecchiature elettriche.
A frequenze molto basse sono in grado di attraversare gli ostacoli;le frequenze più alte viaggiano in linea
retta e rimbalzano sugli ostacoli;tendono a essere assorbite dal suolo ,ma rimbalzano sulla ionosfera
arrivando a grandi distanze,per questo sono usate per comunicazioni radioamatoriali e militari

Microonde

Sono molto usate nel wireless anche se quelle a bassa frequenza (2,4 GHz) possono essere disturbate da
apparecchi come il forno a microonde o il cellulare mentre per quelle con frequenza attorno ai 5 GHz
devono essere usate solamente all’interno perché altrimenti potrebbero interferire con collegamenti
satellitari.
Questa tecnologia è molto usata perche poco costosa e non richiede diritti di passaggio l’unico problema è
che non è consentita una trasmisione full-duplex su un’unica frequenza quindi si devono usare due
frequenze,una per la trasmissione e una per la ricezione.
La modalità di trasmissione a banda di spettro usa delle bande di trasmissione che possono essere usate
senza licenze e sono in grado di propagarsi in tutte le direzioni e di attraversare gli ostacoli ma le distanze
di trasmissione sono regolamentate,quindi bisogna usare potenze di trasmissione molto basse.
La modulazione spread spectrum suddivide l’ampiezza di banda in più sottocanali che vengono usati uno
alla volta per trasmettere i segnali.
9
I sottocanali possono anche essere usati in successione (sequenza diretta) o secondo una sequenza
pseudocasuale che permette maggiore sicurezza e riduce la possibilità di interferenze.
La modiltà di trasmissione a banda singlola usa un unico canale nella fascia delle microonde dove però è
necessario ottenere una frequenza dedicata con una licenza.
Sopra i 100 MHz le onde viaggiano in linea retta e possono essere direzionate e quindi per coprire grandi
distanze necessitano dei ripetitori dato ce la terra rappresenta un ostacolo.
Si usano di solito frequenze fino ai 10 GHz e sono sfruttate per la telefonia e trasmissioni televisive.

I raggi infrarossi

Sono onde di lunghezza millimetrica:sono relativamente direzionabili e non passano attraverso i solidi.
Esistono due tecnologie : nella modalità a infrarossi diretti trasmettitore e ricevitore devono essere
perfettamente allineati per potersi scambiare un fascio di luce e la trasmissione è punto a punto;nella
modalità a diffusione la radiazione luminosa emessa da una stazione viene diffusa in tutte le direzioni e
viene quindi riflessa in tutte le altre stazioni con la trasmissione di tipo broadcast

Laser

La tecnologia laser è molto costosa rispetto a quella infrarossi,richiede maggior potenza e disperde
maggior calore.
La luce può essere direzionata producendo un fascio molto stretto e usata a distanze maggiori degli
infrarossi.Come per gli infrarossi i raggi non possono attraversare gli ostacoli e non possono attraversare
pioggia o nebbia.
Poiché la tecnologia è costosa di solito si collegano più stazioni ad un’unica unità di accesso che trasmette
e riceve segnali laser per tutto il gruppo di stazioni.

SATELLITI PER LE TELECOMUNICAZIONI

La comunicazione satellitare nacque sempre per scopi militari,per la comunicazione tra le navi della
marina,dove inizialmente veniva utilizzata la luna come satellite sul quale fare rimbalzare i segnali.
Successivamente vennero adottati saltelliti alrtificiali che rispetto alla luna non solo riflettono il segnale
ma lo amplificano.
Un satellite artificiale contiene diversi transponder (ricetrasmettitori) che ascoltano diverse parti dello
spettro ,per poi ritrasmettere in uscita lo stesso segnale amplificato,su un'altra frequenza.
La posizione e la quota del satellite ne determinano l'area che esso può coprire col proprio segnale che
può variare dai 100 km all'intero pianeta.

 Satelliti geostazionari : si trovano al di sopra delle fasce di Van Allen (forte campo magnetico che crea
interferenze) a 35000 km di altitudine e quindi coprono una vasta area.
Le frequenze di trasmissione sono da 1,5 a 30 GHz con problemi riguardanti le interferenze terrestri e
climatiche.
Un problema che riguarda le trasmissioni satellitari è la sicurezza,infatti ciò che viene trasmesso può
essere ascoltato da tutti a meno che non siano utilizzati metodi di crittografia.

 Satelliti su orbite medie: si spostano lentamente lungo la longitudine percorrendo la circonferenza


terrestre in circa 6 ore;coprono un'area più piccola e quindi sono raggiungibili da trasmettitori meno
potenti.
Un esempio di questi satelliti sono quelli usati per il GPS.
10

 Satelliti su orbite basse : si spostano rapidamente quindi per coprire l'area planetaria ne occorrono
numerosi.Essendo molto vicini alla terra sono raggiungibili da trasmettitori meno potenti e il loro
ritardo nelle comunicazioni è solo pochi millisecondi.

SISTEMA TELEFONICO PUBBLICO COMMUTATAO

Quando Bell nel 1976 inventò il tefefono le comunicazioni venivano effettuate da apparecchio ad
apparecchio collegati con un cavo.
La crescente domanda del mercato portò alla creazione di una rete urbana con al centro una centrale che
si occupava di direzionare le chiamate dalla sorgente al destinatario.
Il modello fu ulteriormente migliorato con la necessità di chiamate interurbane,e venne cosi creato un
sistema analogo dove le centrali che gestivano le chiamate urbane venivano collegate da una centrale di
secondo livello a altre aziende urbane di altre città.
Il metodo di trasmissione inizialmente era di tipo analogico ma con il tempo ha preso sopravvento il
digitale sulle lunghe tratte,meno soggetto a errori quindi più economica,affidabile e facile da gestire.
Per la trasmissione vengono utilizzati i doppini telefonici per le bravi distanze (casa,centralino),mentre
altri generi di cavi per i collegamenti lunghi.
Per interfacciare i computer sulla rete telefonica è necessario un modem che converte i bit del computer in
forma analogica per fare arrivare il segnale alla centrale vicina,che poi lo riconverte in binario per farlo
viaggiare sulla dorsale.
I modem raggiungono una velocità massima di 56 kbps dato che il canale telefonico raggiunge
un'ampiezza di circa 4000 Hz cioè ha un numero di 8000 campioni al secondo.
Il numero di bit per campione è 8 ma uno è da utilizzare per il controllo e quindi moltiplicando i campioni
al secondo per i bit troviamo la velocità di trasmissione.
Per aumentare la velocità della linea sono state introdotte le linee xDSL che sfruttano sempre la linea
telefonica ma utilizzando anche quelle frequenze che nei collegamenti telefonici vengono tagliate da un
filtro (non signficative per la trasmissione vocale).
La velocità di trasmissione dipende dalla vicinanza alla centrale di commutazione e dalla tipologia di
linea : nelle più comuni Asincronous DSL un filtro separa le frequenze vocali per la comunicazione
telefonica e il resto dello spettro di frequenza viene indirizzato verso un modem ADSL che funziona
pressapoco come un'insieme di modem analogici che lavorano in parallelo su diverse frequenze.

SISTEMA TELEFONICO MOBILE

La prima tipologia di sistema telefonico mobile è rappresentata dai telefoni analogici,la prima
generazione,composta inizialmente da delle specie di trasmittenti sintonizzate sulla stessa banda.
Il primo sistema che riscosse successo,è stasto quello cellulare;in Europa era utilizzato il sistema TACS (
Total Acces Comunication Systems).
I sistemi si basavano sulla suddivisione del territorio in celle ognuna delle quali usa un certo insieme di
frequenze per le comunicazioni,differenti dalle celle adiacenti.
In ogni cella cè una stazione base dalla quale trasmettono tutti i telefoni nella cella,che è connessa a uffici
terminali che sono poi connessi ad almeno un ufficio terminale nella rete fissa.
Le frequenze usate sono comprese tra gli 800 e i 900 MHz distriuite in due canali simplex,uno per
ricevere e uno per trasmettere,oltra a canali di controllo per la gestione del sistema.
Ogni telefono ha un proprio numero di serie e un numero telefonico e qualndo il telefono si accende si
registra presso una stazione base e quindi all'ufficio terminale;la registrazione viene ripetuta ogni 15
11
minuti.
Per effettuare una chiamata il telefono trasmette il numero da chiamare e la sua identità alla stazione
base,che informa l'ufficio terminale che trovato un canale libero sul telefono mobile aspetta la risposta del
destinatario.
Ogni telefono quindi ascolta in continuazione un canale di controlloper verificare se ci sono chiamate e
nel caso in cui ci siano gli viene comunicato il canale per la conversazione.
Il canale di comunicazione cambia da cella a cella quindi se durante una chiamata avviene il cambio di
cella cambia anche il canale.
Questo metodo di comunicazione però non garantisce la segretezza dell'informazione dato che con un
ricevitore è possibile ascoltare il tutto.
I telefoni di seconda generazione sfruttano un sistema digitale,anch'esso non standard , chiamato GSM (
Global System for Mobile Comunication)
Questo sistema permette di integrare trasmissione voce e dati e di usare algoritmi di compressione vocale
per una minore richiesta di banda,inoltre è possibile crittografare i dati per una maggiore protezione della
privacy.
La frequenza sul quale lavora è circa 900 MHz ma successivamente fu utilizzata anche la banda a 1800
MHz per una trasmissione dual band.
Lo spettro disponibile è suddiviso in canali da 200 kHz e ogni canale gestisce 8 connessioni diverse e su
ogni canale viaggiano frame composti da 8 slot.
I frame vengono utilizzati oltre che per le comunicazioni anche per controllo e la gestione del sistema.
Per effettuare una chiamata bisogna prenotare uno slot in un canale che attraverso un canale di controllo
viene comunicato a un canale dedicato.
Un canale viene impiegato per controllare l'arrivo di nuove chiamate,un'altro lo utilizza la stazione base
per emettere l'identificazione,e un'altro viene usato dai telefoni per la registrazione alla stazione base.
La terza generazione di telefonia mobile è definita dallo standard internazionale UMTS (Universal
Mobile Telecomunication System).
Viene utilizzata la commutazione di pacchetto e quindi la banda viene utilizzata solamente per l'effettiva
trasmissione di informazioni,quindi anche la tariffazione si basa sui dati scambiati piuttosto che sul
tempo.
La tecnologia W-CDMA permette di raggiungere una capacità di trasmissione fino a 2 Mbit al secondo.
12
3.LIVELLO DATA-LINK
Mentre lo strato fisico si occupa della mezzo di comunicazione all'interno di una rete il livello data-link si
prende carico di più funzioni come gestire gli errori di trasmissione e gestire il flusso di dati per fornire un
definito strato d'interfaccia allo strato network.
Lo strato data-link si occupa anche della tipologia di servizio che può essere affidabile(si devono ricevere
tutti i pacchetti) o non affidabile (i livelli superiori si occupano del problema della perdita di pacchetti) ;la
tipologia di servizio può essere anche connesso o non connesso cioè la possibilità della macchina di
inviare un ack alla ricezione di ogni pacchetto.

SINCRONIZZAZIONE

Questo livello ha il compito di smistare il flusso di byte del nodo ricevente ; i dati vengono divisi
aggiungendo informazioni di controllo all'inizio e alla fine.
Ovviamente nel pc ricevente il livello data-link dovrà ricevere riconoscere la suddivisione dal flusso di bit
fornito dal livello fisico e passarlo al livello superiore.
Dato che lo strato si deve occupare anche della corretta ricezione dei dati , inseriti dei bit di controllo al
momento del'invio ,vengono riconosciuti e utilizzati nella macchina ricevente per controllare i dati.Per
permettere la comunicazione tra i dispositivi tuttavia è necessaria una sincronizzazione :
 Trasmissione sincrona : il flusso di dati viene suddiviso in frame (sequenze di bit ) con un’inizio e una
fine ben definiti da bit denominati flag (che poi vengono anche utilizzati per il controllo degli errori e
del flusso).
Nel caso del bit stuffing una serie ben precisa di bit indica l’inizio di un frame e un’altra ne indica la
terminazione ; nel caso in cui la sequenza ricorra anche all’interno dei dati,viene introdotto prima di
essa un carattere identificativo “escape”,che evita allo strato di confondere i dati per flag.
Un’altra tecnica utilizzata è quella del conteggio caratteri,cioè un flag all’inizio del frame indica quanti
caratteri seguiranno e quindi anche la lunghezza del frame.E’ una tecnica poco utilizzata perché nel
caso in cui non venga interpretato bene un flag , si perde l’inizio del successivo.
Si applicano tecniche che utilizzano i bit di ridondanza a livello fisico,soltanto nelle reti che presentano
queste caratteristiche.
 Trasmissione asincrona : la sincronizzazione è fatta un carattere alla volta, per questo motivo il
ricevitore ha necessità di sapere esattamente l’inizio e la fine di ogni carattere trasmesso. I caratteri
sono trasmessi come stringhe di bit definite nell’insieme degli standard per caratteri.
In queste trasmissioni lo start bit viene inviato sul canale con una serie di impulsi di polarità opposta in
modo che venga subito riconosciuto.
La limitazione dei sistemi asincroni è che i dati vengono trasferiti come se fossero caratteri e dato che
2/10 dei bit sono di start e stop c’è un gravoso overhead.
Inoltre con questa connessione non è possibile la ritrasmissione del carattere nel caso in cui esso sia
ricevuto con degli errori ,con l’inevitabile propagazione di esso.

INIZIO E FINE TRASMISSIONE

Il livello DL potrebbe necessitare di stabilire una connessione prima che un protocollo abbia luogo.
Il setup di una connessione di solito avviene con un meccanismo chiamato handshake. In tale
meccanismo, il mittente manda un messaggio al destinatario con una richiesta di connesione, e
rimane in attesa della risposta. Se la risposta è negativa, il mittente può includere nel pacchetto la
motivazione per cui la connessione viene rifiutata, oppure può esse implicita.
Nel caso in cui, invece, il permesso di connessione venga accordato, la stazione destinataria può
negoziare i parametri per il trasferimento e il controllo del flusso dei dati.
13
INDIRIZZAMENTO

Essendo una rete formata da più dispositivi, sorge la necessità di identificare ognuno di loro in
maniera univoca, in modo che non ci siano perplessità quando si necessita indirizzare un messaggio
a qualcuno di essi. La connessione punto-punto non necessita che sia fisicamente diretta, essa può
essere, come lo è lo nella maggior parte delle LAN, logicamente diretta. In LAN connesse a bus o
ad anello, i dispositivi hanno un canale di trasmissione comune, ma, grazie all’indirizzamento, è
possibile inviare il messaggio all’esatto destinatario di esso.
Diremo infatti che due nodi di una rete sono direttamente connessi se, un i dati vanno dal mittente al
destinatario senza essere modificato nel tragitto.
Un protocollo di livello Data Link comunica con un altro protocollo Data Link attraverso un DL-SAP
(Service Access Point, ossia l’indirizzo di macchina proprio di quel livello).
Questo permette di avere diversi protocolli sulla stssa macchina, ognuno col suo proprio SAP.
Generalmente ogni protocollo DL ha tre tipi di indirizzi:
 Unicast usato per individuare esclusivamente un dispositivo
 Multicast usato per individuare un gruppo di dispositivi. In generale un’istanza di un protocollo DL
può essere membro anche di più gruppi di tipo multicast
 Broadcast usato per trasmettere un D-PDU a tutte le macchine

CONTROLLO ERRORI

Esiste la possibilità che un frame possa essere ricevuto con errori o non essere ricevuto affatto.Per questo
nelle connessioni di tipo sincrono alla ricezione di ogni frame viene fatto il controllo errori e ,
successivamente, viene inviato alla macchina sorgente un “ack” in caso di corretta ricezione ,altrimenti
viene chiesta la ritrasmissione.
Quando viene inoltrato un frame la macchina sorgente fa partire anche un timer per evitare la perdita
d’informazione nel caso di perdita del frame.
Se allo scadere del tempo non è stato ricevuto l’ack ,il frame viene inoltrato di nuovo,con un’opportuno
numero di sequenza (nel caso in l’altro frame venga ritrovato non abbiamo così due frame uguali).
A questo livello un frame è composto da un numero di bit di dati,più dei bit di check,cioè bit ridondanti
usati per la gestione degli errori, e l’insieme di questi due elementi viene detto codeword.
Un insieme di codewords definisce un codice, ed la minima delle distanze di Hamming fra tutte le
possibili coppie di codewords rappresenta la distanza di Hamming per quel codice.
La distanza di Hamming è il numero di bit che bisogna cambiare per passare da una codeword ad un’altra
dello stesso codice.
Per rilevare l’errore in una codeword, sono necessari un numero di bit pari alla distanza di Hamming + 1,
menre per rilevare e correggere l’errore sono necessari un numero di bit pari al doppio della distanza di
Hamming + 1.
Il problema degli errori all’interno del codice inviato può essere risolto in due modi; la codifica a
correzione d’errore prevede l’utilizzo di ulteriori bit per fare in modo che gli errori siano trovati e allo
stesso tempo permette anche la correzione, mentre la codifica a rilevazione d’errore permette solamente
di trovare gli errori, richiedendo il pacchetto al trasmittente nel caso in cui non sia corretto.

Il più semplice esempio di codifica a rilevazione d’errore è il controllo di parità che sfrutta il numero
minimo di bit richiesti da Hamming per la rilevazione di un unico errore sul codice trasmesso.
Infatti con questa tecnica viene aggiunto al codice un bit che rende la sequenza binaria sempre pari
(dispari se si tratta di controllo di disparità) ,però nel caso in cui ho un numero di errori pari non riesco a
individuare l’errore.
14
Una tecnica più raffinata è quella di disporre più sequenze di codice a matrice,in modo di avere un
controllo incrociato su righe e colonne,ma anche questa tecnica non è in grado di rilevare certi tipi di
controlli multipli.

Un’altra tecnica utilizzata nella rilevazione d’errori è quella che utilizza i bit di somma (checksum) , cioè
i bit di dati vengono visti come interi e la loro somma viene indicata da un flag di controllo,che poi verrà
confrontato nel computer ricevente con la somma decimale dei dati ricevuti.

Controllo Ridondanza Ciclico (CRC)

La tecnica più utilizzata per il rilevamento d’errori a livello data-link è il controllo ridondanza ciclico
(CRC),detti anche codici polinomiali.
I bit di dati da inviare vengono considerare come coefficienti (di valore 0 e 1) dei termini di un
polinomio; se “a” rappresenta il numero di bit avremo allora i termini del polinomio compresi tra xªˉ¹ e xº,
dove i coefficienti dei bit che sono a
uno,sono presenti.
Inoltre viene utilizzato un polinomio,detto
generatore polinomiale (G(x)) noto sia al
mittente che al ricevente,i cui bit di ordine
più alto e più basso devono essere 1.
Ai bit di dati vengono aggiunti tanti zeri
quanto la lunghezza del polinomio
generatore - 1,dopodiché si divide il
polinomio ottenuto per il polinomio
generatore.
Il resto si sottrae dal polinomio ottenuto e
cosi abbiamo il frame pronto per l’invio.
Per verificare la corretta ricezione basta
che il ricevente divida il frame per G(x);se
la divisione dà un resto significa che si è
verificato un errore,altrimenti il risultato
dell’operazione ci rappresenta i bit di dati
inviati.

Il ricevitore e il trasmettitore utilizzano lo stesso polinomio generatore che è importante per l’efficacia del
metodo;CRC-32 e CRC-CCIT sono diventati standard e il prmo è proposto dai IEEE in ambito LAN
networking.
L’ampio utilizzo di questo metodo è dovuto all’individuazione degli errori su singolo bit fino a errori
dispari, e anche i burst error (errori che colpiscono intensamente un flusso di bit) con lunghezza minore
del resto.
15
CONTROLLO DI FLUSSO

Un controllo di flusso viene effettuato per impedire al destinatario, di perdere frame per l’eccessiva
velocità del sorgente.
Il controllo dunque risulta necessario per regolare la capacità del canale,per regolare la quantità di risorsa
del destinatario e per la congestione della rete.
Gli approci comunemente usati sono il controllo di flusso tramite feedback,cioè da destinazione invia alla
soregente informazioni per il permesso d’invio o per lo stato della macchina; un altro approccio è il
controllo di flusso tramite riduzione della velocità.

Stop’n Wait

Il metodo stop’n wait è adatto per trasferimenti di dati in una sola direzione : permette di controllare il
flusso di frame in modo che il mittente possa mandare un nuovo frame solo dopo essersi assicurato che
sia stato ricevuto il frame precedente.
Ogni volta che il mittente spedisce un frame,il ricevente deve attendere un ACK,prima di poter inviare un
nuovo frame.
Il tempo totale per l’accesso ai bit di dati ricevuti, è dato dalla somma di tempo propagazione,
trasmissione e processamento.

Il tempo di propagazione è ottentuto dal rapporto tra il numero di bit inviati e la capacità del canale,il
tempo di trasmissione è dato dal rapporto della distanza e della velocità di propagazione del mezzo
trasmissivo e il processamento è il tempo che impiega la macchina a organizzare i dati.
Questa tecnica è molto semplice da implementare,ma non sfutta sempre a pieno le caratteristiche del
canale perché nei casi in cui il destinatario è in grado di processare diversi pacchetti, in realtà lui ne
acquisisce uno alla volta.
Anche se il canale è di tipo simplex per avere una trasmissione in entrambe le direzioni si necessita una
rigida alternanza di flusso,dove la comunicazione avviene alternata (prima una macchina poi l’altra).
Questo protocollo assume qualche modifica nel caso in cui il canale sia particolarmente rumoroso
(disturbato); per ovviare al problema di perdita o mancata ricezione di pacchetti, si utilizza un timer che
permette alla sorgente di rinviare il frame, nel caso in cui il tempo passato all’invio sia più che sufficiente
per la ricezione.
16
Un’ulteriore problema si può verificare nel caso in cui venga perso un ACK,perché il sorgente
rinvierebbe lo stesso frame pensando che allo scadere del timer non sia arrivato; questo arrivato a
destinazione verrebbe visto come un normale frame e passato al livello successivo.
Per risolvere questo problema ad ogni ACK viene associato un bit, alternati uno ad uno, e in caso di
mancata ricezione il sorgente se ne accorgerebbe subito

Sliding Windows

Nella tecnica Sliding Windows, i frame sono numerati , e una window size indica alla sorgente il numero
massimo di frame che può ricevere per volta e al destinatario il numero massimo di frame che può inviare
per volta.
A ogni frame ricevuto il destinatario invia un ACK, che permette ala sorgente di liberare il posto nel
buffer tenuto occupato per un’eventuale ritrasmissione e ,di inviare un nuovo frame.
Se i frame non vengono ricevuti in successione,un frame non viene passato al livello superiore finchè tutti
i frame di numero inferiore non sono stati ricevuti.
Una volta ricevuti tutti frame richiesti ,la window size assume i valori numerici successivi che
contraddistinguono altri frame.

Alla partenza di ogni frame dal mittente,viene fatto partire un timer,in modo che se il frame non arrivi a
destinazione viene automaticamente rispedito allo scadere del tempo.
Inoltre se viene ricevuto un frame che non rientra in quelli mancanti della window size, esso viene
memorizzato in un cella di memoria,in attesa che la window size accetti il suo valore.
Una differente versione del protocollo (sliding window a 1 bit) la si ha quando abbiamo entrambe le
window size dimensionate a 1.In questo caso si ha una trasmissione simile alla stop’n wait,viene inviato
un pacchetto e viene inviato il successivo dopo la ricezione dell’ACK.
Per migliorare l’uso della banda di trasmissione viene usata la tecnica del piggybacking che consiste
nell’inviare, in una connessione full-duplex, i bit dell’aknowlegment in un campo del frame da
inviare,mandando cosi solo un frame invece di due.
Nel caso venga utilizzato un timer, se alla scadenza di questo il frame contenente l’ACK non è stato
ricevuto deve essere spedito l’ACK singolarmente per evitare che il frame di dati sia spedito due volte.
Con la tecnica go back n viene migliorato il piggybacking perché,nel caso di tragitti molto lunghi,
avremmo dei tempi di attesa considerevoli, con una grossa perdita di banda.
Per evitare questo viene dimensionata la window size in modo che durante l’invio dell’n-esimo frame,
ricevo anche il pacchetto con l’ACK del primo, in modo da avere una trasmissione continua con pochi
tempi di attesa (pipelining).
In caso di errore il destinatario invia il pacchetto,senza però includere l’ACK,richiedendo cosi al sorgente
di trasmettere tutto il flusso di dati dall’errore in poi.
Un altro metodo per la correzione di errori,consiste nel salvare in un buffer i dati successivi all’errore e
rinviare solamente il frame danneggiato.Prende il nome di ripetizione selettiva.
17

PROTOCOLLI DATA LINK

Hight Level Data Link Control (HLDC)

Permette di gestire due tipi di collegamento :


 un collegamento punto a punto tra due stazioni paritetiche : utilizza un protocollo full-duplex in cui
ogni stazione può trasmettere quando vuole.
 un collegamento multipunto tra una stazione primaria e altre secondarie : la modalità è chiamata
sbilanciata e utilizza un protocollo half-duplex;la stazione primaria invia comandi e le stazioni
secondarie inviano risposte.Può essere usata anche tra due sole stazioni dove una mantiene la
responsabilità del collegamento.
Questo protocollo è orientato al bit:una particolare sequenza di flag indica l’inizio e la fine di un frame, e
si usa la tecnica bit stuffing.

I primi 8 bit indicano l’inizio del frame,il secondo set l’indirizzo del nodo ricevente mentre i bit di
controllo indicano il contenuto del frame (controllo o dati) e contiene informazioni come i numeri
progressivi e gli hack.
La serie dei bit dati,sono seguiti da un campo checksum dove viene indicato il CRC poi un’altra serie di
bit indica la fine dei bit.
Il tipo di servizio può essere connesso e affidabile o non connesso non affidabile.
Nel servizio connesso e affidabile vangono usati tre tipi di frame identificati dal campo di controllo:
frame di informazione che contengono i dati da trasmettere, frame di gestione per il controllo del flusso e
frame non numerati usati per iviare comandi a scopo di controllo.
Nel servizio non connesso e non affidabile vengono usati frame non numerati anche per trasmettere dati.

SLIP e PPP

Vengono usati nella comunicazione punto a punto tra due router o più spesso nella connessione tra un
utente e un provider.
SLIP (Serial Line Internet Protocol ) è stato ideato per consentire ai pacchetti TCP/IP di essere trasferiti
su linee telefoniche, prendendo un pacchetto IP, inserendo un frame e lo invia sulla linea.
E’ un protocollo orientato al byte semplice da implementare ma che presenta molte limitazioni come la
non sopportazione dell’assegnazione dinamica degli IP, l’autenticazione e la gestione degli errori.
Il protocollo PPP (Point to Point Protocol), è lo standard internet usato per i collegamenti punto a
punto.Permette di trasportare più protocolli su un’unica connessione, la negoziazione delle opzioni di
connessione, l’assegnazione dinamica degli indirizzi IP, la gestione degli errori e l’autenticazione.
Inoltre questo protocollo utilizza altri due protocolli; LCP che permette di stabilire il collegamento e
negoziare le relative opzioni e NCP che negozia le opzioni del livello di rete e configurare il protocollo
IP.
18
La struttura del protocollo prevede un primo flag per indicare l’inizio del frame, un campo indirizzo
impostato per trasmettere in broadcast, un byte di controllo che indica il tipo di frame (non numerato) e
un byte per indicare quale dei protocolli contiene nel campo dati.
Per il resto il protocollo contiene un campo dati variabile (genericamente 1500 byte),una checksum per il
controllo degli errori e il bit di chiusura.
19
4.SOTTOSTRATO MAC
Questo sottostrato si occupa di tutte le connessioni di tipo broadcast e dei loro protocolli, e più
precisamente il problema è quello di determinare tra delle entità che vogliono comunicare sullo stesso
canale quale delle quali ha precedenza di utilizzo del canale.

ASSEGNAZIONE DEL CANALE

Assegnazione statica

Genericamente per l’assegnazione viene utilizzato tradizionalmente il multiplexing a divisione di


frequenza, cioè se ci sono N utenti la banda viene divisa in N parti uguali e ogni utente ne riceve una.
Non c’è alcuna interferenza ta gli utenti e se il numero di utenti è piccolo e costante questo metodo si
rivela semplice ed efficace.
Ma data la variabilità del traffico in una rete se questa no ha condizioni stabili, avremo con questo metodo
un grande spreco di banda nel caso in cui degli utenti non trasmettessero,inoltre se il numero degli utenti
variasse frequentemente avremmo il problema della continua assegnazione di banda.
Anche nel caso del multiplexing a divisione di tempo, dove a ogni utente viene assegnato l’Nesimo
intervallo temporale,se però un utente non lo utilizza questo viene sprecato.
Nessuno dei metodi tradizionali di assegnazione statica del canale funziona bene con il traffico
irregolare,quindi vengono utilizzati metodi di assegnazione dinamica.

Assegnazione dinamica

Prima di parlare di assegnazione del canale dobbiamo fare qualche premessa :


 Modello della stazione : il modello è composto da N stazioni indipendenti, ognuna delle quali genera
frame in trasmissione.
Una volta generato un frame la stazione rimane bloccata finchè il frame non è stato trasmesso con
successo.
 Presupposto del canale singolo : un solo canale è adibito per tutte le trasmissioni e ricezioni; le
stazioni sono tutte uguali, però il software di protocollo può assegnare priorità diverse.
 Presupposto della collisione : se due frame vengono inoltrati contemporaneamente il loro contenuto
risulterà distorto, e per ripristinarlo occorre una ritrasmissione.
 Tempo continuo o diviso in intervalli : lnel primo caso la trasmissione di frame può iniziare in
qualsiasi istante, e non esiste un orologio che divide il tempo in intervalli discreti.
Nel secondo caso il tempo è diviso in intervalli discreti e la trasmissione di un frame coincide con
l’inizio di un intervallo.
 Occupazione del canale verificabile o non verificabile : nel primo caso prima di tentare la
trasmissione le stazioni sono in grado di capire se il canale è occupato e finchè è occupato non viene
utilizzato.
Nel secondo caso le stazioni non sono in grado di capire se il canale è occupato e si limitano alla
trasmissione casuale.
20

PROTOCOLLI AD ACCESSO MULTIPLO

ALHOA puro

Questo protocollo consente agli utenti di trasmettere ogni volta che hanno dati da inviare, e grazie alla
proprietà di feedback della trasmissione broadcast,un trasmettitore può sempre capire lo stato del frame,
ascoltando il canale e nel caso di collisione lo ritrasmette.
Nel caso non funzioni il sistema di feedback il trasmettitore attende per un tempo casuale poi lo
ritrasmette (il tempo casuale deve essere maggiore del tempo che impiega per arrivare a destinazione).
Nel caso di collisione con un altro pacchetto entrambi devono essere ritrasmessi,quindi questo protocollo
per essere utilizzato efficacemente deve esserci un rapporto capacita del canale/traffico molto buono per
evitare collisioni continue.

ALHOA slotted

Il tempo viene diviso in intervalli chiamati slot e ogni stazione può provare a spedire un frame solo
all’inizio di ogni slot.
Le stazioni però devono essere sincronizzate tra loro,in modo che gli slot inizino contemporaneamente;
con questo metodo l’efficienza del canale circa raddoppia rispetto l’altro metodo.

PROTOCOLLI AD ACCESSO MULTIPLO CON RILEVAMENTO DELLA PORTANTE

In questo protocollo le stazioni rimangono in ascolto della portante, e in base alle azioni intraprese dalle
altre stazioni, adattano il loro comportamento.

CSMA persistente e non persistente

Il protocollo CSMA 1-persistente (Carrier Sense Multiple Access), quando ha dei dati da trasmettere per
prima cosa ascolta il canale per vedere se qualcun altro sta trasmettendo.
Se il canale è occupato, il protocollo attende che esso si liberi; se il pacchetto subisce poi collisioni la
macchina attende per un periodo casuale prima di ritrasmettere.
Il protocollo si chama 1-persistente perché trasmette con probabilità 1 quando il canale è libero.
Un fattore importante in questo protocollo lo ha il tempo di propagazione : esiste infatti una piccola
possibilità che dopo che una stazione inizi l’invio di un frame, un’altra sia pronta ad inviare e trovi il
canale libero nel caso in cui il feedback non sia ancora giunto alla seconda stazione.
Anche se il tempo di propagazione è uguale a zero, abbiamo la possibilità di collisioni nel caso in cui una
stazione trasmette e due sono in attesa; alla fine della trasmissione entrambe inizierebbero l’invio di dati
andando in collisione.
21
Per evitare questi problemi è stato introdotto il CSMA non persistente; prima di trasmettere ogni stazione
controlla il canale e nel caso sia occupato, controlla lo stato della portante dopo un tempo casuale.Questo
permette un’utilizzo migliore del canale ma allunga i ritardi.
Un’altra variante del CSMA è il p-persistente che si applica ai canali divisi in intervalli temporali; la
stazione ascolta il canale all’inizio di ogni slot e se è libero trasmette con probabilità p,altrimenti aspetta
lo slot successivo e trasmette con probabilità 1-p.
Se la stazione trova il canale occupato, attende per un periodo casuale poi ritrasmette.

CSMA/CD

Questo tipo del protocollo CSMA prevede collision detection, ovvero la stazione ascolta il canale non
solo prima di trasmettere, ma anche durante sta trasmettendo; in questo modo riesce ad accorgersi subito
quando avviene una collisione e in questo caso può bloccare la trasmissione.
Questo protocollo è utilizzato nelle LAN Ethernet.

PROTOCOLLI SENZA COLLISIONE

Questi protocolli risolvono la contesa del canale senza generare collisioni.

Protocollo a mappa di bit

Con questo protocollo, ogni periodo di contesa è diviso in N intervalli, quindi se la stazione 0 deve
trasmettere dei dati, deve attendere l’intervallo 0, per inviare un bit a 1 e prenotare la trasmissione.
Una volta trascorsi gli N intervalli ogni stazione conosce le stazioni che vogliono trasmettere e quindi in
ordine sequenziale numerico inizia la trasmissione.
Una volta terminato il periodo a prenotazione inizia un altro periodo di contesa; questi protocolli sono
anche detti a prenotazione.
Questo protocollo però non si adatta bene alle reti formate da molte stazioni , il tempo del periodo di
contesa sarebbe molto elevato.

Conteggio Binario

Con questo protocollo una stazione che desidera utilizzare il canale deve comunicare a tutti il proprio
indirizzo sotto forma di stringa binaria, partendo dai bit di ordine più elevato.
22
Tutti gli indirizzi hanno la stessa lunghezza e i bit che occupano la stessa posizione negli indirizzi di
stazioni diverse sono elaborati mediante l’operatore logico OR.
Per evitare conflitti si deve applicare una regola di arbitraggio: la stazione rinuncia alla trasmissione se si
accorge che, unendo i valori binari trasmessi, con l’OR, sono maggiori del valore del bit di ordine più
elevato.

01010 , 0100 , 1001 , 1010 tentano di occupare il canale


0 0 1 1 primi bit trasmessi 0 or 0 or 1 or 1 →1 passano al calcolo successivo solo indirizzi 1xxx

Una volta terminata l’unione dei termini operati con l’OR, si ha l’indirizzo della prima stazione
trasmittente, e al termine della trasmissione si effettua nuovamente il calcolo.
Questo metodo ha la caratteristica di distribuire circolarmente la possibilità di trasmettere dato che i
numeri vengono permutati circolarmente dopo ogni trasmissione.

PROTOCOLLI A CONTESA LIMITATA

Dividono come prima cosa le stazioni in gruppi, dove solamente ai membri di un gruppo X, si possono
contendere l’intervallo X.
Le stazioni vengono divise in modo appropriato è possibile ridurre il livello di contesa per ogni intervallo,
in modo di stare sempre più vicini alla ascissa nel grafico sottostante.

Al crescere di stazioni assegnate allo stesso intervallo aumenta la probabilità di una collisione,ma il
tempo per analizzare la mappa di bit diminuisce.

Adaptive Three Walk

In questo protocollo le stazioni vengono viste come foglie di un’albero binario.


Ogni nodo di bit è associato a qualche particolare nodo dell’albero. In caso di collisioni la ricerca
continua in modo ricorsivo con gli elementi figli posti a sinistra e destra del nodo.
Se un intervallo di bit è libero oppure se una sola stazione trasmette durante quel periodo, la ricerca del
suo nodo può interrompersi perché tutte le stazioni pronte sono state individuate.

Protocolli WDMA

Per consentire trasmissioni multiple contemporanee, lo spettro è diviso in canale (bande di lunghezza
d’onda).Questo protocollo WDMA (Wavelength Division Multiple Access ), a ogni stazione sono
assegnati due canali: un canale stretto è utilizzato come canale di controllo per trasmettere segnali alla
stazione, e un canale più largo consente alla stazione di trasmettere frame di dati.
Ogni canale è diviso in gruppi di intervalli temporali (slot).
23
Sia m il numero di intervalli presenti nel canale di controllo e n+1 il numero di intervalli nel canale dati; n
servono per i dati mentre l’ultimo è utilizzato dalla stazione per comunicare il proprio stato (cioè se
entrambi i canali sono liberi).
La sequenza di intervalli si ripete senza fine in entrambi i canali,con un clock globale per la
sincronizzazione.
Il protocollo supporta traffico a velocità dati costante orientato alle connessioni,traffico datagram e
traffico a velocità dati variabile orientato alle connessione.
In questo protocollo ogni stazione ha due trasmettitori e due ricevitori : i trasmettitori servono per
trasmettere sul canale di controllo (sintonizzabile) delle altre stazioni,l’altro per trasmettere i frame di
dati.
I ricevitori vengono a loro volta per ascoltare il canale di controllo e i dati da ascoltare(sintonizzabile),
cioè ogni stazione rimane in ascolto sul proprio canale di controllo per rilevare le richieste in arrivo per
sintonizzarsi poi con la lunghezza d’onda del trasmettitore.

IEEE 802

Da un progetto dell’inizio degli anni ’70 venne proposto uno standard chiamato Ethernet, dal quale fu
derivato lo standard IEEE 802 che descrive lo strato fisico e lo strato data-link.
Lo standard si occupa quindi della topologia della rete, dei mezzi di trasmissioni utilizzati ,del metodo di
accesso al canale, del controllo errori, framing e controllo di flusso.
Lo standard è diviso in più parti specifiche:

 802.1: definisce le caratteristiche generali degli standard per le reti locali e metropolitane e per
l’interoperabilità tra reti diverse.
 802.2: definisce il sottolivello LLC comune a tutte le reti 802, ovvero del controllo del flusso.Le reti
quindi vengono viste alla stessa maniera dal livello network.
 802.3: descrive le reti Ethernet,già precedentemente costruite, con modalità di trasmissione half
duplex,velocità a 10Mbps e con metodo di accesso CSMA/CD.
 802.4: descrive le reti Token Bus
 802.5: descrive le ret Token Ring; è caratterizzata da una topologia ad anello, dove le stazioni
trasmettono utilizzando un token di controllo, che da l’accesso all’anello.
Una stazione quando deve trasmettere inserisce un token in un frame vuoto (token bit a 1) , inserisce i
dati e un’identificatore del destinatario che, individuato l’indirizzo, prende i dati e setta nuovamente il
token a 0, in modo che la sorgente noti la avvenuta ricezione.

802.3 : ETHERNET

10BASE5

Per questo tipo di ethernet viene utilizzato un grosso cavo coassiale, con connessioni “vampire tap” ogni
2,5 metri, cioè denti che perforano il materiale isolante fino ad insidiarsi nel core del cavo.
Questa rete è di topologia a bus, usa baseband e supporta segmenti fino a 500 m; un transceiver si occupa
della connessione tra macchine e del CSMA/CD.

10BASE2

Questa ethernet usa connettori standard BNC e l’elettronica per carrier sense e collision detenction si
trova nella scheda di rete.
24
Vengono supportati segmenti fino a 185 metri e ogni segmento tiene al più 30 macchine, e la topologia
della rete è a bus; ogni stazione è collegata al bus grazie a un connettore a T che permette la propagazione
del segnale in entrambe le direzioni.
questa connessione è molto economica ma difficile da gestire dato che un problema di connessione
disturba l’intero segmento.

10BASET

In questo caso ogni cavo UTP va inserito in un Hub per facilitare la connessione/disconnessione di una
macchina senza distruggere la connettivita,con lo svantaggio di 100 metri massimi di segmento.
La topologia è a stella,anche se dal punto di vista logico è sempre a bus, dato che l’Hub invia il segnale a
tutte le stazioni .
Con la tecnica di trasmissione differenziale; la coppia di fili (+,-) annulla il rumore che si crea sul canale
dato che il disturbo agisce in modo simmetrico.

10BASEF

Vengono utilizzate fibre ottiche, quindi i cosi sono maggiormente elevati,ma unica scelta per collegare
Hub molto distanti.Immune da rumore e intercettazioni.

CODIFICA MANCHESTER

La codifica Manchester usa due livelli di tensione per trasmettere ogni bit; un bit positivo è codificato da
una transizione da livello alto a basso,da basso a altro per un bit negativo.
L’assenza di variazione indica una violazione della codifica e viene utilizzata per delimitare i frame.
Questa codifica permette di facilitare la sincronizzazione ma ha lo svantaggio di richiedere il doppio della
larghezza di banda, dato che gli impulsi sono la metà del bit time
25
INDIRIZZI

Preamble sono 7 btes che valgono 10101010 utilizzati per favorire la sincronizzazione, dopodiché si ha il
bit di start.
Gli adress sono tutti a 6 bytes e indicano il MAC-adress, l’indirizzo univoco che contraddistingue ogni
scheda di rete (MAC adress-globali) .
Con i bit dell’indirizzo si risale anche al tipo di comunicazione multicast o broadcast.
Il campo successivo indica la lunghezza del campo dati che può arrivare fino a 1500 bytes e il campo Pad
serve per aggiungere bytes nel caso in cui la lunghezza del campo dati sia inferiore a 46 bytes; avere una
lunghezza minima previene che una stazione completi la trasmissione prima che il primo bit sia arrivato a
destinazione (evita collisioni nel percorso), dato che la sorgente non si accorgerebbe di eventuali
collisioni.
L’ultimo campo è il checksum, contenente un CRC in grado solamente di trovare l’errore.

BYNARY EXPONENTIAL BACKOFF

In caso di collisione il frame viene trasmesso dopo un tempo random.


Dopo la collisione il tempo viene diviso in slot di lunghezza uguale al peggior caso di tempo di
propagazione sul cavo.
Dopo la prima collisione ogni stazione ha 2^1 slot time nei quali può provare a rinviare i dati (la scelta
dello slot time è random), e nel caso di un’altra collisione ogni stazione ha 2^2 slot time nei quali può
provare ad inviare; il numero di slot time nei quali la sorgente può provare a inviare viene incrementato
finchè avviene il trasferimento.
Se le collisione successive sono più di 15 il controller avvisa i livelli superiori di non poter effettuare la
trasmissione; in questo modo si evita di aumentare gli slot time avendo notevoli tempi d’attesa, nel caso
in cui le stazioni fossero troppe.

LAN LOGICHE

Talvolta si può avere la necessità di separare le lan per funzione, senza essere legati dalla disposizione
fisica; per questo sono state definite le VLAN
Le VLAN sono riconosciute da un calcolatore come comune rete locale, anche se il mezzo trasmissivo è
internet o una linea dedicata .
Queste reti devono quindi garantire sicurezza e privacy come in una reale rete LAN,per questo viene
creato un tunnel sicuro tra le due macchine che devono comunicare.
I protocolli maggiormente diffusi sono IPSec e TSL che sfruttano i pacchetti IP per incapsulare dati
crittografati (Diffide-Hellman,MAC etc.)
Per evitare attacchi come Man-in-the-middle prima di effettuare la comunicazione i due host eseguono
un’autenticazione.
26
802.3U FAST ETHERNET

100BASET4

Deve essere usati un cavo UTP di almeno cat3, che utilizza tutte le 4 coppie di cavi interni a 25 MHz.
Una coppia di fili è sempre usata dalla stazione all’hub, un’altra sempre usata dall’hub alla stazione,
mentre le altre due sono orientabili a seconda della direzione di trasmissione.
Viene usata una codifica Ternary signal, ovvero in un clock il filo può contenere i valori 0,1 o 2 e quindi
con 3 coppie posso avere 27 simboli diversi, quindi nella codifica a 4 bit ne avanzano per la
rindindanza.E’ chiamato anche 8B/6T (8 bits/6 trits).

100BASETX

Devono essere usati cavo UTP di cat. 5 e di lunghezza massima di 100 metri.
Per la comunicazione vengono usati due coppie di cavi, utilizzati per una trasmsissione full-duplex e i
cavi possono trasmettere e ricevere dati a 100 Mbps nello stesso momento.
La codifica utilizzata è la 4B/5B che accetta gruppi da 4 bit di dati e li codifica a simboli a 5 bit per la
trasmissione.Con 5 bit sono possibili 32 codici: 16 i simboli esadecimali, 4 bit utilizzati per controllo
della trasmissione e i rimanenti sono indefiniti.Per consentire trasmissioni a 100 Mbps, sul cavo abbiamo
una velocità di 125 Mbps.

100BASEFX

Usa due cavi in fibra ottica multimodale, uno per ciascuna direzione, di lunghezza massima 400 metri.
Il sistema è full-duplex e usa lo schema di trasmissione di 10BaseTx con NRZI signaling.

100BASE2

Venne introdotto questo tipo di rete per avere una rete a 100 Mbps su due coppie di cavo cat.3.
E’ necessario però un DSP complicatissimo per gestire l’endoding; sui cavi infati viene usata una codifica
PAM 5x5 con 25 Msimboli/sec che se moltiplicaa al pattern a 4 bit ci restituisce la velocità di 100
Mbps.E’ poco usata perché più economico ricablare la rete con cavi cat.5.

802.3Z GIGABIT ETHERNET

Il nome indica una rete a 1000 Mbps ma realmente usa uno schema di trasmissione 8B/10B quindi la
velocità effettiva è di 800 Mbps.
Si possono usare sia in modo ful-duplex che half-duplex: nel primo caso ho uno switch centrale e tutte le
linee sono bufferizzate e posso usare il canale in ogni istante.
Nel caso di half-duplex si devono gestire le collisioni con lunghezza minima di 65 byte e ridurre il
diametro a 25 metri e per ovviare a questo problema si puo utilizzare il carter estension (estendo via
hardware il frame minimo a 512 byte) o frame bursting (il sorgente concatena più frame fino ad avere una
lunghezza di 510 byte).

1000BASE T

Vengono usate quattro coppie di un cat.5 per trasmettere 4 simboli in parallelo, dato che è troppo difficile
mantenere temporizzazioni dei dati di un nsec.
27
Ogni simbolo è codificato usando uno dei 5 livelli di tensione disponibili più uno speciale segnale di
controllo, pertanto sono inviati 2 bit di dati per doppino, cioè 8 per ciclo di clock che moltiplicati per il
clock (125 MHz) ci danno la velocità di 1 Gbsp.

802.3ae 10GE

Mantiene lo stesso formato di frame di 802.3 e offre interfaccia fisica si a per LAN che per WAN.
I cavi utilizzati sono tutti in fibra ma con speciali doppini cat.6a è possibile anche effettuare una
connessione 10 GBase T.

COMPONENTI DI RETE

Bridge

Quando si connettono insieme molte stazioni che trasmettono insieme il traffico aumenta fino alla
saturazione, quindi si divide la rete in gruppi di macchine che devono parlare tra loro.
Viene introdotto così un dispositivo detto bridge che connesso a entrambe le reti osserva tutto il traffico, e
registra tutti i MAC adress appartenenti alle due reti.
Questo dispositivo smista il traffico, inviando i pacchetti destinati alle reti interessate e evita di inoltrare
a tutte le reti pacchetti i cui indirizzi sono nella stessa rete.
Pacchetti destinati a reti sconosciute vengono inviati a tutte le reti e così anche per messaggi broadcast.

Switches

Essenzialmente è un bridge con molte porte, e viene utilizzato anche con una macchina per porta dato che
le collisioni sono impossibili.
Se ogni porta ha un buffer per tenere i pacchetti in arrivo e partenza, tutte le porte possono trasmettere e
ricevere frames nello stesso momento, permettendo trasmissioni full-duplex.

Repeater

Sono oggetti analogici che connettono due segmenti di cavo, amplificando il segnale per poi rimetterlo
nella rete; sono quindi usati per estendere la lunghezza delle reti.

Hub

L’hub serve per connettere due o più nodi in una topologia con configurazione a stella,quindi
ritrasmettere ciò che riceve su una porta su tutte le altre porte.
Se arrivano due frame assieme questi collidono, dato che è un unico dominio di collisione.

Router

Un router connette diverse lan e filtra gli indirizzi in maniera simile a quella degli switches, con la
differenza che in router gestiscono anche gli indirizzi logici.
Servono dunque a conservare i dati,scegliere i percorsi di routing e trasmettono i datagrammi.
Il router è in grado di connettere tra loro diversi tipi di reti, e di separare i broadcast, in modo da
alleggerire il traffico.
28
Gateway

Vengono usati per connettere computer con due protocolli di trasporto diversi, quindi deve capire
entrambi i protocolli, prendere il pacchetto di uno e riformattarlo per il secondo.

802.11 : WIRELESS LAN

Le wireless LAN si possono configurare con o senza stazione base e lo standard prevede ad entrambe le
soluzioni.
Lo standard 802.11 supporta il metodo infrarossi e sistemi radio a bassa potenza basati sulle tecniche
FSSS e DSSS e utilizzano parte dello spettro dove non sono necessarie licenze :
Infrarosso : usa radiazione diffusa e 0.85 o 0.95 micrometri e supporta velocità a 1 e 2 Mbps.
FHSS : usa 79 canali da 1 MHz partendo da 2,4 GHz e si usa un generatore di numeri pseudocasuali per
produrre la sequenza con cui le frequenze si susseguono, questo contemporaneamente per tutte le stazioni,
ma non per un tempo inferiore ai 400 millisec (tempo rotazione)
Lo svantaggio principale di questa trasmissione è la banda ridotta, ma i continui salti di banda lo rendono
molto sicuro e stabile.
DHSS : anch’esso opera a 1 o 2 Mbps e utilizza uno schema simile al CDMA

802.11 A

Prima WLAN ad alta velocità usa un metdo OFDM per distribuire fino a 54 Mbps a 5 GHz :
OFDM (Ortoghonal Frequency Division Multiplexing) : questo sistema utilizza 52 frequenze e ne
impiega 48 per i dati e 4 per la sincronizzazione, e questo offre vantaggi di resistenza alle interferenze e la
possibilità di utilizzare bande non contigue .
La velocità effettiva di trasferimento è di circa 20 Mbps e i datii sono codificati in simboli di 299 bits.

802.11 b : HR-DSSS

Supporta velocità di 1, 2, 5.5 e 11 Mbps ma gran parte della banda viene sacrificata per l’overhead di
CSMA/CD quindi la massima velocità è al massimo 7 Mbps con frequenze a 2,4 GHz.
E’ piu lento dell’802.11 a ma il campo d’azione è circa 7 volte più ampio, caratteristica molto importante.

802.11 g

Versione migliorata di 802.11b che utilizza il metodo OFDM ma opera nella banda dei 2.4 GHz, il data
rate massimo è di 54 Mbps (24.7 netto).

802.11 n

Modifica allo standard per un data rate attorno a 200Mbps fino a 540 Mbps; utilizza Multiple
Input,Multiple Output , cioè diverse antenne riceventi e trasmittenti per aumentare il troughput usando
multiplexing
29
PROTOCOLLO DEL SOTTOSTRATO MAC

Le trasmissioni che avvengono parte in una cella possono non essere ricevute in un’altra parte della stessa
cella, quindi supporta due modalità operative :
 DCF (Distrubuited Coordination Function) : non utilizza nessun tipo di controllo centrale e
utilizza CSMA/CA o CSMA/CD dove sono controllati sia il canale fisico che quello virtuale.
 PCF (Point Coordination Function) : usa la stazione base per controllare tutta l’attività nella cella;
questa modalità utilizza CSMA/CD con controllo MECAW e utilizza il controllo di presenza del
canale.

Nel caso si utilizzi CSMA/CA se una stazione vuole trasmettere ascolta il canale, e se non c’e traffico
invia l’intero frame non curandosi della sua ricezione, invece attende un tempo random per ritrasmetterlo
in caso di collisione.
Con CSMA/CD (nel caso di comunicazioni DCF), due stazioni comunicano anche se nel raggio di
trasmissione ne sono presenti altre; per prima cosa viene effettuata una richiesta (RTS), e come risposta
viene inviato un frame CTS.
La stazione trasmettente allora inizia la trasmissione facendo partire un timer e la stazione ricevente deve
confermare la ricezione del frame di dati con una ACK prima che scada il timer,altrimenti si riparte
dall’inizio.
Se nel raggio di comunicazione sono presenti anche due stazioni non interessate alla comunicazione, esse
dal RTS o dal CTS intuiscono una comunicazione che non li riguarda, e non utilizzano quella determinata
frequenza per un determinato periodo di tempo.
Un altro problema che riguarda le reti wireless è l’eccessiva rumorosità, per questo i frame vengono divisi
in parti più piccole, ognuna delle quali numerata e dotata di un proprio checksum di controllo.
Quindi una volta acquisito il canale due stazioni inviano un burst di frammenti invece di frame lunghi,
che aumenta la capacità del canale.

Utilizzando sempre CSMA/CD ma nella modalità PCF l’ordine di trasmissione è sempre controllato dalla
stazione base, che sonda le altre stazioni chiedendo se hanno frame da trasmettere.
Non esiste il problema della collisione dato che la stazione base gestisce l’ordine di trasmissione, per
questo invia frame di segnalazione broadcast riguardanti tutti i parametri del sistema.
Un altro problema riguardante reti wireless, è che alcuni dipositivi per problemi energetici potrebbero
venire temporaneamente disattivati: per ovviare a questo la stazione base memorizza in un buffer i dati
che invierà al risveglio.
Quando un frame è stato spedito deve passare un certo tempo morto prima che un’altra stazione possa
trasmettere ed esistono più tipologie di intervalli:
 SIFS (ShortestInterFrameSpacing) : Permette a due stazioni in dialogo di avere una chance di
andare per prime. Es CTS in risposta a RTS o ACK di un frame o di un frammento
30
 PICS: Solo una stazione ha il diritto di rispondere in un SIFS, se non lo fa e passa un PICS (PCF
Interframe Spacing) la stazione base può mandare un poll frame o un beacon frame.
 DIFS: DCF InterFrameSpacing– Se la stazione base non ha nulla da dire, qualunque stazione può
provare ad acquisire il canale per mandare un nuovo frame.
 EIFS (ExtendedInterFrameSpacing) Usato da una stazione che ha ricevuto un frame rovinato.
Questo evento ha la priorità più bassa dal momento che il ricevitore potrebbe non capire quello
che sta succedendo è meglio che aspetti un po’ prima di interferire in dialogo.

Frame di dati

Il formato dei frame di dati è composto da un primo campo denominato frame control che è composto da
11 frame secondari, che indicano i vari dettagli del protocollo utilizzato.
Nel secondo campo viene indicata la durata dell’occupazione del canale, e nei successivi campi vengono
indicati gli indirizzi di sorgente, destinazione e anche le stazioni di partenza e arrivo del traffico tra celle.
Il campo frequenza permette di numerare i frammenti, poi segue il campo dati (max 2312 byte) e la
checksum.

SERVIZI

Lo standard stabilisce che una WLAN deve fornire 9 servizi divisi in 5 di distribuzione e 4 servizi di
stazione, cioè i primi legati alla gestione dei membri di una celle e alle iterazioni con le stazioni al di fuori
della cella, i secondi legati alle attività all’interno della cella.

 Associazione: Usato da una stazione mobile per connettersi alla stazione base non appena entra
nel suo radio range. La stazione annuncia la sua identità e capacità (data rate, bisogno di PCF,
power management). La stazione base può accettare o rifiutare.
 Disassociazione: La stazione o la base si possono disassociare e rompere la loro
relazione.
 Riassociazione: Una stazione può cambiare la stazione base preferita, per esempio
spostandosi da una cella all’altra. Se usata bene nessun dato dovrebbe andare perso
(ma sappiamo che 802.11 come Ethernet è best effort)
 Distribuzione: Determina come ruotare i frame mandati ad una base station. Se la
destinazione è locale alla base station si possono mandare via radio, altrimenti
devono essere mandati via cavo
 Integrazione: Se un frame deve essere mandato ad una rete non 802.11 con uno
schema di indirizzamento o di framing diverso, questo servizio gestisce la traduzione
richiesta dalla rete di destinazione.
31
 Autenticazione: Una stazione deve autenticarsi per evitare che i frame arrivino a
stazioni non autorizzate. Quando una stazione è stata associata (accettata nella cella)
la stazione base manda uno speciale frame di challenge per vedere se la stazione base
conosce una chiave segreta. La sfida è rimandare indietro il frame criptato con la
chiave. Deautenticazione: Quando una stazione vuole lasciare la rete viene
deautenticata. Dopo di che non appartiene più alla rete
 Privacy: Il wireless viene sniffato facilmente per cui deve essere cripatato. Per
esempio con algoritmo RC4 o AES
 Data Delivery: Fornisce i servizi per trasmettere e ricevere i dati, come Ethernet,
non c’è garanzia di consegna affidabile per cui i layer superiori devono rivelare e
gestire gli errori

802.16 WIRELESS A BANDA LARGA (WIMAX)

E’ nato dall’esigenza di aumentare la banda per offrire servizi a più utenti, coprire distaze chilometriche
con grandi variazioni di potenze, rumore.
Utilizza bende che vanno dai 10 ai 66 GHz e quindi bisogna utilizzare onde direzionali ed è di tipo
connection-oriented, progettato per reti di tipo punto–multipunto.

Stack dei protocolli

La struttura dello stack dei protocolli è simile a quella


delle reti 802 ma ha un sottostrato più basso che si
occupa della trasmissione (radio a banda stretta).
Sopra lo strato fisico si trova un sottostrato di
convergenza che nasconde le differenze dalle
precedenti strutture.
Successivamente si trova il livello data link formato da
tre strati: il primo si occupa della riservatezza e la
protezione della rete, il sottostrato MAC si occupa dei
protocolli essenziali riguardanti la gestione del canale
con un’orientamento specifico per le qualità di
servizio richieste dal modello (TV,telefono).
L’ultimo livello infine si occupa dell’interfaccia verso
il livello rete.

Struttura dei frame

Tutti i frame iniziano con un’intestazione generica,seguita da un carico utile e un checksum opzionale
dati che viene fatta una correzione errori già nello strato fisico e non esiste ritrasmissione.
Successivamente vengono indicati il tipo di frame e eventuali meccanismi d’impacchettamento nel campo
type, eventuali codici di controllo e le chiavi di codifica utilizzate nei campi CI ed EK.
Infine nel campo lenght viene indicata la lunghezza del frame, connection ID definisce la connessione di
appartenenza al frame e altri campi sono utilizzati per il controllo del CRC (dell’intestazione e non).
32
Viene utilizzato acnhe un altro tipo di frame solamente per le richieste di banda. Rispetto agli altri frame
non trasporta carico utile e il secondo e il terzo byte indica la banda richiesta.

802.15 BLUETOOTH

Utilizza 79 frequenze distanziate di 1 MHz a partire da 2,4 GHz e a differenza delle altre reti specifica le
applicazioni che è possibile utilizzare dette profili.
Le informazioni vengono trasmesse in pacchetti: di solito un pacchetto occupa uno slot, ogni pacchetto
viene così integralmente trasmesso su una frequenza diversa, ma è possibile estendere la durata fino a
cinque slots. I pacchetti possono contenere dati generici (link ACL) o dati audio (link SCO).
La modulazione utilizzata è invece una GFSK (Gaussian Frequency Shift Keying), in cui uno shift
positivo, nel piano della fase, della portante codifica un uno logico, mentre uno shift negativo codifica
uno zero logico; l’aggettivo “gaussiano” indica un filtraggio del segnale con un filtro gaussiano per
migliorare le caratteristiche del segnale trasmesso.
La politica di accesso al canale è di tipo TDMA-TDD (Time Division Multiple Access – Time Division
Duplex), e si basa su slots temporali con durata nominale di 625 µs. La trasmissione non è full duplex, ma
half duplex: i due dispositivi A e B trasmettono e ricevono a turno in slot successivi, seguendo i salti di
frequenza della portante.

Reti Bluetooth

Il Bluetooth consente la creazione di reti, chiamate piconets, composte da un massimo di otto nodi e
caratterizzate dalla sequenza di salto della portante. La piconet ha struttura gerarchica, infatti al suo
interno si distingue un nodo master che ha il compito (e l’onere) di controllare tutti gli altri nodi, detti
slaves. All’interno di una piconet possono avvenire sia
trasmissioni punto-punto che punto - multipunto, ma gli slaves
possono comunicare solo con il master e non tra loro, a meno di
non creare tra loro un’altra piconet: è infatti prevista la possibilità
di interconnettere tra loro più piconets attraverso dei nodi ponte
che partecipano ad almeno due piconet, creando così una rete più
ampia chiamata scatternet. Il numero massimo di piconet che
possono concorrere alla formazione di una scatternet in uno spazio
ristretto è indicato in dieci, a causa del fatto che le frequenze di
salto sono solo 79, e all’aumentare del numero delle piconets,
aumenta ,fino a non essere più trascurabile, anche il rischio di
collisioni. Ovviamente un nodo ponte non può essere il master di
entrambe le piconets a cui appartiene; di solito le piconets sono
strutturate gerarchicamente all’interno della scatternet, cosicché
un nodo slave della piconet superiore è il master della piconet
gerarchicamente inferiore.
33
Frame Bluetooth

Nel primo campo viene trasmessi un codice di accesso che identifica il master (se uno slave è nel range di
due master), un header a 54 bit con i tipici campi del sottostrato MAC e il campo dati.
L’header indica chi deve ricevere il frame nel campo adress, il tipo di connessione ne campo type, un bit
di Flow per indicare quando il buffer dello slave è pieno, un bit di sequenza e un checksum.

Stack di protocollo

• il baseband and RF si occupa di gestire la connessione fisica


tra dispositivi, implementando la correzione degli errori, il
criptaggio, la formazione dei pacchetti trasmessi;
• il link manager è responsabile della creazione dei link ACL
e SCO, delle operazioni di inquiry e della gestione delle
modalità di basso consumo
• l’HCI fornisce un metodo uniforme di accesso alle
potenzialità in banda base del Bluetooth favorendo il
partizionamento dello stack fra i due processori;
• l’L2CAP (Logical Link Control and Adaptation Protocol)
consente ai layers superiori di avere una visione semplificata
di quelli inferiori e gestisce la QoS.
• l’SDP (Service Discovery Protocol) permette ad un
dispositivo di individuare i servizi di cui potrebbe usufruire
connettendosi .
• il TCS consente il supporto per la telefonia mobile
•l’RFCOMM permette di emulare la porta seriale.

Come detto è il layer HCI che consente il partizionamento del sistema in due sottosistemi; se per le
comunicazioni tra host e host controller si sceglie di utilizzare una porta UART, si deve far riferimento,
per il formato dei dati, all’HCI UART Transfer Layer. Questo stabilisce che i dati devono essere
trasmessi e ricevuti in pacchetti, il cui formato dipende dal tipo di dati che il pacchetto porta; esistono
quattro tipi di pacchetti, cioè pacchetti comando, evento, SCO, ACL. Il tipo del pacchetto è stabilito da un
byte che viene trasmesso subito prima del pacchetto stesso, chiamato “indicatore”; in figura A.4 si vede
l’associazione fra indicatori e pacchetti, e si evidenziano le direzioni in cui i pacchetti possono muoversi.
34
5. LIVELLO NETWORK
Il livello network si occupa del trasporto dei pacchetti lungo il cammini percorso dall’origine alla
destinazione finale.
Per fare questo lo strato deve conoscere la topologia delle reti e scegliere i percorsi più appropriati
attraverso esse. Deve anche evitare il sovraccaricamento delle linee di comunicazione lasciandone altre
libere e deve occuparsi della compatibilità tra tipi diversi di reti.
Lo strato network offre allo strato trasporto vari servizi che però devono essere indipendenti dalla
tecnologia dei router, quindi allo strato superiore devono essere nascosti tutti i dettagli sul router e inoltre
allo strato superiore viene fornito un sistema di numerazione uniforme.
Lo strato network offre un servizio non orientato alle connessioni come può essere internet e un servizio
orientato alle connessioni come può essere la rete cablata:
 Se il servizio non è orientato alla connessione, i pacchetti sono inoltrati nella sottorete
individualmente e instradati indipendentemente uno dall’altro.

 Se il servizio è orientato alla connessione, prima di inviare si deve stabilire il percorso che
collega il router sorgente a quello destinazione.

A livello rete si trovano anche diversi tipi di protocolli che si dividono tra protocolli instradati e da
instradamento:
 I protocolli instradati preparano i pacchetti incapsulando le informazioni che arrivano dai livelli
superiori e hanno la responsabilità di portare i pacchetti a destinazione.
 I protocolli di instradamento, sono invece individuati dai router per definirne il percorso,
scambiare informazioni relative ai percorsi tra router e inoltrare i pacchetti.
Altri protocolli utilizzati sono quelli per il controllo e quelli del nighboor greetings per sapere quali
computer sono collegati alla rete.
35
ALGORITMI DI ROUTING

La funzione principale dello strato network è quella di instradare i pacchetti dal computer sorgente a
quello destinazione e quindi questi algoritmi vengono utilizzati per gestire i percorsi e le strutture dati
utilizzate.
Questi algoritmi devono avere alcune proprietà indipendentemente dal tipo di servizio quali precisione,
semplicità, robustezza (capacità di risolvere cambiamenti in modo dinamico), stabilità, imparzialità
(utilizzo di tutte le linee per distribuire il traffico) e ottimizzazione(utilizzo delle lenee migliori per
ottimizzare la trasmissione).
La maggior parte degli algoritmi di routing utilizza una tabella di routing che indica quale linea di uscita
utilizzare per ogni possibile destinazione.
La ricerca dei cammini ottimali si basa sul principio di ottimalità che afferma che se J è sul cammino
ottimale tra I e K allora il cammino ottimale tra J e K è sullo stesso percorso; come conseguenza l’insieme
dei cammini ottimali da tutte le sorgenti a na destinazione forma un albero con radice nella destinazione
chiamato sink tree.

Gli algoritmi di routing possono essere adattivi se modificano le decisioni secondo i cambiamenti della
topologia e del traffico, altrimenti sono non adattivi (routing statico) quando il percorso utilizzato per
calcolare due punti viene calcolato per poi essere applicato.

ALGORITMI NON ADATTIVI

Rooting statico
I protocolli a instradamento statico richiedono la configurazione da parte dell’amministratore di rete delle
tabelle di routing di tutti i router; vanno bene per reti piccole o con un unico percorso per ogni
destinazione altrimenti in caso di modifiche alla rete o di guasti bisogna intervenire aggiornando
manualmente le tabelle.Un’alternativa è quella di indicare più percorsi per la stessa strada.

Flooding
Con il flooding ogni router invia ogni pacchetto su tutte le linee di uscita; con questo metodo vengono
generati un gran numero di pacchetti duplicati e un contatore di salti all’interno di ogni pacchetto, viene
utilizzato per tenere sotto controllo il processo.
Questo contatore di salti è inizializzato alla lunghezza del cammino dalla sorgente alla destinazione e a
ogni salto il contatore viene decrementato e quando raggiunge zero il pacchetto viene scartato.
Con questo metodo il pacchetto raggiunge la destinazione nel minore tempo possibile ma creando
un’elevato traffico di rete.
Una veriante è il flooding selettivo che invia i pacchetti solo sulle linee che vanno approssimativamente
nella direzione giusta.
36

ALGORITMI ADATTATIVI

Si adattano in modo dinamico ai cambiamenti della rete e si suddividono in tre tipi:


 Isolati: le decisioni vengono prese da ogni router, senza conoscere niente della situazione della
rete negli altri punti.
 Centralizzati: si basano sull’esistenza di un router di controllo (RCC), che tutti gli altri
interpellano per per chiedere il percorso da seguire. Questo router RCC conosce la tiplogia della
rete perché riceve informazione da tutti i nodi e può costruire il grafo dei collegamenti e la tabella
di instra damento.
 Distribuiti: permettono al router di scambiarsi informazioni sulla rete per costruire tabelle di
instradamento e prendere decisioni sul percorso migliore da seguire.
Un router comunica con i vicini inoltrando su ogni linea dei pacchetti Hello, e i vicini rispondono dicendo
chi sono. La distanza può essere calcolata contando i salti o inviando un pacchetto Echo (il router attende
la risposta calcolando il tempo impiegato).

Distance Vector Routine

L’algoritmo a vettore di distanza, prevede che ogni router mantenga una tabella di routing chiamata
vettore delle distanze, che contiene per ogni destinazione la migliore distanza conosciuta, e la linea di
uscita da utilizzare.
La distanza si può misurare con vari tipi di metriche come il numero di salti, il ritardo in millisecondi o il
numero di pacchetti in coda lungo il cammino.
I router scambiano la propria tabella periodicamente con i vicini, successivamente confrontano ogni
singola destinazione in base alla distanza e inserisce nel vettore delle distanze la distanza minore.
Il calcolo effettuato da ogni router consiste in un confronto tra le distanze senza considerare cambiamenti
e guasti nella rete; questo potrebbe creare difficoltà quando viene scelto un percorso danneggiato, e
bisogna attendere un certo tempo di convergenza prima che venga trovato il percorso.
Nel caso di convergenza lenta e nel caso dei percorsi non più utilizzabili si potrebbe riscontrare il
problema del conteggio all’infinito.

Link State Routine

L’algoritmo a stato di collegamento prevede un database che descrive la topologia della rete e le distanze
in base a varie metriche.
Ogni router costruisce un pacchetto con l’elenco dei vicini e la distanza da ogni vicino oltre che l’identità
del mittente, un numero di sequenza e un tempo di vita; questo pacchetto viene inoltrato ai router vicini
che così sono in grado di costruire il database.
I pacchetti LSP vengono costruiti periodicamente, o meglio, ogni qualvolta si verifica un cambiamento
nella rete e vengono inoltrati utilizzando il flooding; i router tengono traccia dell’ultimo numero di
sequenza ricevuto da ogni router mittente, lo memorizza nel database e lo ritrasmette in flodding e
vengono scartati quelli che hanno il campo tempo di vita a zero.
Il router una volta ricevuti tutti i pacchetti crea un grafo della rete in cui ogni nodo rappresenta un router e
ogni arco una linea; lavorando sul grafo il router può stabilire il cammino mnimo per ogni destinazione e
creare la tabella di routing.
Per il calcolo del cammino più corto può essere calcolato in base al numero dei salti, alla distanza o alla
velocità della linea e spesso viene utilizzato l’algoritmo di Dijkstra.
37
ROUTING GERARCHICO

Le tabelle di routing richiedono molta memoria e serve anche tempo di CPU per analizzarle e ampiezza di
banda per lo scambio delle informazioni: il routing gerarchico viene utilizzato per fare fronte a questi
problemi.
Con il routing gerarchico la rete viene suddivisa in regioni; ogni router mantiene le informazioni per tutte
le destinazione all’interno della regione in cui si trova e i pacchetti vengono inviati ad un router che si
occupa dell’instradamento verso altre regioni.
In questo modo l’instradamento all’interno di una regione rimane invariato, mentre per una regione
diversa ci sono i problemi di instradamento verso la periferia della regione, tra una regione e l’altra e
all’interno della regione di destinazione.

ROUTING BROADCAST

Esistono diversi metodi per le trasmissioni broadcast; nel primo caso la sorgente invia il pacchetto a ogni
destinazione, ma in questo caso devo avere una lista completa di tutte le destinazioni. Il vantaggio del
metodo è la semplicità di implementazione.
Un altro metodo prevede l’utilizzo del flooding (invio broadcast con contatore salti) con lo svantaggio dei
numerosi pacchetti inviati e dell’eccessiva banda utilizzata.
Nel metodo denominato multidestination routing, il router genera una copia del pacchetto per ogni linea
di uscita (percorso migliore verso una delle destinazioni) fino che rimangono solo quelle interessate al
pacchetto.
Il metodo più efficiente prevede l’utilizzo di uno spanning tree, ovvero un albero che include tutti i
router ma non include cicli, per ogni router che invia secondo lo spanning tree invia il messaggio a tutte le
proprie destinazioni eccetto quella d’arrivo.
Questo metodo utilizza bene la banda ma non tutti i router sono in grado di utilizzarlo.

ROUTING MULTICAST

Utilizzato per inviare un pacchetto a un gruppo di stazioni, utilizzabile solamente se esiste un protocollo
per la gestione dei gruppi.
I router devono conoscere l’elenco delle stazioni che appartengono a ciascun gruppo e sapere il gruppo
d’appartenenza di ogni stazione.
Il router nel caso di invio a un determinato gruppo il router duplica il pacchetto per inviarlo a tutte le
stazioni del gruppo; come per il broadcasting la maggiore efficienza la si ha con l’uso degli spanning
tree dove il router considera solo gli spanning tree relativi a quel gruppo.
Esistono altri metodi che creano degli spanning tree per ogni gruppo e considera un router radice del
gruppo che su occupa poi dell’invio a tutte le stazioni.

ROUTING PER HOST MOBILI

Si occupa dell’instradamento di pacchetti verso stazioni che possono cambiare la loro posizione; la rete
geografica quindi, viene divisa in piccole unità chiamate aree, e ogni stazione mobile ha la sua base in
un’area, anche se si puo collegare alla rete da altre basi.
Ogni area ha un agente di base che tiene traccia di tutte le stazioni mobili la cui base è nell’area e un
agente straniero che gestisce le stazioni mobili che entrano temporaneamente nell’area.
Quando una stazione mobile entra in un’area deve registrarsi presso l’agente straniero (la sua presenza è
segnalata da continui messaggi broadcast), il quale contatta l’agente base in cui la stazione mobile ha la
base e li fornice il proprio indirizzo.
38
I pacchetti destinati alla stazione mobile hanno come indirizzo di destinazione l’indirizzo base; se la
stazione non è presente all’interno dell’area il pacchetto viene incapsulato e affidato all’agente straniero
che li fa avere alla stazione mobile che li invia alla stazione dome frame data-link (senza
incapsulamento). Finchè l’agente base ha pacchetti da inviare viene utilizzato questo metodo.
All’uscita dell’area la stazione elimina la registrazione effettuata con l’agente straniero.

CONTROLLO DELLA CONGESTIONE

Per una sottorete a n router ognuno con k vicini la memoria deve essere almeno nk, quindi posso avere
problemi di calcolo per l’esaurimento di memoria , e in una rete complessa con migliaia di router questi
possono diventare problemi seri.
La congestione è un carico maggiore di quello che le risorse possono sopportare in una zona della rete;
può essere temporanea e le principali cause sono il numero eccessivo di pacchetti, le politiche di dei vari
livelli e soprattutto i picchi improvvisi del traffico.
Se la memoria in un router non è efficiente i pacchetti vengono persi, ma aggiungendo memoria la
situazione non migliora, ma per assurdo (Nagle 97) se il router avesse memoria infinita la congestione
andrebbe in peggio invece che in meglio, dato che durante l’attesa della coda verrebbero rispediti.
Il problema maggiore quindi è lo sbilanciamento tra le diverse parti del sistema e il problema è risolvibile
creando in equilibrio fra le componenti.
Nelle reti che usano servizi non connessi la congestione si può verificare in qualsiasi momento, mentre
nelle reti orientate alla connessione la congestione si può creare solo al momento di una nuova
connessione.

Per prevenire problemi di congestione possono essere usati algoritmi a ciclo aperto, che tentano di
risolvere il problema mediante un buon progetto che renda improbabile la manifestazione di congestioni.
Questi algoritmi decidono il flusso del traffico, quando scartare pacchetti e prendono decisioni sulla
pianificazione della rete.
Gli algoritmi a ciclo chiuso invece gestiscono le congestioni solo quando si presentano; devono quindi:
1. monitorare la rete per individuare le congestioni
2. passare le informazioni ai vari nodi per correggerle
3. eseguire la correzione.
Le congestioni vengono individuate in base a criteri come la percentuale di pacchetti scartati per
mancanza di spazio nei buffer, la lunghezza media delle code, il numero di pacchetti che vanno in timeout
o il ritardo medio.
Nella seconda fase le informazioni devono essere trasferite al punto dove essa è avvenuta; un metodo
semplice e efficace è quello di inviare messaggi per annunciare il problema, però in questo modo si
aumenta il carico nel momento peggiore.
Esistono altre possibilità come un bit in ogni pacchetto riservato ai router, che lo inizializzano quando la
congestione supera un certo livello di guardia, altrimenti uno continuo scambio di informazione tra router
potrebbe addirittura evitarle
La deduzione della cogestione può essere individuata o dal router (algoritmi a feedback esplicito) che
indica al mittente di rallentare, oppure il mittente che rallenta il flusso di dati essendosi accorto della
congestione (algoritmi a feedback implicito) magari dai ritardi degli ACK in ricezione.
39
Per la prevenzione della congestione si possono usare accorgimenti a partire dal livello data link:
 Retrasmission policy: il mittente non deve avere un timeout troppo corto per cui ritrasmette troppo
spesso tutti i pacchetti per i quali non ha ricevuto ack.
 Out of ordercaching policy: Se il ricevente scarta tutti i pacchetti fuori sequenza questi dovranno
essere ritrasmessi, mentre potrebbe chiedere alla fine solo quelli che non sono arrivati e riordinare
 Ack policy: Fare l’ackdi ogni pacchetto che arriva o approfittare del traffico nell’altro senso per
fare piggybacking.
 Flow control policy: Un flowcontrol stretto, per esempio con finestre piccole, riduce il data rate e
quindi combatte la congestione
Un’altra scelta fondamentale a livello network è quella dell’utilizzo di datagrammi o circuiti virtuali dato
che alcuni algoritmi sono utilizzabili solo con gli ultimi.
Per risolvere il problema delle code è possibile scartare i pacchetti da parte del router; essi possono venire
scartati in modo casuale, oppure secondo dei criteri, come priorità a livello applicazione, oppure vengono
scartati i pacchetti più nuovi (per i file servono i pacchetti in successione), o nel caso delle applicazioni
multimediali vengono scartati quelli vecchi.

Controllo della congestione nelle sottoreti a circuito virtuale

Una tecnica largamente utilizzata per evitare il peggioramento di una congestione si chiama controllo di
ammissione; una volta segnalata una congestione nessun circuito virtuale viene più impostato fino alla
scomparsa del problema.
Un altro approccio permette la creazione di nuovi circuiti virtuali per aggirare le aree congestionate come
mostrato in figura dove vengono evitate le congestioni scegliendo un altro percorso.

Un’altra strategia utilizzata per i circuiti virtuali consiste nel negoziare un’accordo tra host e la sottorete
durante l’impostazione del circuito virtuale dove vengono spacificati volume,forma del traffico, QoS e
altri parametri per garantire già all’host la disponibilità di risorse dedicate.
Questo metodo risulta ottimo qualitativamente, anche se con alti sprechi di banda.

Controllo della congestione nelle sottoreti a datagrammi

Ogni router può facilmente controllare l’utilizzo delle sue linee di output, associando alle linee variabili
indicanti l’utilizzo recente della linea; in questo modo appena una linea supera la soglia di guardia la linea
di output entra in stato d’allarme.
Lo stato d’allarme può essere segnalato da un’apposito bit d’allarme nell’intestazione del pacchetto, che
viene attivato dal router finchè la linea rimane in questo stato.
Ogni router lungo il percorso rallenta il proprio flusso di dati e eventualmente può anch’esso impostare un
bit d’allarme nel caso in cui la congestione non si plachi in un determinato arco di tempo.
Con il metodo choke packet quando un router si accorge della congestione in una linea, invia al mittente
un pacchetto choke dandogli la direzione verso la quale deve ridurre il traffico.
La riduzione del traffico da parte del mittente è generalmente del 50%, che però incrementa leggermente
in successione per evitare che avvengano subito nuove congestioni.
40
Ad alte velocità però il metodo non è efficiente perché il tempo che impiega per arrivare il pacchetto
d’avviso, in reti ad alta velocità, potrebbe essere troppo alto con la conseguenza di non favorire il
decongestionamento; viene usato allora il metodo hop to hop che opera un miglioramento immediato
nella congestione usando più memoria per spazio di buffer nei router a monte..

Laud Shedding

Quando nessuno dei metodi descritti riesce ad elinìminare la congestione viene utilizzato questo metodo,
che permette al router di scartare dei pacchetti.
La scelta del pacchetto da scartare dipende dalle applicazioni in esecuzione: per il trasferimento file è più
comodo ricevere pacchetti vecchi per completare la sequenza (wine), mentre per applicazioni
multimediali è più comodo ricevere pacchetti nuovi (milk).
Con particolari codifiche è ancora più comodo inserire delle classi di priorità per indicare i pacchetti più
importanti.

Random Early Detection

L’algoritmo RED prevede di scartare i pacchetti quando il buffer del router sta per essere pieno.
Per stabilire quando è il momento giusto per iniziare a scartare i pacchetti, i router mantengono una
media mobile della lunghezza delle code, e quando supera una lunghezza di guardia, viene intrapresa la
correzione.
I pacchetti vengono scartati casualmente, e le stazioni si accorgono della congestione a causa della
mancata ricezione degli ACK. Le stazioni però devono rispondere alla mancata ricezione dell’ACK con
un rallentamento dei dati in uscita.

Controllo del jitter

Per le applicazioni come la trasmissione di flussi audio e video, non importa la velocità di trasmissione
(20 o 30 Msec) dei pacchetti, ma la costanza del tempo di transito; la variazione di quest’ultimo è detta
jitter. Un jitter alto genera un suono o un filmato di qualità variabile .
Il jitter può essere delimitato calcolando il tempo di transito atteso per ogni salto lungo il percorso;
quando il pacchetto giunge al router, esso controlla il ritardo o l’anticipo rispetto alla sua
programmazione e ne pianifica la trasmissione.

QUALITA DEL SERVIZIO

Le tecniche appena viste per ridurre la congestione e migliorare le prestazioni della rete, ma per garantire
la qualità del servizio sono necessarie ulteriori modifiche.
Le esigenze di ogni flusso sono caratterizzare da affidabilità, ritardo,jitter e banda che determinano la
QoS che necessita di diverse caratteristiche a seconda dell’applicazione.
41
Sovradimensionamento

Fornire più capacità al router, spazio e banda potrebbe essere una buona soluzione, ma per aumentare
tutte le risorse ci sarebbe una notevole impennata nei costi.
Questa tecnica viene utilizzata nel caso di streaming, dove un’ampiamento del buffer del router
permetterebbe di inviare costantemente tutti i pacchetti, in modo da avere uno streaming continuo.

Traffing shaping

La velocità media della trasmissione dei dati viene regolata tra la sorgente e il router, che si accordano
sulla velocità di trasmissione, e la sorgente invia pacchetti solamente nei tempi previsti dall’accordo

Leaky Buchet

L’algoritmo secchio bucato gestisce i pacchetti trasmessi dai


mittenti attraverso una coda interna finita, che lascia uscire i
pacchetti ad un ritmo costante; se la coda è vuota non esce
nulla.
L’ host quindi è autorizzato a inserire nella rete un solo
pacchetto per ogni ciclo di clock dato che la coda è finita
(ulteriori pacchi verrebbero scartati) e quindi il flusso viene
regolarizzato.
Nel caso in cui i pacchetti siano di dimensione variabile, viene
garantito un numero massimo di byte per ogni ciclo di clock.

Token Bucket

L’algoritmo secchio di gettoni, utilizza una coda di gettoni generati uno ad ogni intervallo di tempo e un
pacchetto per essere inviato deve avere un gettone disponibile. Questo algoritmo gestisce meglio i picchi
improvvisi e permette a una stazione inattiva, di conservare gettoni per poi spedire molti pacchetti in
caso di necessità, senza mai scartare dei pacchetti.
Quindi permetto di accumulare token fino a un massimo n, quindi permetto burst fino a n, dopo i quali
vado a rate costante; per risolvere i problemi della trasmissione dei burst talvolta viene inserito un laecky
bucket in successione per avere una migliore distribuzione di pacchetti.

PRENOTAZIONE RISORSE

Per garantire QoS è molto importante inviare tutti i pacchetti nella stessa direzione, quindi sarebbe utile
garantire un circuito virtuale da sorgente a destinazione in modo che tutti i pacchetti seguano la stessa
route. Prenotando l’uso di alcune risorse posso assicurarmi anche la capacità minima necessaria.
Le risorse da prenotare sono banda, spazio nel buffer e cicli di CPU; la prima per non sovraccaricare le
linee di output, la seconda per evitare la perdita di pacchetti dovuti a buffer pieno e la terza per non
rallentare tutto il flusso in attesa di elaborazione.
42
CONTROLLO DI AMMISSIONE

Quando il flusso viene proposto ad un router, questo deve decidere se gestirlo in base alle proprie capacità
e ai flussi gia gestiti.
Questa scelta non è semplice dato che molte applicazioni conoscono la necessità di banda ma non lo
spazio del buffer o CPU necessaria, per questo i flussi devono essere descritti accuratamente in termini di
parametri specifici.
Queste specifiche di flusso vengono inviate lungo il percorso e ogni router le modifica secondo le proprie
necessità, e quando arriva all’altro capo i parametri possono essere fissati.

1. Byte/sec messi nel bucket, quindi il massimo rate a


cui il mittente può trasmettere in media
2. Dimensioni del bucket
3. Massimo rate di trasmissione tollerato, anche per
brevi intervalli
4. Dimensione minima del pacchetto
5. Dimensione massima

PIANIFICAZIONE DEI PACCHETTI

Se un router sta gestendo più flussi si corre il pericolo che un flusso accaparri troppa capacità lasciando
gli altri senza risorse ; se i pacchetti vengono elaborati nell’ordine in cui arrivano gli host più aggressivi
sono liberi di prendersi più risorse e per impedire questo sono stati sviluppati vari algoritmi.
L’algoritmo di accodamento equo attribuisce ai router code separate per ogni linea di trasmissione , una
per ogni flusso. Quando una coda si esaurisce il router passa alla successiva in round robin, anche se con
questo metodo viene assegnata più banda a chi usa pacchetti grossi.
Con l’accodamento equo pesato, il peso è uguale al numero di flussi trasmessi da un computer, perciò
ogni processo riceve la stessa banda.

SERVIZI INTEGRATI

Per la trasmissione di flussi multimediali IETF creò algoritmi basati sui flussi, utilizzati sia per
applicazioni unicast (singolo utente che scarica un video clip) e multicast (televisioni digitali che
trasmettono i loro programmi).

Reseurce reSerVation Protocol

Questo protocollo si occupa delle prenotazioni e consente a più trasmettitori di trasmettere a diversi
gruppi di ricevitori, ai quali è permesso di cambiare canale liberamente.
Ogni utente riceve un indirizzo di gruppo e il trasmettitore inserisce l’indirizzo del gruppo nei suoi
pacchetti, in modo da costruire uno spannino tree che copre tutti i membri del gruppo.
Tutti i ricevitori di un gruppo possono inviare al trasmettitore un messaggio di prenotazione attraverso la
struttura ad albero; ad ogni salto il router prende nota della prenotazione e riserva banda se ce ne è
disponibile, altrimenti avvisa del fallimento.
Quando il messaggio ritorna alla sorgente la banda è stata prenotata su tutto il percorso che collega il
trasmettitore al ricevitore che ha inviato la richiesta di prenotazione.
43
L’host 3 ha un collegamento con host 1
per uno stream video e un altro
collegamento diretto con host 2 per un
altro stream.
Se host 5 decide di connettersi allo
stream dell’host 1 viene stabilito un
collegamento con host 1 finchè non si
accorge della presenza di host 3, col
qual host 5 condivide il collegamento

SERVIZI DIFFERENZIATI

I servizi differenziato possono essere offerti da un insieme di router all’interno di un dominio di


amministrazione. L’amministratore definisce un insieme di classi di servizio con regole di forwarding
corrispondenti.
Se un cliente si iscrive a SD, i suoi pacchetti che entrano nel domino possono avere un campo Typeof
Service, secondo il quale alcune classi avranno un servizio migliore di altre.

Inoltro accelerato

L’ idea di questo metodo consiste nel disporre di due classi di servizio, una regolare e una accelerata.
La maggior parte del traffico dovrà essere considerata regolare mentre una piccola frazione accelerata;
questi ultimi attraversano la rete come se non è presente nessun pacchetto.
I router hanno due linee diverse per le due classi di servizio e la pianificazione dei pacchetti utilizza un
sistema simile all’accodamento equo pesato.
Lo schedulingusa un algoritmo tipo WFQ, per cui se per esempio il 10% del traffico èprioritario, gli
dedichiamo 20% della bandwidth, per esempio mandando un pacchetto expeditedogni 4 normali
(assumentodistribuzione di dimensioni uguali per le due classi)

Inoltro sicuro

Il metodo specifica quattro classi di priorità dove ogni classe ha a disposizione le proprie risorse e sono
presenti anche tre probabilità di eliminazione dei pacchetti (bassa, media e alta).
I pacchetti sono classificati in una delle quattro classi di priorità e sono marcati secondo la classe di
appartenenza .
I pacchetti poi passano attraverso un filtro modellatore/contagocce che può abbandonare o ritardare alcuni
pacchetti per distribuire bene i quattro flussi.

Label Switching

A ogni pacchetto viene aggiunta una etichetta che aiuta il router nell’instradamento in base all’etichetta,
non seguendo l’indirizzo di destinazione; attraverso questa tecnica il routing può essere fatto in maniera
più rapida ed efficace.
Questo metodo è stato standardizzato con il nome di MultiProtocol Label Switching ed è stato inserito
un’apposita intestazione all’interno dei pacchetti IP.
L’intestazione generica ha quattro campi: label(etichetta), Qos (indica la classe), S (accatastamento di più
etichette).
44
Le etichette hanno un significato solo locale, quindi vengono rimappate ad ogni passaggio in un nodo, che
raggruppano anche i pacchetti con le stesse etichette per inoltrarli insieme.
Il problema delle etichette è la relativa incompatibilità con i circuiti virtuali.

INTERNETWORKING

E’ simile al routing effettuato in una sottorete con alcune differenze; un pacchetto internet nasce nella
propria LAN dove viene indirizzato al router multiprotocollo locale che decide a quale altro router
inviarlo.
Le differenze del routing nelle internetwork è che può richiedere l’attraversamento dei confini
internazionali, con l’entrata in gioco di molte leggi.
A livello network internet viene vista come un insieme di sottoreti dette Autonomous Systems
interconnesse, tra le quali non esiste nessuna struttura; esistono però dei backbone , linee e router ad alte
prestazioni.
La connessione di reti differenti per protocollo e metodi trasmissivi porta a delle difficoltà, come la
dimensione dei pacchetti, la qualità del servizio il controllo degli errori, del flusso e altro.
I dispositivi hardware che si occupano di questo sono i router (multiprotocollo) per il livello rete e il
getaway a livello trasporto e i getaway applicativi a livello applicazione, ma non sempre bastano a
colmare le differenze tra le reti.

Tunneling

Un caso generale di connessione fra due reti abbastanza gestibile è il tunneling: un host sorgente e uno
destinazione che si trovano sulla stessa tipologia di rete ma separati da altre reti, comunicano con lo
stesso protocollo creando un tunnel.
Quando riceve il frame il router multiprotocollo rimuove il pacchetto IP, lo inserisce nel carico utile di un
pacchetto dello strato network e indirizza questo al router multiprotocollo della destinazione.
Quando arriva a destinazione, il router rimuove il pacchetto IP e lo trasmette all’host in un frame dello
stesso tipo di quello inviato.

Frammentazione

Ogni rete impone una dimensione massima dei suoi pacchetti, che dipende dall’hardware, dal sistema, dai
protocolli e s politiche come la riduzione di ritrasmissioni e l’occupazione per troppo tempo il canale.
Questo impone una dimensione massima e il relativo problema di pacchetti di grosse dimensioni che
attraversano una rete che ne supporta solo di piccoli; la soluzione più ovvia è quella di fare passare il file
45
per un altro punto, ma bisogna superare il problema, nel caso in cui la rete di destinazione non supporti
file delle stesse dimensioni.
Quando un pacchetto deve attraversare una rete con max packet inferiore, deve essere diviso dal router in
frammenti, ognuno contenuto nel suo pacchetto internet.
Per costruire il pacchetto in modo trasparete tutti i pacchetti sono indirizzati allo stesso gateway di
uscita, dove i pezzi sono ricombinati; questo però implica che tutti i pacchetti devono seguire lo stesso
percorso e il getaway deve sapere quando ha ricevuto i pezzi per poi ricompattarli.
Nel modo non trasparente i frammenti vengono assemblati direttamente dall’host di destinazione,
richiedendo a tutti gli host di fare la frammentazione e la deframmentazione.
Ogni pacchetto ha il suo header che aggiunge overhead, ma si ha il vantaggio di poter usare qualsiasi
getaways e di avere migliori prestazioni.

PROTOCOLLO TCP/IP

Il protocollo IP è la colla che tiene collegato tutto Internet; IP è stato pensato per la comunicazione delle
reti, ovvero il suo compito è fornire un mezzo non garantito per trasportare datagrammi fino a
destinazione, senza tener conto della posizione delle macchine
Un datagramma IP è costruito da una parte di intestazione e da una parte di testo e la dimensione
generalmente non supera i 1500 Bytes.
 Version: indica la versione del IP
 IHL: indica la lunghezza
dell’header
 ToS: indica quale clesse di
servizio usare per i Servizi
differenziati
 Total Lenght: lunghezza totale del
datagram
 Identification: permette all’host di
destinazione di capire a quale
datagram appartiene il frammento
che è arrivato.

 DF (Don’t fragment): ordina al router di non frammentcare il pacchetto perché non si sa


ricostruirlo.
 MF (More fragment): serve per capire quando tutti i frammenti.
 Fragment offsett: serve per capire all’interno del datagram dove va situati il corrente frame.
 Time to live: contatore che limita la durata di vita del pacchetto in base ai salti o al tempo.
 Protocol: specifico il protocollo del livello trasporto dai utilizzare.
 Header Checksum: verifica gli errori nell’header per rivelare errori dovuti a disfunzioni di
memoria.
 Source & Destination Adress: indicano il numero di rete e di host del mittente e del destinatario.
 Options:
o Security: dice quanto sono sicure le informazioni(un router potrebbe usarlo per decidere di
non routare per una router insicura. Mai usato
o Strict Source Routing: specifica la lista di IP address attraverso cui routare(per fare misure
di timing o per forzare pacchetti di emergenza)
46
o Loose Source Routing: specifica la lista di alcuni router da usare e nell’ordine specificato
ma non tutti i router. Utile per suggerire una router invece ch eun’altra
o Record Router: dice ai Router lungo il path di loggare il loro indirizzo per capire se ci sono
bug nel routing
o Timestamp: come sopra ma oltre all’indirizzo a 32 bit ogni router scrive anche una time
stamp a 32 bit

Indirizzi IP

Host e router hanno indirizzi IP che li codificano univocamente; tutti gli indirizzi sono lunghi 32 bit e
sono utilizzati nei campi indirizzo sorgente e di destinazione dei pacchetti IP che identificano la scheda di
rete di un’host. I numeri di rete sono gestiti da un ente no profit chiamato ICANN.
Gli indirizzi sono scritti in notazione decimale a punti, con ogni numero compreso tra 0 e 255, in modo
da poter essere scritto con 4 byte.
Esistono degli indirizzi speciali:
 0.0.0.0: viene usato dagli host nella fase di boot.
 Indirizzi con la parte network a zero: indica che si vuole indirizzare una macchina nella stessa rete.
 255.255.255.255 significa un broadcast nella LAN
 Indirizzi con la sola parte di host a 1: broadcast su una determinata rete remota.
 Indirizzi che iniziano per 127: per il test del loopback (processati localmente e trattati come pacchetti
d’ingresso)

Classi IP

Il protocollo IP prevede la divisione in classi di varia dimensione ognuna:


 ClasseA: 128 networks con 16M indirizzi ciascuna
 ClasseB: 16384 networks con 64K indirizzi ciascuna
 ClasseC: 2M networks con 256 indirizzi ciascuna
 ClasseD: Indirizzi Multicast
 ClasseE: Riservata
47
Sottoreti

Tutti gli host della rete hanno uno stesso indirizzo network, ma potrebbe servire in alcuni casi dividere la
rete in parti diverse, ma apparendo sempre come rete unica verso l’esterno.
Per creare una sottorete invece di avere un singolo indirizzo di classe B, alcuni bit sono tolti al numero di
host per creare un numero di sottorete.
Per configurare correttamente una sottorete bisogna chiedersi quante sottoreti si vogliono realizzare e
quante stazioni al massimo dovranno essere presenti in un segmento. Quindi per potere avere n sottoreti si
devono utilizzare tanti bit dell’identificatore stazione (seconda parte della classe di indirizzi usata) da
permettere almeno n+2 combinazioni diverse (combinazioni con tutti 0 o 1 non sono possibili).
Questo può avvenire con una subnet mask, con la quale il router facendo un AND booleano mette a 1 tutti
i bit della parte host che invece fa parte della subnet e cerca questo indirizzo nelle sue tabelle.

Esempio.Creare una maschera di sottorete dell’indirizzo 130.50.0.1 per dividere 64 gruppi.

La prima subnet potrebbe usare l’indirzzo130.50.4.1, la seconda 130.50.8.1, poi 130.50.12.1, di quattro
in quattro come si vede contando in binario:

Subnet1 10000010 . 00110010 . 000001|00 . 00000001


Subnet2 10000010 . 00110010 . 000010|00 . 00000001
Subnet3 10000010 . 00110010 . 000011|00 . 00000001

Dividendo la differenza degli indirizzi, per 255+2 combinazioni possibili ottengo 64, che indica le
sottoreti che è possibile creare. La machera di sottorete è 255.255.25

Classless InterDomain Routing (CIDR)

L’esaurimento degli indirizzi IP, non può permettere che vengano sprecati parti di essi nell’assegnazione
per classi.
Il CIDR permette di eliminare il concetto di classe di indirizzi; l’idea di base è quella di assegnare a
blocchi di indirizzi di classe C ad una singola rete .
Perché il router veda il blocco di indirizzi come un’unica destinazione le tabelle di routing devono
contenere oltre all’inidirizzo di destinazione anche una subnet mask a 32 bit.
L’abbandono delle classi però rende complesso l’inoltro; quando arriva il pacchetto come prima cosa il
router estrae il suo indirizzo IP di destinazione, ed esamina la tabella di routing voce per voce.
Quindi con il CIDR c’è unica routing table composta da indirizzo IP, subnet mask e linea di uscita;
quando il pacchetto arriva cerco il suo indirizzo IP, e se trovo lo stesso indirizzo controllo le subnet mask,
delle quali scelgo la più lunga.

Network Adress Traslation

L’idea è di associare a ogni gruppo di utenti un singolo indirizzo IP per il traffico di internet; all’interno
della rete locale ogni router riceve un indirizzo IP unico da utilizzare all’interno della LAN, ma quando
un pacchetto viene immesso in internet viene eseguita una traduzione dell’indirizzo con quello del gruppo
dal dispositivo NAT.
Un problema lo si ha quando un pacchetto viene destinato a un’host. I dati sono inviati all’indirizzo del
gruppo e non si sa a quale host è destinato il pacchetto.
48
Dato che i campi IP sono completamente utilizzati, i progettisti vedendo che la maggior parte del traffico
in rete si basa su protocolli TCP e IP, hanno approfittato di questi due protocolli che tra i loro campi
hanno anche una porta sorgente e una destinazione.
Il dispositivo NAT allora ha il compito di estrarre le informazioni dei campi TCP o UDP che indicano gli
indirizzi, ed inserirle nell’indice della tabella di mappatura.
NAT è una soluzione provvisoria in attesa dei nuovi IPv6, dato che viola l’indipendenza dai layers (si è
dipendenti da TCP e UDP), non ripristina le connessioni in caso di crach del NAT, non si ha più
un’indirizzo univoco per macchina e non funziona con tutti i protocolli.

Internet Control Message Protocol

Il funzionamento di internet è monitorato dai router che nel caso di imprevisto inviano il loro messaggio a
ICMP che viene anche utilizzato per testare internet.

 DESTINATION UNREACHABLE: Usato quando la subnet o il router non riesce a trovare la


destinazione oppure quando il pacchetto con il campo DF (dont’ fragment) non può essere inoltrato
perché c’è di mezzo una rete “small packet”
 TIME EXCEEDED: Quando un pacchetto viene droppato perché il suo contatore è decrementato fino
a zero. Sintomo di problemi di looping oppure TTL settato troppo basso.
 PARAMETER PROBLEM :Indica un valore illegale in un campo del header. Possibile bug nell’host
mittente o in un router di transito
 SOURCE QUENCH: Una volta era usato per frenare gli host che mandavano troppi pacchetti. Viene
usato raramente perché questi pacchetti, in caso di congestione, peggiorano la situazione. La congestione
viene gestita solitamente a livello di trasporto.
 REDIRECT: Usato quando un router nota che un pacchetto sembra essere stato ruotato in modo
incorretto
 ECHO e ECHO REPLY: Usati per vedere se una destinazione è viva e raggiungibile. Ricevuto un
echo la destinazione risponde con un echo reply
 TIMESTAMP e TIMESTAMP REPLY: Sono simili ma vengono registrati anche tempo di partenza e
arrivo dei pacchetti. Questo facilita misure di performance.

Adress Resolution Protocol

Anche se ogni macchina ha uno o più indirizzi IP questi non possono essere utilizzati per spedire
pacchetti, perche l’hardware che opera a livello data-link non comprende indirizzi internet.
Quindi tutti gli indirizzi IP vengono associati a indirizzi del livello data-link; si potrebbe pensare di una
tabella all’interno della LAN nella quale sono associati tutti gli indirizzi IP con i rispettivi indirizzi
etheret, ma richiederebbe molto tempo e sarebbe soggetto ad errori in caso di molti utenti collegati.
Viene utilizzato allora il protocollo ARP, per chiedere all’interno della LAN in broadcasting, quale è
l’indirizzo ethernet associato a un IP e viene memorizzato in cache.
49
Grazie a questo meccanismo il gestore del sistema può lavorare assegnando solo indirizzi IP e non
occupandosi del problema a livello data-link.
Quando un’host si collega alla rete l’operazione di acquisizione dell’indirizzo IP avviene grazie al
Reverse ARP che permette a una stazione di lavoro di inviare il proprio indirizzo Ethernet in broadcast; il
server RARP riceve la richiesta e assegna l’indirizzo IP corrispondente.

BOOTP & DHCP

Questo protocollo però obbliga ad installare un server RARP per ogni rete dato che i messaggi broadcast
non vengono inoltrati dal router; un protocollo alternativo chiamato BOOTP, invia la richiesta via UDP in
broadcast, in modo che il messaggio possa essere letto nella rete fisica locale.
Il problema della configurazione manuale di BOOTP ha aperto le porte al protocollo DHCP (Dinamic
Host Configuration Protocol), che permette sia l’assegnazione dinamica che manuale.
Si basa sull’idea che un server speciale assegni numeri IP agli host che lo chiedono; deve essere
raggiungibile via broadcast oppure serve un DHCP relay agent.
Con questo metodo il client manda in broadcast un pacchetto DHCP Discovery, che il DHCP relay
intercetta e manda via unicast al server DHCP.

PROTOCOLLI DI ROUTING TRA GATEWAY

Protocolli di routing tra gateway interni

Internet è un insieme di sistemi autonomi gestiti ognuno da una organizzazione diversa, che può adottare
un proprio algoritmo di routing.
Il routing può essere fatto all’interno di un sistema autonomo dove viene usato un protocollo di routing tra
getaway interni.

I Routing Information Protocol (RIP) è un protocollo di tipo distance vector e quindi è lento in caso di
modifiche alla topologia della rete.
Per default i router si scambiano la tabella delle distanze con i vicini ogni 30 secondi; le tabelle
contengono una sola voce per ogni destinazione dove come metrica viene usato il numero di salti.
Il numero di salti massimo è 15 quindi ogni destinazione più lontana di 15 salti viene considerata non
raggiungibile, quindi adatto solo a reti di piccole dimensioni.

Open Shortest Path First (OSPF) è un protocollo di tipo link state, che quindi si adatta velocemente ai
cambiamenti di tipologia.
Il routing è di tipo gerarchico e permette di dividere il sistema in aree numerate che contengono una o più
reti che non si intersecano; tutte le aree sono connesse a un’area principale detta backbone.
I router vengono divisi in router interni a un’area, router di confine di un’area, router di backbone e router
ai confini del sistema autonomo.
50
Possono essere richiesti tre tipi di percorso:
 All’interno di un’area, gia noti i router dell’area
 Tra due aree; i percorsi vengono divisi in tre passi:
o Dalla sorgente a un router di confine
o Attraverso la backbone a un router di confine dell’area di destinazione
o Alla destinazione
 Tra sistemi autonomi attraverso un protocollo di routine tra getaway esterni

OSPF rappresenta il sistema come un grafo; una rete locale è rappresentata da un nodo per la rete più un
nodo per ogni router;una connessione tra due router è rappresentata da due archi (uno per direzione) ai
quali viene associato un costo.
OSPF gestisce tre tipi di metriche e permette di trovare percorsi per ottimizzare i ritardi, la capacità totale
o l’affidabilità; per farlo mantiene tre copie del grafo ognuna con una metrica.
Il cammino più breve viene dunque calcolato in base al tipo di servizio richiesto e in base ai pesi degli
archi.
I grafi vengono scambiati tra router, ma non tra tutti i vicini; viene eletto un router designato che
comunica con tutti i router interni alla LAN e con gli altri router designati, detti adiacenti.
Per lo scambio di informazioni tra router adiacenti, ogni router manda periodicamente dei messaggi
“LINK STATE UPDATE” ai router adiacenti, con gli stati e i costi usati nel database della topologia.
Vengono usati anche messaggi come DATABASE DESCRIPTION per avere i numeri di sequenza di
tutte le entrate e vengono mandati quando una linea ripristina l’attività.
Il messaggio LINK STATE REQUEST serve per confrontare chi dei router adiacenti ha informazioni più
recenti.
Per aumentare l’affidabilità ognuno di questi messaggi ha un numero sequenza e deve essere confermato
da un ack.

Protocolli di routing tra gateway esterni

I protocolli tra gateway esterni devono, oltre che spostare in modo efficiente i pacchetti tra sorgente e
destinazione, occuparsi della politica di gestione.

Il protocollo utilizzato è il Border Gateway Protocol (BGP); in ogni router vengono configurati
dall’amministratore dei vincoli sui percorsi possibili; il router esamina i percorsi per una data
destinazione, assegna a loro un punteggio e sceglie il percorso con la distanza più breve.
Il metodo di assegnazione del punteggio non è definito dal protocollo ma viene scelto dall’
amministratore; qualsiasi percorso che non soddisfi uno dei vincoli assume automaticamente un
punteggio infinito.
BGP si occupa del traffico in transito tra sistemi autonomi e le reti sono suddivise in tre categorie:
 Stub networks: Ha un’unica connessione al grafo BGP. Non possono essere usati per transito perché
non c’è nulla all’altro lato
 Multiconnected network: Possono essere usate per transitare traffico eccetto il traffico che rifiutano
 Transit network: come i backbone che sono disposti a gestire traffico di terzi, forse con restrizioni e
di solito a pagamento
51
BGP è un protocollo a distance vector modificato in modo da risolvere il problema del conteggio
all’infinito: ogni router non registra solo il costo per ogni destinazione, ma l’intero percorso e scambia
queste informazioni con i vicini; quindi un router che non può raggiungere una destinazione si accorge
dei percorsi suggeriti dagli altri router che passano attraverso di lui e li elimina dalla tabella di
instradamento.
Il BGP usa il protocollo TCP per trasferire i messaggi di instradamento; due router stabiliscono una
connessione TCP dove prima si scambiano la tabella, poi solo le modifiche.

INTERNET MULTITASKING

Per alcune applicazioni è utile che un processo possa comunicare contemporaneamente con un gran
numero di ricevitori.
Il multitasking è supportato dal protocollo IP nella classe D, dove un gruppo di host è identificato
dall’indirizzo e 28 bit sono utilizzati per identificare i gruppi; quando un processo invia un pacchetto a un
gruppo di host, esso viene inviato in best effort per inviare i dati a tutti, senza garanzie però.
Sono supportati due tipi di indirizzi di gruppo:
 Permanenti: sono sempre presenti, non devono essere impostati e possiede un’indirizzo permanente.
 Temporanei: devono essere creati prima di poter essere visualizzati.
La trasmissione multicast è implementata da speciali router multicast, che circa una volta al minuto
generano una trasmissione hardware multicast diretta agli host sulla LAN che chiede alle macchine di
indicare i gruppi di appartenenza dei loro processi.
Il routine multicast è eseguito usando le strutture spanning tree e ogni router multicast scambia
informazioni con i suoi vicini usando un protocollo basato sul vettore delle distanze; ciò consente a ogni
router di costruire per ogni gruppo uno spannino tree che copre tutti i membri.
Il protocollo usa frequentemente i tunnel per evitare di infastidire i nodi che non fanno parte dello
spanning tree.

INTERNET PROTOCOL VERSIONE 6 (IPv6)

Una soluzione al problema dell’esaurimento degli indirizzi IP viene da IPv6 che offre indirizzi a 128 bit;
possono essere singoli e di gruppo e un nuovo tipo chiamato anycast, ma non esiste il broadcasting.
Gli indirizzi unicast possono essere o per uso locale ( i pacchetti che li contengono non vengono inoltrati
dal router) o per uso globale.
Gli indirizzi anycast sono indirizzi normali ma assegnati a più di una stazione; un pacchetto inviato a
un’indirizzo unicast,viene inviato a una sola delle stazioni con questo indirizzo, che poi passa il pacchetto
alle altre.La forma del pacchetto è la seguente:

 VERSION: vale sempre 6 in IPv6.


 TRAFFIC CLASS: distingue i pacchetti real time
 FLOW LABEL: permette a sorgente e destinatario di
creare una pseudo-connessione, simile al VC.
 PAYLOAD LENGHT: indica i bytes dopo l’header
 NEXT HEADER: dice quali degli attuali sei header
 HOP LIMIT: limita la vita del pacchetto.
 SOURCE ADRESS: indirizzo sorgente
 DESTINATION ADRESS: indirizzo destinazione.
di estensione segue questo header.
52

Gli indirizzi vengono scritti come 8 gruppi di quattro cifre esadecimali separati da “;”.
Nel caso in cui contengano zeri, per semplificare gli zeri possono essere omessi e gruppi di 16 bit a zero
sono sostituiti da “:”.
In totale con questo protocollo a 16 byte ho 2128 indirizzi, del tutto necessari per coprire il fabbisogno.
53
6.LIVELLO TRASPORTO

Il livello trasporto deve fornire un servizio di trasporto efficiente ed affidabile solitamente ai processi del
livello applicazione, servendosi dei servizi forniti dal livello network.
Anche il livello trasporto offre due tipi di connessione:
 Connection oriented: simile al tipo del livello rete. In entrambi i casi le connessioni seguono le tre fasi
di setup, trasferimento dati e sconnessione, ma anche l’indirizzamento e il controllo del flusso sono simili.
 Connectionless: anch’esso simile allo stesso del livello network.
Questo layer viene distinto dal livello network perché viene utilizzato sulla macchina dell’utente e non nei
router come a livello rete; questo per migliorare la qualità del servizio e l’affidabilità.
I pacchetti persi e i dati danneggiati possono essere rilevati e compensati dallo strato trasporto e le
primitive del servizio di trasporto possono essere implementate come chiamate a procedure di libreria, per
renderle indipendenti dalle primitive del servizio di rete.

PRIMITIVE DEL SERVIZIO TRASPORTO

Per consentire agli utenti di accedere al servizio di trasporto, deve fornire alcune funzioni ai programmi
applicativi, cioè un’interfaccua al livello trasporto.
Le primitive permettono al programmatore un’interfaccia semplice verso il più complesso livello rete,
associando a semplici comandi, i più complessi del livello inferiore (senza considerare i problemi di
routing, controllo della congestione ecc.).

Il protocollo utilizzato è il Trasporto Protocol Data Unit (TPDU) per inviare messaggi da entità di
trasporto ad altre entità di trasporto.
Questo protocollo è contenuto in pacchetti, a loro volta contenuti in frame dello strato data-link; quando
arriv un frame lo strato data link elabora l’intestazione del frame e passa il contenuto del carico utile al
frame del livello superiore che elabora l’intestazione e passa in carico utile all’entità trasporto.

Quando il client chiama la CONNECT, una TPDU di CONNECT REQUEST arriva al server; il livello
trasporto del server controlla se è in ascolto (LISTEN) e sblocca il client accettando la connessione.
Ora il client e il server si scambiano nel pyload del TPDU messaggi di SEND e RECEIVE per scambiarsi
i dati. La disconnessione si presenta in forma asimmetrica quando un utente può emettere un primitiva
DISCONNECT che viene trasmessa anche all’altro host e viene effettuata la disconnessione.
54
Nella variante simmetrica la primitiva DISCONNECT indica solo la indisponibilità di una macchina di
inviare dati, ma non indica che non li può ricevere, quindi la disconnessione avviene quando entrambi
inviano la primitiva DISCONNECT .

Nello strato trasporto anche uno scambio di dati unidirezionale è più complesso; ogni pacchetto inviato
viene seguito da un’ACK ( compresi quelli di controllo), non visibile a livello di trasporto.
Allo stesso modo le entità di trasporto devono preoccuparsi di timer e ritrasmissioni sempre in modo
invisibile all’utente del livello trasporto.

Berkeley Socket

Sono un’altra tipologia di primitive utilizzate per TCP in Berklay Unix. Sono ampliamente utilizzate per
la programmazione in internet e seguono circa il modello delle primitive elencate sopra ma in modo più
dettagliato e flessibile.


 SOCKET: crea un punto finale e alloca spazio nel server; i parametri indicano il formato di
indirizzamento da usare, il tipo di servizio desiderato e il protocollo.
 BIND: Associa un inidirizzo lacale alla socket per permettere la connessione; non si crea direttamente
l’indirizzo dato che alcune applicazioni hanno la necessità di sceglierselo.
 LISTEN: alloca dello spazio per accordare le chiamate entranti, nel caso diversi client si vogliano
connettere nello stesso istante.Non è bloccante.
 ACCEPT: blocca il chiamante fino all’arrivo di un tentativo di connessione; quando arriva una TPDU il
server crea un nuovo socket con le stesse proprietà dell’originale. Il server può costruire un processo o un
thread per gestire la connessione del nuovo socket e tornare ad attendere la connessione successiva del
socket originale.
 CONNECT: blocca il chiamante e attiva l’inizio del processo di connessione.
 SEND: invia alcuni dati sulla connessione.
 RECEIVE: riceve alcuni dati sulla connessione.
 CLOSE: rilascia la connessione in modo simmetrico; quando entrambi chiamano la CLOSE la
connessione è chiusa.

Dal lato del client deve essere creata un SOCKET ma BIND non è richiesto, dato che l’indirizzo non
interessa al server

INDIRIZZAMENTO

Quando un processo di un’applicazione vuole stabilire una connessione con un processo di


un’applicazione remota deve sapere a quale connettersi.
Il metodo normalmente utilizzato consiste nel definire indirizzi di trasporto su cui i processi possono
restare in ascolto delle richieste di connessione; su internet questi punti sono chiamate porte.
55
Genericamente vengono chiamate Trasport Service Acces Point (TSAP) e i processi applicativi possono
collegarsi a un TSAP per stabilire una connessione con un TSAP remoto.
Questo servizio viene offerto per distinguere i diversi punti finali di trasporto dato che una macchina
possiede un solo Network Service Access Point (NSAP), che corrisponde al protocollo IP.

Esempio.

1. Un processo “time of day” su host2 si attacca al TSAP 1522 in attesa di una call (tipo una LISTEN)
2. Un processo su host1 vuole sapere che ore sono e fa una CONNECT dalla TSAP 1208 alla TSAP
1522
3. L’applicazione manda la richiesta
4. Il time server risponde con l’ora esatta
5. La connessione viene chiusa.

Un problema che si riscontra in queste connessioni con TSAP è l’individuazione della porta quando si
deve accedere a un servizio; per servizi molto utilizzati vengono usate tabelle con gli indirizzi dei server
perennemente collegati alle porte.
Questo metodo però occuperebbe molta memoria dato l’elevato numero di server e anche dispendioso
mantenere attivi tutti i server in ascolto su un’indirizzo IP stabile; viene usato allora il protocollo di
connessione iniziale, che anziché avere ogni server in ascolto su un TSAP dispone di un process server
che agisce da proxy per i server utilizzati più raramente.
Il process server rimane in ascolto su determinate porte e appena un utente richiede una connessione, fa
ereditare al server stesso la connessione con l’utente.
Per gestire server per i file, vengono usati dei server dei nomi, dove per trovare l’indirizzo TSAP di un
determinato servizio, viene aperta una connessione con il server dei nomi che, una volta saputo il nome
del servizio, risponde con la l’indirizzo TSAP.

CREAZIONE CONNESSIONE

La connessione non è banale, dato che nel caso in cui la rete perda, memorizzi e duplichi i pacchetti.
Il nodo del problema è l’esistenza di duplicati ritardati, e può essere affrontato in vari modi:
1. viene previsto l’utilizzo di indirizzi di trasporto monouso: ogni volta che diventa necessario un
indirizzo di trasporto ne viene generato uno nuovo e quando una connessione viene lasciata
l’indirizzo è scartato e non viene più utilizzato.Non consente però process server.
2. viene assegnato a ogni connessione un identificatore (numero sequenziale incrementato a ogni
connessione stabilita) , scelto da chi inizia la connessione e inserito in ogni TDPU compreso
quello per la connessione. Ogni volta che arriva una richiesta di connessione viene confrontata con
la tabella per vedere se apparteneva a una connessione rilasciata in precedenza; da qui il problema
della memoria, dato che in caso di crash non si saprebbe più quali identificatori sono stati usati.
Allora viene intrapresa un’altra strategia che è quella di impedire che i pachetti vivano per sempre
nella subnet. Si usa uno dei tre metodi:
1. Impedisco in qualche modo ai pacchetti di andare in loop e cerco di mettere un limite al delay di
congestione
2. Metto un contatore di hop nel pacchetto ed ogni hop lo decremento. Quando arrivo a zero butto il
pacchetto
3. Ogni pacchetto ha un etichetta con la data di creazione per cui butto tutti i pacchetti più vecchi di
una certa data. Questo metodo richiede però che tutti i router siano sincronizzati tra di loro con
un GPS o un segnale radio.
56
Inoltra bisogna assicurarsi non solo che un pacchetto sia defunto, ma che siano defunti anche tutti i
relativi ACK, quindi si attende anche un tempo T tale che tutti gli ACK relativi a quel pacchetto siano
morti.
Metodo Tomilson

Un metodo ancora più accurato è stato creato da Tomilson, migliorato poi da Sunshine e Dalal con
diverse varianti, usate anche da TCP.
Ogni macchina deve avere un orologio che misura l’ora con una certa precisione, ma che non deve
essere sincronizzata con gli orologi delle altre macchine; l’oroloogio viene visto come un contatore
binario che si incrementa uniformemente nel tempo, con un numero di bit superiore a quello dei
numeri di sequenza e deve anche funzionare a macchina spenta.
Questo perché non si devono avere due TDPU vive con lo stesso numero di sequenza, quindi quando
si stabilisce la connessione i k bit più bassi del clock vengono usati come numero iniziale della
sequenza ( k bit).
Ovviamente ogni connessione inizia con un numero diverso nella sequenza, che però non deve essere
ripetuto finchè le vecchie TDPU con quel numero siano ormai morte da un pezzo.

Se un’host va in crash, al riavvio non sa dove dovrebbe essere il numero di sequenza, quindi occorre
un tempo dove è proibito inviare sequenze dato che ancora potrebbero essere in circolazione pacchetti
antecedenti al crash (per evitare che arrivino duplicati).

Altri problemi il protocollo li ha nel caso in cui un’host invii dati troppo velocemente su una nuova
connessione, molto più velocemente del numero di sequenza iniziale rispetto al tempo,entrando nella
regione proibia (da sotto).
Per evitare questo devo fare in modo che la velocità sia impostata ad un certo numero di TPDU a ciclo
di clock (pochi millisecondi), e devo aspettare un rate del clock prima di aprire una connessione dopo
un crash.
Analogamente anche quando la frequenza di invio è molto lenta, si potrebbe entrare nella zona
proibita, ma questo problema viene risolto controllando se si è all’interno della zona proibita, ed
eventualmente ritardando la TPDU di T secondi o risincronizzando i numeri di sequenza.

Three-way Handshake

Dato che anche le TPDU di controllo possono essere ritardate, si deve fare in modo che le parti si
accordino per un numero di sequenza iniziale.
Three-way Handshake non richiede che entrambi i lati usino lo stesso numero di sequenza, quindi su
può usare anche quando non c’è un clock globale.
La stazione invia una richiesta di connessione contenente un numero di sequenza x; il destinatario
risponde con un messaggio di conferma per x contenente a sua volta il numero di sequenza y; il
mittente manda una conferma per y insieme ai primi dati.
57
Se arriva una richiesta di connessione duplicata in ritardo, contenente il numero di sequenza x, il
destinatario manda la conferma con il numero di sequenza y, ma il mittente manda un messaggio di
rifiuto perché non ha richiesto una connessione.

CHIUSURA CONNESSIONE

La chiusura di una connessione può avvenire in due modi:


 Chiusura asimmetrica: una stazione può chiudere la connessione quando vuole. Non garantisce che
tutti i dati vengano consegnati.
 Chiusura simmetrica: la connessione viene considerata come due connessioni unidirezionali
separate ognuna delle quali deve essere chiusa separatamente.
Per concordare la chiusura della connessione possono verificarsi dei problemi, esemplificati dal problema
degli eserciti. Due armate dello stesso esercito si trovano ai lati di un canale dove si trova l’esercito
nemico; le due armate ai lati del canale insieme potrebbero battere l’esercito nemico ma l’unico modo per
accordarsi sul momento dell’attacco, sarebbe inviare un messaggero attraverso il canale (che quindi
potrebbe venire catturato). In pratica l’armata che manda il messaggio non è sicura che il messaggio
arrivi; potrebbe aspettare la conferma dell’altra armata, ma se il messaggero che porta la conferma viene
catturato abbiamo lo stesso problema.
Per la chiusura della connessione si usa un protocollo three way handshake: una delle stazioni manda una
richiesta di chiusura della connessione; l’altra stazione manda a sua volta la richiesta di chiusura della
connessione e fa partire un timer; la prima stazione quando la riceve manda una conferma e chiude la
connessione e anche la seconda chiude la connessione quando riceve la conferma (se viene persa chiude
la connessione allo scadere del timer).
Se si perde la richiesta di chiusura della connessione inviata in risposta dalla seconda stazione, la prima
non ricevendo risposta entro un tempo prestabilito invia di nuovo la sua richiesta; riprova per un certo
numero di tentativi poi chiude comunque la connessione allo scadere del suo timer.
Il protocollo non funziona nel caso in cui vadano perse tutte le richieste di chiusura della prima stazione.
Una soluzione è che le stazioni chiudano la connessione quando non ricevono nulla per un determinato
intervallo di tempo, mandando eventualmente messaggi vuoti per tenere in piedi la connessione.

CONTROLLO DI FLUSSO

Il problema del controllo di flusso è simile a quello a livello data-link , dato che devono essere usati dei
buffer per conservare le TPDU inviate, finchè non vengono confermate.
I buffer possono essere usati i dalla sorgente o dalla destinazione: nel caso di traffico scarso con picchi
improvvisi (terminale interattivo), il destinatario non usa buffer dato che non sa quanti riservarne (o li
riserva dinamicamente), quindi il mittente deve mantenere una copia dei dati finchè la ricezione non è
confermata.
Nel caso di traffico abbondante e continuo (trasferimento file) è preferibile avere buffer a destinazione per
potere sempre accettare i dati che arrivano, alla velocità massima.
I buffer possono essere di dimensione fissa o variabile dato che le TPDU possono essere di dimensioni
molto diverse e il traffico può subire cambiamenti, i buffer di dimensione variabile sono più efficienti
anche se la gestione è più complessa.
58
MULTIPLEXING

Lo strato di trasporto permette il multiplexing delle connessioni a livello di trasporto sulle connessioni a
livello di rete.
Il multiplexing può essere di tipo upward se un’unica connessione di rete viene utilizzata da diverse
connessioni di trasporto; il multiplexing upward permette di ridurre le spese per i servizi di rete se i costi
dipendono dal tempo di connessione.
Il multiplexing può invece essere di tipo downard se una connessione a livello di trasporto viene ripartita
su varie connessioni a livello di rete (su una o più linee fisiche); il multiplexing downward permette di
utilizzare una larghezza di banda maggiore e quindi di velocizzare la trasmissione

1.Upward 2.Downward

LIVELLO DI TRASPORTO DEL MODELLO TCP/IP

Il livello di trasporto offre due protocolli, uno connesso e affidabile detto Trasmissione Control Protocol e
l’altro non connesso e non affidabile detto User Data Protocol.

Protocollo UDP

Permette alle applicazioni di mandare un datagram IPincapsulato senza stabilire una connessione. I
numeri di porta vengono usati per identificare i punti terminali nelle macchine sorgente e destinazione,
quindi quando il pacchetto arriva viene consegnato al processo legato alla porta di destinazione; questo
legame viene fatto con una operazione di tipo BIND.
Il valore di UDP è di avere le porte di sorgente e destinazione; la prima serve quando devo mandare
indietro un reply .
I campi del protocollo UDP sono le due porte (sorgente e destinazione), un campo UDP length che
comprende header e dati e un checksum opzionale che viene messo a zero se non calcolato.

Il problema dell’udp è che si limita a fornire una interfaccia a IP con il demultiplexing di diversi processi
su tante porte, ma viene comunque utilizzato nelle applicazioni client-server, in cui il client manda una
piccola richiesta al server e si aspetta una piccola risposta indietro, ma non garantendo il flusso.
59
Remote Procedure Call

Consentire ai programmi di chiamare le procedure situate su host remoti è un’operazione frequente ed è


descritta nel Remote Procedure Call dove la macchina 1 chiama una funziona sulla macchina 2, il
processo chiamante si blocca e l’esecuzione della funzione avviene sulla macchina 2.
Le informazioni possono essere trasportate dal chiamante al chiamato nei parametri e possono tornare
indietro come risultato della funzione, in modo da rendere una chiamata a procedure remote simile a una
locale.
Per chiamare una procedura remota il cliente deve essere associato a una piccola procedura di libreria
chiamata stub del client , che rappresenta la procedura del server nello spazio di indirizzamento del
client.
Anche il server è associato a una procedura chiamata stub del server e sono usate per nascondere che la
chiamata a procedura dal client al server non sia locale.
Il client chiama lo stub del client e inserisce i parametri nel pacchetto (marshaling) e prenota il sistema
dell’invio del messaggio; infine lo stub del server riceve il pacchetto e ne estrae i parametri per chiamare
la procedura.
Questo metodo presenta dei problemi dato che non si possono passare puntatori, dato che client e server
vivono in due differenti spazi di indirizzamento, e nemmeno le variabili globali possono essere usate.

Real-Time Trasport Protocol

Per le applicazioni multimediali è stato creato questo protocollo che viene eseguito sopra UDP.
La libreria multiplexa gli stream di e li codifica in pacchetti RTP che vengono messi in un socket, che poi
il kernel del sistema operativo converte in pacchetti UDP.
Per funzionare su UDP, diversi stream di dati real time in un unico stream vengono multiplexati, che può
essere mandato a un’unica o multilple destinazioni.
Ogni pacchetto ha un numero di sequenza per capire eventuali smarrimenti, che però potrebbero venire
approssimati per interpolazione, dato che la ritrasmissione non sarebbe pratica dato che in uno stream se
un pacchetto arriva in ritardo perde utilità; per questo non sono necessari controlli di flusso, correzione di
errori, ack e ritrasmissioni.
RTP è un protocollo dove la sorgente specifica l’encoding ma non viene coinvolto in esso, in modo da
essere adattato a vari tipi di codifica e di soddisfare le richiesta dell’applicazione (sincronizzazione,
riduzione jitter).
Il frame RTP è composto da diversi campi:

 VERSION: indica il nome della versione; la attuale è la 2


 P:indica che il pacchetto è stato riempito fino a un multiplo di 4 byte
 X: estensione dell’header presente
 CC: numero di sorgenti che contribuiscono (0-15)
60
 M: indica l’inizio dell’applicazione (video, audio)
 PAYLOAD TYPE: algoritmo di encoding utilizzato; non può cambiare durante la trasmissione
 SEQUENCE NUMBER: numero incrementale per controllare la perdita di pacchetti
 TIMESTSMP: viene usato per disaccoppiare la riproduzione dall’arrivo dei pacchetti, per gestire il
jitter
 SYNCRRONIZATION SOURCE IDENTIFIER: usato per multiplexare o demultiplexare diversi
stream in un diverso flusso UDP
 CONTRIBUTING SOURCE IDENTIFIER: vengono elencati i vari stream mixati.

Protocollo TCP

Progettato per avere uno stream di byte end to end affidabile, su una rete internet nonostante i problemi
legati alla topologia, banda, delay e altro.
Ogni computer che supporta TCP dispone di un’entità di trasporto TCP, che può essere una procedura di
libreria, un processo utente o una parte del kernel, in generale gestisce tutti i flussi TCP e le interfacce
verso lo strato IP.
Un’entità TCP accetta dai processi locali i flussi di dati dell’utente, li suddivide in pezzi non superiori di
64 Kb e invia ogni pezzo in un datagaramma IP; gestisce anche il timeout e la ritrasmissione secondo
necessità.
E’ ottenuto con la creazione di punti finali da parte del mittente e del ricevente, che vengono chiamati
socket; ognuna possiede un indirizzo composto dallìinidirizzo IP dell’host e da un numero di 16 bit locali
all’host chiamato porta.
I numeri di porta sotti il 1024 sono chiamati well know ports riservati per servizi standard serviti da
processi con privilegi elevati.
Le connessioni TCP sono full duplex e point to point e i dati arrivano sotto forma di byte stream,
Il protocollo base tra due entità TCP è di tipo sliding windows, quindi il mittente quando invia un
segmento fa partire un timer; il destinatario risponde con un segmento con dati (altrimenti vuoto) con un
numero di ACK uguale al prossimo numero di sequenza che si aspetta d ricevere, ovivamente prima che il
timer scada altrimenti il mittente rinvia il segmento.
Questo però comporta il problema di ritardi di segmenti in successione, per questo si ottimizza il processo
della ritrasmissione di bytes che non hanno avuto un ACK.

L’header TCP occupa 20 bytes e sottraendo anche i 20 bytes del intestazione del pacchetto IP rimangono
65495 bytes per i dati; spesso però i segmenti sono di dimensioni inferiori, dato che sono vincolati dal
Maximum Transfer Unit delle reti che devono attraversare, quindi la dimensione dei segmenti viene
negoziata.
 SOURCE PORT: numero porta
mittente
 DESTINATION PORT: numero
porta destinatario
 SEUQUENCE NUMBER: numero di
sequenza del primo byte di dati
 ACK NUMBER: numero di sequenza
del prossimo byte atteso
 HEADER LENGHT: indica dove
iniziano i dati all’interno del
segmento, dato che ci possono essere
delle opzioni.
61
 6 BIT NON USATI
 6 BIT DI FLAG:
o URG=1 se viene usato lo Urgent Pointer (questo indica l’offset nel segmento dove trovare i
dati urgenti, si può usare al posto di un messaggio di interrupt
o ACK=1 indica che il Acknowledment number è valido, =0 indica che il segmento non
contiene Ack così il campo suddetto non viene considerato
o PSH indica dati pushed. Il ricevente è quindi gentilmente pregato di non bufferizzare i dati
all’arrivo come aveva magari intenzione di fare per maggiore efficienza
o RST usato per resettare una connessione il cui stato per vari motivi è incerto. Usato anche per
non accettare una connessione o per rifiutare un segmento in formato non valido

o SYN per stabilire una connessione. La richiesta di connessione ha SYN=1 e ACK=0, la risposta
ha SYN=1 e ACK=1
o FIN bit per segnalare la chiusura di una connessione
 WINDOW SIZE: finestra di dimensione variabile che gestisce il controllo di flusso; dice quanti byte
posso mandare a partire dall’ultimo byte acknowledged.
 Il valore 0 segnala di non inviare altri dati per il momento, mentre si ripristina l’invio dei dati con
l’invio dello stesso segmento ma con valore window size uguale a 1.
 CHECKSUM: viene fatto il controllo di header, dati e dello pseudoheader (indirizzo IP di sorgente e
destinazione ) ;inoltre vengono inviati anche otto 0, 8 bit che indicano il protocollo e 16 bit con la
lunghezza del segmento TCP.
 Questo metodo aiuta nel rivelare pacchetti consegnati male ma vìola la gerarchia di protocolli.
 OPTIONS: permette funzioni extra oltre a quelle fornite
 URGENT POINTER: viene usato per indicare dopo quanti bytes iniziano i bytes uregenti

Creazione connessione TCP

L’apertura di una nuova connessione utilizza il protocollo three-way handshake.


La primitiva Connect spedisce un segmento TCP con il bit SYN impostato e un numero di sequenza
calcolato in base all’orologio di sistema.
Se il server non può accettare la connessione, invia un segmento con il bit di RST impostato per rifiutare
la connessione, altrimenti manda un segmento di conferma SYN e ACK impostati; per stabilire la
connessione anche nella altra direzione il server deve inviare u numero di sequenza e aspetta la conferma.

Chiusura connessione TCP

La connessione full duplex viene chiusa come una coppia di connessioni simplex; una delle due manda un
segmento con il bit di FIN e una volta ricevuto l’ACK la connessione è terminata in una direzione.
La stessa cosa deve essere fatta per chiudere la connessione nell’altra direzione; per evitare il problema
degli eserciti, una connessione viene ugualmente chiusa anche in caso di mancato arrivo dall’ACK, grazie
a un timer che viene fatto partire con la richiesta.
62
Controllo di flusso

Per il controllo di flusso TCP utilizza un protocollo a sliding windows con la gestione degli errori di tipo
go back n.
Quando la dimensione della finestra è 0 il mittente non può spedire dati, ma solo segmenti con dati
urgenti o segmenti di un byte per prevenire deadlock se un annuncio di finestra dovesse andare perso.
Quando il mittente trasmette un segmentofa partire un timer, e ritrasmette alla fine del timer; la durata del
timer è importante per evitare troppe ritrasmissioni o ritardi inutili.
Dato che ne il mittente, ne il destinatario sono obbligati a trasmettere i dati appena vengono ricevuti
dall’applicazione, vengono mandati ACK dell’ultimo byte ricevuto, così il segmento può venire spedito
una volta riempito il payload.
Se però si inviano solamente pochi bytes per volta, viene utilizzato l’algoritmo di Nagle, che prevede di
inviare solamente un primo byte, e riempiendo il payload del segmento successivo mentre si attende
l’ACK.
Se l’applicazione ricevente legge dal buffer pochi bytes per volta, invia messaggi al destinatario
informandolo della disponibilità di spazio, ma il sorgente continua comunque a inviare pochi byte.
L’algoritmi di Clark consiste nel fare in modo che il ricevente mandi un aggiornamento della finestra solo
se il buffer è mezzo vuoto.

Controllo della congestione

Il livello TCP si preoccupa del controllo delle congestioni, dato che la riduzione del flusso di dati è
l’unica soluzione.
Il mittente mantiene due finestre che indicano quanti dati il destinatario è pronto a ricevere; in questo
modo non vengono inviati pacchetti che non possono essere consegnati al destinatario, ma oltre a questo
deve essere presa in considerazione anche la capacità della rete.
Il mittente tiene aperte due finestre che indicano quanti dati possono essere trasmessi in ogni istante in
base alla capacità del ricevente e della rete; tra i due viene trasmesso il minimo delle finestre.
La finestra di congestione viene inizialzzata ala massima dimensione del segmento in uso, e se il primo
segmento passa senza timeout viene raddoppiata la dimensione massima; questo finchè sicevo tutti gli
ACK.
La finestra di congestione continua a crescere in modo esponenziale finche non raggiunge la finestra del
ricevente; quando però ho un timeout la soglia viene (threshold) viene ridotta alla metà della finestra di
congestione e la crescita del massima dimensione di segmento cresce linearmente.
63
7. LIVELLO APPLICAZIONE

Il livello applicazione comprende tutte le applicazioni comunemente note come applicazioni di rete (posta
elettronica, trasferimento file, ecc…) e altre applicazioni di supporto, come i servizi di directory che
permettono di individuare le risorse all’interno della rete.

DOMAIN NAME SISTEM

Per accedere più facilmente alle risorse si può associare ad ogni risorsa un nome, più facile da ricordare
dell’indirizzo. Una delle forme più semplici di guida di rete è quella che permette di ottenere l’indirizzo
di una risorsa, noto il nome (servizio di risoluzione dei nomi); il sistema di risoluzione dei nomi più noto
è il DNS, usato nella rete Internet.
In una rete TCP/IP ogni stazione è identificata da un indirizzo IP; al posto degli indirizzi si possono usare
i nomi; DNS (Domain Name System) è un sistema di risoluzione dei nomi usato principalmente per
associare nomi di host e destinazioni di posta elettronica a indirizzi IP.
Usa un sistema di denominazione con una struttura gerarchica, suddiviso in domini ; i nomi sono
composti dal nome host e dal nome di dominio, in modo che i nomi delle stazioni possono essere
duplicati. Lo spazio dei nomi è una struttura ad albero che rappresenta tutti i domini.
I domini di massimo livello sono di tre tipi:
 Organizzativi: rappresentano il tipo di organizzazione
 Geografici: due caratteri che rappresentano una nazione (definiti in ISO 3166)
 Dominio inverso: viene usato per la ricerca inversa, cioè per cercare il nome noto l’indirizzo IP

POSTA ELETTRONICA

Anticamente consisteva di un protocollo di file transfer definito nella RFC 822, dove venivano usati solo
caratteri dell’ASCII ristretto e alcuni campi.
Questi campi contengono le informazioni per trasportare il messaggio, indirizzo di destinazione e priorità;
queste informazioni vengono usate per il routing
Per il leggere e spedire mail viene usato il Message User Agent che fornisce una interfaccia, basata su
comandi, o su menu, o metodi grafici per interagire con il sistema di posta elettronica.
Il Message Transfer Agent viene utilizzato per spostare il messaggio da sorgente a destinazione e utilizza
le informazioni all’interno dell’header;.
Questo però rendeva difficile mandare un mail a diversi destinatari, i messaggi non avevano struttura
interna, non si aveva la certezza dell’arrivo del messaggio e la semplicità del protocollo impediva
l’interfaccia ad applicazioni multimediali.

Multipurpose Internet Mail Extension (MIME)

Si usa ancora il protocollo RFC 822 ma vengono aggiunte nuove intestazioni e vengono definite delle
regole di codifica in modo che tutto sia inviato come codice ASCII; in questo modo si possono continuare
a usare gli stessi programmi e protocolli di posta cambiando solo gli agenti utente.
MIME definisce nuovi tipi di intestazione per definirne la versione, la natura del corpo del messaggio e il
metodo di codifica utilizzato e vengono definiti anche tipi per la natura del corpo del messaggio (testo con
tag html,immagini,messaggio suddiviso in più parti).
64
Vegono usati schemi di codifica a bese64 usata per i messaggi in binario, e codifica quoted-printable per i
messaggi completamente in ASCII ristretto.

Simple Mail Transfer Protocol (SMTP)

Protocollo che si occupa dell’invio del messaggio, per comunicare con il server di posta.
Perchè i messaggi possano essere trasmessi al server SMTP, il client deve essere in grado di risolvere il
nome del serve che compare nell’indirizzo e-mail, in un’indirizzo IP tramite il DNS.
Viene stabilita una connessione col server destinatario che è in attesa sulla porta 25; il server copia i
messaggi nelle appropriate caselle postali e se non possibile invia una notifica di errore.
Vengono utilizzati quattro tipi di messaggi per la comunicazione:
 HELO: messaggio iniziale per annunciare il nome
 MAIL FROM: per indicare il mittente
 RCPT TO: per indicare un destinatario (con più messaggi indico più destinatari)
 DATA: il corpo dl messaggio da spedire

Post Office Protocol 3 (POP3)

Per la lettura dei messaggi viene utilizzato questo protocollo, per comunicare con il server di posta POP3.
Viene stabilita una connessione TCP con il server dell’Internet Service Provider sulla porta 110; i
messaggi vengono copiati dalla casella di posta al computer dell’utente.
All’autenticazione il server risponde con il numero di messaggi presenti nella casella di posta e il client
risponde con il numero del messaggio da ricevere, che poi viene ricevuto oppure li riceve tutti.

Internet MessageAccess Protocol (IMAP)

IMAP è pensato per uso online; a differenza di POP3,


presume che tutti i messaggi devono rimanere sul server
all’infinito e quindi permette all’utente di modificare
creare ed eliminare messaggi direttamente dal server.
Rispetto al POP3 presenta anche varie funzioni, come
l’organizzazione automatica della posta, l’eliminazione
della posta indesiderata, risposta automatica.
Per accedere alla propria casella di posta è necessario
effettuare un’autenticazione che, una volta ricevuta e
controllata dal server permette di accedere alla pagina di
posta per creare, modificare ed eliminare
posta.

IL WORLD WIDE WEB

Il World Wide Web nacque da un accordo tra due società pronte a sviluppare il web per standardizzarne i
protocolli e l’interoperabilità.
Il web permette di consultare delle pagine attraverso un browser che preleva la pagina richiesta e la
visualizza secondo l’ipertesto da cui è composta.
Il browser stabilisce una connessione TCP con il server; il server Web per default resta in ascolto sulla
porta 80; dopo aver stabilito la connessione il client invia una richiesta e il server risponde; poi la
65
connessione viene chiusa; se la pagina contiene immagini, per ogni immagine viene ripetuto il
procedimenti, aprendo una nuova connessione.
Dal lato server quando viene accettata una connessione TCP (da browser), ottiene il nome del file
richiesto che preleva dal disco per inviare al client.
Le richieste del client chiedono di trasferire un file di risorse dal computer del server al computer del
client.

HTTP

Il protocollo HTTP (Hyper Text Transfer Protocol) definisce il formato delle richieste del browser e delle
risposte del server, descrivendo in dettaglio le intestazioni e il corpo dei messaggi; ogni interazione tra
client e server consiste in una sola richiesta e una sola risposta.
Il protocollo HTTP è privo di stati, cioè ad ogni connessione non ricorda cosa è avvenuto in precedenza;
per mantenere informazioni ottenute nelle connessioni precedenti si possono usare i cookie (stringhe di
testo memorizzate sul computer dell’utente).

File Transfer Protocol (FTP)

Il protocollo FTP richiede che l’utente si colleghi con nome utente e password per avere accesso al server;
però tutte le trasmissioni sono in chiaro e quindi nome utente e password possono essere facilmente
intercettati.
Il server FTP usa 2 porte: la 20 (dati) e la 21 (controllo).
Per la comunicazione tra client e server vengono usate due connessioni TCP: una connessione di controllo
e una connessione di trasferimento dati. Il client stabilisce una connessione sulla porta 21 che rimane
attiva per tutta la sessione FTP e che permette di inviare i comandi al server; per ogni richiesta di
trasferimento dati il server apre una connessione sulla porta 20, che chiude quando il trasferimento è
completato (quindi deve essere aperta una nuova porta dati sul client ogni volta che comincia un nuovo
trasferimento dati).
Poiché viene usato TCP come protocollo di trasporto i trasferimenti file sono affidabili.