分类: 嵌入式
2013-01-22 17:27:38
原文地址:Contiki学习笔记:Rime协议栈概述及学习资料 作者:Jelline
摘要:
本文讲述了Rime协议栈的提出背景、体系结构,最后罗列Rime协议栈学习资料。并附上Rime的名称来源。
一、提出背景
传统的分层通信架构(communication architectures)很难满足资源受限的传感器网络,于是,研究者转向跨层优化(比如将数据聚合顶层的功能放在底层实现),但这导致系统变得更脆弱以及难以控制(fragile and unmanageable systems)。传统分层通信结构再次得到重视。同时研究发现,传统分层效率几乎可以与跨层优化相媲美[1]。Rime就是在这样的背景开发的。(其实我觉得蛮套话的)
二、Rime概述
Rime是针对传感器网络轻量级、层次型协议栈,也是低功耗、无线网络协议栈,旨在简化传感器网络协议及代码重用,属于Contiki的一部分(Contiki还支持uIPv4、uIPv6、lwIP)。
2.1 使用Rime
先来看下应用程序如何使用Rime协议栈,如下图:
图1 应用进程使用Rime通信示意图
由上图可知,有两种方式使用Rime。应用1使用mesh路由协议(跑在Rime协议栈之上),而应用2直接使用Rime协议栈。每个通信路径使用自己的逻辑信道。
2.2 Rime协议栈结构图
Rime是分层的,类似于TCP/IP协议栈,
图2 Rime协议栈示意图
abc
abc意思是anonymous broadcast,匿名广播。即将数据包通过无线射频驱动(radio driver)发出去,接收来自无线射频驱动所有的包并交给上层。
ibc
ibc意思是identified sender best-effort broadcast,将上层的数据包添加一个发送者身份(sender identity)头部。
uc
uc意思是unicast abstraction,将上层的数据包添加一个接收者头部(adds a receiver header field)。
Stubborn transmission
可靠通信由两层实现:Stubborn transmission、Reliable transmission。Stubborn transmission(译为顽固传输?),这一层在给定的时间间隔不断地重发数据包,直到上层让其停止。为了防止无限重发,需要指定最大重发次数(maximum retransmission number)。
Reliable communication
Reliable communication是可靠通信的另一层,该层主要实现确认和序列功能(acknowledgments and sequencing)。
Bulk transfer
块传输,应该是这样翻译吧。
2.3 Rime协议栈层次图
从另一个角度看Rime协议栈如下图:
有人也在研究Rime协议栈吗,或者研究Contiki其他协议栈(如uIP、lwIP、6LoWPAN),期待与您交流
三、学习资料
[1] An Adaptive Communication Architecture for Wireless Sensor Networks.pdf
[2] Poster Abstract- Rime - A Lightweight Layered Communication Stack for Sensor Networks.pdf
[3] contiki-course-kth-9oct2008-draft.pdf
[4] rime-doc.txt
[5] SensTools- os:
[6] 源代码
[1][2]是最重要的资料,介绍了Contiki背景、原理等,蛮学术化的;[3]是Adam的演讲PPT,称Contiki速成课程,有多张示意图,宏观Rime协议栈,很有好处。[4]是Contiki源码doc文件下的文档,简述Rime;[5]介绍Contiki的,有一部分是介绍Rime,有一张图蛮有用的,并解释一些名词。当然,这些资料远远不够,最后还是得结合源代码[6]。
注:
我所能找到的资料只能这么多了(当然一些意义不大的资料,就没放进来了),如果您有更好的资料,希望您能告诉我 ,不胜感激。
附:趣味了解--Rime名字来源
Rime是雾凇的意思,由许多很薄的冰组成(composed of many thin layers of ice),意指无线传感器网络通信是由许多节点自组织而成的[1]。雾凇俗称树挂,是一种类似霜降的自然现象,一种冰雪美景。是由于雾中无数零摄氏度以下而尚未结冰的雾滴随风在树枝等物体上不断积聚冻粘的结果,表现为白色不透明的粒状结构沉积物[2]。
图4 雾凇示意图
参考资料:
[1] Adam Dunkels的《Poster Abstract: Rime - A Lightweight Layered Communication Stack for Sensor Networks》
[2] 互动百科词条: