Monday, 24. July 2006, 15:06
网上关于广播数据的方法总结如下:
Packet *p = allocpkt();
hdr_cmn *ch = HDR_CMN(p);
hdr_ip *ih = HDR_IP(p);
hdr_mac *mh=HDR_MAC(p);
..........
ch->nexthop() = IP_BROADCAST;
ih->daddr() = IP_BROADCAST;
ih->dport() = 0;
// mac层广播数据
mh->daddr() = MAC_BROADCAST;
// send it
target_->recv(p);
/*如果你需要延迟一定的时间才发送,也可以采用
Scheduler::instance().schedule(target_, p, interval);//interval为延迟时间*/
如有邻居节点接不到广播消息的,可能由于mac层冲突802.11中节点广播时没有采用RTS/CTS机制, 于是隐终端问题会出现,换用mac/Simple。
set val(mac) Mac/Simple
Scheduler::instance().schedule(target_, p, Random::uniform(0.000002))
Packet *p = allocpkt();
hdr_cmn *ch = HDR_CMN(p);
hdr_ip *ih = HDR_IP(p);
hdr_mac *mh=HDR_MAC(p);
..........
ch->nexthop() = IP_BROADCAST;
ih->daddr() = IP_BROADCAST;
ih->dport() = 0;
// mac层广播数据
mh->daddr() = MAC_BROADCAST;
// send it
target_->recv(p);
/*如果你需要延迟一定的时间才发送,也可以采用
Scheduler::instance().schedule(target_, p, interval);//interval为延迟时间*/
如有邻居节点接不到广播消息的,可能由于mac层冲突802.11中节点广播时没有采用RTS/CTS机制, 于是隐终端问题会出现,换用mac/Simple。
set val(mac) Mac/Simple
Scheduler::instance().schedule(target_, p, Random::uniform(0.000002))