[YuxuanYi Notes] Low-powered IoT with NDN & Cooperative Caching

2017-11-11

Posted by 易宇轩

很有意义!以前从来没思考过ICN应用于物联网的具体机制。

1 INTRODUCTION

Motivation:

能源效率是物联网(IoT)的主要驱动因素,而减少电池消耗能大规模延长电池寿命。降低能耗的方法有:

硬件上:本文基本不考虑

通信上:在活动状态时,MAC层的RDC协议减少空闲时监听;网络层协议避免广播

缓存上:缓存机制可以允许节点间歇性地进入睡眠状态

1、存储在云服务器上,如CoAP / HTTP缓存[34](网络外、集中式缓存)

局限性:

(1)造成传输时间变长、控制流量变大,MAC层难以同步和协调(这里的同步和协调是指MAC层统筹全局时,发号令的传达速度快,决策很快被实践)

(2)物联网是间歇性的,很大一部分时间不可用:比如网络中的节点或移动设备可能暂时断开、网关本身就是是与其他物联网设备一起部署在现场的设备且断开了。

2、ICN(网络内、分布式缓存)

ICN可以提供本地的网络内容缓存,以便在大多数时间设备处于深度睡眠模式的同时,相关的IoT内容随时可用。另外,关于合作缓存,在这种情况下分布式算法是常见的[37]。不需要解决全局最优启发式[8,10,26,29,30]

局限性:“据我们所知,在(1)物联网设备上的省电睡眠技术;(2)网络内分布式缓存策略。它们的相互作用(interplay)方面还没有任何实验性的工作。”

 

本文工作:

通过大规模试验,说明:

1、物联网使用ICN(具体来说是用使用NDN + 自己设计的协作式缓存协议CoCa),设备可以将能耗降低一个数量级,同时将最近的物联网内容可用性保持在90%以上。

2、自动配置机制:任意大小、使用NDN + CoCa的ICN物联网网络上,用这样的机制,每个设备可以自主地配置名称和自动调整参数p,以减少能源消耗。

 

2 物联网的基本说明

1、物联网网络特性

对互联网,链路是间歇性的,上行节点可能睡眠;当链路存在时,它可以发送interest,节点以缓存进行回答。

物联网的固有特性:这种无线链路与IEEE 802.15.4容量相似,即非常低,以kb / s为单位。这种低容量是由于通常在物联网设备上使用的微控制器的处理能力有限(易于不堪重负),由于物联网链路层的低功耗和有损耗性质,产生低数据速率(拥塞出现快) ,以及全向无线电通信(无法避免干扰)。

 

2、物联网设备硬件特性

典型的低端物联网设备[16],有几个KB的RAM(这也太小了吧)和一个低功耗的CPU。

节点可以处于两种状态之一:活动或睡眠。处于休眠状态的节点转换到由外部中断触发的活动状态,所述外部中断由定时器或传感器(例如,如果温度高于特定阈值通过温度传感器产生的)唤醒。活动状态可以处理数据,并随时回到睡眠状态。本文希望睡眠时间比例p在90%以上,余下的活动时间还可以用RDC进一步优化。P低的情形参考以前的文献[19]

 

3、ICN物联网逻辑架构

使用NDN的原因:1、每个节点的传感器都是数据来源producer。还需要让每个传感器都能给内容命名。2、解决间歇性连接和睡眠节点造成的延迟问题、兴趣也可以聚合。3、物联网设备的内存限制过大,希望节点能共同合理应用内存。

 

CoCa: 协作式缓存协议Cooperative Caching Side-Protocol.它是一个simple side protocol。

CoCa的特别之处:NDN一般只是consumer发interest主动要data。而CoCa使得:生成一个新的物联网内容块后,制作人通过link-local broadcast共享。中途节点通过link-local broadcast接收到的data不会转发,但可能缓存(具体见3.3节)。

好处:节省interest传播,还可以期待能源效率的提高。

 

3 可用性与节能之间的权衡

传感器监测时的特性:

1、数据相关性严格随时间下降!越旧的监测数据越没有采信意义)

2、若可用的数据来自大量不同的来源,就能更了解传感器在监视的东西

 

如何评价物联网内容的可用性(availability):

1、多样性:对于一个内容,最好是它所有可能的来源都能被上行链路检索到(这里的内容应该不代表一个data,而是描述同一项指标的、多个producer产生的多个data。对于一项指标,最好让所有传感器都测一遍,并且把它们的测试结果都拿到手,但是1、休眠中的传感器;2、链路堵塞的传感器就没办法提供了)

2、新鲜度:一个内容的监测数据越新越好。考虑数据L的容忍寿命(tolerated lifetime),其中L = k表示只有每个传感器的k个最新值是有用的。(其实我觉得可以像机器学习的局部加权回归一样,设置权重)

另:一个节点的能耗E = ∑P * t for each state,其中P是一个状态下的功率,t是这个状态的持续时间。

*本文考虑的状态有:睡眠,活动(收听和接收),发送单播,发送广播数据包。

*最后,本文假设空闲无线电占空比的典型值为0.6%,如[14]所述。

 

实验机制和不变量:

1、采用CoCa:节点主动声明自己新产生的data

2、变为活动状态后,上行节点发送一个带有通配符名称前缀x的内容的兴趣。当前处于活动模式的所有节点随后以其内容存储库中可用的内容块回复。数据可用性计算为上行节点收到的数据与所有产生的数据的比值。

3、中途节点通过link-local broadcast接收到的data不会转发,但可能缓存,设缓存概率为q = 0.5(这个参数不是为了模拟链路通畅率,那有什么意义???)

 

自变量:

1、以一秒为最小时间单位,令睡眠时间比例p为每一秒选择睡眠状态的概率,每个节点、每秒之间相互独立(没有协调时,唤醒不是由某些特定状态触发的必然事件了)。这里协调是指,有一个全局统筹,来保证始终保持有节点醒着/睡着/比例多少,总之不是相互独立、随机的

2、L为容忍寿命,可以取1和无穷

3、缓存替换策略——创新之处

(1)随机缓存(LRU)

(2)Max Diversity Most Recent(MDMR):首先,缓存尝试从同一个producer中替换旧的块。接下来,缓存尝试替换缓存中存在多个块的生产者的最旧块。最后,如果每个源只有一个条目,则替换缓存中最早的条目。(对L=1时的比较更明显有利)

 

以横坐标为p,剩下两个指标构成四条曲线;纵坐标为可行性

实验结果:Figure 3

1、p低(0.60)时:

(1)L无穷时,可行性接近100%

(2)L=1时,可行性90%

2、p高(0.90~0.95)时:可用性急剧下降

3、MDMR始终比Random Caching获得更好的可用性,特别是对于p>=0.9的高值,其中可用性在该标记附近保持约90%。

 

能耗之间的比较:Figure 4

*cache很节能;P越高越节能;

与协调睡眠相比:对于p = 0.95等高值,MDMR睡眠不协调可以获得大致相同的能量收益,而大部分数据仍然可用

 

*更一般化地,推广到多个广播域:Figure 5

图5中的结果表明,在这种情况下,对于L> 1,NDN + CoCa实现了约80%的相对较好的内容可用性。这些值与单跳情况下实现的可用性相似。

 

与IP网络的比较:说明RAM内存的重要性

NDN + CoCa比起CDN + CoCa的优势是IP协议栈没有in-network caching,毕竟每个节点都是producer。图6中的结果表明,即使少量的附加高速缓存大小(例如,5kB)也能够显着增加内容可用性。

 

结论:MDMR好

 

4 自动配置方案

*1、命名机制

利用:(i)唯一的CPU ID、网络接口的硬件地址,以及(ii)一个名为Sensor Actuator Uber Layer (SAUL),使上层能够请求有关所有连接的传感器设备的信息(例如,传感器的类型和名称)

还可以加入时间/地域/组织来区分

 

2、睡眠比例p的自动配置

设一个传感器的可用率为A,有n个节点,S为传感器集合,|S|>=n(一个节点可能有多个传感器),新数据以T为周期产生,当然假设数据的L >= T

 

(1)对随机缓存的分析

设q = Pc < 1,不考虑干扰。余下n-1个节点接收新数据的分布符合伯努利分布

 

进行一次,捕获到它的概率为Ps = (1-p)Pc

期望(n-1)Ps,再+1代表自己 = E[content multiplicit ]

独立进行L次,至少捕获一次的概率为1-(1-Ps)^L(我算出来不一样???)

 

求一个传感器的可用率A

反面:设一个传感器产生L次新内容后,恰有r个节点曾捕获到过,但这r+1个节点都睡着了,此时请求不到该传感器的数据

求得A = 1 – ∑ = …

再乘以|S|为总体可用率

 

(2)对MDMR的分析

如果节点处于活动状态并通过CoCa接收一个名称与指定内容相匹配的新内容块,则该节点将其缓存到其内容存储库(Pc = 1)中。代入Ps由此算出来…

 

给定要求A,用二分法在一定精度要求下反推出p

 

自动配置机制的好处:(i)它们在低端物联网设备上本地运行,(ii)它们所带来的内存,计算和通信开销并不重要,(iii)它们的精度是可调的。

 

5 LARGE SCALE OPERATION

更大型的测试,L可取值更多,自变量改为Caches Per Source

关于命名机制的挑战:(i)每个高速缓存需要预配置大量的名字,或者需要在引导过程中以某种方式收集这些信息,以及(ii)节点需要执行全名匹配内容

改进:每个节点有一个首选传感器,根据命名机制,内容名称自然地分成与传感器类型相区别的前缀。 因此,节点可自动自行缓存具有与其首选传感器类型匹配的名称的内容,不需要看完整个名字