Fountain Codes Based Distributed Storage Algorithms for Large-scale Wireless Sensor Networks(B会2008)

我们考虑具有n个节点的大规模网络,其中拥有k个信息包(例如,已经以某种其他方式感知或收集了k个信息包)。 在网络节点非常的脆弱,因为有限的供能和环境差,它希望在整个网络中分布所获取的信息。因此,n个节点中的每一个存储一个(可能是编码的)数据包,原始的k个源数据包随后可以通过计算简单的方式从任何(1 +E)k节点中恢复,并且对于某些小small> 0。
提出两个分布式算法为了解决这个问题。
1、随机的walks
提出了一种使用带有陷阱的随机游走的解决方案。 为了获得所需的代码度分布,他们采用了Metropolis算法来指定随机游走的过渡概率。
2、喷泉码
我们开发了两种基于简单随机游动和Fountain代码的分布式算法来解决此问题。 与以前开发的所有方案不同,我们的解决方案是真正分布式的,也就是说,节点不知道网络中的n,k或连接性,除了在自己的邻居中,它们不维护任何路由表。 在第一种算法中,所有传感器都具有n和k的知识。 在第二种算法中,每个传感器通过随机游走传播估算这些参数。
我们对这两种算法的通信/传输和编码/解码复杂度进行了分析,并提供了广泛的仿真结果。
贡献:
1、两个新的算法,简单的随即游走和LT code,
跟谁比:
传统的提前知道n 和 k的情况。

这些算法更简单,更健壮,并且约束更少。
2、分析了传输、编码、解码。
3、实验结果
度分布的概率(从图片中可以看到根据不同的函数得到的的degree不同)
能够看出分布关系
数据更新
考虑了数据更新的问题。
数据更新一般情况下是整个ec过程中比较难控制的变化量,一般会增加写放大、IO传输等。
如果我们假设存储节点保留接受数据包的ID,那么问题就变得简单了。 我们只是随机漫步,并检查即将到来的数据包的ID。 假设节点u跟踪其接受的数据包的所有ID。 如果即将收到的数据包的ID已包含在u的ID列表中,则u接受更新的消息。 否则,u将转发生存时间计数器递增的数据包。 如果此计数器达到阈值,则该数据包将被丢弃。 以下步骤描述了更新方案:
如果每个node都记录了一个数据包的id表
如果更新的数据包在这个id表里面,则这个node接受更新。
否则这个node转发数据包并增加time-to-live的计数。
如果计数达到了阈值,直接丢弃。
过程:
1、si节点准备一个分组
:新老的数据包、id和counter。
同样,si为第一个更新的数据包添加一个初始化为1的更新计数器令牌。
因此,我们假设将token设置为1时会发生以下步骤。(在ID表中没有找到的时候)
si随机的选择一个邻居节点u,并传递这个数据包k。
2、编码过程:
节点 u检查,如果这个数据包k是更新的还是第一次过来的包。 如果它是第一次数据包,则将按照LTCDS-I算法1所示接受,转发或丢弃它。如果packetsi是更新的数据包,则节点u将检查IDsi是否已包含在其接受列表中。如果是,则它将如下更新其值yu。
若果不是,他将添加这个更新的包,并给counter加1.
这个包在counter达到阈值的时候将会被丢弃。counter要足够大,为了能够查找到所有的老数据都更新。
(其不是直接等于节点数刚好???)
3、存储过程
如果所有节点都完成了其值yi的更新。 可以运行解码阶段来检索原始数据并更新信息。
现在,由于我们每次更新仅运行一次简单的随机游走,因此如果h是更新其值的节点数,则得到以下结果。

性能评估

测了两个值:
成功解码的概率
解码速率:解码率η是查询的节点数h和源数k之间的比率
图3:

图几 X y 那几条线
3 解码率变化(1-2.5) 成功解码概率 节点 n和原始数据k的不同组合(n=100、200 , k=10,20,40)
4 解码率变化(1-2.5) 成功解码概率 节点 n和原始数据k的不同组合(n=200、500、1000)
5 参与的n(500-5000) 成功解码概率 解码率的变化(1.4、1.7)
6 系统参数c的变化(0-5,步长0.5) 成功解码的概率 节点 n和原始数据k的不同组合(n=500,k=50;n=1000,k=100)
7 解码速率(1-2.5) 成功解码的概率 不同的方法不同的n和k
8 解码速率(1-2.5) 成功解码的概率 不同的方法不同的n和k中号
11 系统参数c(0-60,步长10) 成功解码的概率 不同n不同k,届码率不同

结论:
与以前的解决方案相比,这些算法更简单,更健壮,并且约束更少,而以前的解决方案需要了解网络拓扑,节点的最大程度或知道n和k的值[4、6、9、10、11]。 我们计算了这些算法的计算编码和解码复杂度,并以数量较少的k个和n个节点模拟了它们的性能。 我们表明,如果一个节点仅计算访问时间和数据包间的时间,则可以成功地估计源的数量和节点的总数。
我们未来的工作将包括基于Raptor代码的传感器网络分布式网络存储算法。 我们还计划为本文中显示的结果提供理论结果和证明,其中有限的空间不是问题。 我们的n和k值估算算法很有希望,我们计划研究其他网络模型,其中该算法是有益的并且可以利用。

猜你喜欢

转载自blog.csdn.net/weixin_41523437/article/details/108017732