发明名称 一种无线传感网络中基于链路相关性的数据分发方法
摘要 本发明公开了一种无线传感网络中基于链路相关性的数据分发方法,包括以下步骤:初始化阶段,节点通过接收和广播HOP消息获取该节点到根节点的跳数,然后广播HELLO消息,各节点记录听到的HELLO消息的接收状态;相关性树构造阶段,节点发送和接收CLAIM消息,计算链路质量和链路相关性,选择父节点,根据节点间的父子关系建立相关性树;编码决策阶段,节点建立使用编码的决策模型和不使用编码的决策模型,计算出两种决策模型下的传输延迟,选择传输延时较小的决策模型作为最终的编码策略;数据分发阶段,节点根据前面步骤已建立的相关性树和已选择的编码策略将数据分发出去,并在数据分发过程中使用一种优先请求机制来保证可靠性和效率。
申请公布号 CN103442336A 申请公布日期 2013.12.11
申请号 CN201310299304.8 申请日期 2013.07.15
申请人 浙江大学 发明人 卜佳俊;陈纯;董玮;赵志为;王永刚
分类号 H04W4/06(2009.01)I;H04W40/08(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W4/06(2009.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 陈昱彤
主权项 1.一种无线传感网络中基于链路相关性的数据分发方法,其特征在于,包括如下步骤:步骤一:由根节点广播一条HOP消息,所述HOP消息只有一个字段跳数,所述字段跳数为非根节点到根节点的跳数,所述字段跳数的初始值为0;非根节点第一次收到所述HOP消息后,将字段跳数的值加1并记下作为该非根节点到根节点的跳数,然后非根节点再将修改后的HOP消息广播出去;各节点互相广播HELLO消息,所述HELLO消息包含发送节点的ID、发送节点到根节点的跳数和递增序号;节点只接收下游节点的HELLO消息,所述下游节点是指到根节点的跳数为本节点到根节点的跳数加1的节点;将听到的下游节点记为本节点的子节点,并使用位向量记录每个子节点的最新10条HELLO消息的接收状态,其中,所述位向量中为1的位表示对应的HELLO消息丢失了,为0的位表示对应的HELLO消息成功接收,每个子节点占用一个位向量;步骤二:每个节点广播一条CLAIM消息,所述CLAIM消息包含发送节点的ID和一个键值对集合,所述键值对集合的每个键值对由发送节点的子节点的ID、发送节点所记录的表示各对应子节点的HELLO消息的位向量构成;各节点根据所收到的CLAIM消息,根据公式(1)计算节点到各发送节点的链路质量,根据公式(2)计算节点与各发送节点的子节点之间的链路的链路相关性,进而根据公式(3)计算出各发送节点的影响因子,选择影响因子的值最大的发送节点作为父节点,并根据节点间的父子关系建立相关性树;<maths num="0001"><![CDATA[<math><mrow><msub><mi>q</mi><mi>ik</mi></msub><mo>=</mo><mn>1</mn><mo>-</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>=</mo><mo>|</mo><msub><mi>B</mi><mi>ik</mi></msub><mo>|</mo></mrow></msubsup><msub><mi>B</mi><mi>ik</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow><mrow><mo>|</mo><msub><mi>B</mi><mi>ik</mi></msub><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA00003514702500022.GIF" wi="1348" he="200" />m<sub>k</sub>(i)=αc<sub>i</sub>(k,S)+(1-α)q<sub>ik</sub>    (3)式(1)、(2)和(3)中:i表示发送CLAIM消息的节点,k表示接收CLAIM消息的节点,B<sub>ik</sub>表示节点i所记录的节点k所发送的HELLO消息的位向量,|B<sub>ik</sub>|表示位向量的模,q<sub>ik</sub>表示链路i→k的链路质量,S表示节点i的不包括节点k的剩余子节点的集合(s<sub>1</sub>,s<sub>2</sub>...s<sub>n</sub>),B<sub>iS</sub>表示节点i所记录的不包括节点k的剩余子节点发送的HELLO消息的位向量按位与运算后得到的新位向量;B<sub>ik</sub>(m)表示B<sub>ik</sub>第m位的值;B<sub>iS</sub>(m)表示B<sub>iS</sub>第m位的值;c<sub>i</sub>(k,S)表示节点k所计算的链路i→k到链路集合i→S的链路相关性;P<sub>i</sub>(S|k)表示公式(2)的条件概率数学表示方式;α表示加权平均因子,α的取值区间为[0,1];m<sub>k</sub>(i)表示节点k所计算出的节点i的影响因子;各非根节点选定父节点后,广播一条PSLT消息通知邻居节点,所述PSLT消息包含本非根节点的ID和选定的父节点的ID;步骤三:建立如式(4)所示的使用编码的决策模型和式(5)所示的不使用编码的决策模型,<maths num="0002"><![CDATA[<math><mrow><msub><mi>t</mi><mi>coding</mi></msub><mo>=</mo><mfrac><mi>N</mi><msub><mi>q</mi><mi>iw</mi></msub></mfrac><mi>&tau;</mi><mo>+</mo><mfrac><mn>1</mn><msub><mi>q</mi><mi>iw</mi></msub></mfrac><msub><mi>t</mi><mi>REQ</mi></msub><mo>+</mo><mi>D</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>t</mi><mi>native</mi></msub><mo>=</mo><msub><mi>NE</mi><mi>pkt</mi></msub><mi>&tau;</mi><mo>+</mo><mfrac><mn>1</mn><msub><mi>q</mi><mi>iw</mi></msub></mfrac><msub><mi>t</mi><mi>REQ</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,<maths num="0004"><![CDATA[<math><mrow><msub><mi>E</mi><mi>pkt</mi></msub><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mo>+</mo><mo>&infin;</mo></mrow></msubsup><mi>k</mi><msubsup><mi>P</mi><mi>n</mi><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>=</mo><mi>r</mi><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>式(6)中的<img file="FDA00003514702500034.GIF" wi="252" he="87" />由式(7)和递推式(8)算出:<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>p</mi><mi>n</mi><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>=</mo><mi>r</mi><mo>}</mo><mo>=</mo><msubsup><mi>P</mi><mi>n</mi><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>></mo><mi>r</mi><mo>-</mo><mn>1</mn><mo>}</mo><mo>-</mo><msubsup><mi>P</mi><mi>n</mi><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>></mo><mi>r</mi><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msubsup><mi>P</mi><mi>n</mi><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>></mo><mi>r</mi><mo>}</mo><mo>=</mo><msup><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>q</mi><mi>in</mi></msub><mo>)</mo></mrow><mi>r</mi></msup><mo>+</mo><msubsup><mi>P</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>{</mo><mi>X</mi><mo>></mo><mi>r</mi><mo>}</mo><mo>-</mo><msup><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>q</mi><mi>in</mi></msub><mo>)</mo></mrow><mo>&times;</mo><msubsup><mi>P</mi><mrow><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mi>r</mi></msup></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msup><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>q</mi><mi>im</mi></msub><mo>)</mo></mrow><mi>r</mi></msup><mo>-</mo><msup><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>q</mi><mi>im</mi></msub><mo>)</mo></mrow><mo>&times;</mo><msubsup><mi>P</mi><mrow><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mi>m</mi></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mi>r</mi></msup><mo>)</mo><mrow><mo>(</mo><msubsup><mi>P</mi><mrow><mn>0</mn><mo>/</mo><mn>1</mn></mrow><mn>1</mn></msubsup><mo>=</mo><mn>0</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>式(4)到式(8)中,N表示单个数据页所包含的数据包的数量;τ表示单个数据包的传输时间;D表示使用网络编码时的解码时间;n表示节点i的子节点的集合S中的节点个数;q<sub>ik</sub>表示链路i→k的链路质量;w表示到节点i的链路质量最差的一个子节点,q<sub>iw</sub>=min<sub>k∈S</sub>(q<sub>ik</sub>);t<sub>REQ</sub>表示请求丢失的数据包的时间;E<sub>pkt</sub>表示单个数据包要覆盖到n个子节点所需的期望传输值;t<sub>coding</sub>表示单个数据页在使用编码时的传输延时;t<sub>native</sub>表示单个数据页在不使用编码时的传输延时;r表示单个数据包的传输次数;<img file="FDA00003514702500041.GIF" wi="268" he="88" />表示节点i的单个数据包发送r次能覆盖n个子节点的概率;<img file="FDA00003514702500042.GIF" wi="264" he="85" />表示节点i的单个数据包发送r次不能覆盖n个子节点的概率;(1-q<sub>in</sub>)<sup>r</sup>表示节点i的单个数据包发送r次不能覆盖子节点n的概率;<img file="FDA00003514702500043.GIF" wi="445" he="87" />表示节点i的单个数据包发送r次不能覆盖除子节点n之外的n-1个子节点的概率;<img file="FDA00003514702500051.GIF" wi="209" he="101" />表示在节点n所丢失的数据包被包含在余下的n-1个节点丢失的数据包集合中的概率;根据公式(2)计算得到<maths num="0008"><![CDATA[<math><mrow><msubsup><mi>P</mi><mrow><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow><mi>i</mi></msubsup><mo>=</mo><msub><mi>c</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>,</mo><msub><mi>S</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>P</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>其中,S<sub>n-1</sub>表示余下的n-1个节点的集合;<img file="FDA00003514702500053.GIF" wi="506" he="115" />表示节点i的单个数据包发送r次,既不能覆盖子节点n,也不能覆盖余下n-1个子节点的概率;分别计算使用编码的编码决策模型和不使用编码的编码决策模型的传输延迟,从中选择传输延迟值较小的编码决策模型作为每个节点的最终编码策略;步骤四:每个节点根据以上步骤所建立的相关性树和所选择的最终编码策略将数据分发出去,整个分发过程由根节点开始。
地址 310058 浙江省杭州市西湖区余杭塘路866号