1.一种无线传感网中网络编码感知跨层节能路由方法,其特征在于,该路由在利用流间网络编码减少数据传输次数的基础上,通过跨层机制确定监听节点,具体包括以下步骤:步骤a.源节点到目的节点的前向路由请求:
步骤a1.源节点向目的节点发送路由请求报文RREQ,
步骤a2.路由请求报文在通过中继节点向目的节点转发的过程中,将收集经过的各条无线链路的期望传输次数ETX信息、各中继节点的标识号ID、各中继节点的邻居节点信息,步骤a3.路由请求报文RREQ到达目的节点后,保存目的节点的邻居节点信息、上跳节点到目的节点的链路的ETX信息,跳转到步骤b;
步骤b.目的节点到源节点的后向路由返回:
步骤b1.目的节点收到一个路由请求报文RREQ后,将为该路由请求报文创建对应的路由应答报文RREP,步骤b2.目的节点将RREQ中保存的探寻得到的路由信息复制到对应的RREP报文中,步骤b3.RREP报文将依据RREQ中保存的路径信息向源节点返回,目的节点取出下一跳节点,将其转发出去,步骤b4.RREP报文到达中继节点后,依据基本网络编码拓扑,即链形拓扑和交叉形拓扑,判断该路由与经过当前节点的数据流在当前节点是否存在网络编码机会,步骤b5.如果不存在网络编码机会,将RREP报文发送给RREQ反向路径上的下一跳节点,步骤b6.如果当前节点存在网络编码机会,将路径信息中的当前节点进行标记,将需要监听的节点的标识号添加到RREP报文中,然后RREP报文将被发送给RREQ反向路径上的下一跳节点,步骤b7.RREP报文到达源节点,跳转到步骤d;
步骤c.基于跨层思想的节点工作模式确定:
步骤c1.源节点为监听节点集合中的每个节点创建一个状态提醒报文SINFO,每个SINFO报文中保存有对应监听节点的标识号ID,步骤c2.当前节点将按照路由表和RREP中路径信息,将各个SINFO报文发送给对应的监听节点,步骤c3.SINFO报文通过中继节点转发到达监听节点,
步骤c4.监听节点收到SINFO报文,通过与数据链路层、网络层的跨层交互,将其工作模式设置为混杂模式,即开启监听功能,同时,监听节点启用其内部的循环缓冲队列用于缓存监听得到的数据包,步骤c5.每个监听节点向源节点返回状态提醒确认报文SINFO-ACK,跳转到步骤d4。
步骤d.路由代价计算:
步骤d1.源节点收到多条RREP报文后,取出每个RREP中的路径信息,以及各条链路的ETX信息,步骤d2.源节点将路径上以编码节点为出发点的链路的ETX值记为0,其他链路的ETX值不变,然后计算路径上各条链路的ETX值的和,作为路径的代价,步骤d3.源节点选择代价最小的路径作为路由,取出路由上编码节点所对应需要进行监听的节点的标识号ID集合,跳转到步骤c,步骤d4.源节点收到所有监听节点返回的状态提醒确认报文SINFO-ACK后,更新路由表,至此,路由发现结束,源节点开始数据发送。