Il
campo
Duration
delle trame RTS-CTS, viene impostato alla durata della successiva
trasmissione, chiamata NAV (
Network
Allocation Vector),
che per l'RTS corrisponde al tempo necessario alla ricezione del CTS e
dell'ACK, alla trasmissione della trama dati, ed agli IFS relativi; il
NAV associato al CTS è invece ridotto coerentemente. Tutte
le stazioni che ricevono l'RTS od il CTS (compreso quindi il terminale
nascosto), prendono nota del valore di NAV, si astengono dal trasmettere
durante tale intervallo, e riprendono l'attesa per un DIFS silente allo
scadere del NAV. L'intervallo coperto dal NAV è pertanto
riservato alla trasmissione operata da parte di chi ha inviato l'RTS, e
per ridurre l'impegno del media al minimo, tutti gli IFS sono di
tipo
Short.
Il file di capture
orinoco.pcap,
ottenuto nel contesto del
setup
sperimentale dopo aver fatto associare
eth2
con l'AP, congiuntamente alla richiesta della pagina
http://airsnort.shmoo.com/orinocoinfo.html,
mostra sia la presenza degli acknowledgements a seguito di ogni trama,
che la presenza dei RTS/CTS, nel caso di invio di trame di dimensione
superiore ai 1000 bytes, avendo impostato l'Access Point
in
tal senso.
Frammentazione
Ogni volta che si opera una trasmissione a pacchetto, occorre sempre
ricordare che se l'adozione di una lunghezza di pacchetto
elevata
riduce l'inefficienza legata alla presenza delle intestazioni, allo
stesso tempo aumenta la probabilità che si
verifichi un errore di trasmissione (oltre a monopolizzare il mezzo
trasmissivo). Pertanto, le stazioni possono operare su di un ulteriore
parametro, che stabilisce la
lunghezza
massima di una trama, oltre la
quale questa sarà trasmessa suddivisa in frammenti.
Come illustrato
sopra, la trasmissione dei frammenti è preceduta da uno
scambio RTS-CTS, che permette di diffondere un NAV con il quale si
prenota il mezzo per il tempo necessario alla corretta
trasmissione del solo primo
frammento, in modo che se la trasmissone di quest'ultimo non va a
buon
fine, il mezzo torna rapidamente libero. Al contrario, se il primo
frammento è trasmesso correttamente, a questo (ed al
relativo ACK) è associato un nuovo NAV, con il quale si
prenota il mezzo per la trasmissone del secondo frammento, e
così via.
Considerando che l'ACK (come il CTS) è inviato dall'AP, il
problema del terminale nascosto è anche stavolta risolto.
Nel caso in cui si verifichi un errore di trasmissione, il mezzo
viene
rilasciato e subentra una normale fase di contesa basata sull'attesa
del DIFS; quando la stazione che non ha terminato di trasmettere i
suoi
frammenti si aggiudica (mediante RTS-CTS) nuovamente il mezzo,
la
trasmissione prosegue a partire dal successivo
frammento ancora da trasmettere.
Il file di capture
orinoco-frag.pcap,
ottenuto nel contesto del
setup
sperimentale dopo aver fatto associare
eth2
con l'AP, congiuntamente alla richiesta della pagina
http://airsnort.shmoo.com/oldorinocoinfo.html,
mostra l'intervento della procedura di frammentazione, per le trame
di dimensione
superiore ai 1200 bytes, avendo impostato l'Access Point
in
tal senso.
Tipi e
formato di trame, indirizzi
Ora che abbiamo più elementi, riassumiamo i
possibili tipi di trama. In funzione dei due bit del campo
Type
possiamo
osservare tre tipi di trame, che si specializzano in base ai 4 bit
del
Subtype:
- di gestione - i beacon ed i
probe, le richieste/risposte di associazione ed
autenticazione,
- di controllo - RTS e CTS,
ACK, PS-Poll,
CF-end
- dati - oltre al payload
proveniente dagli strati superiori, possono anche trasportare il
significato di Poll o di ACK nelle fasi Contention Free
Inoltre ora dovrebbe essere chiaro il senso dei campi
More
Fragments,
Duration
e
Sequence
Control (per numerare i
frammenti). Per ciò che riguarda i possibili 4 campi
indirizzo, questi possono essere presenti tutti o meno, in funzione
del
tipo di trama: ad esempio, per ciò che riguarda le trame
ACK, RTS e CTS, le loro dimensioni sono molto contenute, risultando