首页 理论教育 节点加入网络的过程及其通讯原语

节点加入网络的过程及其通讯原语

时间:2023-06-29 理论教育 版权反馈
【摘要】:父节点响应通过MAC关联加入网络进程如图13-4所示。当同意节点加入网络的请求后,父节点网络层管理实体将使用加入节点的信息在邻居表中产生一个新的项,并通过MLME_ASSOCIATE.request原语通知MAC层连接成功。原语包含了父节点为子节点分配的网内唯一的16位网络地址。

节点加入网络的过程及其通讯原语

一个节点加入网络有两种方法:一种是通过使用MAC层关联进程加入网络;另一种是通过与事先指定父节点连接而加入网络。

1.通过MAC层关联加入网络

子节点请求通过MAC关联加入网络进程如图13-3所示。父节点响应通过MAC关联加入网络进程如图13-4所示。

1)子节点发起信道扫描

子节点通过NLME_NETWORK_DISCOVERY.request原语发起加入网络的进程,网络层接收到这个原语后通过发起MLME_SCAN.request原语请求MAC层执行一个主动扫描或被动扫描以接收包含了PAN标志符的信标帧,扫描的信道及每个信道的扫描时间分别由NLME_NETWORK_DISCOVERY.request原语的参数ScanChannels和ScanDuration决定。

2)子节点存储各PAN信息

MAC层通过MLME_BEACONNOTIFY.indication原语将扫描中接收到的信标帧信息发送到网络层管理实体,信标帧信息包括信标设备的地址、是否允许连接,以及信标净载荷。如果信标净载荷域里的协议ID域与自己的协议ID相同,子设备就将每个匹配的信标帧相关信息保存在邻居表中。信道扫描完成后,MAC层通过MLME_SCAN.confirm原语通知网络层管理实体,网络层再通过NLME_NETWORK_DISCOVERY.confirm原语通知上层,该原语包含了每个扫描到的网络的描述符,以便上层选择一个网络加入。

3)子节点选择PAN

如果上层需要发现更多网络,则可以重新执行网络发现;如果不需要,则通过NLME_JOIN.request原语从被扫描到的网络中选择一个网络加入。参数PAN ID设置为被选择网络的PAN标识符。

4)子节点选择父节点

一个合适的父节点需要满足三个条件:匹配的PAN标志符、链路成本最大为3、允许连接。为了寻找合适的父节点,NLME_JOIN.request原语请求网络层搜索它的邻居表,如果邻居表中不存在这样的父节点则通知上层,如果存在多个合适的父节点则选择具有最小深度的父节点,如果存在多个具有最小深度的合适的父节点则随机选择一个父节点。

5)子节点请求MAC关联

确定好合适的父节点后,网络层管理实体发送一个MLME_ASSOCIATE.request原语到MAC层,地址参数设置为已选择的父节点的地址,尝试通过父节点加入网络。

6)节点响应MAC关联

父节点通过MLME_ASSOCIATE.indication原语通知网络层管理实体一个节点正尝试加入网络,网络层管理实体将搜索它的邻居表查看是否有一个与尝试加入节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。如果有匹配的扩展地址,网络层管理实体获取相应的16位网络地址并发送一个连接响应到MAC层。如果没有匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下,网络层管理实体将为尝试加入的节点分配一个16位网络地址。如果父节点地址分配空间耗尽,将拒绝节点加入请求。当同意节点加入网络的请求后,父节点网络层管理实体将使用加入节点的信息在邻居表中产生一个新的项,并通过MLME_ASSOCIATE.request原语通知MAC层连接成功。

7)子节点响应连接成功

如果子节点接收到父节点发送的连接成功信息,会发送一个传输成功响应信息以确认接收,然后子节点MAC层将通过MLME_ASSOCIATE.confirm原语通知网络层。原语包含了父节点为子节点分配的网内唯一的16位网络地址。然后,网络层管理实体设置邻居表相应邻居设备为它的父设备,并通过NLME_JOIN.confirm原语通知上层节点成功加入网络,其过程如图13-3所示。(www.xing528.com)

图13-3 子节点请求加入网络进程

8)父节点响应连接成功

父节点接收到子节点传输成功的响应信息后,将通过MLME_COMM_STATUS.indication原语将传输成功的响应状态发送给网络层,网络层管理实体通过NLME_JOIN.indication原语通知上层一个节点已经加入了网络,其过程如图13-4所示。

图13-4 父节点响应加入网络进程

2.通过与事先指定的父节点连接加入网络

子节点通过与指定的父节点直接连接加入网络,这个时候父节点预先配置了子节点的64位扩展地址。父节点处理一个直接加入网络的进程,如图13-5所示。子节点通过孤立方式加入网络的进程如图13-6所示。

图13-5 父节点处理一个直接加入网络进程

图13-6 子节点通过孤立方式加入网络进程

1)父节点处理子设备直接加入网络

父节点通过NLME_DIRECT_JOIN.request原语开始处理一个设备直接加入网络的进程。父节点网络层管理实体将首先搜索它的邻居表查看是否存在一个与子节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。如果存在匹配的扩展地址,网络层管理实体将终止这个进程并告诉上层该设备已经存在于设备列表中了。如果不存在匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下,网络层管理实体将为子节点分配一个16位网络地址,并使用子节点的信息在邻居表中产生一个新的项。然后通过NLME_DIRECT_JOIN.confirm原语上层设备已经加入网络。

2)子节点连接父节点确认父子关系

子节点通过NLME_JOIN.request原语发起孤立扫描来建立它与父节点之间的关系。这时网络层管理实体将通过MLME_SCAN.request请求MAC层对物理层所默认的所有信道进行孤立扫描,如果扫描到父设备,MAC层通过MLME_SCAN.confirm原语通知网络层,网络层管理实体再通过NLME_JOIN.confirm原语通知上层节点请求加入成功,即与父节点建立了父子关系,可以互相通信

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈