問:
我个人的理解节点应该会根据panid来区分自己该加入哪一个网络。
谢谢。不过还有些不明白的地方。你的意思是子节点是不会主动寻找协调器的,而要等待协调器发出通知信息,然后再加入申请加入,而PANid是协调器产生的,那子节点不知道PANid怎么加入网络呢?都不在那个网络里,怎么接收协调器的信息呢?我看到的代码是子节点和协调器都有相同的PANID配置,子节点先尝试加入网络,然后等待协调器发出通知信息,然后子节点发出申请信息回应。我对cluster Id的理解是相当于指令的意思,应该是不同的profile里面就定义好了各个cluster Id的意思,和组网有关系么?
答:
一个网络中只可能存在一个协调器。
网络协调器要为网络选择一个惟一的标识符
你说的那种类类似情况存在于簇树网络中。
看一下下面这段话应该就明白了。
在簇树网络中,绝大多数设备是FFD设备,而RFD设备总是作为簇树的叶设备连接到网络中。任意一个FFD都可以充当RFD协调器或者网络协调器,为其他设备提供同步信息。在这些协调器中,只有一个可以充当整个点对点网络的网络协调器。网络协调器可能和网络中其他设备一样,也可能拥有比其他设备更多的计算资源和能量资源。网络协调器首先将自己设为簇头(cluster header ,CLH),并将簇标识符(cluster identifier, CID)设置为0,同时为该簇选择一个未被使用的PAN网络标识符,形成网络中的第一个簇。接着,网络协调器开始广播信标帧。邻近设备收到信标帧后,就可以申请加入该簇。设备可否成为簇成员,由网络协调器决定。如果请求被允许,则该设备将作为簇的子设备加入网络协调器的邻居列表。新加入的设备会将簇头作为它的父设备加入到自己的邻居列表中。
上面讨论的只是一个由单簇构成的最简单的簇树。PAN网络协调器可以指定另一个设备成为邻接的新簇头,以此形成更多的簇。新簇头同样可以选择其他设备成为簇头,进一步扩大网络的覆盖范围。但是过多的簇头会增加簇间消息传递的延迟和通信开销。为了减少延迟和通信开销,簇头可以选择最远的通信设备作为相邻簇的簇头,这样可以最大限度地缩小不同簇间消息传递的跳数,达到减少延迟和开销的目的
阅读(8602) | 评论(0) | 转发(1) |