[Contiki系列论文之2]WSN的自适应通信架构

说明:本系列文章翻译自Contiki之父Adam Dunkels经典论文,版权归原作者所有。
Contiki是由Adam Dunkels及其团队开发的系统,研读其论文是对深入理解Contiki系统的最佳资料。

Contiki经典论文翻译——索引目录

说明:
本人才疏学浅,在翻译本篇论文的时候非常吃力,很多知识点都不懂,为了避免翻译错误误导大家,打算先看看相关知识再翻译此文,敬请谅解!
为了不耽误翻译进度,我会先翻译其它论文,请在索引文中查看相关链接。

摘要

  随着传感器网络的多样化发展,产生了越来越多的链路层、MAC协议以及潜在的传输机制。系统开发者必须使他们的应用和系统能够自适应于广泛的、潜在的协议和机制。不过,由于已经存在的传感器通信架构在设计时并没有考虑到这个多样性,所以系统开发者必须为每种潜在的协议和机制重新开发他们的系统。为了补救这种情形,我们提出了一个通信架构。该架构能够在不需要修改任何应用和协议的前提下,适用于广泛存在于从MAC层到传输层的潜在的通信机制。该架构具有足够的表现力以适应典型地传感器网络协议。通过测试证明,相对于非自适应架构,该架构的执行时间只增加了一点点。

1 介绍

  随着传感器网络的多样性发展,传感器网络的协议操作受到很大的挑战。比如,如果一个应用程序运行于一个多链路层技术之上,应用程序和协议就不能依赖于已经存在的相关的链路层机制——比如链路层重传。这提示我们去重新思考传感器网络的通信架构。
  就互用性和代码重用而言,一个通用的传感器网络架构能带来很多益处。传感器网络社区最近注册了一些不同的传感器网络架构,比如Polastre等人的SP架构,Cheng等人的模块化网络架构。不过,SP和模块化网络架构都不能自适应运行在架构只是的协议。
  SP没有指定任何协议头,因此能够自适应潜在的协议。但正是由于没有指定协议头,SP也在网络协议自适应的时候存在问题。Cheng等人的模块化架构按照网络层的功能划分成若干模块,在每个模块中定义自己的模块头。如果要添加附加协议,应用程序员必须清楚地定义模块边界并指定包的子头。
在本篇论文中,我们展示了一个用于传感器网络的通信架构——变色龙。变色龙架构由两部分组成:Rime通信栈和一系列的包传输模块。变色龙架构被设计用于在能够使用典型的传感器网络协议的同时,能够自适应大量的潜在的协议和机制。
  设计具有互操作性通信架构的最大问题在于寻找一个通用的头格式。这样的头格式必须同时满足两个条件:对架构支持的通信模式具有足够的表现力,对将来的架构扩展具有足够的灵活性。对于一个传感器网络架构而言,这个问题更具有挑战性,因为必须保证这个头足够小。
  为了寻找这样一个通用头,变色龙采用了一个彻底的不同的方法:变色龙完全不定义任何头,取而代之使用头属性——一种对包头中的信息的抽象。
  变色龙中有一个独立的头转换模块,它负责将应用数据和包属性转换为包头,从而可以形成一个具有包头和负载的完整包。通过使用不同的变色龙模块,使创建一个遵从任何给定包头说明的数据包成为可能。
  
  图1.一个分层架构
  图1中的网络中存在3个不同的潜在协议:一个低功耗无线电,比如CC1100,一个中功耗802.15.4无线电,以及因特网中的TCP/IP。这个网络使用了三个变色龙模型:一个负责生成低功耗无线电的链路层包,一个负责生成802.15.4的MAC层包,一个负责生成UDP/IP传输层包。与其他通信架构不同,运行在变色龙架构上的应用程序不需要根据不同的通信机制做修改。不过,仅仅是头转换还不足以模仿这些协议的操作。在一些案例中,变色龙头转换模块必须实现它所模仿的协议的一部分协议逻辑。比如,负责生成UDP/IP包的变色龙头转换模块必须实现ARP协议以解决IP地址向因特网MAC地址转换的问题。
  变色龙架构的第二部分是Rime通信架构。Rime提供了一些列基本通信元(范围是从最好的单跳广播和最好的单跳单播到最好的网络洪和逐跳的可信赖的多跳单播)。我们已经基于典型的传感器网络协议的通信需求选择了Rime元。
  我们已经在Contiki操作系统中实现了变色龙架构,并在Tmote Sky motes上进行了评估。
  我们在本篇论文中有三个贡献。第一,通过从详细的包头信息中分离协议逻辑,我们对分层通信栈中的跨层处理问题提供了解决方案。我们展示了用于替代包头的包属性的使用,这允许应用在不违背分层原则的前提下访问底层信息,且其执行时间性能满足传统基于包头实现的标准。第二,我们展示了一个传感器网络的轻量级分层通信架构——Rime协议栈,这减小了实现网络协议的复杂性。我们展示了栈中的通信元到典型传感器网络的映射:数据传播、数据收集和网络路由协议(mesk routing protocols)。第三,我们展示了数据包的使用,这使在该协议栈和其它通信栈(链路层、MAC层协议和TCP/IP)之间自适应成为可能。
  本篇论文剩下的部分以如下的形式组织:第2章介绍通信架构的背景,第3章介绍变色龙架构的顶层设计,第4章介绍Rime协议栈,第5章介绍变色龙包转换模块,第6章介绍架构的实现,第7章介绍一系列已经实现的传感器网络协议,第8章介绍变色龙模块,第9章对架构做评估,第10章回顾相关的工作,第11章做总结。

2 背景

  一个传感器网络的自适应通信架构必须既支持运行在通信架构之上的典型传感器网络协议,又支持架构所在的MAC层和链路层协议。在本节,我们将回顾一下顶层架构下关于通信栈的问题,关于传感器网络协议的需求,关于潜在的MAC层、链路层协议和标准的需求。

2.1 狭窄的腰(The Narrow Waist)

ps:这一段太难翻译了,崩溃O(∩_∩)O

  设计一个网络架构最开始的挑战是在什么地方放架构的狭窄的腰,在什么地方放其它网络架构周围的固定的点。狭窄的腰需要允许不同的协议运行在其之上,允许不同的技术运行在其之下。
  在以前的传感器网络通信架构中,将传感器网络协议栈的腰放在网络层之下,链路层之上。由于狭窄腰放在这个位置,主要的通信元是单跳广播。这允许在该架构下能有效的实现其它机制,比如拥塞控制。
  我们的架构已经证实,传感器网络架构的狭窄的腰应该是单跳的最努力的广播(single-hop best-effort broadcast)。
  

翻译不下去了,后面在翻译这段

2.2 地址自由协议(Address-free Protocols)

  尽管地址自由协议在传感器网络中扮演着主要的角色,但总存在基于名字的协议。对于基于名字的协议(ame-based protocols),每个节点都被确切地命名(通常使用它们的节点标识地址)。最出名的基于名字的协议是单播多跳路由,这种协议要求网络中的数据包必须由一个指定的节点发送到另一个指定的节点,且发送方知道接收方的地址,发送方和接收方之间的路由中间节点也知道接收方的地址。
  数据收集协议是地址自由协议和基于名字协议的混合体。在一个数据收据协议中,参与节点(participating nodes)发送数据到网络中的一个或多个水槽(sink)节点,而数据则被以多跳形式被转发到任何任何水槽节点。参与节点不需要知道最终接受数据的水槽节点的地址,不过一般需要知道单跳邻居的地址。

你可能感兴趣的:([Contiki系列论文之2]WSN的自适应通信架构)