上回说到,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包用的。
下面详细介绍下这个过程:
1、dis发送
新节点发送dis信息请求周围邻居节点发dio消息
2、邻居节点发送dio
周围邻居节点收到dis信息后,调整自己的trickle定时器,以最快的频次开始发送dio信息,dio信息中就包含节点自身信息,比如rank、mac地址等。
3、新节点选择父节点
新节点收到一个或多个dio信息,从这些dio信息中选择最优的一个,当做自己的父节点。到此这个新节点的上行路由就确定了。以后它有任何需要发给board router的信息都先发给它选定的这个父节点,由这个父节点帮忙向上传输。
上行路由确认了,这时新节点可以向上传输数据,但是board router 并不能找到这个新节点,不能主动跟这个新节点发数据,所以还需要建立下行的路由。
4、新节点发送dao消息
新节点在选定自己的父节点后,会向这个父节点发送一个dao消息,告诉父节点自己与它的距离等消息,父节点收到后会把这个dao消息加上自己的信息,再发送给父节点的父节点,一直向上传输到board router,最终board router收到dao消息后就能从中获取到这个新节点的路由信息了。至此下行路由也就确定了。
需要注意的是,wi-sun的规范中采用rpl的非储存模式,所以所有的中继节点都是不会保存自己下面子节点的信息的,所以下行路由的信息都保存在board router中,意味着每次下行的数据,在数据包中就包含了这个数据的路径信息,所有中继节点都按照这个路径信息的指示向下一跳转发数据。
更多问题欢迎到下方留言探讨哦~
若是更多问题,欢迎扫码到物联网开发者论坛交流
联系人:张先生18600013032(微信同号)