Protocolli MAC per reti Ad Hoc C. Siva Ram Murthy and B. S. Manoj, Ad Hoc Wireless Networks, Prentice Hall, 227-247
Obiettivi di progetto Operazione distribuita Supporto a QoS per traffico real-time prenotazioni possono diventare invalide a causa della mobilità se il terminale esce dalla regione dove erano state fatte Ritardi di accesso bassi Uso efficiente della banda lo spettro radio è limitato Allocazione equa della banda Overhead di controllo il più basso possibile Minimizzazione degli effetti dei problemi di terminali nascosti e di terminali esposti Scalabilità Controllo di potenza Controllo di velocità adattativo al carico della rete e allo stato dei vicini Antenne direzionali per ridurre interferenza e consumi e per riuso dello spettro Sincronizzazione tra i nodi per prenotazioni di banda (time slot) Impossibile (o molto difficile) inviare e ricevere allo stesso tempo La situazione di interferenza al receiver è ciò che conta per il successo della trasmissione, ma può essere molto differente da ciò che il sender può osservare
Problema del terminale nascosto Nodi separati poco meno di un range radio CSMA: i nodi ascoltano per determinare se il canale è libero prima di trasmettere C non può sentire A (C è nascosto ada), così trasmetterà mentre A trasmette (CS fallisce); risultato: collisione a B, non sentita da A (CD fallirebbe) Carrier Sense insufficiente per rilevare tutte le trasmissioni su wireless networks! Le collisioni sono localizzate spazialmente al receiver Terminali nascosti: terminali che non sono nel range di trasmissione del sender, ma lo sono entro quello del receiver
Problema del terminale esposto A B C Nodi separati poco meno di un range radio CSMA: i nodi ascoltano per determinare se il canale è libero prima di trasmettere Due flussi, questa volta B invia ad A; C invia ad un nodo diverso da B Se C trasmette, causa una collisione in A? Eppure C si rifiuterà di trasmettere mentre B trasmette ad A! C è esposto a B Le collisioni sono localizzate spazialmente al receiver Una possibilità: antenne direzionali invece di antenne omnidirezionali Soluzione più semplice: usare lo stato del canale al receiver per determinare il comportamento del trasmettitore terminali esposti: terminali nel range del sender, ma fuori di quello del receiver
Classificazione di protocolli MAC Non-Carrier Sensing Carrier Sensing Control Packets Control Packets & Carrier Sensing Reservation Sender Initiated Receiver Initiated Single Channel Separate control and data channels Power management Power control Fairness per node Fairness per flow No Handshake RTS/CTS/DATA RTS/CTS/DS/DATA/ACK RTS/CTS/DATA/ACK RTR/DATA CTS/DATA Preamble/BT/DATA No Back-off BEB MILD Uniformly distributed Any BEB or MILD Directional Antennas
Non-Carrier Sensing Carrier Sensing Control Packets Control Packets & Carrier Sensing Reservation Sender Initiated Receiver Initiated Single Channel Separate control and data channels Power management Power control Directional Antennas No Handshake RTS/CTS/DATA RTS/CTS/DS/DATA/ACK RTS/CTS/DATA/ACK RTR/DATA CTS/DATA Preamble/BT/DATA No Back-off BEB MILD Uniformly distributed Any BEB or MILD Fairness per node Fairness per flow ALOHA, MACA, MACAW CSMA, FAMA, CSMA-CA, DDCF, IEEE 802.11, RBAR, CA-CDMA, DBTMA, Bi-MCMAC, PCM, BTMA MACA, MACAW FAMA, CSMA/CA, IEEE 802.11, DBTMA, RI-BTMA MACA/PR, DBASE MACAW, FAMA MACA-BI, RI-BTMA, MARCH MACA, MACAW, FAMA, MARCH, MACA-BI BTMA, DBTMA, PAMAS, ICSMA PAMAS, DPSM PCM, PCMA D-MAC, M-MAC CSMA MACA, FAMA, RBAR, CA-CDMA, DBTMA MACAW IEEE 802.11, DDCF, Bi-MCMAC, PCM, CSMA-CA MACA-BI MARCH RI-BTMA CSMA MACA, IEEE 802.11, DDCF, Bi-MCMAC, CSMA-CA MACAW FAMA RBAR, CA-CDMA, PCM DBTMA MACA MACAW
Uso di Carrier Sense o no In CSMA, il sender decide di trasmettere in base all intensità del carrier nelle sue vicinanze In una tipica rete wireless ad hoc, il sender ed il receiver possono non essere vicini Le intensità del carrier al sender ed al receiver possono essere differenti La mancanza del carrier non sempre significa che è giusto trasmettere (terminali nascosti) La presenza del carrier non sempre significa che è giusto non trasmettere (terminali esposti)
Singolo canale o Controllo fuori banda Il receiver informa i potenziali interferenti mentre sta avvenendo una ricezione Inviando un segnale Problema: Non può usare lo stesso canale su cui ha luogo la ricezione Usare un canale separato per la segnalazione Protocollo BTMA - Busy Tone Multiple Access Usa un canale fuori banda Busy-Tone Il receiver informa i potenziali interferenti prima che una ricezione avvenga Può usare lo stesso canale Il receiver stesso ha bisogno di essere informato, dal sender, riguardo ad una trasmissione incombente I potenziali interferenti debbono essere a conoscenza di tale informazione Protocollo MACA - Multiple Access Collision Avoidance Singolo canale: RTS/CTS in banda Ispirato da CSMA/CA Togliere CS e si ottiene MACA
Protocolli basati su contesa
MACA No Handshake Multiple Access Collision RTS/CTS/DATA Avoidance Non fa uso di carrier sense RTS/CTS/DS/DATA/ACK Collision avoidance mediante RTS/CTS/DATA/ACK handshake in banda Il sender trasmette Request-to-Send RTR/DATA (RTS) Contiene la lunghezza della CTS/DATA trasmissione Se il receiver sente RTS Preamble/BT/DATA ed attualmente non è deferring, trasmette Clear-to- Send (CTS) Anch esso contiene la lunghezza No Back-off della trasmissione Alla ricezione del CTS, il sender comincia la trasmissione di DATA BEB Ogni stazione che capta un RTS MILD differisce la trasmissione sino al compimento di un CTS Uniformly distributed Se non ha ricevuto nessun CTS Any può trasmettere Ogni stazione che capta un BEB CTS or differisce MILD la trasmissione sino alla lunghezza attesa di un pacchetto di DATA Se un pacchetto è perso, ilfairness sender usa per un node algoritmo di binary exponential back-off (BEB) Fairness per flow
MACA Multiple Access Collision Avoidance Non fa uso di carrier sense Il receiver informa i potenziali interferenti prima che una ricezione avvenga Può usare lo stesso canale Collision avoidance mediante RTS/CTS handshake in banda Il sender trasmette Request-to-Send (RTS) Contiene la lunghezza della trasmissione Se il receiver sente RTS ed attualmente non è deferring, trasmette Clear-to- Send (CTS) Anch esso contiene la lunghezza della trasmissione Alla ricezione del CTS, il sender comincia la trasmissione di DATA Ogni stazione che capta un RTS differisce la trasmissione sino al compimento di un CTS Se non ha ricevuto nessun CTS può trasmettere Ogni stazione che capta un CTS differisce la trasmissione sino alla lunghezza attesa di un pacchetto di DATA Se un pacchetto è perso, il sender usa un algoritmo di binary exponential back-off (BEB)
BEB Binary Exponential Back-Off Ogni volta che è ricevuto un CTS: Back-off counter BO = F dec (BO) Ogni volta che non è ricevuto un CTS: Back-off counter BO = F inc (BO) F dec (BO) = BO min F inc (BO) = MIN [2BO, BO max ]
MACAW No Handshake MACA for Wireless RTS/CTS/DATA Include un acknowledgement RTS/CTS/DS/DATA/ACK (ACK) a livello MAC per fast error recovery IEEE 802.11 standard usa RTS/CTS/DATA/ACK CSMA insieme ad una variante di MACAW Non carrier sense, non collision RTR/DATA detection Collision avoidance: CTS/DATA Sender trasmette RTS Preamble/BT/DATA Receiver trasmette CTS Sender trasmette DS per notificare No Back-off a terminali esposti il dialogo RTS-CTS avvenuto con successo BEB Sender trasmette DATA MILD Receiver trasmette ACK Uniformly distributed Stazioni che ascoltano DS differiscono Anysino alla fine della trasmissione dei dati Backoff mechanism: BEB or MILD Exponential backoff con cambiamenti significativi per migliorare equità e throughput RRTS Fairness per node Fairness per flow
MACAW MACA for Wireless Include un acknowledgement (ACK) a livello MAC per fast error recovery IEEE 802.11 standard usa CSMA insieme ad una variante di MACAW Non carrier sense, non collision detection Collision avoidance: Sender trasmette RTS Receiver trasmette CTS Sender trasmette DS per notificare a terminali esposti il dialogo RTS-CTS avvenuto con successo Sender trasmette DATA Receiver trasmette ACK Stazioni che ascoltano DS differiscono sino alla fine della trasmissione dei dati Backoff mechanism: Exponential backoff con cambiamenti significativi per migliorare equità e throughput
MILD BEB può portare a unfairness: un sender backed-off ha una chance decrescente di acquisire il mezzo ( il povero diventa più povero ) R2 E molto probabile che la stazione meno backed-off vinca di nuovo la banda Il problema è causato dal fatto che non c è condivisione dell esperienza di collisione Soluzione: aggiungere ai pacchetti un header extra contenente il valore corrente di BO Un nodo che riceve un pacchetto copia questo valore nel suo BO Dopo ciascuna trasmissione con successo tutti hanno lo stesso valore di BO Usare MILD (Multiple Increase Linear Decrease) per aggiornare i valori di BO F inc (BO) = MIN [1.5BO, BO max ] F dec (BO) = MAX [BO 1, BO min ] Risultato: disseminazione del livello di congestione del trasmettitore vincente ai suoi contendenti R1 S1 S2
DS S1 sta inviando pacchetti di dati a R1 S2 manda RTS a R2, ma quando R2 manda CTS, quest ultimo collide con i pacchetti di dati da S1 Come fa S2 a sapere di non inviare RTS, ed evitare di far crescere il suo backoff? Soluzione MACAW: pacchetto DS da S1 avverte S2 che S1 sta inviando un pacchetto di dati R1 S1 S2 R2
RRTS S1 sta già inviando dati S2 invia RTS, ma R2 non risponde con CTS, poiché è un nodo nascosto a S1 S2 non conosce la durata della trasmissione dati Continua ad incrementare il contatore di BO e trasmette RTS R2 contende per il mezzo per conto di S2 Se ha ricevuto RTS da S2, attende il prossimo periodo di contesa e trasmette RRTS RRTS = Request for RTS Il nodo S2 quando riceve RRTS, invia RTS a R2 e il RTS-CTS-Data-Ack ha luogo RRTS RRTS S2 R2 R1 S1
ACK Se non è ricevuto ACK, ritrasmettere RTS Receiver: Dati già ricevuti, inviare ACK Altrimenti, inviare CTS Sender: Aumentare BO dopo RTS senza CTS o ACK ACK ricevuto: diminuire BO CTS ricevuto: BO invariato
FAMA Floor Acquisition Multiple Access Floor acquisition si riferisce al processo di guadagnare il controllo del canale prima di trasmettere FAMA Non-Persistent Transmit Control Request Packets (FAMA-NTR) Control Packets & Carrier Sensing Prima di inviare un pacchetto, il sender fa carrier sensing se il canale è occupato, fa back off se è libero, trasmette RTS e attende No Handshake 2 + t CTS, è il massimo t prop sul canale RTS/CTS/DATA (2 è il RTT) se entro questo tempo RTS/CTS/DS/DATA/ACK non riceve CTS, o lo riceve corrotto, fa back off altrimenti può trasmettere RTS/CTS/DATA/ACK un burst di dati (entro un limite prefissato) RTR/DATA alla fine del burst, il sender deve attendere un ulteriore tempo CTS/DATA mentre il receiver deve attendere dopo ogni pacchetto per assicurarsi che non Preamble/BT/DATA sia l ultimo Carrier sensing da parte del sender, seguito dallo scambio di pacchetti di controllo RTS-CTS, consente al protocollo di essere efficiente come MACA in presenza di terminali nascosti, e come CSMA altrimenti
FAMA Floor Acquisition Multiple Access Floor acquisition si riferisce al processo di guadagnare il controllo del canale prima di trasmettere FAMA Non-Persistent Transmit Request (FAMA-NTR) Prima di inviare un pacchetto, il sender fa carrier sensing se il canale è occupato, fa back off se è libero, trasmette RTS e attende 2 + t CTS, è il massimo t prop sul canale (2 è il RTT) se entro questo tempo non riceve CTS, o lo riceve corrotto, fa back off altrimenti può trasmettere un burst di dati (entro un limite prefissato) alla fine del burst, il sender deve attendere un ulteriore tempo mentre il receiver deve attendere dopo ogni pacchetto per assicurarsi che non sia l ultimo Carrier sensing da parte del sender, seguito dallo scambio di pacchetti di controllo RTS-CTS, consente al protocollo di essere efficiente come MACA in presenza di terminali nascosti, e come CSMA altrimenti
BTMA Single Channel Separate control and data channels Il receiver informa i potenziali interferenti mentre sta avvenendo una ricezione Inviando un segnale Problema: Non può usare lo stesso canale su cui ha luogo la ricezione Usare un canale separato per la segnalazione Protocollo BTMA - Busy Tone Multiple Access Usa un canale fuori banda Busy-Tone
BTMA Quando un nodo è pronto per trasmettere, controlla se il busy tone è attivo Se non lo è, accende il busy tone e inizia la trasmissione dati Altrimenti, rischedula il pacchetto dopo un ritardo casuale Ogni altro nodo che sente il carrier sul canale dei dati trasmette anch esso il segnale di occupato Quando un nodo sta trasmettendo dati, a nessun nodo entro 2 hop è permesso di trasmettere Elimina nodi nascosti, aumenta nodi esposti Range di trasmissione del nodo N2 Range di trasmissione del nodo N1 Regione in cui non sono possibili trasmissioni simultanee quando il nodo N1 sta trasmettendo dati Busy tone
MACA-BI MACA-By Invitation Schema iniziato dal receiver Il receiver inizia la trasmissione Sender datiinitiated inviando un pacchetto di controllo RTR (Ready to Receive) al Receiver sender Initiated La parte RTS di RTS/CTS è soppressa CTS RTR No Handshake Riduce il numero di pacchetti RTS/CTS/DATA di controllo in MACA Il receiver deve stimare RTS/CTS/DS/DATA/ACK la frequenza media di arrivo di pacchetti al sender I pacchetti di dati portano RTS/CTS/DATA/ACK informazioni di controllo riguardanti backlogged flows sender, queue RTR/DATA length CTS/DATA Nel caso in cui il sender non ottenga il messaggio RTR prima dello Preamble/BT/DATA scadere di un timeout (cioè, errata stima della frequenza), può inviare le informazioni in un messaggio RTS
MACA-BI MACA-By Invitation Schema iniziato dal receiver Il receiver inizia la trasmissione dati inviando un pacchetto di controllo RTR (Ready to Receive) al sender La parte RTS di RTS/CTS è soppressa CTS RTR Riduce il numero di pacchetti di controllo in MACA Il receiver deve stimare la frequenza media di arrivo di pacchetti al sender I pacchetti di dati portano informazioni di controllo riguardanti backlogged flows sender, queue length Nel caso in cui il sender non ottenga il messaggio RTR prima dello scadere di un timeout (cioè, errata stima della frequenza), può inviare le informazioni in un messaggio RTS
Protocolli basati su contesa con meccanismi di prenotazione
D-PRMA Distributed Packet Reservation Multiple Access Protocol Protocollo basato su contesa con prenotazione La contesa avviene soltanto durante la fase di prenotazione Il canale è diviso in frame di dimensioni uguali Ciascun frame consiste di s slot e ciascun slot consiste di m mini-slot Ciascun mini-slot ha due campi di controllo: RTS/BI (RTS con Busy Indication), CTS/BI Un certo periodo di inizio di ciascun mini slot è riservato per carrier sensing Se un sender rileva che il canale è libero all inizio di uno slot (mini slot 1), invia RTS nella parte RTS/BI del mini slot Il receiver invia CTS nel CTS/BI dello stesso mini-slot. Se il sender riceve il CTS con successo, allora ottiene la prenotazione per lo slot corrente e può usare i rimanenti Slot 1 Slot 2 Slot s mini slot (da 2 a m) e lo stesso slot nei frame successivi sino al completamento del pacchetto Altrimenti continua la contesa attraverso i mini slot successivi Mini slot 1 Mini slot 2 Mini slot m All interno di uno slot riservato, si usa TDD o FDD RTS/BI CTS/BI
Antenne direzionali Minor energia nella direzione sbagliata, maggior energia nella direzione giusta Distanze maggiori, link più robusti, miglior riuso spaziale Ogni nodo può trasmettere o ricevere soltanto un pacchetto per volta (ha un solo transceiver) Ogni nodo è dotato di M antenne direzionali Ciascuna antenna ha un pattern di radiazione conica abbracciante un angolo di 2/M radianti
Antenne direzionali Schema base RTS/CTS (come in MACA) RTS è trasmesso attraverso tutte le antenne (trasmissione omnidirezionale) CTS è trasmesso dal receiver attraverso tutte le antenne (omnidirezionale) La direzione è notata da entrambi ientificando l antenna che ha ricevuto con la massima potenza Il sender invia il pacchetto dati attraverso l antenna identificata, il receiver riceve attraverso l antenna identificata (trasmissione con antenna direzionale)
Controllo di potenza Quando C trasmette a D ad un alto livello di potenza, B non può ricevere la trasmissione di A a causa dell interferenza da C Se C riduce la potenza di trasmissione, può ancora comunicare con D - Riduce il consumo di energia al nodo C - Permette a B di ricevere la trasmissione di A (riuso spaziale)
PCM Power-Control MAC protocol trasmette dati e ACK alla potenza minima necessaria per una corretta ricezione usa RTS/CTS per la misura dell attenuazione fra sender e receiver RTS/CTS sono trasmessi con la massima potenza p max RTS/CTS sono ricevuti con un livello di segnale p r si suppone simmetria di attenuazione nelle due direzioni Livello di rumore al di sotto di una certa soglia predefinita Rx thresh Rx thresh è la minima intensità necessaria di segnale ricevuto Potenza p desired di trasmissione dati e ACK: p desired = (p max / p r ) Rx thresh c Adattabilità a cambiamenti, per es. causati da mobilità Controllo istantaneo e ricalcolo della potenza necessaria di trasmissione si può fare ad ogni pacchetto
X sente RTS ma non lo decodifica: non trasmette per un tempo EIFS X non sente DATA se trasmette dopo EIFS collide in A con ACK trasmesso da B X Zona di carrier sensing per RTS Range di trasmissione per RTS Zona di carrier sensing per CTS p max Range di trasmissione per ACK A B p desired p max Range di trasmissione per CTS p desired Range di trasmissione per DATA Y Y sente CTS ma non lo decodifica non trasmette per un tempo EIFS se Y trasmette dopo EIFS collide in B con DATA trasmesso da A
Pattern di potenza di trasmissione in PCM Per evitare collisioni in A, A trasmette DATA alla minima potenza, ma periodicamente, con periodo EIFS, trasmette alla massima potenza per una durata sufficiente al carrier sensing PCM raggiunge troughput prossimi a 802.11 con molto meno energia