发明内容
本发明实施例提供了一种用于锚主设备选择的方法和设备,用于保持NAN簇中设备间的时间同步。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种用于锚主设备选择的方法,包括:
设备接收邻居感知网络信标NAN Beacon帧,所述NAN Beacon帧携带有第一AM信息及第一时间同步功能TSF信息,所述第一AM信息包括:第一锚主设备意愿值AMR、第一跳数HC、第一锚主设备信标传输时间AMBTT;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的主设备意愿值MR大于所述第一AMR时,所述设备将所述设备的角色转换为AM,所述设备记录有第二AM信息,所述第二AM信息包括:第二AMR、第二HC、第二AMBTT;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于所述第二AMR,且所述设备的MR小于所述第一AMR时,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,所述设备将所述设备的角色转换为AM,或,所述设备根据所述NANBeacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述设备将所述设备的角色转换为AM,以及所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新之前,还包括:
若所述第一HC小于或等于所述跳数门限,所述设备触发执行所述设备将所述设备的角色转换为AM的步骤,或,所述设备触发执行所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新的步骤。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,当所述设备为AM时,所述NAN Beacon帧用于AM选择通过如下方式确定:
若所述第一AMR小于所述第二AMR,则所述设备确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR等于第三AMR,则所述设备确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第一条件时,则所述设备确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,当所述设备为AM时,所述NAN Beacon帧用于AM选择通过如下方式确定:
若所述第一AMR小于所述第二AMR,则所述设备确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMBTT小于所述第二AMBTT,则所述设备确定所述NAN Beacon帧不用于AM选择;
若所述NAN Beacon帧不满足第二条件时,则所述设备确定所述NAN Beacon帧用于AM选择,所述第二条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第五种可能的实现方式中,当所述设备不是AM时,所述NAN Beacon帧用于AM选择通过如下方式确定:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则所述设备确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMR等于第三AMR,则所述设备确定所述NANBeacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第三条件时,则所述设备确定所述NAN Beacon帧用于AM选择,所述第三条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第六种可能的实现方式中,当所述设备不是AM时,所述NAN Beacon帧用于AM选择通过如下方式确定:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则所述设备确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMBTT小于所述第二AMBTT,则所述设备确定所述NAN Beacon帧不用于AM选择;
若所述NAN Beacon帧不满足第四条件时,则所述设备确定所述NAN Beacon帧用于AM选择,所述第四条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述方法还包括:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR大于所述第二AMR时,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新,包括:
所述设备将所述第二AMR的值更新为所述第一AMR的值;
所述设备将所述第二HC的值更新为所述第一HC的值加1;
若所述NAN Beacon帧由AM发送,所述设备将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,所述设备将所述第二AMBTT的值更新为所述第一AMBTT;
所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能的实现方式,在第一方面的第九种可能的实现方式中,所述方法还包括:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR时,若所述第一AMBTT大于所述第二AMBTT,或,所述第一AMBTT等于所述第二AMBTT且所述第一HC小于所述第二HC减1时,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信息以及所述第二TSF信息进行更新。
结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一AMBTT大于所述第二AMBTT时,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信息以及所述第二TSF信息进行更新,包括:
所述设备将所述第二HC的值更新为所述第一HC的值加1;
若所述NAN Beacon帧由AM发送,所述设备将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,所述设备将所述第二AMBTT的值更新为所述第一AMBTT;
所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择,当所述第一AMR等于所述第二AMR时,则当所述第一AMBTT等于所述第二AMBTT,且所述第一HC小于所述第二HC减1时,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信以及所述第二TSF信息进行更新,包括:
所述设备将所述第二HC的值更新为所述第一HC的值加1;
所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述方法还包括以下步骤中的至少一个:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC大于或等于所述第二HC时,所述设备忽略所述NAN Beacon帧携带的第一AM信息;
若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧不是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一AMBTT大于所述第二AMBTT时,所述设备将所述第二AMBTT的值更新为所述第一AMBTT,所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一TSF信息的预置字节的取值大于所述第二AMBTT时,所述设备将所述第二AMBTT的值更新为所述第一AMBTT,所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC小于所述第二HC减1时,若所述NAN Beacon帧由AM发送,所述设备将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,所述设备将所述第二AMBTT的值更新为所述第一AMBTT,所述设备将所述第二TSF信息的取值更新为所述第一TSF信息的取值,所述设备将所述第二HC的值更新为所述第一HC的值加1。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能的实现方式,在第一方面的第十二种可能的实现方式中,所述方法还包括:
当所述第二TSF信息的取值减去所述第二AMBTT后的差值大于预置的传输时间阈值时,所述设备将所述设备的角色转换为AM。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能的实现方式,在第一方面的第十三种可能的实现方式中,当所述设备不是AM,且所述设备的MR发生过更新时,所述方法还包括:
当所述设备更新后的MR大于所述第二AMR时,所述设备将所述设备的角色转换为AM。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能或第十三种可能的实现方式,在第一方面的第十四种可能的实现方式中,所述设备将所述设备的角色转换为AM,包括:
所述设备将所述第二AMR的值更新为所述设备的MR的值;
所述设备将所述第二HC的值更新为0;
所述设备将所述第二AMBTT的值更新为所述第二TSF信息的预置字节的取值。
结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能或第十三种可能或第十四种可能的实现方式,在第一方面的第十五种可能的实现方式中,当所述设备为AM时,所述方法还包括:
当所述设备的MR发生过更新时,所述设备保持AM的角色,所述设备将记录的所述第二AMR更新为所述设备更新后的MR的值。
第二方面,本发明实施例提供一种用于锚主设备AM选择的设备,所述设备包括:
信标帧接收模块,用于接收邻居感知网络信标NAN Beacon帧,所述NAN Beacon帧携带有第一AM信息及第一时间同步功能TSF信息,所述第一AM信息包括:第一锚主设备意愿值AMR、第一跳数HC、第一锚主设备信标传输时间AMBTT;
角色转换模块,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的主设备意愿值MR大于所述第一AMR时,将所述设备的角色转换为AM,所述设备记录有第二AM信息,所述第二AM信息包括:第二AMR、第二HC、第二AMBTT;
信息更新模块,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于所述第二AMR,且所述设备的MR小于所述第一AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述角色转换模块,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,将所述设备的角色转换为AM;
或,
所述信息更新模块,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述设备,还包括:
触发执行模块,用于若所述第一HC小于或等于所述跳数门限,触发所述角色转换模块执行所述将所述设备的角色转换为AM的步骤,或触发所述信息更新模块执行所述根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新的步骤。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,当所述设备为AM时,所述设备,还包括:第一AM选择确定模块,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第一条件时,则确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第四种可能的实现方式中,当所述设备为AM时,所述设备,还包括:第二AM选择确定模块,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,当所述设备中的第二AMR发生过更新时,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NAN Beacon帧不用于AM选择;
若所述NAN Beacon帧不满足第二条件时,则确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第二AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第五种可能的实现方式中,当所述设备不是AM时,所述设备,还包括:第三AM选择确定模块,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第三条件时,则确定所述NAN Beacon帧用于AM选择,所述第三条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第六种可能的实现方式中,当所述设备不是AM时,所述设备,还包括:第四AM选择确定模块,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NANBeacon帧不用于AM选择;
若所述NAN Beacon帧不满足第四条件时,则确定所述NAN Beacon帧用于AM选择,所述第四条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述信息更新模块,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR大于所述第二AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述信息更新模块,包括:
第一AMR更新子模块,用于将所述第二AMR的值更新为所述第一AMR的值;
第一HC更新子模块,用于将所述第二HC的值更新为所述第一HC的值加1;
第一AMBTT更新子模块,用于若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT;
TSF更新子模块,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能的实现方式,在第二方面的第九种可能的实现方式中,所述信息更新模块,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR时,若所述第一AMBTT大于所述第二AMBTT,或,所述第一AMBTT等于所述第二AMBTT且所述第一HC小于所述第二HC减1时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信息以及所述第二TSF信息进行更新。
结合第二方面的第九种可能的实现方式,在第二方面的第十种可能的实现方式中,
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一AMBTT大于所述第二AMBTT时,所述信息更新模块,包括:
第一HC更新子模块,用于将所述第二HC的值更新为所述第一HC的值加1;
第一AMBTT更新子模块,用于若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT;
TSF更新子模块,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择,当所述第一AMR等于所述第二AMR时,则当所述第一AMBTT等于所述第二AMBTT,且所述第一HC小于所述第二HC减1时,所述信息更新模块,包括:
第一HC更新子模块,用于将所述第二HC的值更新为所述第一HC的值加1;
TSF更新子模块,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能的实现方式,在第二方面的第十一种可能的实现方式中,所述设备还包括以下模块中的至少一个:
信标帧忽略模块,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC大于或等于所述第二HC时,忽略所述NAN Beacon帧携带的第一AM信息;
第一更新模块,用于若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧不是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一AMBTT大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
第二更新模块,用于若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一TSF信息的预置字节的取值大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
第三更新模块,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC小于所述第二HC减1时,若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值,将所述第二HC的值更新为所述第一HC的值加1。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能的实现方式,在第二方面的第十二种可能的实现方式中,所述角色转换模块,还用于当所述第二TSF信息的取值减去所述第二AMBTT后的差值大于预置的传输时间阈值时,将所述设备的角色转换为AM。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能的实现方式,在第二方面的第十三种可能的实现方式中,当所述设备不是AM,且所述设备的MR发生过更新时,所述角色转换模块,还用于当所述设备更新后的MR大于所述第二AMR时,将所述设备的角色转换为AM。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能或第十三种可能的实现方式,在第二方面的第十四种可能的实现方式中,所述角色转换模块,包括:
第二AMR更新子模块,用于将所述第二AMR的值更新为所述设备的MR的值;
第二HC更新子模块,用于将所述第二HC的值更新为0;
第二AMBTT更新子模块,用于将所述第二AMBTT的值更新为所述第二TSF信息的预置字节的取值。
结合第二方面或第二方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能或第八种可能或第九种可能或第十种可能或第十一种可能或第十二种可能或第十三种可能或第十四种可能的实现方式,在第二方面的第十五种可能的实现方式中,当所述设备为AM时,所述设备,还包括:
角色保持模块,用于当所述设备的MR发生过更新时,保持AM的角色,将记录的所述第二AMR更新为所述设备更新后的MR的值。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,设备接收到的NAN Beacon帧之后,若NAN Beacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NAN Beacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明用于锚主设备选择的方法的一个实施例,可应用于NAN簇的设备中,请参阅图1所示,该方法可包括如下步骤:
101、设备接收邻居感知网络信标(Neighbor Awareness Networking Beacon,NANBeacon)帧。
其中,上述NAN Beacon帧携带有第一锚主设备(Anchor Master,AM)信息及第一时间同步功能(Time Synchronization Function,TSF)信息,第一AM信息包括:第一锚主设备意愿值(Anchor Master Rank,AMR)、第一跳数(Hop Count,HC)、第一锚主设备信标传输时间(Anchor Master Beacon Transmission Time,AMBTT)。
在本发明实施例中,同一个NAN簇内的设备具有相同的簇标识,每个设备具有自身的属性,包括:角色(Role)和状态(State):Role包括主设备(Master)和非主设备(non-Master)两类,State包括同步(sync)和非同步(non-sync)两种。Sync状态的设备负责维护簇同步,Master一定是sync状态,而non-Master可以是sync或non-sync状态。每个设备还包括主设备意愿值(Master Rank,MR),在本发明实施例中,MR表示设备担任Master的意愿大小,MR可以由三部分组成:
Master Rank=Master Preference*2^56+Random Factor*2^48+MAC[5]*2^40+…+MAC[0];
即每个设备的MR由8位的主设备优先值(Master Preference)、8位的随机数因子(Random Factor)及自身的48位媒体访问控制(Medium Access Control,MAC)地址构成。其中,Random Factor每120个发现窗口(Discovery Window,DW)随机变化一次,为了防止被追踪,NAN设备MAC地址使用局部(Local)地址,但每个局部MAC地址至少保持30分钟不变。根据现有设备角色和状态转换规则,MR较大的设备成为Master。其中,MR最大的Master称为AM,所有其它设备与AM在时间上保持同步,从而保证了整个NAN簇的同步。其中,NAN簇同步是指簇内所有设备的TSF保持相同,为了TSF同步,所有设备需按照同一参考源的时钟进行同步,即以选出的AM作为参考源,其它设备的时钟按照AM的时钟来保持同步。根据上述描述,由于NAN同步的基准为AM,即MR最大的Master,而MR是随时间随机变化的。当设备的MR发生变化时,簇中MR最大的Master也在发生变化。NAN簇是一个松散的分布式网络,因此,当设备的MR发生变化时,NAN簇能够及时选择出正确的AM对于维护NAN簇同步至关重要。
需要说明的是,NAN簇的同步是通过发送和接收NAN Beacon帧实现的。在本发明的一些实施例中,设备接收到的NAN Beacon帧具体可以指的是同步信标(Sync Beacon)帧,在另一些实施例中,设备接收到的NAN Beacon帧也可以指的是发现信标(Discovery Beacon)帧。Master和Sync non-Master在每个DW中发送一次Sync Beacon帧,而Master在DW之外每100时间单元(Time Unit,TU)中发送一次Discovery Beacon帧。后者使得其它尚未加入NAN簇的设备知道下一个DW何时开始,从而加入该簇。目前NAN簇中规定的DW起始位置是固定的,例如,当TSF为512TU的整数倍时DW开始。Sync Beacon帧和Discovery Beacon帧是帧结构类似的帧,只是因为发送位置不同而命名不同。除了用于同步外,设备还根据接收到的Sync Beacon帧进行角色和状态的转换。接下来以NAN Beacon帧具体为Sync Beacon帧为例进行说明。
在本发明实施例中,由于不同NAN设备内部的晶振在频率上存在差异,两个设备之间必须经常同步才能保证两者系统时钟不出现大的偏差。为了保持NAN簇的同步,每个Master和Sync non-Master在DW内发送Sync Beacon帧,其中包含AM信息及Time Stamp(8字节),Time Stamp即TSF,为了区别NAN Beacon帧中携带的AM信息和设备中记录的AM信息是两个不同的AM信息,以下实施例中将NAN Beacon帧中携带的AM信息(或简称之为帧携带的AM)称之为“第一AM信息”,将设备中记录的AM信息(或简称之为记录的AM)称之为“第二AM信息”,同理的,将第一AM信息包括的AMR、HC、AMBTT分别称之为“第一AMR”、“第一HC”、“第一AMBTT”,将第二AM信息包括的AMR、HC、AMBTT分别称之为“第二AMR”、“第二HC”、“第二AMBTT”,同理的,以下实施例中将NAN Beacon帧中携带的TSF信息称之为“第一TSF信息”,将设备中记录的TSF信息称之为“第二TSF信息”。
具体的,Sync Beacon帧携带的第一AM信息,可以包括如下内容:
第一AMR,即AM的MR取值;
第一HC,即当前NAN设备到AM的跳数,其中AM的HC=0,即可以根据Sync Beacon帧携带的HC是否为0来判断设备是否为AM,当发送Sync Beacon帧携带的HC为0时,该发送的设备就是AM,当发送Sync Beacon帧携带的HC大于0时,该发送的设备就不是AM;
第一AMBTT,即AM发送Sync Beacon帧时的TSF的预置字节值,若设备收到两个AMBTT不同的Sync Beacon帧,则其中AMBTT较大的一个Sync Beacon帧被视为最新的SyncBeacon帧。
在本发明实施例中,对于AMBTT进行了下述规定:AM的AMBTT为0,即可以根据SyncBeacon帧携带的AMBTT是否为0来判断设备是否为AM,当发送Sync Beacon帧携带的AMBTT为0时,该发送的设备就是AM,当发送Sync Beacon帧携带的AMBTT大于0时,该发送的设备就不是AM。因此,当设备收到一个来自AM的Sync Beacon帧(可通过AMBTT为0或HC为0判断),如需更新AMBTT,则将Sync Beacon帧的Time Stamp域(TSF)的值的后4个字节设置为设备自己记录的AMBTT;若设备收到一个来自non-AM的Sync Beacon,如需更新AMBTT,则直接将SyncBeacon帧中的AMBTT取值设置设备自己记录的AMBTT。
请参阅如图2所示,为本发明实施例提供的NAN Beacon帧的帧结构示意图,其中,各个域的说明如下:
FC:Frame Control,帧控制域,占用2个字节(octets);
Duration:持续时间域,占用2个字节;
A1~A3:Address1~3,地址1~3域,分别占用6个字节;
Sequence Control:序列控制域,占用2个字节;
Time Stamp:时戳域,占用8个字节;
Beacon Interval:信标间隔域,占用2个字节;
Capability:能力域,占用2个字节;
NAN IE:NAN Information Element,邻居感知网络信息元素,var为保留字,用于定义变量;
FCS:Frame Check Sequence,帧校验序列,占用4个字节。
其中,每个Master和Sync non-Master的NAN Beacon帧是广播消息,可以被其它设备侦听到,如本发明实施例中步骤101所描述,设备可以接收到NAN Beacon帧。
需要说明的是,在本发明实施例中,接收到NAN Beacon帧的簇中设备会将NANBeacon帧中携带的AM信息和自己记录的AM信息进行比较,以确定是否更新AM信息以及是否与该NAN Beacon帧中的Time Stamp进行同步。如前所述,时钟信息均来自AM,因此整个NAN簇以AM为基准进行同步。
需要说明的是,在本发明的实施例中,设备在接收到NAN Beacon帧之后,设备可以从NAN Beacon帧中获取到该帧携带的AM信息,并可以根据NAN Beacon帧携带的AM信息判断出NAN Beacon帧是否可以用于AM选择,对于NAN Beacon帧可以用于AM选择的情况下可以继续执行后续步骤,对于NAN Beacon帧不用于AM选择的情况,则可以对NAN Beacon帧携带的第一AM信息不做处理,例如忽视该NAN Beacon帧携带的第一AM信息。本发明实施例中设备可以对NAN Beacon帧是否用于AM选择进行判断,在NAN Beacon帧不可以用于AM选择的情况下,忽略NAN Beacon帧携带的第一AM信息,以使NAN Beacon帧携带的第一AM信息不发挥AM选择的作用,可以避免NAN簇中AM的MR取值变小时原AMR值始终存在于NAN簇中不能被消除掉的问题,NAN簇中会一直存在真正提供AMR值的AM,可以保证设备间的时间同步功能。
其中,设备对接收到的NAN Beacon帧进行是否用于AM选择的判断,从接收到的所有NAN Beacon帧中筛选出可以用于AM选择的帧,并且只对可以用于AM选择的NAN Beacon帧进行后续处理。
具体的,在本发明的一些实施例中,对于设备自身是否为AM的不同,设备对NANBeacon帧用于AM选择的确定可以采用不同的实现方式来处理,接下来分别进行说明。
当设备为AM时,NAN Beacon帧用于AM选择通过如下方式确定:
A11、若第一AMR小于第二AMR,则设备确定NAN Beacon帧不用于AM选择;
A12、若第一AMR大于或等于第二AMR,若在第二AMR发生更新开始后的预置时间段内第一AMR等于第三AMR,则设备确定NAN Beacon帧不用于AM选择,其中,第三AMR为设备中的第二AMR发生更新之前的AMR;
A13、若NAN Beacon帧不满足第一条件时,则设备确定NAN Beacon帧用于AM选择,其中,第一条件为:第一AMR小于第二AMR,或在预置时间段内第一AMR等于第三AMR。
另外,当设备为AM时,NAN Beacon帧用于AM选择也可以通过如下方式确定:
A21、若第一AMR小于第二AMR,则设备确定NAN Beacon帧不用于AM选择;
A22、若第一AMR大于或等于第二AMR,若在第二AMR发生更新开始后的预置时间段内第一AMBTT小于第二AMBTT,则设备确定NAN Beacon帧不用于AM选择;
A23、若NAN Beacon帧不满足第二条件时,则设备确定NAN Beacon帧用于AM选择,其中,第二条件为:第一AMR小于第二AMR,或在预置时间段内第一AMBTT小于第二AMBTT。
在本发明的一些实施例中,设备可以判断第一AMR和第二AMR之间的数值大小关系,即设备可以判断第一AMR是否小于第二AMR,其中,第一AMR是NAN Beacon帧携带的AMR,第二AMR是设备记录的AMR,当设备是AM时,步骤A11和A21中第一AMR小于第二AMR,即设备自身记录的AMR大于NAN Beacon帧携带的AMR,NAN Beacon帧中携带的第一AM信息会被忽略掉,此种情况下设备可以确定NAN Beacon帧不用于AM选择。
当设备是AM时,设备判断出第一AMR大于或等于第二AMR,当设备中记录的第二AMR发生过更新时,记设备中的第二AMR发生更新之前的AMR为第三AMR,若设备处于在第二AMR发生更新开始后的预置时间段内,则设备判断第一AMR是否等于第三AMR,若设备处于在预置时间段以外的其它时间,则设备不需要执行步骤A12,即设备处于在预置时间段以外的其它时间时,设备无需判断第一AMR是否等于第三AMR。步骤A12中只有同时满足:设备是AM、第一AMR大于或等于第二AMR、在第二AMR发生更新开始后的预置时间段内第一AMR等于第三AMR这三个条件时,则设备可以确定接收到的NAN Beacon帧不用于AM选择。另外,本发明实施例中,预置时间段需要根据具体的应用场景来决定其取值大小,例如预置时间段的取值可以是几个DW,也可以不用DW描述,比如将预置时间段取值为多少ms或者多少TU等。
其中,设备确定了在什么样的条件下接收到的NAN Beacon帧不用于AM选择以后,设备除了NAN Beacon帧不用于AM选择以外的所有情况下,设备都可以确定NAN Beacon帧用于AM选择。故步骤A13中在设备是AM的情况下定义了“第一条件”,在NAN Beacon帧不满足该第一条件时,设备可以确定接收到的NAN Beacon帧可以用于AM选择。具体的,第一条件为:a)、或b):
a)、第一AMR小于第二AMR;
b)、在设备记录的第二AMR发生更新后的预置时间段内第一AMR等于第三AMR。
其中,NAN Beacon帧不满足第一条件可以指的是NAN Beacon帧不满足a)同时NANBeacon帧不满足b),不满足a)即第一AMR大于或等于第二AMR,不满足b)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMR不等于第三AMR。不满足a)同时不满足b),认为设备不满足第一条件,故在设备为AM时且NAN Beacon帧不满足第一条件时,设备可以确定NAN Beacon帧不用于AM选择。
当设备是AM时,设备判断出第一AMR大于或等于第二AMR,当设备中记录的第二AMR发生过更新时,若设备处于在第二AMR发生更新开始后的预置时间段内,则设备判断第一AMBTT是否小于第二AMBTT,若设备处于在预置时间段以外的其它时间,则设备不需要执行步骤A22,即设备处于在预置时间段以外的其它时间时,设备无需判断第一AMBTT是否小于第二AMBTT。步骤A22中只有同时满足:设备是AM、第一AMR大于或等于第二AMR、在第二AMR发生更新开始后的预置时间段内第一AMBTT小于第二AMBTT这三个条件时,则设备可以确定接收到的NAN Beacon帧不用于AM选择。另外,本发明实施例中,预置时间段需要根据具体的应用场景来决定其取值大小,例如预置时间段的取值可以是几个DW,也可以不用DW描述,比如将预置时间段取值为多少ms或者多少TU等。
其中,设备确定了在什么样的条件下接收到的NAN Beacon帧不用于AM选择以后,设备除了NAN Beacon帧不用于AM选择以外的所有情况下,设备都可以确定NAN Beacon帧用于AM选择。故步骤A23中在设备是AM的情况下定义了“第二条件”,在NAN Beacon帧不满足该第二条件时,设备可以确定接收到的NAN Beacon帧可以用于AM选择。具体的,第二条件为:a)、或c):
a)、第一AMR小于第二AMR;
c)、在设备记录的第二AMR发生更新后的预置时间段内第一AMBTT小于第二AMBTT。
其中,NAN Beacon帧不满足第二条件可以指的是NAN Beacon帧不满足a)同时NANBeacon帧不满足c),不满足a)即第一AMR大于或等于第二AMR,不满足c)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMBTT大于或等于第二AMBTT。不满足a)同时不满足c),认为设备不满足第二条件,故在设备为AM时且NAN Beacon帧不满足第二条件时,设备可以确定NAN Beacon帧不用于AM选择。
例如,设备自身为AM,设备接收到的NAN Beacon帧携带的第一AMR取值为7,设备记录的第二AMR为10,设备记录的AMR更新为10之前为7,预置时间段的取值为5DW,则设备分别对第一条件中的条件进行判断,7<10,即命中了a),设备确定该NAN Beacon帧不用于AM选择;若当前设备处于3DW,则小于预置时间段的取值5DW,并且第一AMR等于第三AMR,命中了b),设备确定该NAN Beacon帧不用于AM选择。
当设备不是AM时,NAN Beacon帧用于AM选择通过如下方式确定:
B11、若在第二AMR发生更新开始后的预置时间段内第一AMR小于第二AMR,则设备确定NAN Beacon帧不用于AM选择;
B12、若在预置时间段内第一AMR等于第三AMR,则设备确定NAN Beacon帧不用于AM选择,第三AMR为设备中的第二AMR发生更新之前的AMR;
B13、若NAN Beacon帧不满足第三条件时,则设备确定NAN Beacon帧用于AM选择,其中,第三条件为:若在预置时间段内第一AMR小于第二AMR,或在预置时间段内第一AMR等于第三AMR。
另外,当设备不为AM时,NAN Beacon帧用于AM选择也可以通过如下方式确定:
B21、若在第二AMR发生更新开始后的预置时间段内第一AMR小于第二AMR,则设备确定NAN Beacon帧不用于AM选择;
B22、若在预置时间段内第一AMBTT小于第二AMBTT,则设备确定NAN Beacon帧不用于AM选择;
B23、若NAN Beacon帧不满足第四条件时,则设备确定NAN Beacon帧用于AM选择,其中,第四条件为:若在预置时间段内第一AMR小于第二AMR,或在预置时间段内第一AMBTT小于第二AMBTT。
在本发明的一些实施例中,在设备中的第二AMR发生过更新时,首先判断设备所处的时间是否在从第二AMR发生更新后的预置时间段内,若设备处于该预置时间段内,设备可以判断第一AMR和第二AMR之间的数值大小关系,即设备可以判断第一AMR是否小于第二AMR,其中,第一AMR是NAN Beacon帧携带的AMR,第二AMR是设备记录的AMR,当设备不是AM时,步骤B11和B21中第一AMR小于第二AMR,即设备自身记录的AMR大于NAN Beacon帧携带的AMR,NAN Beacon帧中携带的第一AM信息会被忽略掉,此种情况下设备可以确定NAN Beacon帧不用于AM选择。
当设备不是AM时,当设备中记录的第二AMR发生过更新时,记设备中的第二AMR发生更新之前的AMR为第三AMR,若设备处于在第二AMR发生更新开始后的预置时间段内,则设备判断第一AMR是否等于第三AMR,若设备处于在预置时间段以外的其它时间,则设备不需要执行步骤B12,即设备处于在预置时间段以外的其它时间时,设备无需判断第一AMR是否等于第三AMR。步骤B12中只有同时满足:设备不是AM、在第二AMR发生更新开始后的预置时间段内第一AMR等于第三AMR这两个条件时,则设备可以确定接收到的NAN Beacon帧不用于AM选择。另外,本发明实施例中,预置时间段需要根据具体的应用场景来决定其取值大小,例如预置时间段的取值可以是几个DW,也可以不用DW描述,比如将预置时间段取值为多少ms或者多少TU等。
其中,设备确定了在什么样的条件下接收到的NAN Beacon帧不用于AM选择以后,设备除了NAN Beacon帧不用于AM选择以外的所有情况下,设备都可以确定NAN Beacon帧用于AM选择。故步骤B13中在设备不是AM的情况下定义了“第三条件”,在NAN Beacon帧不满足该第三条件时,设备可以确定接收到的NAN Beacon帧可以用于AM选择。具体的,第三条件为:d)、或e):
d)、在预置时间段内第一AMR小于第二AMR;
e)、在预置时间段内第一AMR等于第三AMR。
其中,NAN Beacon帧不满足第三条件可以指的是NAN Beacon帧不满足d)同时NANBeacon帧不满足e),不满足d)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMR大于或等于第二AMR,不满足e)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMR不等于第三AMR,不满足d)同时不满足e),认为设备不满足第三条件,故在设备为AM时且NAN Beacon帧不满足第三条件时,设备可以确定NANBeacon帧不用于AM选择。
当设备不是AM时,当设备中记录的第二AMR发生过更新时,记设备中的第二AMR发生更新之前的AMR为第三AMR,若设备处于在第二AMR发生更新开始后的预置时间段内,则设备判断第一AMBTT是否小于第二AMBTT,若设备处于在预置时间段以外的其它时间,则设备不需要执行步骤B22,即设备处于在预置时间段以外的其它时间时,设备无需判断第一AMBTT是否小于第二AMBTT。步骤B22中只有同时满足:设备不是AM、在第二AMR发生更新开始后的预置时间段内第一AMBTT小于第二AMBTT这两个条件时,则设备可以确定接收到的NANBeacon帧不用于AM选择。另外,本发明实施例中,预置时间段需要根据具体的应用场景来决定其取值大小,例如预置时间段的取值可以是几个DW,也可以不用DW描述,比如将预置时间段取值为多少ms或者多少TU等。
其中,设备确定了在什么样的条件下接收到的NAN Beacon帧不用于AM选择以后,设备除了NAN Beacon帧不用于AM选择以外的所有情况下,设备都可以确定NAN Beacon帧用于AM选择。故步骤B23中在设备不是AM的情况下定义了“第四条件”,在NAN Beacon帧不满足该第四条件时,设备可以确定接收到的NAN Beacon帧可以用于AM选择。具体的,第四条件为:d)、或f):
d)、在预置时间段内第一AMR小于第二AMR;
f)、在预置时间段内第一AMBTT小于第二AMBTT。
其中,NAN Beacon帧不满足第四条件可以指的是NAN Beacon帧不满足d)同时NANBeacon帧不满足f),不满足d)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMR大于或等于第二AMR,不满足f)即包括两种情况:设备没有处于预置时间段内,设备在预置时间段内但是第一AMBTT大于或等于第二AMBTT,不满足d)同时不满足f),认为设备不满足第四条件,故在设备为AM时且NAN Beacon帧不满足第四条件时,设备可以确定NAN Beacon帧不用于AM选择。
例如,设备自身不是AM,设备接收到的NAN Beacon帧携带的第一AMR取值为7,设备记录的第二AMR为10,设备记录的AMR更新为10之前为7,预置时间段的取值为5DW,则设备分别对第二条件中的条件进行判断,若当前设备处于3DW,则设备仍处于预置时间段内,7<10,即命中了d),设备确定该NAN Beacon帧不用于AM选择,若当前设备处于3DW,则小于预置时间段的取值5DW,并且第一AMR等于第三AMR,命中了e),设备确定该NAN Beacon帧不用于AM选择。
需要说明的是,在本发明实施例中,若设备确定NAN Beacon帧不用于AM选择的情况下,设备可以忽略NAN Beacon帧携带的第一AM信息,若设备确定NAN Beacon帧用于AM选择的情况下,仍然需要判断第一AMR和第二AMR的数值大小关系,以及判断设备的MR和第一AMR的数值大小关系,其中,设备判断第一AMR和第二AMR的数值大小关系存在三种结果:1)、第一AMR大于第二AMR,2、第一AMR等于第二AMR,3)、第一AMR小于第二AMR。设备判断MR和第一AMR的数值大小关系存在两种结果:1)、MR大于第一AMR,2)、MR小于第一AMR,3)、MR等于第一AMR。只有NAN Beacon帧用于AM选择的情况下,根据判断结果,分别执行步骤102和步骤103。
102、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM。
其中,设备记录有第二AM信息,第二AM信息包括:第二AMR、第二HC、第二AMBTT。
在本发明实施例中,设备接收到NAN Beacon帧之后,在NAN Beacon帧用于AM选择的情况下,同时满足第一AMR小于第二AMR,且设备的MR大于第一AMR这两个条件时,设备将设备的角色转换为AM。
在本发明的一些实施例中,设备按照NAN簇中的角色转换的要求,在同时满足第一AMR小于第二AMR,且设备的MR大于第一AMR这两个条件时,设备对自身在NAN簇中的角色进行转换,转换为AM。
需要说明的是,在设备收到的NAN Beacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,MR为AMR值的设备会一直存在,故NAN簇中会一直存在AM,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
具体的,步骤102设备将设备的角色转换为AM,具体可以包括如下步骤:
C1、设备将第二AMR的值更新为设备的MR的值;
C2、设备将第二HC的值更新为0;
C3、设备将第二AMBTT的值更新为第二TSF信息的预置字节的取值。
其中,步骤C1、C2、C3所针对的是设备记录的第二AM信息所做的更新,分别对设备记录的第二AMR、第二HC、第二AMBTT进行更新,例如,当一个NAN设备变成AM时,它将如下设置自己记录的AM信息:将设备的第二AMR设置为自身的MR,将设备的第二HC设置为0,将设备的第二AMBTT设置为0x00000000。第二TSF信息的预置字节的取值可以是第二TSF信息的后四个字节的取值,或者后五个字节的取值,第二TSF信息的预置字节可以根据具体应用场景设定。
103、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
在本发明实施例中,设备接收到NAN Beacon帧之后,在NAN Beacon帧用于AM选择的情况下,同时满足第一AMR小于第二AMR,且设备的MR小于第一AMR这两个条件时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,设备按照NAN簇中AM信息和TSF信息更新的要求,在同时满足第一AMR小于第二AMR,且设备的MR小于第一AMR这两个条件时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
需要说明的是,在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,MR为AMR值的设备会一直存在,故NAN簇中会一直存在AM,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
具体的,步骤103设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,具体可以包括如下步骤:
D1、设备将第二AMR的值更新为第一AMR的值;
D2、设备将第二HC的值更新为第一HC的值加1;
D3、若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT;
D4、设备将第二TSF信息的取值更新为第一TSF信息的取值。
其中,步骤D1、D2、D3、D4所针对的是设备记录的第二AM信息和第二TSF信息所做的更新,分别对设备记录的第二AMR、第二HC、第二AMBTT、第二TSF进行更新。
需要说明的是,在本发明的另一些实施例中,用于锚主设备选择的方法还可以包括如下步骤:
E1、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR等于第一AMR时,设备将设备的角色转换为AM;
或,
E2、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR等于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
具体的,对于步骤E1中设备将设备的角色转换为AM,具体可以包括如下步骤:
设备将第二AMR的值更新为设备的MR的值;
设备将第二HC的值更新为0;
设备将第二AMBTT的值更新为第二TSF信息的预置字节的取值。
其中,上述描述的是针对设备记录的第二AM信息的全部信息所做的更新,分别对设备记录的第二AMR、第二HC、第二AMBTT进行更新,例如,当一个NAN设备变成AM时,它将如下设置自己记录的AM信息:将设备的第二AMR设置为自身的MR,将设备的第二HC设置为0,将设备的第二AMBTT设置为0x00000000。第二TSF信息的预置字节的取值可以是第二TSF信息的后四个字节的取值,或者后五个字节的取值,第二TSF信息的预置字节可以根据具体应用场景设定。设备进行角色转换的实现方式可参阅前述步骤102中的说明,此处不再赘述,步骤102和步骤E1的不同之处在于设备将自身的角色转换为AM的执行条件不同。
具体的,步骤E2设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,具体可以包括如下步骤:
设备将第二AMR的值更新为第一AMR的值;
设备将第二HC的值更新为第一HC的值加1;
若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT;
设备将第二TSF信息的取值更新为第一TSF信息的取值。
其中,上述步骤所针对的是设备记录的第二AM信息和第二TSF信息所做的更新,分别对设备记录的第二AMR、第二HC、第二AMBTT、第二TSF进行更新。设备对设备记录的第二AM信息和第二TSF信息进行更新参阅前述步骤103中的说明,此处不再赘述,步骤103和步骤E2的不同之处在于设备对设备记录的第二AM信息和第二TSF信息进行更新的执行条件不同。
通过以上对本发明实施例的描述可知,设备接收到的NAN Beacon帧之后,若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NANBeacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NANBeacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,MR为AMR值的设备会一直存在,故NAN簇中会一直存在AM,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,MR为AMR值的设备会一直存在,故NAN簇中会一直存在AM,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
请参阅图3所示,本发明另一个实施例提供的用于锚主设备选择的方法,具体可以包括如下步骤:
301、设备接收NAN Beacon帧。
其中,NAN Beacon帧携带有第一AM信息及第一TSF信息,第一AM信息包括:第一AMR、第一HC、第一AMBTT。
在本发明实施例中,设备接收到NAN Beacon帧之后,设备可以从NAN Beacon帧帧获取到NAN Beacon帧携带的第一HC,设备可以判断第一HC和预置的跳数门限之间的数值大小关系,当第一HC大于预置的跳数门限时,执行步骤302。当第一HC小于或等于预置的跳数门限时,设备可以根据NAN Beacon帧携带的AM信息判断出NAN Beacon帧是否可以用于AM选择,对于NAN Beacon帧可以用于AM选择的情况下可以继续执行后续步骤,例如分别触发执行步骤303和步骤304。
需要说明的是,在本发明的另一些实施例中,除了执行步骤303和步骤304之外,用于锚主设备选择的方法还可以包括如下步骤:
若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR等于第一AMR时,设备将设备的角色转换为AM;
或,
若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR等于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
其中,设备记录的第二AM信息的全部信息可以都做更新,分别对设备记录的第二AMR、第二HC、第二AMBTT进行更新,例如,当一个NAN设备变成AM时,它将如下设置自己记录的AM信息:将设备的第二AMR设置为自身的MR,将设备的第二HC设置为0,将设备的第二AMBTT设置为0x00000000。第二TSF信息的预置字节的取值可以是第二TSF信息的后四个字节的取值,或者后五个字节的取值,第二TSF信息的预置字节可以根据具体应用场景设定。设备记录的第二AM信息和第二TSF信息所做的更新,具体可以分别针对设备记录的第二AMR、第二HC、第二AMBTT、第二TSF进行更新。设备对设备记录的第二AM信息和第二TSF信息进行更新参阅前述步骤103中的说明,此处不再赘述。
需要说明的是,在本发明实施例中,若设备确定NAN Beacon帧不用于AM选择的情况下,设备可以忽略NAN Beacon帧携带的第一AM信息,若设备确定NAN Beacon帧用于AM选择的情况下,仍然需要判断第一AMBTT和第二AMBTT的数值大小关系,设备判断第一AMBTT和第二AMBTT的数值大小关系存在三种结果:1)、第一AMBTT大于第二AMBTT,2)、第一AMBTT等于第二AMBTT,3)、第一AMBTT小于第二AMBTT。设备还需要判断第一HC和第二HC之间的数值大小关系,设备判断第一HC是否小于第二HC减1存在两种结果:1)第一HC小于第二HC减1,2)、第一HC大于第二HC减1。根据各个判断结果的不同,分别继续执行步骤305、306、307。
302、若第一HC大于预置的跳数门限,设备丢弃NAN Beacon帧,若NAN Beacon帧被丢弃掉,则无需再执行后续描述的其它步骤。
其中,当第一HC大于预置的跳数门限时,设备接收到NAN Beacon帧是无效的帧,设备可以丢弃该NAN Beacon帧。
303、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM。
304、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
305、若NAN Beacon帧用于AM选择,则当第一AMR大于第二AMR时,设备根据NANBeacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
需要说明的是,步骤304和步骤305中设备执行的是相同的动作,即根据NANBeacon帧对设备记录的第二AM信息和第二TSF信息进行更新,但是步骤304和步骤305中设备执行动作的条件时不同的。
306、若NAN Beacon帧用于AM选择,则当第一AMR等于第二AMR,且第一AMBTT大于第二AMBTT时,设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新。
其中,设备根据NAN Beacon帧需要更新自身记录的信息有两种情况:第一种情况是更新第二AM信息的部分信息以及第二TSF信息,第二种情况是更新第二AM信息的全部信息以及第二TSF信息。
具体的,步骤306设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新,具体可以包括如下步骤:
设备将第二HC的值更新为第一HC的值加1;
若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT;
设备将第二TSF信息的取值更新为第一TSF信息的取值。
另外,在本发明的另一些实施例中,步骤306设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新,具体可以包括如下步骤:
设备将第二AMR的值更新为第一AMR的值;
设备将第二HC的值更新为第一HC的值加1;
若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT;
设备将第二TSF信息的取值更新为第一TSF信息的取值。
需要说明的是,这两种实现方式的区别点在于是否需要对设备记录的第二AMR的值进行更新,具体可以根据应用场景来选取其中一种实现方式即可。
307、若NAN Beacon帧用于AM选择,当第一AMR等于第二AMR时,则当第一AMBTT等于第二AMBTT,且第一HC小于第二HC减1时,设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新。
其中,设备根据NAN Beacon帧需要更新自身记录的信息有两种情况:第一种情况是更新第二AM信息的部分信息以及第二TSF信息,第二种情况是更新第二AM信息的全部信息以及第二TSF信息。
具体的,步骤307设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新,具体可以包括如下步骤:
设备将第二HC的值更新为第一HC的值加1;
设备将第二TSF信息的取值更新为第一TSF信息的取值。
另外,在本发明的另一些实施例中,步骤307设备根据NAN Beacon帧对设备记录的第二AM信息的部分信息或全部信息以及第二TSF信息进行更新,具体可以包括如下步骤:
设备将第二AMR的值更新为第一AMR的值;
设备将第二HC的值更新为第一HC的值加1;
若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT;
设备将第二TSF信息的取值更新为第一TSF信息的取值。
需要说明的是,这两种实现方式的区别点在于是否需要对设备记录的第二AMR的值和第二AMBTT的值进行更新,具体可以根据应用场景来选取其中一种实现方式即可。
需要说明的是,在本发明的一些实施例中,步骤302、步骤305至步骤307中具体可以执行其中的一个或多个步骤,具体执行情况需要参见各个步骤中所要求的条件是否已经具备,此处实施例中仅以示例的方式给出说明。
通过以上对本发明实施例的描述可知,设备接收到的NAN Beacon帧之后,若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NANBeacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于或等于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NANBeacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于或等于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
请参阅图4所示,本发明另一个实施例提供的用于锚主设备选择的方法,具体可以包括如下步骤:
401、设备接收NAN Beacon帧。
其中,NAN Beacon帧携带有第一AM信息及第一TSF信息,第一AM信息包括:第一AMR、第一HC、第一AMBTT。
在本发明实施例中,设备接收到NAN Beacon帧之后,设备可以根据NAN Beacon帧携带的AM信息判断出NAN Beacon帧是否可以用于AM选择,对于NAN Beacon帧可以用于AM选择的情况下可以继续执行后续步骤,例如分别触发执行步骤402和步骤403。
需要说明的是,在本发明实施例中,若设备确定NAN Beacon帧不用于AM选择的情况下,设备可以忽略NAN Beacon帧携带的第一AM信息,若设备确定NAN Beacon帧用于AM选择的情况下,设备还需要判断第一HC和第二HC之间的数值大小关系,设备判断第一HC是否小于第二HC存在三种结果:1)第一HC大于或等于第二HC,2)、第一HC等于第二HC减1,3)第一HC小于第二HC减1。设备仍然需要判断第一AMBTT和第二AMBTT的数值大小关系,设备判断第一AMBTT和第二AMBTT的数值大小关系存在三种结果:1)、第一AMBTT大于第二AMBTT,2)、第一AMBTT等于第二AMBTT,3)、第一AMBTT小于第二AMBTT,根据各个判断结果的不同,分别继续执行步骤404、405、406。
本发明的另一些实施例中,设备还可以判断第二TSF信息的取值减去设备记录的第二AMBTT后的差值是否大于预置的传输时间阈值,根据判断结果确定是否需要执行如下步骤:
当第二TSF信息的取值减去第二AMBTT后的差值大于预置的传输时间阈值时,设备将设备的角色转换为AM。
此处,设备将设备的角色转换为AM,具体可以包括如下步骤:
设备将第二AMR的值更新为设备的MR的值;
设备将第二HC的值更新为0;
设备将第二AMBTT的值更新为第二TSF信息的预置字节的取值。
当设备MR发生过更新时,根据设备自身是否是AM以及设备判断更新后的MR是否大于记录的第二AMR的不同,可以分别执行步骤407和步骤408。
402、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM。
403、若NAN Beacon帧用于AM选择,则当第一AMR小于第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。
404、若NAN Beacon帧用于AM选择,则当第一AMR等于第二AMR,且第一HC大于或等于第二HC时,设备忽略NAN Beacon帧携带的第一AM信息;
405、若NAN Beacon帧用于AM选择,且NAN Beacon帧不是由AM发送,则当第一AMR等于第二AMR,且第一HC等于第二HC减1,且第一AMBTT大于第二AMBTT时,设备将第二AMBTT的值更新为第一AMBTT,设备将第二TSF信息的取值更新为第一TSF信息的取值;
另外,在本发明的另一些实施例中,步骤405还可以替换为如下步骤:
若NAN Beacon帧用于AM选择,且NAN Beacon帧是由AM发送,则当第一AMR等于第二AMR,且第一HC等于第二HC减1,且第一TSF信息的预置字节的取值大于第二AMBTT时,设备将第二AMBTT的值更新为第一AMBTT,设备将第二TSF信息的取值更新为第一TSF信息的取值。
406、若NAN Beacon帧用于AM选择,则当第一AMR等于第二AMR,且第一HC小于第二HC减1时,若NAN Beacon帧由AM发送,设备将第二AMBTT的值更新为第一TSF信息的预置字节的取值,若NAN Beacon帧不是由AM发送,设备将第二AMBTT的值更新为第一AMBTT,设备将第二TSF信息的取值更新为第一TSF信息的取值,设备将第二HC的值更新为第一HC的值加1。
407、当设备不是AM,且设备的MR发生过更新时,则当设备更新后的MR大于第二AMR时,设备将设备的角色转换为AM。
408、当设备为AM时,当设备的MR发生过更新时,设备保持AM的角色,设备将记录的第二AMR更新为设备更新后的MR的值。
需要说明的是,在前述步骤402、407中,设备执行的是相同的动作,即设备将设备的角色转换为AM,但是步骤402、407中设备执行动作的条件时不同的,此时,设备将设备的角色转换为AM,具体可以包括如下步骤:
设备将第二AMR的值更新为设备的MR的值;
设备将第二HC的值更新为0;
设备将第二AMBTT的值更新为第二TSF信息的预置字节的取值。
需要说明的是,在本发明的一些实施例中,步骤404至步骤408中具体可以执行其中的一个或多个步骤,具体执行情况需要参见各个步骤中所要求的条件是否已经具备,此处实施例中仅以示例的方式给出说明。
通过以上对本发明实施例的描述可知,设备接收到的NAN Beacon帧之后,若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NANBeacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于或等于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NANBeacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于或等于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
接下来以实际应用场景对常用的AM选择的方法和本发明实施例提供的AM选择的方法进行说明,以证明本发明实施例提供的方法在避免整个NAN簇发生崩溃,且保证实现设备间的时间同步上的优越性。
需要说明的是,如下实施例中描述中,以Sync Beacon帧为例进行说明,用rx***表示设备接收到的Sync Beacon帧中所携带的值,用my***表示设备自身的或所记录的值。
当前的NAN规范草案中,通常对于每个NAN设备定义了进行AM选择的方法:
当设备接收到一个Sync Beacon帧,且其rxHC未超过预置的跳数门限时,设备将按照如下算法进行处理,若rxHC超过预置的跳数门限,则丢弃该Sync Beacon帧。其中,通常的算法描述如下:
若记录的AMR值高于Sync Beacon帧中携带的AMR值,则丢弃该Sync Beacon帧中携带的AM信息;
若记录的AMR值低于Sync Beacon帧中的AMR值,NAN设备将采用Sync Beacon帧中的AMR、HC加1以及AMBTT作为自己的AM信息记录中的记录值,即执行如下步骤:
Update myAMR:myAMR=rxAMR,设备用Sync Beacon帧中携带的AMR值取代自身记录的AMR值;
Update myHC:myHC=rxHC+1
Update myAMBTT:myAMBTT=rxAMBTT
Update myTSF:myTSF=rxTSF,即设备用Sync Beacon帧中携带的Time Stamp域的值取代自身记录的TSF值。
若记录的AMR值等于Sync Beacon帧中的AMR值,NAN设备将按照下述规则比较自己记录的HC和Sync Beacon帧中的HC:
若Sync Beacon帧中HC值高于或等于记录的HC,NAN设备将忽略Sync Beacon帧中的AM信息;
若Sync Beacon帧中HC值等于记录的HC减1,且Sync Beacon帧中的AMBTT值大于记录的AM信息中的AMBTT值,则NAN设备将采用Sync Beacon帧中的AMBTT值作为自己记录中的AMBTT值;
若Sync Beacon帧中HC值低于记录的HC减1,NAN设备将采用Sync Beacon帧中的HC加1作为自己记录的HC值,并且NAN设备的AM记录中的AMBTT按照下述规则更新:
若收到的Sync Beacon帧是由AM发送的,则记录的当前AM信息中的AMBTT设置为收到的Sync Beacon帧中Time Stamp域的低四个字节值;
若收到的Sync Beacon帧来自一个NAN Master或Non-Master Sync设备,则记录的当前AM信息中的AMBTT设置为收到的Sync Beacon帧中NAN Cluster Attribute中的相应值。
根据如上描述的通常实现手段,接下来对AM的MR值变小时出现的情况进行举例说明。
如图5-a所示,为本发明实施例提供的各个设备记录的AM信息的更新过程示意图,其中,
假设四个NAN设备A、B、C、D的初始MR分别10、6、3、8,故A为AM。两相邻节点间可相互侦听到发出的Sync Beacon帧,即A可以接收到B发出的Sync Beacon帧,B可以接收到A、C发出的Sync Beacon帧,C可以接收到B、D发出的Sync Beacon帧,D可以接收到C发出的SyncBeacon帧。
其中,NAN簇中的每个设备都维护一个变量AM_timer,表示当前AMBTT的有效期,每当更新一次AMBTT,则AM_timer的值重置为16,表示有效期为16个DW。设备所维护的AM_timer按照减法计数,当减为0时,设备自身将变成AM,假设MR更新及AM_timer减1均发生在DW开始时。
假设某时刻A的MR由10变为7,则此时NAN网络中真正的AM为设备D。此时,设备A仍将自身设为MR,且AMR变为7,然后发送Sync Beacon帧。B接收到此Sync Beacon帧后,由于其中的AMR为7,小于自身记录的10,故不更新AMR。然后,B发送Sync Beacon帧,A接收到后发现该Sync Beacon帧中的AMR为10,大于自身记录的7,故根据该Sync Beacon帧更新自身的状态,即A将自身记录的AMR设为10,HC设为2。此时,A、B保持的AMR都为10,A、B保持的HC分别为2、1;C、D保持不变。
经过15个DW之后,设备B、C、D均因AM_timer变为0而将自己变为AM(保持的AMR变为自己的MR,HC为0),随后发送Sync Beacon帧。A也发送Sync Beacon帧。根据接收到的SyncBeacon帧,每个设备根据前述的算法更新自身的状态。此时,A、B记录的AMR为10,HC分别为2、3;C、D保持的AMR为8。在随后的DW中,C收到来自B的Sync Beacon帧,由于B的AMR=10大于C的AMR=8,根据前述的算法C将根据该帧更新状态,记录的AMR变为10,HC变为4;再经过一个DW,D接收到来自C的Sync Beacon帧,同理D将根据该帧更新自身的状态,记录的AMR变为10,HC变为5。至此,四个设备保持的AMR均为10,而HC则分别为4、3、4、5。此后,重复前述过程。在此过程中,网络中多数设备记录的AMR均为10,但HC不断增大,直至某个设备的MR变为比10更大的值。例如,C的MR变为15,则经过几个DW之后网络中所有设备的AMR均变为15,HC也将以C为中心延展。在上述过程中,NAN网络中设备记录的AMR值只会变得更大,即使MR为该值的设备已经不存在了,老的AMR值也始终存在NAN网络中而不能被清除掉,而记录的HC值将越来越大。根据前述内容,当接收到的Sync Beacon帧中的HC超过阈值时,该SyncBeacon帧将被丢弃。这意味着,随着时间推移,HC越来越大,整个NAN簇中的设备将因HC超过阈值而会将接收到的Sync Beacon帧都丢弃掉,同时由于NAN簇中会失去AM,导致整个NAN簇发生崩溃,从而无法实现设备间的时间同步。
接下来对本发明实施例提供的用于锚主设备选择的方法进行举例说明。
需要说明的是,如下实施例中描述中,以Sync Beacon帧为例进行说明,用rx***表示设备接收到的Sync Beacon帧中所携带的值,用my***表示设备自身的或所记录的值。
本发明实施例中定义了如下进行AM选择的方法:
当non-AM的MR发生更新,且新的MR比自己所记录的AMR更大时,则自己将变成AM:myAMR=myMR,myHC=0,myAMBTT=0;当AM设备的MR发生变化时,仍将保持AM的身份,但将记录的AMR变为更新后的值;
当myAMBTT超过预置的传输时间阈值(目前规定16DW)未更新时,设备自己将变成AM:myAMR=myMR,myHC=0,myAMBTT=0;
若Sync Beacon帧中携带的跳数值rxHC超过预置的跳数门限,则丢弃该帧,对于接收到的Sync Beacon帧不用于AM选择,主要包括如下情况:
(1)、若设备自身为AM,且接收到的Sync Beacon帧满足rxAMR<myAMR,则该SyncBeacon帧不用于AM选择;
(2)、在设备记录的AMR发生改变(更新前的AMR记为OldAMR)之后的一段预置时间段中,若接收到的Sync Beacon帧中的rxAMR等于本设备的OldAMR,或者rxAMR<myAMR时,该Sync Beacon帧不用于AM选择;
不满足上述所有任一条件的Sync Beacon帧,可以用于AM选择。
在本发明实施例中接收到的Sync Beacon帧可以用于AM选择时,可以通过如下算法的描述实现对锚主设备的选择:
根据如上实施例描述的本发明提供的用于锚主设备选择的方法,接下来对AM的MR值变小时出现的情况进行举例说明。
如图5-b所示,为本发明实施例提供的各个设备记录的AM信息的更新过程示意图,假设四个NAN设备A、B、C、D的初始MR分别10、6、8、9,故A为AM。两相邻节点间可相互侦听到发出的Sync Beacon帧,即A可以接收到B发出的Sync Beacon帧,B可以接收到A、C发出的SyncBeacon帧,C可以接收到B、D发出的Sync Beacon帧,D可以接收到C发出的Sync Beacon帧。
图5-b中,A、B、C、D四个设备的初始条件与图5-a相类似,A为AM。假设某个时刻A的MR由10变为7,故其AMR也变为7。若A的Sync Beacon帧比B发出更早,则当该帧被B接收到时,按照本发明实施例提供的算法,B的MR=6小于A的rxAMR=7,故B按照A的状态进行更新,新的AMR为7,HC为1;倘若B的Sync Beacon帧比A更早发出,则当A收到该帧时,由于其中的rxAMR=10与A的OldAMR=10相同,故该帧不用于AM选择。这就避免了老的AMR冲掉新的AMR。
随后,B发出Sync Beacon帧被C收到,根据本发明实施例提供的算法,C将变为AM。C继续发送Sync Beacon帧被B和D收到,根据本发明实施例提供的算法,D将变成AM,而B根据C更新状态。之后,D发送Sync Beacon帧,由于其AMR最大(=9),故其状态将被C接收并在下个DW中的Sync Beacon帧中发送,直至整个NAN网络中的节点都完成更新。
在本发明实施例中,在设备记录的AMR发生改变(更新前的AMR记为OldAMR)之后的一段预置时间段中,若接收到的Sync Beacon帧中的rxAMR与本设备的OldAMR,或者rxAMR<myAMR时,该Sync Beacon帧不用于AM选择。因此,每个设备内部需要维护两个变量:OldAMR和OldAMR_timer。前者记录更新前AMR值,后者为计时器。每当设备记录的AMR发生变化时,该计时器重置为预定值(例如N个DW),随后减法计时,直至变为0。
AM选择的执行过程由于其选择结果携带在sync状态的NAN设备发送的SyncBeacon帧中,而原则上每个设备都有均等的机会进入sync状态,因此,可以通过创造相应条件并检测设备发送的Sync Beacon帧,来间接获知设备内部的AM选择的算法,故按照本发明实施例中描述的AM选择的算法是可检测的。
前述举例中分别对通常的AM选择算法(以下简称为原方案)和本发明实施例提供的AM选择算法(以下简称为新方案)进行了举例说明,接下来本节对原方案和新方案进行了仿真对比,以说明新方案的优势。
1、仿真假设
仿真区域为半径500m的圆形区域,253个NAN设备均匀分布在此区域中。设备的发发射功率为20dBm,信道衰减模型为(L表示路损)
假设通信带宽为20MHz,设备的接收灵敏度为-92dBm,噪声功率为-96dBm,接收门限为SINR>0dBm,根据上式可计算得设备的通信范围约为250m。
新方案仿真中,OldAMR_timer的重置值为5个DW。
仿真时间为1000个DW,时钟漂移为U(-25,25)ppm,U表示均匀分布。MR的更新及AM_timer的减计数均发生在DW开始时。所有仿真图示在DW之外观察所得。
2、性能比较
2.1设备所记录的AMR
随着设备MR发生变化,整个NAN簇中的最大MR也会发生变化,因此各个设备记录的AMR也应随之变化。请参阅如图6-a和图6-b所示,分别为通常的AM选择方法和本发明实施例提供的AM选择方法的AMR取值统计示意图,其中,在图6-a和图6-b中,横坐标为发现窗口序号(DW Index),纵坐标为NAN设备(device)中的锚主设备意愿值(Anchor Master Rank),原方案和新方案中各设备记录的AMR比较可知,显然,原方案导致NAN网络中设备记录的AMR各不相同,而新方案则比较“干净”,多数情况下各设备记录的AMR是同一个值,这可以保证实现设备间的时间同步。
进一步,对图6-a进行顶部放大,得到6-c,对图6-b进行顶部放大,得到6-d,在图6-c和图6-d中,横坐标为发现窗口序号(DW Index),纵坐标为NAN设备(device)中的锚主设备意愿值(Anchor Master Rank),比较图6-c和图6-d两个图可以发现,原方案中设备记录的AMR较长时间变化一次,而新方案则设备记录的AMR变化较为频繁。请参阅如图6-e所示,为通常的AM选择方法在NAN网络中最大的MR统计示意图,如图6-f所示,为本发明实施例的AM选择方法在NAN网络中最大的MR统计示意图,其中,在图6-e和图6-f中,横坐标为发现窗口序号(DW Index),纵坐标为NAN设备(device)中的最大主设备意愿值(Max Master Rank),结合图6-e和图6-f NAN网络中最大MR的变化情况可以发现,新方案中设备所记录的AMR基本上与NAN网络中最大MR的变化保持一致,而原方案中设备记录的AMR无法及时跟上NAN网络中最大MR的变化。
2.2、NAN网络中AM的个数
原方案和新方案导致网络中的AM个数不同,如图6-g所示,为通常的AM选择方法在NAN网络中AM的个数统计示意图,如图6-h所示,为本发明实施例的AM选择方法在NAN网络中AM的个数统计示意图,其中,在图6-g和图6-h中,横坐标为发现窗口序号(DW Index),纵坐标为锚主设备个数(the number of Anchor Master),原方案中,很多时间网络中没有AM,或者有两个AM;而新方案中,绝大多数情况下网络中保持一个AM。AM定义为MR最大的Master,是NAN网络同步的基准,一般只有一个。因此,新方案的结果更符合设计目标。
2.3、设备的HC
应用原方案和新方案时NAN网络中设备HC如图6-i和6-j所示,如图6-i所示,为通常的AM选择方法在NAN网络中HC的统计示意图,如图6-j所示,为本发明实施例的AM选择方法在NAN网络中HC的统计示意图,其中,在图6-i和图6-j中,横坐标为发现窗口序号(DWIndex),纵坐标为跳数(Hop Count),新方案中,网络中HC始终较小,最大不超过8;而原方案中,当没有更大的MR出现时,设备的HC不断增大,出现HC=23的情况。由于HC超过一定门限的Sync Beacon丢弃,因此,即使设计网络规模很小,过大的HC也将导致NAN网络崩溃。
需要说明的是,原方案中当HC增大到一定值后将突然减小,这种变化的出现并非由于NAN网络中出现了MR更大的设备。接下来,对HC不再继续变大进行分析,因为对于发送Sync Beacon帧时的退避值做了如下规定(单位:时隙)
即退避时间与HC相关。HC越大,退避值越大,Sync Beacon帧发送的越晚。由于其他设备还要发送服务发现帧从而占据一定时间,而DW只有16TU,故当HC大到一定程度时,backoffer_timer太大将导致Sync Beacon帧来不及在DW中发出。故等待16个DW值后,NAN设备纷纷将自己设为AM,HC将重归为0。实际上,这时候原网络崩溃,设备间将重新建立NANCluster。故图6-c的原方案中为何过一段较长时间后设备记录的AMR忽然会有一次跟上了最大MR的变化的原因。
2.4、TSF同步
如图6-k所示,为通常的AM选择方法在NAN网络中TSF的变化统计示意图,如图6-l所示,为本发明实施例的AM选择方法在NAN网络中TSF的变化统计示意图,其中,在图6-k和图6-l中,横坐标为时间t,以微秒(μs)为单位,纵坐标为时间同步功能漂移(TimeSynchronization Function Drift),以微秒(μs)为单位,原方案中,由于失去了真正的AM,各个设备各行其是,随着时间的推移,设备的TSF将出现明显差异;而新方案中,由于所有设备能够及时更行AM信息,时间上始终与AM保持同步,设备的TSF相互之间差异很小,可以完美地实现设备间的时间同步。显然,新方案的TSF同步能力远优于原方案。
通过以上对本发明实施例的描述可知,设备接收到的NAN Beacon帧之后,若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NANBeacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NANBeacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图7-a所示,本发明实施例提供的一种用于锚主设备选择的设备700,可以包括:信标帧接收模块701、角色转换模块702、信息更新模块703,其中,
信标帧接收模块701,用于接收邻居感知网络信标NAN Beacon帧,所述NAN Beacon帧携带有第一AM信息及第一时间同步功能TSF信息,所述第一AM信息包括:第一锚主设备意愿值AMR、第一跳数HC、第一锚主设备信标传输时间AMBTT;
角色转换模块702,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的主设备意愿值MR大于所述第一AMR时,将所述设备的角色转换为AM,所述设备记录有第二AM信息,所述第二AM信息包括:第二AMR、第二HC、第二AMBTT;
信息更新模块703,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于所述第二AMR,且所述设备的MR小于所述第一AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,所述角色转换模块702,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,将所述设备的角色转换为AM;
或,
所述信息更新模块703,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
请参阅如图7-b所示,在本发明的一些实施例中,用于锚主设备选择的设备700,还可以包括:
触发执行模块704,用于若所述第一HC小于或等于所述跳数门限,触发所述角色转换模块702执行所述将所述设备的角色转换为AM的步骤,或触发所述信息更新模块703执行所述根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新的步骤。
如图7-b所示,在本发明的另一些实施例中,用于锚主设备选择的设备700,还可以包括:
信标帧丢弃模块705,用于若所述第一HC大于预置的跳数门限,丢弃所述NANBeacon帧。
请参阅如图7-c所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,当设备700为AM时,用于锚主设备选择的设备700还可以包括:
第一AM选择确定模块706,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第一条件时,则确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
请参阅如图7-d所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,当设备700为AM时,用于锚主设备选择的设备700还可以包括:
第二AM选择确定模块707,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,当所述设备中的第二AMR发生过更新时,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NAN Beacon帧不用于AM选择;
若所述NAN Beacon帧不满足第二条件时,则确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第二AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
请参阅如图7-e所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,当设备700不是AM时,用于锚主设备选择的设备700还可以包括:
第三AM选择确定模块708,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
当所述设备中的第二AMR发生过更新时,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第三条件时,则确定所述NAN Beacon帧用于AM选择,所述第三条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
请参阅如图7-f所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,当设备700不是AM时,用于锚主设备选择的设备700还可以包括:
第四AM选择确定模块709,用于通过如下方式确定所述NAN Beacon帧用于AM选择:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NANBeacon帧不用于AM选择;
若所述NAN Beacon帧不满足第四条件时,则确定所述NAN Beacon帧用于AM选择,所述第四条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
在本发明的一些实施例中,所述信息更新模块703,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR大于所述第二AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
需要说明的是,请参阅如图7-g所示,在本发明的一些实施例中,所述信息更新模块703,包括:
第一AMR更新子模块7031,用于将所述第二AMR的值更新为所述第一AMR的值;
第一HC更新子模块7032,用于将所述第二HC的值更新为所述第一HC的值加1;
第一AMBTT更新子模块7033,用于若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT;
TSF更新子模块7034,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
在本发明的另一些实施例中,所述信息更新模块703,还用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一AMBTT大于所述第二AMBTT时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信息以及第二TSF信息进行更新。
具体的,所述信息更新模块703,可以包括:
第一HC更新子模块,用于将所述第二HC的值更新为所述第一HC的值加1;
第一AMBTT更新子模块,用于若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT;
TSF更新子模块,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
在本发明的另一些实施例中,所述信息更新模块703,还用于若所述NAN Beacon帧用于AM选择,当第一AMR等于第二AMR时,则当所述第一AMBTT等于所述第二AMBTT,且所述第一HC小于所述第二HC减1时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息的部分信息或全部信息以及第二TSF信息进行更新。
具体的,所述信息更新模块703,可以包括:
第一HC更新子模块,用于将所述第二HC的值更新为所述第一HC的值加1;
TSF更新子模块,用于将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
请参阅如图7-h所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,用于锚主设备选择的设备700还可以包括以下模块中的至少一个,其中图7-h中示出了用于锚主设备选择的设备700包括的信标帧忽略模块710、第一更新模块711、第三更新模块712:
信标帧忽略模块710,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC大于或等于所述第二HC时,忽略所述NAN Beacon帧携带的第一AM信息;
第一更新模块711,用于若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧不是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一AMBTT大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
第三更新模块712,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC小于所述第二HC减1时,若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值,将所述第二HC的值更新为所述第一HC的值加1。
请参阅如图7-i所示,在本发明的一些实施例中,相比于如图7-a所示的用于锚主设备选择的设备700,用于锚主设备选择的设备700还可以包括以下至少一个模块,其中图7-i中示出了用于锚主设备选择的设备700包括的信标帧忽略模块710、第二更新模块713、第三更新模块712:
信标帧忽略模块710,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC大于或等于所述第二HC时,忽略所述NAN Beacon帧携带的第一AM信息;
第三更新模块713,用于若所述NAN Beacon帧用于AM选择,且所述NAN Beacon帧是由AM发送,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一TSF信息的预置字节的取值大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
第二更新模块712,用于若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC小于所述第二HC减1时,若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值,将所述第二HC的值更新为所述第一HC的值加1。
在本发明的一些实施例中,所述角色转换模块702,还用于当所述第二TSF信息的取值减去所述第二AMBTT后的差值大于预置的传输时间阈值时,将所述设备的角色转换为AM。
在本发明的一些实施例中,当所述设备不是AM,且所述设备的MR发生过更新时,所述角色转换模块702,还用于当所述设备更新后的MR大于所述第二AMR时,将所述设备的角色转换为AM。
需要说明的是,请参阅如图7-j所示,在本发明的一些实施例中,角色转换模块702,包括:
第二AMR更新子模块7021,用于将所述第二AMR的值更新为所述设备的MR的值;
第二HC更新子模块7022,用于将所述第二HC的值更新为0;
第二AMBTT更新子模块7023,用于将所述第二AMBTT的值更新为所述第二TSF信息的预置字节的取值。
在本发明的一些实施例中,用于锚主设备选择的设备700还可以包括:角色保持模块,用于当所述设备的MR发生过更新时,保持AM的角色,将记录的所述第二AMR更新为所述设备更新后的MR的值。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
综上,通过以上对本发明实施例的描述可知,信标帧接收模块接收到的NANBeacon帧之后,若NAN Beacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,角色转换模块将设备的角色转换为AM;若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于第一AMR时,信息更新模块根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NAN Beacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NANBeacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种用于锚主设备选择的设备,请参阅图8所示,主设备选择的设备800包括:至少一个接收器801、至少一个处理器802、至少一个存储器803和至少一个通信总线804,所述至少一个通信总线804用于实现这些部件之间的连接和相互通信。(其中用于锚主设备选择的设备800中的处理器803的数量可以一个或多个,图8中以一个处理器为例)。在本发明的一些实施例中,至少一个接收器801、至少一个处理器802、存储器803可通过通信总线或其它方式连接,其中,图8中以通过通信总线连接为例。
通信总线804可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。该总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器802可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
处理器802用于执行存储器803中存储的可执行程序代码,例如计算机程序来运行与可执行代码对应的程序。
接收器801用于接收邻居感知网络信标NAN Beacon帧,所述NAN Beacon帧携带有第一AM信息及第一时间同步功能TSF信息,所述第一AM信息包括:第一锚主设备意愿值AMR、第一跳数HC、第一锚主设备信标传输时间AMBTT;
其中,处理器803,在执行存储器803中存储的可执行程序代码时,具体可执行如下步骤:
接收NAN Beacon帧之后,若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的主设备意愿值MR大于所述第一AMR时,将所述设备的角色转换为AM,记录有第二AM信息,所述第二AM信息包括:第二AMR、第二HC、第二AMBTT;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于所述第二AMR,且所述设备的MR小于所述第一AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,处理器803,还用于执行如下步骤:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR小于第二AMR,且所述设备的MR等于所述第一AMR时,将所述设备的角色转换为AM,或,所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,处理器803将所述设备的角色转换为AM,以及所述设备根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新之前,所述处理器803,还用于执行如下步骤:
若所述第一HC小于或等于所述跳数门限,触发执行将所述设备的角色转换为AM的步骤,或,触发执行根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新的步骤。
在本发明的一些实施例中,当所述设备为AM时,处理器803判定所述NAN Beacon帧用于AM选择通过如下方式确定:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第一条件时,则确定所述NAN Beacon帧用于AM选择,所述第一条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
当所述设备为AM时,在本发明的一些实施例中,处理器803判定所述NAN Beacon帧用于AM选择可通过如下方式确定:
若所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若所述第一AMR大于或等于所述第二AMR,若在所述第二AMR发生更新开始后的预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NAN Beacon帧不用于AM选择;
若所述NAN Beacon帧不满足第二条件时,则确定所述NAN Beacon帧用于AM选择,所述第二条件为:所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
当所述设备不是AM时,在本发明的一些实施例中,处理器803判定所述NAN Beacon帧用于AM选择可通过如下方式确定:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMR等于第三AMR,则确定所述NAN Beacon帧不用于AM选择,所述第三AMR为所述设备中的所述第二AMR发生更新之前的AMR;
若所述NAN Beacon帧不满足第三条件时,则确定所述NAN Beacon帧用于AM选择,所述第三条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMR等于所述第三AMR。
当所述设备不是AM时,在本发明的一些实施例中,处理器803判定所述NAN Beacon帧用于AM选择可通过如下方式确定:
若在所述第二AMR发生更新开始后的预置时间段内所述第一AMR小于所述第二AMR,则确定所述NAN Beacon帧不用于AM选择;
若在所述预置时间段内所述第一AMBTT小于所述第二AMBTT,则确定所述NANBeacon帧不用于AM选择;
若所述NAN Beacon帧不满足第四条件时,则确定所述NAN Beacon帧用于AM选择,所述第四条件为:若在所述预置时间段内所述第一AMR小于所述第二AMR,或在所述预置时间段内所述第一AMBTT小于所述第二AMBTT。
在本发明的一些实施例中,处理器803,还用于执行如下步骤:若所述NAN Beacon帧用于AM选择,则当所述第一AMR大于所述第二AMR时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,处理器803根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新,具体包括:
将所述第二AMR的值更新为所述第一AMR的值;
将所述第二HC的值更新为所述第一HC的值加1;
若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT;
将所述第二TSF信息的取值更新为所述第一TSF信息的取值。
在本发明的一些实施例中,处理器803,还用于执行如下步骤:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR时,若所述第一AMBTT大于所述第二AMBTT,或,所述第一AMBTT等于所述第二AMBTT且所述第一HC小于所述第二HC减1时,根据所述NAN Beacon帧对所述设备记录的所述第二AM信息和第二TSF信息进行更新。
在本发明的一些实施例中,处理器803,还用于执行以下步骤中的至少一个步骤:
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC大于或等于所述第二HC时,忽略所述NAN Beacon帧携带的第一AM信息;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR且所述第一AMBTT的取值不是0,且所述第一HC等于所述第二HC减1,且所述第一AMBTT大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择且所述第一AMBTT的取值为0,则当所述第一AMR等于所述第二AMR,且所述第一HC等于所述第二HC减1,且所述第一TSF信息的预置字节的取值大于所述第二AMBTT时,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值;
若所述NAN Beacon帧用于AM选择,则当所述第一AMR等于所述第二AMR,且所述第一HC小于所述第二HC减1时,若所述NAN Beacon帧由AM发送,将所述第二AMBTT的值更新为所述第一TSF信息的预置字节的取值,若所述NAN Beacon帧不是由AM发送,将所述第二AMBTT的值更新为所述第一AMBTT,将所述第二TSF信息的取值更新为所述第一TSF信息的取值,将所述第二HC的值更新为所述第一HC的值加1。
在本发明的一些实施例中,处理器803,还用于执行以下步骤中的至少一个步骤:
当所述第二TSF信息的取值减去所述第二AMBTT后的差值大于预置的传输时间阈值时,将所述设备的角色转换为AM。
在本发明的一些实施例中,当所述设备不是AM,且所述设备的MR发生过更新时,处理器803,还用于执行以下步骤:
当所述设备更新后的MR大于所述第二AMR时,将所述设备的角色转换为AM。
在本发明的一些实施例中,处理器803将所述设备的角色转换为AM,具体包括:
将所述第二AMR的值更新为所述设备的MR的值;
将所述第二HC的值更新为0;
将所述第二AMBTT的值更新为所述第二TSF信息的预置字节的取值。
在本发明的一些实施例中,当所述设备不AM时,处理器803,还用于执行以下步骤:
当所述设备的MR发生过更新时,保持AM的角色,将记录的所述第二AMR更新为所述设备更新后的MR的值。
通过以上对本发明实施例的描述可知,设备接收到的NAN Beacon帧之后,若NANBeacon帧用于AM选择,则当NAN Beacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR大于第一AMR时,设备将设备的角色转换为AM;若NAN Beacon帧用于AM选择,则当NANBeacon帧中包括的第一AMR小于设备记录的第二AMR,且设备的MR小于第一AMR时,设备根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新。在设备收到的NANBeacon帧可以用于AM选择的情况下,当第一AMR小于第二AMR、且设备的MR大于第一AMR时,设备自身的角色转换为AM,转换为AM后的设备可以将NAN簇中原有的AM冲刷掉,因此NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。在设备的MR取值不足以使设备成为AM时,即第一AMR小于设备记录的第二AMR、且设备的MR小于第一AMR时,设备可以根据NAN Beacon帧对设备记录的第二AM信息和第二TSF信息进行更新,故设备记录的第二AMR也会更新,NAN簇中原有的AMR也会被冲刷掉,即使AM自身的MR变小,也将会很快选择出新的AM,故NAN簇中会一直存在AM,并且各设备能够记录正确的AM信息,避免整个NAN簇发生崩溃,保证可以实现设备间的时间同步。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。