软讯网络 > 操作系统 > Linux > smac协议中是否使用退避算法以及和802.11有什么区别?
【标 题】:smac协议中是否使用退避算法以及和802.11有什么区别?
【关键字】:
smac,802.11
【来 源】:http://www.cublog.cn/u/19942/showart.php?id=220701
smac协议中是否使用退避算法以及和802.11有什么区别?
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有侦听睡眠机制,所以采用固定的竞争窗口容易处理和协调。