PDA

查看完整版本 : [求助]急需基于延迟的自适应洪泛路由算法的代码


guofeifei0822
2008-06-19, 10:14
我有一个代码,但有错误,我没有调出来。希望哪位大侠帮忙调一下,或者有新的代码!十分感谢~~~~~~~~:lovely:
算法描述:
算法包括以下三个阶段:初始化阶段(Initialization Phase,In P)、路由建立阶段(Routing Building Phase,RBP)和数据传输阶段(Data Forwarding Phase,DFP)。
1、初始化阶段(Initialization Phase,In P)
Step1:各节点广播节点信息报文NIP;
Step2:收到NIP报文的节点将相关信息存储到邻居信息表NIT中。
2、路由建立阶段(Routing Building Phase,RBP)
Step1:Source查找RPT表,若它是某个RREP报文SNL中的一个节点,则它直接沿该RREP确定的路径转发DP,否则广播一个新的RREQ;
Step2:节点ni接收到RREQ后查找RPT表,若它是某个RREP报文SNL中的一个节点,则它直接沿该RREP确定的路径向它的上一跳节点回复RREP,否则:
Step I:若报文的TTL-1=0,或ni的剩余能量已不够转发一个DP,则转Step IV,否则转Step II;
Step II:ni分别计算ni和该RREQ上一跳节点与Sink之间的距离,若ni较上一跳离Sink更近,则转Step III,否则转Step IV;
Step III:ni等待Δt时间,若来自同源节点有转发能耗更小的RREQ,则将到目前为止收到的来自同一源节点的RREQ中能耗最小的那个报文转发,直到RREQ到达Sink;
Step IV:ni丢弃该报文。
Step3:Sink收到RREQ后,沿能耗最小的那些RREQ确定的路径回复RREP,直到RREP到达指定的Source。
3、数据转发阶段(Data Forwarding Phase,DFP)
Step1:Source收到RREP后沿该RREP指定的路径向Sink发送数据报文。
Step2:当ni剩余能耗不够转发DP时,则其广播RR报文,收到该报文的节点在其NIT中将ni状态改为Dead。若ni是目前正在使用的到Sink的路径中的一个节点,则其在该路径中的邻居节点向自己在路径中的上一跳节点发送RR报文,并将RPT表中对应的RREP信息删除,直到RR报文到达该路径的起点。当Source收到RR后,转2。(RR报文中记录了ni的序列号)传感器网络中基于自适应的路由算法研究