分类: 其他平台
2016-01-05 17:18:01
原文地址:Rime 协议栈概述及学习资料 作者:jsjkj
摘要:
本文讲述了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协议栈如下图:
三、学习资料
[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]。
参考资料:
[1] Adam Dunkels的《Poster Abstract: Rime - A Lightweight Layered Communication Stack for Sensor Networks