RPL是IPv6 Routing Protocol for Low-Power and Lossy Networks的简称。

低功耗及有损网络(LLN)是一类内部链接和路由器都受限的网络,该网络下的路由器的处理器功能、内存及系统功耗(电池供电)都可能受到较大的限制,而里面的网络连接也具有高丢包率、低数据传输率及不稳定的特性。组成该网络的节点数量也多种多样,一张网络中可能仅也几个节点,也可能有成千上万个节点。节点间通讯拓扑方式可有三种形式:

  • 点到点:网络内节点到节点的通讯;
  • 点到多点:LLN网络内一个中心节点到一个设备子网的所有节点通讯;
  • 多点到点:LLN网络内一个设备子网内的所有节点到一个中心节点的通讯;

1、重要术语

DAG

DODAG

Objective Function (OF): An OF defines how routing metrics, optimization objectives, and related functions are used to compute Rank. Furthermore, the OF dictates how parents in the DODAG are selected and, thus, the DODAG formation.目标功能OF:OF定义了路由计量标准、目标路径优化,以及计算Rank值的方式。与此同时,OF还规定了如何确定DODAG中的父节点的方式,即如何构造DODAG。

2、RPL简介

2.1、拓扑图

本小节描述RPL的基本拓扑形式,以及如何建立这些网络的规则,即建立DODAG的规则。

LLN网络不像我们平常的有线网络那样是点到点传输的,LLN一般没有预先规定好某个发送节点的目标,网络内的节点必须自己去发现其它的节点并按RPL规则建立通信。RPL路由把网络拓扑内所有节点向外的信道汇集到一个或多个指定的出入口(sink)上去,反之外部的信息也从这些出入口(sink)出来分发给网络里面的节点。所以,RPL把整张网络视为一个DAG图(Directed Acyclic Graph),然后再将这个DAG图分割为多个DODAG图,每个DODAG图含有一个根节点(出入口sink,可以接收或发送外网信息)。这些根节点通常会连接到某一主干网上去。

RPL中各元素的关系

1)NETWORK

  • 一个网络中会包含有多个RPLInstance,各个RPLInstance具有自己的RPLInstanceID;
  • 6lowpan应用的主要问题都集中在RPLInstance及以下的部分,因为RPLIntance的root是有能力连接到主干网络的(这就属于互联网时代的技术了);

2)RPLInstance

  • 一个RPLInstance中含有一个或者多个DODAG,各个DODOAG含有自己的DODAGID;
  • 同一个RPLInstance里的所有DODAG共享同一种OF;

3)DODAG

  • 每个DODOAG内含有且仅有一个root,其它的都为node;
  • 每个node还有一个属性DODAGVersion,当DODAG重构时DODAGVersion会跟着增加,比如节点发生移动、信号强度互相有变化时DODAG会重构拓扑图,从而引发DODAGVersion增加。不过DODAGVersion有的时候并不是因为拓扑图变化了才增加,有其它可能导致它增加的原因;
  • DODAG内的所有节点具有自己的Rank值,该值在越接近root的节点处越小,越远离root的节点则越大;

RPLInstance可能有下面的多种组成方式:

  • 仅有一个root的单一DODAG形式

    • 比如,某个智能家居应用中,最小化的电灯控制系统,仅需要一个DODAG就可以了;
  • 多个DODAG形式(各自有root,不同的DODAGID)
    • 比如,在某个多点数据收集应用中,节点间没有办法互相协调所以被迫分割成多个DODAG了,或者仅是为了实现其中某一部分节点能够动态地进入/离开网络而采用了多DODAG的方式;
  • 单一DODAG形式(使用一个主干网上的的一个根节点作为虚拟根节点,用它协调其它DODAG的根,这样该RPLInstance下的所有DODOAG具有相同的DODAGID了)
    • 比如,某网络中的多个边界路由器,它们都具有可靠的网络连接,在理论上它们都可以扮演网络里所有DODAG的出入口(sink)功能;
  • 上面几种情况的组合

原文如下:

A RPL Instance may comprise:
o a single DODAG with a single root
* For example, a DODAG optimized to minimize latency rooted at a single centralized lighting controller in a Home Automation application.
o multiple uncoordinated DODAGs with independent roots (differing DODAGIDs)
* For example, multiple data collection points in an urban data collection application that do not have suitable connectivity to coordinate with each other or that use the formation of multiple DODAGs as a means to dynamically and autonomously partition the network.
o a single DODAG with a virtual root that coordinates LLN sinks(with the same DODAGID) over a backbone network.
* For example, multiple border routers operating with a reliable transit link, e.g., in support of an IPv6 Low-Power Wireless Personal Area Network (6LoWPAN) application, that are capable of acting as logically equivalent interfaces to the sink of the same DODAG.
o a combination of the above as suited to some application scenario.

2.2、上行路由与构建DODAG

RPL规定从节点到DODOAG的根的路由,应该根据OF算出最优的DODAG来,节点间通过互相传递DIO(DODAG Information Object)信息数据来建立和维护DODAG图。

2.3、下行路由

RPL使用DAO(Destination Advertisement Object (DAO))信息数据来建立下行路由

RPL协议介绍的更多相关文章

  1. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  2. 第二章 ZAB协议介绍

    ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...

  3. JSON-RPC轻量级远程调用协议介绍及使用

    这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...

  4. [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP       ...

  5. Python基础教程之udp和tcp协议介绍

    Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...

  6. 常用音频协议介绍&&有关音频编码的知识与技术参数

    (转载)常用音频协议介绍 会议电视常用音频协议介绍及对比白皮书 一.数字化音频原理:声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线.通常人耳可以听到的频率在20 ...

  7. 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转

    转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...

  8. OSPF协议介绍及配置 (上)

    OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...

  9. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

随机推荐

  1. jekyll博客安装

    摘要: 一直用Mac,换了新公司使用的电脑是windows,网上粗略的看了一下Jekyll的安装.简略的实现了一遍 首先安装Ruby "Ruby安装文件下载地址" 下载对应版本,我 ...

  2. js 网上见到的动画函数 备份

    <script> function startMove(obj,json,fn){ clearInterval(obj.timer); obj.timer = setInterval(fu ...

  3. NSIS:应用软件自动升级功能的探索与实践

    原文 NSIS:应用软件自动升级功能的探索与实践 记得以前轻狂曾分享过使用第三方软件实现应用软件自动升级功能 (详细http://www.flighty.cn/html/soft/20110106_1 ...

  4. DataNode连接错误Retrying connect to server

      在Hadoop分布式模式部署完毕后,通过start-dfs.sh启动NameNode.DataNode.SecondaryNameNode,在master节点通过jps命令查看,看到NameNod ...

  5. 为什么 Linux Mint 比 Ubuntu好?

    Linux Mint由Linux Mint Team团队于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版.其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件.多媒体 ...

  6. 每天收获一点点------Hadoop RPC机制的使用

    一.RPC基础概念 1.1 RPC的基础概念 RPC,即Remote Procdure Call,中文名:远程过程调用: (1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网 ...

  7. IntelliJ Idea中一个编译报错引发的

    package verify; public class Verifier { private String name; public Verifier() { this.name = getClas ...

  8. Java加深理解有关注释

    一.获取应用笔记 常常会遇到这种情况 package Tokyo.Hot; public class Demo { public static void main(String[] args) { n ...

  9. 我也来谈javascript高级编程之:javascript函数编译过程

    前言 题目有点大,其实也就是手痒...跟大家来扯一下javascript编译过程. 那么到底什么是“编译”呢 这个...本人文笔太差,我还是直接举例子吧. 相信玩过js童鞋应该都看过下面这样一个面试题 ...

  10. C++语言债券系列之十一——友元函数和拷贝构造函数

    1.好友功能 (1)友元函数类的普通功能外定义. 定义友元函数和相同的正常功能.在类必须声明的正常功能为好友. (2)友元函数不是一个成员函数. 你不能反对打电话.但直接调用:友元函数访问类的公共.p ...