- 论坛徽章:
- 0
|
SMAC采用固定的竞争窗口,参考NS2的SMAC源代码。在handleCounterTimer()这个函数中有语句:
double cw = (Random::random() % DATA_CW) * slotTime_sec_;
mhCS_.sched(CLKTICK2SEC(difs_) + cw);
其中DATA_CW是竞争窗口,而且是固定的,默认值为64。
这是有它的道理的。因为SMAC的listening时间是固定的,NS2中默认的listening时间是160ms,其中包括了同步时间,而数据发送时间为105ms。在这105ms中,竞争时间为64ms。采用固定竞争窗口这样有利于各个节点之间协调和同步。如果竞争窗口变化的话,比如说节点A,B同时要向节点C发数据,而此时节点A和B的竞争窗口都已经很大,选的随机等待时间也比较大,这就很有可能计时器计时到零,节点C已经处于睡眠状态了。
正是因为SMAC有侦听睡眠机制,所以采用固定的竞争窗口容易处理和协调。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19942/showart_220701.html |
|