Dear all: I am working on a simulation using NS-2.27. I have following question.
In "mac-802_11.cc", the function "Mac802_11::send(Packet *p, Handler *h)", there are two kinds of timers: BackoffTimer and DeferTimer. I confuse the difference between BackoffTimer and DeferTimer. I cannot differentiate the physical meaning of BackoffTimer and DeferTimer. For example, in send(), we have rTime = (Random::random() % cw_) * (phymib_.getSlotTime()); mhDefer_.start(phymib_.getDIFS() + rTime); Hence, DeferTimer mhDefer means a random backoff plus DISF. However, in send(), we also have mhBackoff_.start(cw_, is_idle()); In the body of this function in "mac-timers.cc", the same thing is done as rtime = (Random::random() % cw) * mac->phymib_.getSlotTime(); This is the same as the procedure of DeferTimer. I confuse the difference between BackoffTimer and DeferTimer. Sorry if I am ignorant about the support with NS2. Thanks, hyper