Node Joining Process in 6LoWPAN - ND, RPL

https://ez.analog.com/docs/DOC-12488

In typical 6LoWPAN networks, the registration is normally referred to as the node joining
process.

The complete flow is as outlined below.

The first step in the network registration is Neighbor Discovery (ND). This helps the node to determine
the neighbors in the vicinity and to select the best parent available. The node will first transmit a RS (Router Solicitation) packet as a multicast to all the routers. On receiving the RS packet all the routers respond back with a RA (Router Advertisement)
as a unicast to the node.

 

The RA packet will contain the following information:

  • Prefix Information (PIO) : The prefix of the IPv6 address
  • Context Option (CO) : The compression technique to be used.
  • Authoritative Border Router
    Option (ABRO): Border Router address

 refer
to IETF RFC 6775: Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)

Upon receiving the RA, the node selects a router as its default router (based on first received RA) and
derives the global IPv6 address based on the prefix option. The node then sends a Neighbor Solicitation (NS) as a unicast message to its default router. The NS will contain the Address Registration Option (ARO). This option will tell the router that the node
is directly reachable and also the link layer address of the node.

The router will make an entry of the node in its Neighbor Cache and respond with a Neighbor Advertisement
(NA) with the status of address registration. The following are the status of Address Registration that a Router can respond with:

 

0 -  Success

1 -  Duplicate Address

2 -  Neighbor Cache Full

The Node will send the ARO with a lifetime and will repeat the NUD (Neighbor Unreachability Detection) by
sending periodic NS messages to its default router at regular intervals.

On receiving the Neighbor Advertisement (NA), the Neighbor Detection (ND) is complete and the node will
have the address of the default router in its Neighbor Cache. Similarly the default router of the Node will have the Node’s address in its neighbor cache.

Upon completion of Neighbor Discovery, RPL is initialized and the network registration process will begin.
The Node will now send a DODAG Information Solicitation (DIS) in response to which the router transmits a DODAG Information Object (DIO). The DIO contains the rank, metrics and PIO. The routers will keep broadcasting their DIOs in regular interval following
a trickle timer. If a DIO is received from a router with better rank than the default router, the node re-registers itself with the new router (by sending NS). Once the DIO is received the upward path (to reach the border router) is established. In case of
the AD6LoWPAN, the rank depends on the orbit of the Router.

The Node will now send a Destination Advertisement Object (DAO) to its default router to be forwarded to
the Border Router (BR). The RPL uses Destination Advertisement Object (DAO) messages to establish Downward route to reach the Node.

On receiving the DAO, the border router responds with a DAO ACK. This packet is forwarded to the node from
its parent. Subsequent to the node receiving the DAO ACK, it is considered that the network registration is completed.

 

This FAQ was generated from the following discussion: How
does a 6LoWPAN device register to network?

时间: 2024-09-08 06:17:13

Node Joining Process in 6LoWPAN - ND, RPL的相关文章

Node.js进程管理之Process模块

在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块.Process模块提供了访问正在运行的进程.child_process模块可以创建子进程,并与他们通信.cluster模块提供了实现共享相同端口的集群服务能力,允许多个请求同时处理. 一.Process模块是一个无须使用require()就可以从node.js应用程序进行访问的全局对象. 二.进程I/O管道 Process为进程stdi

Node.js中process模块常用的属性和方法_node.js

前言 虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程.node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作. 如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性.不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必要了. 属性 一张表格大概可以看到

Node.js中的process.nextTick使用实例_node.js

我已经不记得是在哪里第一次看到process.nextTick这个玩意的调用了,哦,应该是在nodejs官方的process文档里看到的.当时就不理解这东西是干嘛的了,都已经有setTimeout了,还需要这个函数干嘛.而且从根本上来说,这个函数又是干嘛的?和setTimeout有什么区别? stackoverflow上有一个非常好的帖子基本上解释了我的问题,这里我附上链接,然后给出它里面的范例: stackoverflow.com >> What are the proper use cas

node.js学习笔记(16) child_process(三)

学习过前两篇笔记的源码分析,再来应用child_process的7个方法就不难理解了. By default, pipes for stdin, stdout and stderr are established between the parent Node.js process and the spawned child. 默认情况下,Node.js主进程和子进程间就会建立三个管道:stdin.stdout和stderr,即标准输入流.标准输出流和标准错误流. 如今热播的<芈月传>中有一段

《深入浅出Node.js》作者分享:Node.js应用性能监控与问题诊断

直播回顾视频:https://yq.aliyun.com/edu/lesson/play/333 以下内容是根据直播和PPT整理. Node.js的优势与劣势 Node.js是基于JavaScript编写而成的强大的Web开发框架,它易于上手.入门简单:同时ECMAScript新规范.特性更新活跃,按年为单位进行更新.得益于弱类型语言的特性,Node.js的开发效率奇高,通过使用事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.js特别适合于web应用或API服务器,例如手机上的AP

[译]理解Node.js事件驱动机制

学习 Node.js 一定要理解的内容之一,文中主要涉及到了 EventEmitter 的使用和一些异步情况的处理,比较偏基础,值得一读. 大多数 Node.js 对象都依赖了 EventEmitter 模块来监听和响应事件,比如我们常用的 HTTP requests, responses, 以及 streams. const EventEmitter = require('events');  事件驱动机制的最简单形式,是在 Node.js 中十分流行的回调函数,例如 fs.readFile.

11gR2 RAC重启后只能起单节点

11gR2 RAC重启后只能起单节点 问题背景: 将11gR2 RAC正常部署完成之后执行两节点重启操作发现其中有一个节点的集群资源无法启动,遂再次重启该无法启动集群资源的节点,还是不可.随即将正常节点重启发现原故障节点资源起来了,待重启完毕后原正常节点资源无法启动.   集群环境: OS:RedHat EnterPrise5.8 x86_x64 DB:Oracle EnterPrise Database 11.2.0.4.0 x86_x64 GRID:Oracle Grid Infrastru

几篇关于无限分类算法的文章第1/5页_php技巧

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html By Mike Hillyer Introduction Most users at one time or another have dealt with hierarchical data in a SQL database and no doubt learned that the management of hierarchical data is no

poj 3164 Command Network:最小树形图模板题

链接: http://poj.org/problem?id=3164 题目: Command Network Time Limit: 1000MS     Memory Limit: 131072K Total Submissions: 8922     Accepted: 2609 Description After a long lasting war on words, a war on arms finally breaks out between littleken's and Knu