Friday, October 21, 2011

A summary of : BMAC: Versatile Low Power Media Access for Wireless Sensor Networks

A summary of :

BMAC: Versatile Low Power Media Access for Wireless Sensor Networks

J. Polastre, J. Hill, D. Culler


In Proceedings of the Second ACM Conference on Embedded Networked Sensor Systems (SenSys), November 3-5, 2004.

    This paper represents a MAC protocol named B-MAC for wireless sensor networks. The initial goal of this idea is to perform this protocol as a low power operation, effective collision avoidance, simple and predictable , small code size and RAM usage , tolerable to changing RF/networking conditions and scalable to large numbers of nodes . So , actually it is a configurable MAC protocol for wireless sensor networks which has small core and it is energy efficient.
    After reading this paper I have found several interesting parts of B-MAC. One problem is about the channel assessment. Usually , a MAC must accurately determine if channel is clear or not , it needs to tell what is noise and what is a signal, and ambient noise is prone to environmental changes , so it is hard to determine it in this way. The solution of B-MAC is let the software automatic gain control of it. So the signal strength samples taken when the channel is assumed to be free, samples will go in a FIFO queue. Once noise floor is established , a TX requests starts monitoring RSSI from the radio. But as my point of view, what is the suitable time to the channel assumed to be free? Is it possible to fix a certain time and make it to be periodical? And also , what is a good estimate to establish the noise floor? How to determine it? Maybe give some certain value in a invariant situation or make it dynamic change with the environment? Another smart thing that B-MAC use to solve this problem is that it search for outliers in RSSI, so , if a sample has significantly lower energy that the noise floor during the sampling period, then the channel is clear. This solution can avoid the large number of falser negatives if compare the single sample with the noise floor. As I have mentioned before , the power issues is what B-MAC try to solve. So it comes out a solution that let the node periodically wakes up to minimize the listen cost of it. The basic principle is that it periodically wakes up, turns radio on and checks channel. The wakeup time is fixed and the “check time ” is variable. If energy is detected , node powers up in order to receive the packet. The node will go back to sleep if a packet is received or after a timeout. So I am just wondering , dose the fixed wakeup time performance good in most cases? We need some practical tests to get the answer. It has LPL to check the interval , they supply a test result shows that if the checking is too small the energy wasted on idle listening , otherwise if it is too large , energy wasted on transmissions. But in general , it is better to have larger preambles than to check more often. So the problem comes out that how to find out the best check interval. It has a solution that set the reporting rate and estimate neighborhood size. The best result is that check interval that gives lowest effective duty cycle.
    The paper gives some experimental result to show the throughput of B-MAC, it indicates that B-MAC is about 4.5 faster than S-MAC. But there’s some interesting phenomenon of it. It shows that B-MAC is not as fast when ACK or RTS/CTS is used. And differences less pronounced as number of nodes increases. And another issue is that B-MAC has CCA, thus it backs off less frequently and perhaps the backoff timer is faster. So , what about hidden terminal without RTS/CTS? So the conclusion is that B-MAC appears better than S-MAC , but the main issues of B-MAC is that it has a large preambles . And we don’t know if it is always good. So I google it , and found a paper about another protocol called X-MAC http://www.cs.colorado.edu/~rhan/Papers/xmac_sensys06.pdf
    B-MAC and X-MAC both are asynchronous protocols for wireless sensor networks, and the data transfer across duty cycled nodes is the primary objective. The main difference between these two protocols is that B-MAC sends a long continuous preamble but X-MAX sends short strobes and a target ID is encoded in the X-MAC strobe. By comparing these two protocols we can see that B-MAC requires more energy than X-MAC at any sleep time. Moreover , energy required increases with increased sleep time. It is due to the overhead of listening to the long preamble in B-MAC. And B-MAC requires more time to transfer packets from the source to the destination. It is because the entire preamble has to be always sent, even though the receiver was already awake. But X-MAC saves this time. Another thing is that energy required to transfer data for B-MAC increases faster than that for X-MAC. This is a benefit of using strobe preamble. So , the conclusion is that X-MAC outperforms B-MAC in both energy consumed and the latency of end to end packet transfer and it offers better duty cycling opportunities, means nodes sleep for more time.

No comments:

Post a Comment