DEEG协议数据可靠性传输研究+文献综述(7)
时间:2018-04-29 13:40 来源:毕业论文 作者:毕业论文 点击:次
4 可靠性方案实现与验证 4.1 仿真参数 本次实验采用C++程序模拟仿真WSNs的数据传输、回复和重传的过程。主要测试链路中的“缓存节点”个数(间隔的大小)的取值对无线传感网络能耗和延时的影响。另外也检验了范德蒙阵列纠删码对提高无线传感器网络的可靠性的作用和模拟了簇头失效时次簇头的运作。 仿真的参数如下: 1. 节点数:70,100,130 2. 节点分布范围:100 * 100 m2 3. 汇聚节点:4(位置随机) 4. 网络负载:1%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100% 5. 节点初始化能量大小: 100J (此数据远远大于一般无线传感器节点的能量,是为实验方便而设置的,本文重视的是传感器节点能量变化的趋势) 6. “缓存节点”存储一个packet要消耗的能量大小:0.5J 7. “缓存节点”重传一个packet要消耗的能量大小:1J 8. packet传输到下一跳所需的时间:0.2s(所有传输时间均等) 9. “缓存节点”处理一个数据发送队列里的packet所需的时间:0.1s 10. 噪声指数:20% 11. 数据包无法复原概率:15% 12. 编码码长:15字符(字符大小为4bits),即7.5字节 13. 编码有效字节:9 字符,即4.5字节 14. 纠错字节:6字符,即3字节 4.2 网络模型 1. Sink节点序号为4,并且是唯一的。 2. 传感器节点的位置随机分布好以后,保持固定不动。 3. 节点通过寻找离自己最近的节点作为下一跳来建立通信链路,链路长度随机。 4. 节点的初始能量一样,只有“缓存节点”缓存和重传其他普通节点的packet时会消耗能量。 5. 重传数据包一次到位,也就是说,数据包在重传的链路上不会损失。 4.3 算法描述 研究“缓存节点”的设置和纠删码的问题时,在100 100 (m2)的范围内随机分布100(70,130)个节点。随机选取一个节点,初始化建立好一条到汇聚节点的链路。链路建立的方法是,让节点寻找离自己最近的节点(该节点不能是链路已经包含的节点)。再次随机选取链路上的一个节点产生数据,在将数据发送出去之前,要先对数据进行编码产生编码后的数据包,然后将这个编码后的数据包缓存。节点每收到一个packet就判断自己是不是“缓存节点”,以及发送packet的源节点是不是自己所要负担的成员。如果上述条件均满足,将该packet缓存以后再转发该packet,否则的话就直接转发packet。当汇聚节点收到packet时,对packet进行解码,如果packet被破坏了且无法恢复的话,就向发送该packet的源节点发送NAK数据包,路径沿packet被发送的链路回送。在NAK数据包被回送的过程中,如果被负担源节点的“缓存节点”接收且“缓存节点”中有该packet的话,就将这个要重传的packet从缓存中取出,放进等待发送数据包的队列中等待被送出,同时删除NAK数据包。汇聚节点每收到一个重传的packet,就记录下重传的延时,并加上一个处理packet的延时 ,其中 表示节点从处理转发packet的要花费的时间, 代表节点等待发送数据队列中packet的个数,这里通过采用这种方式来模拟网络的负载。 编码后的码以系统码的形式表示,解码根据Berlekamp迭代算法的原理进行。编码采用的是 域,码长为15个字符,每个字符有4bits的大小,可以纠错的最大字符数为3。也就是说,以9个字符作为一个单位,对这9个字符进行编码,生成6个字符的Reed-Solomon纠错码,这些纠错码和前9个字符一起构成一组15个字符的编码后的报文。 (责任编辑:qin) |