赤脚在奔跑分享 http://blog.sciencenet.cn/u/hongyanee

博文

Partial network coding: concept, performance, and applicatio

已有 4369 次阅读 2011-10-23 09:16 |个人分类:笔记|系统分类:科研笔记| 传感器, network, 数据采集

       无线传感器网络很多情况下需要在严酷的环境下生存。很多应用中,需要持续的感知数据,由服务器间歇的收集数据。因此,传感器节点不得不临时存储数据,为服务器提供简单、随手可取的最新数据。由于服务器与传感器节点之间的通信资源昂贵,大量的传感器,还有每个传感器的有限存储空间,持续的数据采集就是一个很有挑战性的问题。

       文章提出了partial network coding,作为这些问题的通用解决方案。PNC为持续的数据有效的数据存储。

1. 无线传感器网络包含了大量的传感器节点,配置在一个开放的环境中,而且没有传统的无线或者有线网络支持。由于无线传感器有限处理和存储能力,大量的传感器需要协同工作完成数据采集、存储和收集,需要一个代理或者基站(本文称为服务器)作为中间的网关。

       在严酷和极端的环境下,服务器与节点之间的通信是很昂贵的,所以要有间隔的收集数据;而且数据收集在安全目标下,快速的执行。当前的数据采集技术是,服务器向root node发送查询请求,root nodesensor node广播请求,然后将sensor node的数据路由到sever。这样的技术有两个缺点:引入了很长时间的时延,root sensor由于需要上传大量的数据会比其他sensor node更快耗尽资源;在很多情况下,一些部分传感器网络可能会接入失败。

       为了解决上述问题Dimakis et al.[2005]提出了一种方案。在这个场景下,数据冗余地存储在传感器网络中,服务器只要随机的接入(blind access)一些传感器节点检索数据。但是这样的解决方案又会引入大量的重复。而冗余管理需要一个central entity产生码字,分发给存储的位置。在传感器网络中,这样的方案不可行。

       Dimakis et al. [2005] 提出了random network coding,可以分布式的在各个节点上管理这些数据。所有的数据线性组合,只要得到和节点数目相同的组合,就能够恢复原来的数据。但是这样的解决方案,也有两个缺点:不能移除过时的数据;收集所有的数据会花费大量的功耗,而且收集的数据越多,需要查询的节点就越多。

2. 传统的network coding将每个node的数据线性组合,存储在每个节点中,每个线性组合都是full cardinality。如果有N个数据,那么只要获得任意的N个线性组合就可以恢复出原有信号。我们很容易将新的数据增加到原有的数据段中,但是想把过时的数据移除就是不可能的工作了。

       Partial network coding借鉴了network coding线线组合的思想,存储在每个节点中,每个线性组合都是arbitrary cardinality. 测量矩阵可以看做是一个上三角矩阵。编码过程是一个增量的过程,将新到的数据加到原来的线性组合中去。解码过程由服务器通过Gaussian Elimination完成。

       “Partial network coding intrinsically manages the cardinality of combined data segments by setting some of the coefficient to zeros”.理想的系统中,线性组合cardinality越高,数据恢复的概率就越大。If cardinality is full,那么足够的线性组合数据恢复的概率为100%,但是就退化为基本的network coding了。一旦新的数据到达,就要删除原来的所有线性组合为新数据腾出空间。这样的方案只能向服务器提供最新的数据。”we consider the performance of PNC with a uniform cardinality distribution throughout the life time of the system”.

       Data replacement algorithm is showed as follow. 当新数据到达,如果对应线性组合的cardinality < N,那么将新数据组合到原线性组合中;如果对应线性组合为N,那么丢弃原线性组合,将新数据作为新的线性组合。这样的更新算法天然地保持了cardinalityuniformity.

3. 性能分析和改进

       Partial network coding的性能不会比Non-network coding差。

       Network coding比较。Network coding只要接收到N个线性组合,就可以100%的恢复源数据。但是Partial network coding with a uniform cardinality distribution,最新的数据和最旧的数据出现的概率也不同,最新的数据在每个线性组合中都有,而越旧的数据出现的机会就越少。所以PNC的解码概率低于NC

       如果我们将每个传感器的缓存修改为root(N)+1,(这里root是指平方根),把线性组合的cardinality扩展为N+root(N),那么解码的概率可以提高到100%

4. 计算量和通信的overhead

       PNC在传感器节点上的计算量并不大,只是生成一些系数并将新数据组合到原来的线性组合中,所有这些操作都很简单而且功耗很低。通信的overhead比起数据量来说很小,而且比其他方案也有优势。减少通信Overhead的方式是polynomial interpolation,把一个随机数的0N次方作为一个线性组合的系数,那么只用传一个系数,而不是传N个系数。

5. 多种数据类型

       两种解决方案:每个传感器的缓存中都存放不同类型的数据;或者将不同类型的数据分配到不同的传感器子集中。前者容易造成数据不完整,当缓存比较小的时候;后者可以解码特定类型的全部数据,也可能一起不能解码其他类型的数据。由于这种all-or-nothing的特性,为了保护重要数据,在系统中增加一个重要性参数。越重要的数据,就用越多的传感器来保存,就可以以更高的成功率收集这些数据。

5. 协同或分布式实现

       前面假设每个传感器的缓存空间都是足够的,但是如果传感器缓存空间不够前面的方案就不能实施了。为了解决这个问题,传感器需要协同工作,提供联合数据段。



https://blog.sciencenet.cn/blog-353784-499985.html

上一篇:Sparse recovery using sparse matrices
下一篇:Pipeline Network Coding for Multicast Streams
收藏 IP: 210.75.252.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-17 05:47

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部