上回说到,Node经过PA帧交互、身份认证、PC帧交互等一系列操作,终于成为了心仪PAN中的一员。
那么作为一个PAN的中的新人,他怎么找准自己的定位,找到自己与大BOSS- Board Router的联络途径呢?
首先介绍一下WI-SUN的使用的网络架构为RPL(the IP routing protocol designed for low power and lossy networks),这是一种基于IP技术的低功耗无线局域网,结合了IEEE802.15.4和IPv6协议。
要组建一个RPL网络,需要3种RPL控制消息,它们是一种ICMPv6消息类型,下面介绍下这三种消息:
DIO(DODAG Information Object):包含节点自身信息,比如RANK、MAC地址等,邻居只有收到了DIO以后才确定是否能选择它为父节点。
DAO(Destination Advertisement Object):这个包是为了数据下传用的,子节点传给父节点报告其距离等消息。
DIS(DODAG Information Solicitation):征集DIO包用的。
整个网络的建立大概流程为:
父节点发送DIO信息
新节点收到多个DIO信息后
选择其中一个作为自己父节点
新节点向选定的父节点回复DAO信息
父节点将DAO信息一直向上
传递到Board Router
通过DIO和DAO两个消息建立上行和下行路由。
下面详细介绍下这个过程:
01、DIS发送
新节点发送DIS信息请求周围邻居节点发DIO消息
02、邻居节点发送DIO
周围邻居节点收到DIS信息后,调整自己的Trickle定时器,以最快的频次开始发送DIO信息,DIO信息中就包含节点自身信息,比如RANK、MAC地址等。
03、新节点选择父节点
新节点收到一个或多个DIO信息,从这些DIO信息中选择最优的一个,当做自己的父节点。到此这个新节点的上行路由就确定了。以后它有任何需要发给Board Router的信息都先发给它选定的这个父节点,由这个父节点帮忙向上传输。
上行路由确认了,这时新节点可以向上传输数据,但是Board Router 并不能找到这个新节点,不能主动跟这个新节点发数据,所以还需要建立下行的路由。
04、新节点发送DAO消息
新节点在选定自己的父节点后,会向这个父节点发送一个DAO消息,告诉父节点自己与它的距离等消息,父节点收到后会把这个DAO消息加上自己的信息,再发送给父节点的父节点,一直向上传输到Board Router,最终Board Router收到DAO消息后就能从中获取到这个新节点的路由信息了。至此下行路由也就确定了。
需要注意的是,Wi-SUN的规范中采用RPL的非储存模式,所以所有的中继节点都是不会保存自己下面子节点的信息的,所以下行路由的信息都保存在Board Router中,意味着每次下行的数据,在数据包中就包含了这个数据的路径信息,所有中继节点都按照这个路径信息的指示向下一跳转发数据。