Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-06-19
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
我有一个代码,但有错误,我没有调出来。希望哪位大侠帮忙调一下,或者有新的代码!十分感谢~~~~~~~~: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的序列号)传感器网络中基于自适应的路由算法研究 |
![]() |
![]() |