假设节点B在节点A的载波侦听范围内,也在节点A的发射半径之内,节点C不在节点A的发射半径内,但在节点A的载波侦听范围内。
若节点A有数据发送给节点B:
发送流程:
1、节点A发送分组时,A的上层协议模块会调用其MAC对象的send方法。send方法会调用WirelessPhy的 SendDown方法。
2、WirelessPhy的 SendDown方法调用WirelessChannel的recv方法:WirelessPhy.cc的第302行: channel_->recv(p, this);
3、WirelessChannel的recv调用WirelessChannel的sendUp方法:WirelessChannel.cc的第146行:sendUp(p, (Phy*)h);
接收流程:
1、WirelessChannel对象的sendUp方法将来自节点A的分组复制两份,
分别调用节点B和节点C(所有在A的载波侦听范围内的节点)的WirelessPhy对象的 SendUp方法:
WirelessChannel.cc的第174行: newp = p->copy();
WirelessChannel.cc的第162行:hdr->direction() = hdr_cmn::UP;
2、Wireless