MACAW (multiple access with collision avoidance fro Wireless)

来源:互联网 发布:python做数据分析 编辑:程序博客网 时间:2024/05/17 01:34

Compared with MACA, the MACAW mainly optimizes the backoff algorithm and designs RTS-CTS-DS-DATA-ACK message exchange. 

backoff algorithm 

In MACA, the binary exponential backoff (EBE) algorithm is used to schedule the retransmission. However, the EBE cannot allocate bandwidth fairly because each node does its own congestion individually without sharing the information with other nodes. In MACAW, a package header field of current backoff counter value is added. Once the station hears a package, the current backoff value of this package will be copied into the backoff counter value in the station. Then the station will broadcast its current backoff counter value to all its neighbor nodes. In this way, after a successful data transmission, all nodes will have the same current backoff counter value. Another problem of EBE is its large variations, which means the value of current backoff count varies greatly. To solve this problem, a multiplicative increase and linear decrease (MILD) is proposed. 

RTS-CTS-DS-DATA-ACK message exchange 

ACK

In MACA, the error data package is recovered at the transport layer, which is very slow. An acknowledgment packet ACK is introduced in MACAW to accelerate the recovery by moving it to the link layer. 

DS

Exposed terminal problem.svg

[figure from https://en.wikipedia.org/wiki/Exposed_node_problem]

In the above example, say S1 sends package RTS to R1 and S2 can overhear the RTS. Then R1 sends a package CTS to S1. However, this CTS cannot be overheard by S2. In other words, S2 are not sure about the whether the RTS-CTS exchange was successful or not. To overcome this problem, the Data-Sending package (DS) is sent by S1 after receiving the CTS from R1. In this way, S2 will know the RTS-CTS exchange succeeds. 

RRTS


[figure from https://en.wikipedia.org/wiki/Exposed_node_problem]

Suppose R1 is transferring data to S1. At the same time, R2 sends RTS to S2. Because S2 are deferred to response CTS in order to avoid the inference with the receiving data of S1. The only chance that R2 can content with R1 to send packages to S2 is between the completion of current the data transmission and the completion of S1's next CTS. So a RRTS (request-for-request-to-send) package is sent to R2 from S2, when S2 find it cannot reply R2's RTS with a CTS. Once R2 receives the RRTS, it will resend RTS to S2. Then the normal message exchange is commenced. All stations overhearing the RRTS will keep silent for two time slots for the RTS-CTS successful exchange.



0 0