基于多包解码的无线传感器网络数据重传精简方法
【专利摘要】本发明涉及一种基于多包解码的无线传感器网络数据重传精简方法,源节点向各节点广播信息包,各节点向源节点广播确认信息,进行反馈;源节点收到确认信息,在缓存中形成缓存信息包矩阵;依次在缓存信息包矩阵中寻找每行的第一个为“1”的位置所对应的信息包;根据各信息包的ID号从小到大进行编码,遵循同一个信息包不在同一个编码序列中重复出现的规则,形成编码组合信息包,同时将原位置赋为“0”;去除编码组合信息包间的冗余数据包;源节点向各节点广播发送处理后的编码组合信息包;接收节点按照编码组合信息包的发送顺序,对各编码组合信息包进行循环解码,直至全部丢失包解码成功。
【专利说明】基于多包解码的无线传感器网络数据重传精简方法
【技术领域】
[0001] 本发明涉及一种基于多包解码的无线传感器网络数据重传精简方法。
【背景技术】
[0002] 网络编码技术通过增加网络节点的计算能力来提高网络整体性能。网络节点使用 比较好的网络编码算法将收到的数据进行编码后,一次性发送出去。这样,就可以实现将多 次发送数据变为一次发送数据,从而大大减少了网络数据的发送次数,节约了网络的带宽 资源和节省了节点能耗,有效缓解了网络拥塞。
[0003] 网络编码已被证明是可以逼近网络传输容量极限的有效方法,其在提高网络吞吐 量、鲁棒性和安全性方面的优势已得到国际学术界和工业界人士的广泛认同。网络编码的 早期研究仅限于有线网络的组播传输,目前的研究领域已发展到覆盖有线和无线网络的各 个层面,并且新的理论和应用方向仍在不断涌现。从目前的发展现状看,网络编码的理论研 究尚处于初级阶段,实际应用也远未挖掘出其真正潜力,还有大量的困难亟待解决。
[0004] 广播重传作为提高无线网络数据可靠性传输的一种方式,也得到了越来越多的关 注。为更好地减少重传次数,提高网络吞吐量,重庆邮电大学的姚玉坤等在《广播重传中基 于多包解码的高效快速网络编码》中提出了多包解码高效快速网络编码方法,引入了多包 解码思想。在经典的网络编码广播重传策略(NCWBR)中,每个编码包重传后,如果解码失败 立即丢弃,即使后面解出的数据包能被前面的编码包利用,也会丢弃,这样会造成重传次数 的增加。与之不同,多包解码方法中,多个编码包都对每个节点产生作用,即使前面的编码 包解码失败,也会储存在缓存中,加以利用,但是多包解码编码策略会造成编码数据包的冗 余,两个编码包中存在两个或两个以上数据包相同的情况,致使解码失败,同时也增加了运 算的复杂度。本发明解决了这两种方法存在的问题,即去掉了编码过程中存在的冗余,也将 无法解码数据包再次重传的问题简化,同时也将重传次数大幅度减少。
【发明内容】
[0005] 本发明目的在于提供一种基于多包解码的无线传感器网络数据重传精简方法,可 以有效减少广播重传次数,提高无线传感器网络吞吐量。
[0006] 实现本发明目的技术方案:
[0007] 基于多包解码的无线传感器网络数据重传精简方法,其特征在于:
[0008] 步骤1 :源节点向各节点广播信息包,各节点向源节点广播确认信息,进行反馈;
[0009] 步骤2 :源节点收到确认信息,在缓存中形成缓存信息包矩阵;
[0010] 该矩阵中,各行对应各个节点,各列对应各个信息包,行号、列号分别对应节点、信 息包的ID号,节点矩阵中的元素代表对应节点对相应信息包的接收情况,其中,"0"代表该 节点接收到了该信息包,"1"代表该节点没有收到该信息包;
[0011] 步骤3 :依次在缓存信息包矩阵中寻找每行的第一个为"1"的位置所对应的信息 包;
[0012] 步骤4 :针对步骤3寻找到的各信息包,根据各信息包的ID号,从ID号小的开始 编码,形成编码组合信息包,并遵循同一个信息包不在同一个编码序列中重复出现的规则, 同时将原位置赋为"0";
[0013] 步骤5 :重复步骤3、步骤4,直至形成所有编码组合信息包,进入步骤6 ;
[0014] 步骤6 :源节点向节点广播发送各编码组合信息包;
[0015] 步骤7 :接收节点按照编码组合信息包的发送顺序,对各编码组合信息包进行循 环解码,直至全部丢失包解码成功。
[0016] 2、根据权利要求1所述的基于多包解码的无线传感器网络数据重传精简方法,其 特征在于:步骤6中,源节点向节点广播发送各编码组合信息包前,进行砍包,即将编码组 合信息包通过ID号从小到大进行网络编码异或操作,若两个编码组合信息包中存在两个 或两个以上信息包重复,贝 1J在其中一个编码组合信息包中,去掉一个ID号最小的信息包。
[0017] 3、根据权利要求2所述的基于多包解码的无线传感器网络数据重传精简方法,其 特征在于:步骤7中,若接收节点收到编码组合信息包后,不能成功解码出信息包,则将解 码失败的编码组合信息包存储在当前节点的缓存中;再利用之后解码的信息包和之前存在 缓存中的编码组合信息包,进行解码。
[0018] 4、根据权利要求3所述的基于多包解码的无线传感器网络数据重传精简方法,其 特征在于:步骤7中,对于最终无法解码的信息包,直接重传 ID号小的信息包,再利用节点 缓存中的编码组合信息包进行解码。
[0019] 本发明具有的有益效果:
[0020] 本发明提出了一种基于多包解码的无线传感器网络数据重传精简策略,既能利用 多包解码的特性来减少不必要的重传,同时精简编码包,解决了编码包冗余引起解码率下 降的问题,减少网络负载,增加解码的几率。实验表明,多包解码精简策略,在节点数量增加 和数据包数量增加后优势更加明显。因此,可以应用在大型无线传感器网络模型中,其对提 升网络吞吐量,降低重传次数具有很大的意义。
[0021] 本发明提出了一个精简编码方法,对编码包做了改进和调整。对各节点反馈的丢 失数据包进行编码时,考虑到各编码包间可能存在一部分的重叠,如果两个编码包中存在 多个同样的数据包,同样的数据包又没有被节点接收到,这样是无法解码的。因此,将同样 的部分去掉一个数据包,可以有效提高成功解码的几率,减少数据重传次数,增加网络吞吐 量。
[0022] 本发明在去掉编码包冗余的时候,选择去掉ID号小的数据包。由于形成信息包缓 存矩阵后,搜索每行的第一个"1"是从ID号小的数据包开始搜索的,所以ID号小的数据包 被编入编码的概率就会上升,产生冗余的可能性也会增加,去掉ID号较小的数据包可以更 好地优化编码包,减少重传次数。
[0023] 本发明提出的多包解码精简方法特点鲜明,能够运用于大型无线传感器网络中。 在无线传感器网络应用中,往往环境恶劣,节点数目较多,需要节点节省能量,但是重传次 数的增加对于能量的消耗十分严重。运用多包解码精简方法,可以避免节点丢失数据包编 码时产生大量冗余,并尽可能重传能够使节点成功解码的编码包。
[0024] 本发明运用多包解码思想,多个编码进行解码对于编码包的重传顺序和解码顺序 没有固定要求,解码失败的编码包会在节点的缓存中,等待随时调用。然而,在无线传感器 网络中,往往会因为较差的网络环境导致时延,致使先传输的包后到,所以对编码包顺序有 要求的编码方法,许多编码包重传无效,就会导致网络的鲁棒性差。多包解码方法显然增加 了编码包传输的稳定性、解码的成功率和网络的鲁棒性。
【专利附图】
【附图说明】
[0025] 图1为本发明基于多包解码的无线传感器网络数据重传精简方法的流程图;
[0026] 图2为多包解码方法的编码包选取情况示意图;
[0027] 图3为多包解码方法不可解码的缓存信息包矩阵图;
[0028] 图4为多包解码精简方法不可解码的缓存信息包矩阵图;
[0029] 图5为节点数量变化下的平均重传次数变化示意图;
[0030] 图6为节点丢包率变化下的平均重传次数变化示意图。
【具体实施方式】
[0031] 如图1所示,本发明基于多包解码的无线传感器网络数据重传精简方法包括如下 步骤:
[0032] 步骤1 :源节点向各节点广播信息包,各节点向源节点广播确认信息,进行反馈;
[0033] 假设广播源节点以固定的时间间隔广播发送一个信息包,各接收节点都通过同步 发送确认消息(ACKs)和否认消息(NAKs)到源节点反馈其接收情况。
[0034] 步骤2 :根据接收节点的确认信息在源节点形成信息包缓存矩阵;
[0035] 广播源节点将每个接收节点反馈的信息报接收情况通过矩阵的形式保存,形成信 息包缓存矩阵。
[0036] 缓存信息包矩阵是广播源节点根据各接收节点对于收到信息包情况反馈生成的 一个矩阵。该矩阵中,"行"代表接收节点个数,"列"代表信息报个数,矩阵中的元素代表对 应节点对相应包的接收情况,其中,"〇"代表该节点接收到了该数据包,"1"代表该节点没有 收到该信息包。
[0037] 步骤3 :依次在缓存信息包矩阵中寻找每行的第一个为"1"的位置所对应的信息 包;
[0038] 步骤4 :针对步骤3寻找到的各信息包,根据各信息包的ID号,从ID号小的开始 编码,形成编码组合信息包,并遵循同一个信息包不在同一个编码序列中重复出现的规则, 同时将原位置赋为"〇";
[0039] 步骤5 :重复步骤3、步骤4,直至形成所有编码组合信息包,进入步骤6 ;
[0040] 图2给出了多包解码策略的编码方法示意图,矩阵表示5个节点和10个包 形成的信息包缓存矩阵情况。利用多包解码策略,将每行的第一个"1"进行编码组 合,并把"1"的位置直接变为"0",以此类推,循环往复。因此,根据每一次编码组合 包要遵循同一个数据包只编码一次的规则,形成了 3个编码组合的数据包,分别为 1Θ2Θ3Θ4Θ5、3Θ6Φ7十8、5十9Φ10。在接收节点,传来的编码组合包即使 不能立即将丢失的数据包解开,也要储存在该节点的缓存中,之后收到的编码包将某个数 据包解开后,再利用缓存中的编码组合包进行解码,直至所有的编码组合包不再对各节点 的解码起作用,再释放内存。可见,相同的缓存包矩阵利用多包解码原理,只需3次重传。
[0041] 步骤6 :源节点向节点广播发送各编码组合信息包;源节点向节点广播发送各编 码组合信息包前,进行砍包,即将编码组合信息包通过ID号从小到大进行网络编码异或操 作,若两个编码组合信息包中存在两个或两个以上信息包重复,则在其中一个编码组合信 息包中,去掉一个ID号最小的信息包。
[0042] 步骤7 :接收节点按照编码组合信息包的发送顺序,对各编码组合信息包进行循 环解码,直至全部丢失包解码成功。
[0043] 若接收节点收到编码组合信息包后,不能成功解码出信息包,则将解码失败的编 码组合信息包存储在当前节点的缓存中;再利用之后解码的信息包和之前存在缓存中的编 码组合信息包,进行解码。
[0044] 对于最终无法解码的信息包,直接重传 ID号小的信息包,再利用节点缓存中的编 码组合信息包进行解码。
[0045] 以图3所示缓存信息包矩阵中的札节点为例。
[0046] 为表不方便,如图3通过每行第一个椭圆代表的信息包组合后来表不生成的第一 个编码包,用每行第二个椭圆所代表的信息包组合后来表示生成的第二个编码包,以此类 推。其中,大椭圆表示在生成某一个编码包时,相邻的接收节点都选择的是同一个信息包来 参与生成这个编码包。
[0047] 节点札收到源节点发送的编码包1十2十3、2 Φ 3十5、4 ? 5 Θ 6十7后,都因 编码包中同时包含多个丢失的信息包,而不能被成功解码。于是&节点将这三个编码包依 次存储在缓存中,当Ri节点收到源节点发送的第四个编码包7 Φ 8 Φ 9 Θ 10后,能够成功 解码出信息包7,这是将信息包7代入缓存中的不可解码编码包4 Φ 5 Θ 6 Θ 7中,可以解 出信息包6,但丢失的信息包2和3仍然无法成功解码。
[0048] Ri节点不能够成功解码信息包2和信息包3,而前两个编码组合包分别 为1?203、20 3?5。在前两个编码包中都有2?3,这样如果某个节点同 时丢失信息包2和信息包3,就会导致信息包通过编码包无法直接解开。因此, 如果出现两个编码组合包之间有两个或两个以上编码重合的情况,在编码包中砍 掉一个信息包,将会提高解开的机会。对于&节点,形成的四个编码组合包分别 为1?2?3、2 0 305、4050607、7?8?90 1〇,显然,第一个包 1十2 ? 3和第二个包2 Φ3 ? 5都有2 ? 3的编码,假设砍掉第二个编码包中的 信息包3,即第二个编码组合包变为2 Θ 5。将精简后的四个编码包1? 2? 3、 2?5、4Θ5十6Φ7、7Θ8Θ9Θ 10,代入图3中的信息包缓存矩阵进行验证,可以 得出全零矩阵。因此,通过此种方法可以提高解码率,从而减少广播重传的次数。
[0049] 根据缓存信息包矩阵的1"分布形成编码组合包,对编码组合包进行精简处 理,"砍掉"编码包中两个或两个以上重复编码形成的冗余包,使各个编码包没有交叉冗余。
[0050] "砍包"规则:根据缓存信息包矩阵,形成若干编码组合包,在广播重传之前对每两 个编码包进行对比,如果两个编码中存在两个或两个以上相同的数据包组合,则去掉编码 包ID号中数据包ID号小的数据包。
[0051] 在编码过程中,编码策略首先从数据包ID号小的开始编码,搜寻每行的第一个 " 1",这样ID号较小的数据包被编入编码序列的可能性就更大,在"砍包"规则中,砍掉ID号 较小的包则更利于解开不能解码的数据包。
[0052] 对于多包解码精简策略仍存在不可解码的情况,如图4所示,通过多包解码策略 得到3个编码组合包,分别为1十2十3Φ9、3十6十9、4十9十10,通过精简策略简化 后编码包为1Φ2十9、3十6十9、4十9十10。对于节点R 3数据包3和数据包6无法通 过编码包解码,因此,运用多包解码精简策略仍然存在无法解码的情况。对于无法解码的情 况,源节点收到目的节点的反馈,直接重传丢失包中ID号最小的数据包,目的节点收到数 据包后,利用缓存中编码组合包,进行解码,如果仍然无法解码出所有丢失的信息包,继续 对源节点进行反馈,再次重传丢失ID号最小的数据包,直至所有节点收到所有的数据包。 对于图4中的情况,R 3节点会向源节点发送数据包3和数据包6的NAKs,则源节点广播发 送ID号小的数据包3, R3节点收到数据包后,利用缓存中的编码组合包3 ? 6 Θ 9将丢失的 数据包6解出来。通过这种方法保证多包解码精简策略使所有节点能够接收到所有的信息 包。
[0053] 下面结合仿真实例,进一步说明本发明的有益效果。
[0054] 选取简单重传方法(ARQ)和多包解码精简方法为比较对象,使用MATLAB仿真软 件,在相同的仿真条件下进行仿真对比,比较它们在节点不同、丢包率不同情况下性能。
[0055] 实验1接收节点数目变化。部署10个接收节点,各节点的丢包率为0. 1,数据包的 数量由2到50,每次递增1,测试1000次,得到平均重传次数的变化。
[0056] 图5给出了实验1的比较曲线。
[0057] 从图5可见,与普通重传方法相比较,多包解码精简方法,极大程度地均减少了平 均重传次数。随着接收节点数量的增加,平均重传次数的减少幅度更大。多包解码精简策 略的优点也慢慢体现出来,而无线传感器网络一般由大量的传感器节点组成,多包解码精 简方法在大型传感器网络应用中将具有十分可观的前景。
[0058] 实验2各节点丢包率的变化。部署10个接收节点,50个数据包,每个节点丢包率 由0. 02到0. 30,每次递增0. 02,测试1000次,得到平均重传次数的变化。
[0059] 图6给出了实验2的比较曲线。
[0060] 从图6可见,在丢包率变化下的平均重传次数变化,与普通重传方法相比,多包解 码精简方法有十分明显的提高,极大地减少了平均重传次数。尤其在恶劣的环境中,丢包率 会比较大,因此,由图中可以看出,多包解码随着丢包率的增加依然保持比较低的平均重传 次数。节点丢包率越高时,尽管参与重传的数据包的数量增加,但同时可以在搜寻中找到更 多的编码组合,利用多包解码精简策略将冗余的数据包"砍掉",使得递增的趋势相对比较 缓慢,优势也越来越明显。
[0061] 从实际应用来考虑,在使用网络编码策略减少重传次数的同时,会带来较大的重 传时延和较多的节点代价。
[0062] 在重传延时方面,节点的编码计算需要消耗计算时延,另一方面,源节点需要更大 的计算能力和更多的存储空间俩对信息包进行整合、分析判定和重传,需要消耗一定的等 待延时。然而,对于计算延时,有摩尔定律可知,该延时随着计算能力代价的增长可以忽略 不计;对于等待延时,多包解码中设定重传时间间隔的策略,可以有效地降低等待时延带来 的影响。
[0063] 在节点代价方面,相比传统方法,多包解码策略要求各节点有自己的缓存,所接收 的所有编码包都要存储在缓存中,直至该节点收到所有的数据包,这样会消耗一定的资源。 同时,节点采用编码操作需要消耗更大的计算能力和更多的存储空间。但是,由摩尔定律 知,计算能力代价远远低于传输代价,这种代价是可以接受的。
[0064] 因此,通过实验结果和对比分析可以看出,多包解码精简策略在提高平均重传次 数上有了很大提高。尤其在大型无线传感器网络和恶劣环境中,多包解码精简策略极大地 减少了平均重传次数,提高了重传效率,增加了网络吞吐量。
【权利要求】
1. 基于多包解码的无线传感器网络数据重传精简方法,其特征在于: 步骤1 :源节点向各节点广播信息包,各节点向源节点广播确认信息,进行反馈; 步骤2 :源节点收到确认信息,在缓存中形成缓存信息包矩阵; 该矩阵中,各行对应各个节点,各列对应各个信息包,行号、列号分别对应节点、信息包 的ID号,节点矩阵中的元素代表对应节点对相应信息包的接收情况,其中,"0"代表该节点 接收到了该信息包," 1"代表该节点没有收到该信息包; 步骤3 :依次在缓存信息包矩阵中寻找每行的第一个为"1"的位置所对应的信息包; 步骤4 :针对步骤3寻找到的各信息包,根据各信息包的ID号,从ID号小的开始编码, 形成编码组合信息包,并遵循同一个信息包不在同一个编码序列中重复出现的规则,同时 将原位置赋为"〇"; 步骤5 :重复步骤3、步骤4,直至形成所有编码组合信息包,进入步骤6 ; 步骤6 :源节点向节点广播发送各编码组合信息包; 步骤7 :接收节点按照编码组合信息包的发送顺序,对各编码组合信息包进行循环解 码,直至全部丢失包解码成功。
2. 根据权利要求1所述的基于多包解码的无线传感器网络数据重传精简方法,其特征 在于:步骤6中,源节点向节点广播发送各编码组合信息包前,进行砍包,即将编码组合信 息包通过ID号从小到大进行网络编码异或操作,若两个编码组合信息包中存在两个或两 个以上信息包重复,贝 1J在其中一个编码组合信息包中,去掉一个ID号最小的信息包。
3. 根据权利要求2所述的基于多包解码的无线传感器网络数据重传精简方法,其特征 在于:步骤7中,若接收节点收到编码组合信息包后,不能成功解码出信息包,则将解码失 败的编码组合信息包存储在当前节点的缓存中;再利用之后解码的信息包和之前存在缓存 中的编码组合信息包,进行解码。
4. 根据权利要求3所述的基于多包解码的无线传感器网络数据重传精简方法,其特征 在于:步骤7中,对于最终无法解码的信息包,直接重传 ID号小的信息包,再利用节点缓存 中的编码组合信息包进行解码。
【文档编号】H04L1/18GK104158641SQ201410409807
【公开日】2014年11月19日 申请日期:2014年8月20日 优先权日:2014年8月20日
【发明者】蔡绍滨, 潘虹杞 申请人:哈尔滨工程大学