一种服务公告消息的传输方法及设备转让专利

申请号 : CN201310179966.1

文献号 : CN104159299A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜振国陈济

申请人 : 华为终端有限公司

摘要 :

本发明实施例公开了一种服务公告消息的传输方法及设备,用于在保证服务发现效率的同时提高媒体利用效率。本发明实施例方法包括:第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息;所述第二服务信息为从所述第一设备接收到的所述第二设备发送的消息获得的;所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的设备获知所述第二设备的服务信息;所述第一设备发送所述第一服务公告消息。

权利要求 :

1.一种服务公告消息的传输方法,其特征在于,包括:

第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和至少一个第二设备的第二服务信息;所述第二服务信息为所述第一设备从接收到的所述第二设备发送的消息中获得的;所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的设备获知所述第二设备的服务信息;

所述第一设备发送所述第一服务公告消息。

2.根据权利要求1所述的方法,其特征在于,所述生成第一服务公告消息之前,包括:接收所述至少一个第二设备发送的第二服务公告消息,所述第二服务公告消息包括所述第二服务信息;

将所述第二服务信息加入携带候选列表中,所述携带候选列表用于存储可携带在所述第一服务公告消息中发送的非本地的服务信息。

3.根据权利要求1或2所述的方法,其特征在于,

所述第一服务信息包括:所述第一设备的服务标识和运行规律信息;

所述第二服务信息包括:所述第二设备的服务标识和运行规律信息;

所述运行规律信息包括:时间信息和/或信道信息。

4.根据权利要求3所述的方法,其特征在于,

所述第一服务信息还包括:所述第一设备的服务信息有效期,和/或设备地址信息;

所述第二服务信息还包括:所述第二设备的服务信息有效期,和/或设备地址信息。

5.根据权利要求2所述的方法,其特征在于,若所述第二服务公告消息中包括有多个设备的服务信息,则所述生成第一服务公告消息,包括:在所述第二服务公告消息中仅提取所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;

在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量。

6.根据权利要求1至5任意一项所述的方法,其特征在于,所述生成第一服务公告消息之前,还包括:根据所述第一服务公告消息的收发状态判断所述第一设备是否处于密集环境;

若是,则触发所述生成第一服务公告消息的步骤;

若否,则发送没有携带所述第二服务信息的第一服务公告消息。

7.根据权利要求6所述的方法,其特征在于,所述根据服务公告消息的收发状态判断所述第一设备是否处于密集环境,包括:在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense,当α1Vsparse+α2Vdense>thr1时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1为第一密集环境阈值,或者,当(α1VsparseT1+α2VdenseT2)/T0>thr2时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值;

或者,统计发送所述第一服务公告消息的等待时间的平均值TA,若所述TA>thr3,则认为处于密集环境,所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。

8.根据权利要求2至7任意一项所述的方法,其特征在于,所述接收所述至少一个第二设备发送的第二服务公告消息之后,还包括:获取所述第二服务公告消息的接收信号强度指示RSSI;

所述将所述第二服务信息加入携带候选列表中具体为,若所述RSSI大于第一RSSI阈值,则将所述第二服务信息加入所述第一设备的携带候选列表中。

9.根据权利要求2至8任意一项所述的方法,其特征在于,若所述第二服务公告消息还携带有第三服务信息,则所述方法还包括:判断所述第三服务信息是否为所述第一设备所需要的服务,若是,则向生成所述第三服务信息的第三设备返回服务响应消息。

10.根据权利要求9所述的方法,其特征在于,所述向生成所述第三服务信息的第三设备返回服务响应消息之前,还包括:获取所述第二服务公告消息的RSSI;

若所述RSSI大于第二RSSI阈值,则触发所述向生成所述第三服务信息的第三设备返回服务响应消息的步骤。

11.根据权利要求9或10所述的方法,其特征在于,所述向生成所述第三服务信息的第三设备返回服务响应消息具体为:以第一功率向所述第三设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率。

12.一种服务公告消息的传输设备,所述设备为第一设备,其特征在于,包括:消息生成单元,用于生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和至少一个第二设备的第二服务信息;所述第二服务信息为所述第一设备从接收到的所述第二设备发送的消息中获得的;所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述所述第二设备通信范围内的设备获知所述第二设备的服务信息;

消息发送单元,用于发送所述第一服务公告消息。

13.根据权利要求12所述的设备,其特征在于,所述设备还包括:消息接收单元,用于在生成第一服务公告消息之前,接收所述至少一个第二设备发送的第二服务公告消息,所述第二服务公告消息包括所述第二服务信息;

存储单元,用于将所述第二服务信息加入携带候选列表中,所述携带候选列表中存储可携带在所述第一服务公告消息中发送的非本地的服务信息。

14.根据权利要求13所述的设备,其特征在于,所述消息发送单元包括:信息提取模块,用于在所述第二服务公告消息中仅提取所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;

信息选取模块,用于在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量。

15.根据权利要求12至14任一项所述的设备,其特征在于,所述设备还包括:

环境判定单元,用于根据所述第一服务公告消息的收发状态判断所述第一设备是否处于密集环境;若是,则触发所述消息生成单元生成所述第一服务公告消息;若否,则触发所述消息发送单元发送没有携带所述第二服务信息的第一服务公告消息。

16.根据权利要求15所述的设备,其特征在于,所述环境判定单元包括:第一判断模块,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当α1Vsparse+α2Vdense>thr1时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1为第一密集环境阈值;

或,

第二判断模块,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当(α1VsparseT1+α2VdenseT2)/T0>thr2时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值;

或,

第三判断模块,用于在预定义时间内计算发送所述第一服务公告消息的等待时间的平均值TA,或计算若干次发送所述第一服务公告消息的等待时间的平均值TA;若所述TA>thr3,则认为处于密集环境,所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。

17.根据权利要求13至16任一项所述的设备,其特征在于,所述设备还包括:

信号获取单元,用于获取所述第二服务公告消息的RSSI;

所述存储单元具体用于,若所述RSSI大于第一RSSI阈值,则将所述第二服务信息加入所述第一设备的携带候选列表中。

18.根据权利要求13至17任一所述的设备,其特征在于,所述设备还包括:

服务判定单元,用于若所述第二服务公告消息还携带有第三服务信息,则判断所述第三服务信息是否为所述第一设备所需要的服务;

所述消息发送单元还用于当所述服务判定单元判断结果为是时,向生成所述第三服务信息的设备返回服务响应消息。

19.根据权利要求18所述的设备,其特征在于,所述设备还包括:信号获取单元,用于获取所述第二服务公告消息的RSSI;

响应判定单元,用于若所述RSSI大于第二RSSI阈值,则触发所述消息发送单元向生成所述第三服务信息的设备返回服务响应消息。

20.根据权利要求18或19所述的设备,其特征在于,所述消息发送单元具体以第一功率向所述第三服务信息对应的设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率。

说明书 :

一种服务公告消息的传输方法及设备

技术领域

[0001] 本发明涉及无线通信领域,尤其涉及一种服务公告消息的传输方法及设备。 背景技术
[0002] 伴随着移动互联网时代的来临,社交、本地化、移动成为互联网行业的主流模式。特别是随着配备无线保真(Wi-Fi,wireless fidelity)接口的移动终端设备的普及,基于Wi-Fi的社交应用正在成为业界的热点。为此,Wi-Fi联盟(WFA,Wi-Fi Alliance)成立了邻居感知网络(NAN,Neighbor Awareness Networking)等针对social(社交)应用的任务组,研究基于Wi-Fi的social应用对于Wi-Fi本身的影响,并制定相关标准。
[0003] NAN任务组研究的典型场景是对等移动设备之间在关联之前,相互发现设备及其所能提供的服务。例如,社交游戏应用中,两台移动设备通过Wi-Fi发现彼此,并在关联前确认对方是否与自己具有相同的游戏爱好,以避免关联后却发现双方兴趣不同所导致的信令开销的浪费;再比如,在好友发现应用中,两个同时启用了好友发现应用的设备在彼此靠近时,设备将提醒主人对方的出现。上述发现过程的关键是设备发现和服务发现,两者可同时完成。前者相对简单,而后者则由于服务的多样性而相对复杂,因此是目前的主要研究热点,也是本发明的主要着眼点。
[0004] 从技术上来看,服务发现过程主要通过下述方法完成:探测设备在social信道上(通常是2.4GHz频带的1/6/11信道)发射服务公告消息,然后监听服务响应消息;对等设备侦听到服务公告消息后,若其携带的服务信息表明其符合自己的要求,则发送服务发现响应消息。按照NAN服务发现的要求,即使一个服务发现的任务已经完成,但服务发现机制却仍需在后台持续运行(因为服务发现的目标往往不止一个)。在Wi-Fi设备密集的情况下,由于现有技术的方案要求每个探测设备频繁地发送服务公告消息以保证较高的发现效 率,使得social信道被这种服务公告消息的小数据包充斥,造成“小包风暴”,导致服务发现效率和媒体利用率低下,并极大地影响其他Wi-Fi网络的正常工作。

发明内容

[0005] 本发明实施例提供了一种服务公告消息的传输方法及设备,用于在保证服务发现效率的同时提高媒体利用效率。
[0006] 本发明实施例第一方面提供的服务公告消息的传输方法,包括:
[0007] 第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和至少一个第二设备的第二服务信息;所述第二服务信息为所述第一设备从接收到的所述第二设备发送的消息中获得的;所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的设备获知所述第二设备的服务信息;
[0008] 所述第一设备发送所述第一服务公告消息。
[0009] 在第一方面的第一种可能实现的方法中,所述生成第一服务公告消息之前,包括:
[0010] 接收所述至少一个第二设备发送的第二服务公告消息,所述第二服务公告消息包括:所述第二服务信息;
[0011] 将所述第二服务信息加入携带候选列表中,所述携带候选列表用于存储可携带在所述第一服务公告消息中发送的非本地的服务信息。
[0012] 结合第一方面或第一方面的第一种实现方法,在第一方面的第二种可能实现的方法中,
[0013] 所述第一服务信息包括:所述第一设备的服务标识和运行规律信息; [0014] 所述第二服务信息包括:所述第二设备的服务标识和运行规律信息; [0015] 所述运行规律信息包括:时间信息和/或信道信息。
[0016] 结合第一方面的第二种实现方法,在第一方面的第三种可能实现的方法中, [0017] 所述第一服务信息包括:所述第一设备的服务信息有效期,和/或设备地址信息; [0018] 所述第二服务信息包括:所述第二设备的服务信息有效期,和/或设备地址信息。 [0019] 结合第一方面的第一种可能实现的方法,在第四种可能实现的方法中,若所述第二服务公告消息中包括有多个设备的服务信息,则所述生成第一服务公告消息,包括: [0020] 在所述第二服务公告消息中仅提取所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;
[0021] 随机在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量。 [0022] 结合第一方面,以及第一方面的第一至第四任意一种可能实现的方法,在第五种可能实现的方法中,所述生成第一服务公告消息之前,还包括:
[0023] 根据所述第一服务公告消息的收发状态判断所述第一设备是否处于密集环境; [0024] 若是,则触发所述生成第一服务公告消息的步骤;
[0025] 若否,则发送没有携带所述第二服务信息的第一服务公告消息。
[0026] 结合第一方面的第五种可能实现的方法,在第六种可能实现的方法中,所述根据服务公告消息的收发状态判断所述第一设备是否处于密集环境,包括:
[0027] 在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense,当α1Vsparse+α2Vdense>thr1时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1为第一密集环境阈值,或者,当(α1VsparseT1+α2VdenseT2)/T0>thr2时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值;
[0028] 或者,统计发送所述第一服务公告消息的等待时间的平均值TA,若所述TA>thr3,则认为处于密集环境,所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。
[0029] 结合第一方面的第一至第六任意一种可能实现的方法,在第七种可能实现的方法中,所述接收第二设备发送的第二服务公告消息之后,包括:
[0030] 获取所述第二服务公告消息的接收信号强度指示RSSI;
[0031] 若所述RSSI大于第一RSSI阈值,则将所述第二服务信息加入所述第一设备的携带候选列表中。
[0032] 结合第一方面的第一至第七任意一种可能实现的方法,在第八种可能实现的方法中,若所述第二服务公告消息还携带有第三服务信息,则所述方法还包括:
[0033] 判断所述第三服务信息是否为所述第一设备所需要的服务,若是,则向生成所述第三服务信息的第三设备返回服务响应消息。
[0034] 结合第一方面的第八种可能实现的方法,在第九种可能实现的方法中,所述向生成所述第三服务信息的第三设备返回服务响应消息之前,包括:
[0035] 获取所述第二服务公告消息的RSSI;
[0036] 若所述RSSI大于第二RSSI阈值,则触发所述向生成所述第三服务信息的第三设备返回服务响应消息的步骤。
[0037] 结合第一方面的第八或第九种可能实现的方法,在第十种可能实现的方法中,所述接收第二设备发送的第二服务公告消息之后,所述向生成所述第三服务信息的第三设备返回服务响应消息具体为:
[0038] 以第一功率向所述第三设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率。
[0039] 本发明实施例第二方面提供的服务公告消息的传输设备,包括:
[0040] 消息生成单元,用于生成第一服务公告消息,所述第一服务公告消息包括:第一设备的第一服务信息和至少一个第二设备的第二服务信息;所述第二服务信息为第一设备从接收到的所述第二设备发送的消息中获得的;所述第一服务信息用于使得在第一设备通信范围内的设备获知第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的设备获知所述第二设备的服务信息;
[0041] 消息发送单元,用于发送所述第一服务公告消息。
[0042] 在第二方面的第一种可能实现的方法中,所述设备还包括:
[0043] 消息接收单元,用于在生成第一服务公告消息之前,接收所述至少一个第二设备发送的第二服务公告消息,所述第二服务公告消息包括所述第二服务信息;
[0044] 存储单元,用于所述第二服务信息将所述第二服务信息加入携带候选列表中,所述携带候选列表中存储可携带在所述第一服务公告消息中发送的非本地的服务信息。 [0045] 结合第二方面的第一种可能实现的方法,在第二种可能实现的方法中, [0046] 所述消息发送单元包括:
[0047] 信息提取模块,用于在所述第二服务公告消息中仅提取所述第二设备的第二服务信息,并将所述第二服务信息存入第一设备的携带候选列表中;
[0048] 信息选取模块,用于随机在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量。
[0049] 结合第二方面,或第二方面的第一至二任意一种实现方法,在第二方面的第三种可能实现的方法中,所述设备还包括:
[0050] 环境判定单元,用于根据所述服务公告消息的收发状态判断第一设备是否处于密集环境;若是,则触发所述消息生成单元生成所述第一服务公告消息;若否,则直接触发所述消息发送单元发送没有携带所述第二服务信息的第一服务公告消息。
[0051] 结合第二方面的第三种可能实现的方法,在第四种可能实现的方法中, [0052] 所述环境判定单元包括:
[0053] 第一判断模块,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当α1Vsparse+α2Vdense>thr1时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1为第一密集环境阈值; [0054] 或,
[0055] 第二判断模块,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当(α1VsparseT1+α2Vdense T2)/T0>thr2时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值;
[0056] 或,
[0057] 第三判断模块,用于在预定义时间内计算发送所述第一服务公告消息的等待时间的平均值TA,或计算若干次发送所述第一服务公告消息的等待时间的平均值TA;若所述TA>thr3,则认为处于密集环境,所述等待时间为第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。
[0058] 结合第二方面的第一至四任意一种可能实现的方法,在第五种可能实现的方法中,所述设备还包括:
[0059] 信号获取单元,用于获取所述第二服务公告消息的RSSI;
[0060] 所述存储单元具体用于,若所述RSSI大于第一RSSI阈值,则将所述第二服务信息加入第一设备的携带候选列表中。
[0061] 结合第二方面的第一至五任意一种可能实现的方法,在第六种可能实现的方法中,所述设备还包括:
[0062] 服务判定单元,用于若所述第二服务公告消息还携带有第三服务信息,则判断所述第三服务信息是否为第一设备所需要的服务,所述消息发送单元还用于当所述服务判定单元判断结果为是时,向生成所述第三服务信息的设备返回服务响应消息。
[0063] 结合第二方面的第六种可能实现的方法,在第七种可能实现的方法中, [0064] 所述设备还包括:
[0065] 信号获取单元,用于获取所述第二服务公告消息的RSSI;
[0066] 响应判定单元,用于若所述RSSI大于第二RSSI阈值,则触发所述消息发送单元向生成所述第三服务信息的设备返回服务响应消息。
[0067] 结合第二方面的第六或第七种可能实现的方法,在第八种可能实现的方法中,所述消息发送单元具体用于:以第一功率向所述第三服务信息对应的设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率。 [0068] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0069] 在本发明实施例中,第一设备接收到第二设备发送的第二服务信息之后,第一设备在第一服务公告消息中携带该第二服务信息,使得在一个服务公告消息中携带至少两个设备的服务信息,提高了服务公告消息的利用效率,从而使得在同等服务发现效果的情况下,可以降低对等设备间相互发送服务公告消息的频率,进而降低了发生“小包风暴”的可能性。

附图说明

[0070] 图1是本发明实施例服务公告消息的传输方法的一个流程示意图;
[0071] 图2是本发明实施例服务公告消息的传输方法的另一个流程示意图;
[0072] 图3是本发明实施例服务公告消息的传输方法的另一个流程示意图;
[0073] 图4是本发明实施例服务公告消息的传输方法的另一个流程示意图;
[0074] 图5是本发明实施例中服务公告消息的传输设备的一个结构示意图;
[0075] 图6是本发明实施例设备的一个结构示意图。

具体实施方式

[0076] 本发明实施例提供了一种服务公告消息的传输方法及设备,用于在保证服务发现效率的同时提高媒体利用效率。
[0077] 请参阅图1,本发明实施例中服务公告消息的传输方法的一个实施例包括: [0078] 101、第一设备生成第一服务公告消息;
[0079] 在第一设备接收到第二设备发送的第二服务信息之后,第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息;所述第二服务信息为所述第一设备从接收到的所述第二设备发送的消息获得的,所述第二设备为所述第一设备的对等设备;所述第一服务信息用于使得在所述第一设备通信范围内的对等设备获知所述第一设备的通信信息,所述第二服务信息用于使得在所述第二设备通信范围内的对等设备获知所述第二设备的通信信息。
[0080] 可选的,所述服务公告消息具体可以为探测请求消息。
[0081] 所述对等设备为两个具有相同特定功能的设备;可选的,在本发明实施例中,所述第一设备及其对等设备可以为具有NAN功能的设备。
[0082] 在本发明实施例中,服务公告消息用于传播服务信息,实现对等设备间 的相互发现;服务公告消息中携带的服务信息包括发送方的服务信息(如,本发明实施例中的第一服务信息),也可以包括第三方(即除发送方和接收方的对等设备,如本发明实施例中的第二设备)的服务信息。
[0083] 102、第一设备发送所述第一服务公告消息;
[0084] 在实际应用中,第一设备可以使用广播的方式向四周发送该第一服务公告消息,使得尽量多的对等设备可以发现该第一设备的服务。
[0085] 在本发明实施例中,可以理解的是,所述第二设备是相对于第一设备而言的,即本地设备若接收到另一对等设备发送的服务公告消息,则作为接收方的所述本地设备为第一设备,作为发送方的所述另一对等设备相对于所述第一设备而言,称为第二设备;进一步的,若第二设备发送的服务公告消息中包含有第三服务信息(非第二设备生成的第二服务信息),则称生成所述第三服务信息的对等设备为第三设备。
[0086] 可以理解的是,所述第一设备可以接收多个所述第二设备发送的服务公告消息,因此第一设备中可以存储有多个所述第二服务信息。
[0087] 在本发明实施例中,第一设备接收到第二设备发送的第二服务信息之后,第一设备在第一服务公告消息中携带该第二服务信息,使得在一个服务公告消息中携带至少两个设备的服务信息,提高了服务公告消息的利用效率,从而使得在同等服务发现效果的情况下,可以降低对等设备间相互发送服务公告消息的频率,进而降低了发生“小包风暴”的可能性。
[0088] 下面对本发明服务公告消息的传输方法进行具体描述,请参阅图2,本发明实施例中服务公告消息的传输方法的另一个实施例包括:
[0089] 201、第一设备接收所述第二设备发送的第二服务公告消息;
[0090] 第一设备接收所述第二设备发送的第二服务公告消息,所述第二服务公告消息中携带有第二服务信息,所述第二设备为所述第一设备的对等设备。
[0091] 具体的,所述第二服务信息包括:第二设备的服务标识和运行规律信息;所述服务标识用于表示第二设备所要提供的服务,和/或第二设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息;时间信息如:唤醒时间(用于指示对等设备处于激活状态的时间);信道信息如:operating class和channel number(表示对等设备在监听状态时将位于哪个工作信道)。 可以理解的是,在实际应用中,运行规律信息还可以包括有其它内容,此处具体不作限定。
[0092] 进一步的,所述还可以第二服务信息包括:所述第二设备的服务信息有效期,和/或设备地址信息。
[0093] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m(即其它对等设备只允许在m个服务发现请求消息中携带该服务信息)。
[0094] 202、第一设备选择服务信息;
[0095] 在第一设备接收到第二设备发送的第二服务公告消息之后,若第二服务公告消息中包括有多个设备的服务信息,则可以仅提取在所述第二服务公告消息中所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;所述携带候选列表用于存储可携带在所述第一服务公告消息中发送的非本地的服务信息。 [0096] 第一设备根据所述第一服务公告消息的消息包容量,在所述第一设备的携带候选列表中选择N个服务信息作为第一服务公告消息所需要携带的信息,所述N为大于零的整数。
[0097] 在本发明实施例中,为了避免一个对等设备的服务信息被连续地转发,导致服务信息被转发至原发送该服务信息的设备的通信范围之外,本发明实施例限定了只转发发送方对应的服务信息。可选的,根据实际情况,第一设备还可以在第二服务公告消息中选择除第二服务信息以外的一个或两个服务信息进行转发。
[0098] 203、第一设备生成第一服务公告消息;
[0099] 在确定了需要携带的服务信息之后,第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息。 [0100] 所述第一服务信息用于使得在所述第一设备通信范围内的对等设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信 范围内的对等设备获知所述第二设备的服务信息。
[0101] 具体的,所述第一服务信息包括:第一设备的服务标识和运行规律信息;所述服务标识用于表示第一设备所要提供的服务,和/或第一设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息。
[0102] 进一步的,所述第一服务信息还可以包括:所述第一设备的服务信息有效期,和/或设备地址信息。
[0103] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m。
[0104] 在上述所描述的服务信息中,服务信息有效期只在源服务信息(即发送方自身的服务信息)中携带,转发的服务信息则可以无需携带。对等设备地址信息则只在转发服务消息中携带,源服务消息则无需额外携带(因为已包含在帧头地址域中)。
[0105] 在本发明实施例中,服务公告消息用于传播服务信息,实现对等设备间的相互发现;服务公告消息中携带的服务信息包括发送方的服务信息(如,本发明实施例中的第一服务信息)。
[0106] 204、第一设备发送所述第一服务公告消息;
[0107] 在实际应用中,第一设备可以使用广播的方式向四周发送该第一服务公告消息,使得尽量多的对等设备可以发现该第一设备的服务。
[0108] 可选的,第一设备可以在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,所述第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述NP为大于零的整数。
[0109] 本发明实施例的服务公告消息的传输方法在密集环境中应用的效率更高,因此,NAN设备可以选择在密集环境中才使用该方法,具体请参阅图3,本发明实施例中服务公告消息的传输方法的另一个实施例包括:
[0110] 301、第一设备接收所述第二设备发送的第二服务公告消息;
[0111] 第一设备接收所述第二设备发送的第二服务公告消息,所述第二服务公告消息中携带有第二服务信息,所述第二设备为所述第一设备的对等设备。
[0112] 第一设备将所述第二服务信息加入携带候选列表中,所述携带候选列表中存储可携带在所述第一服务公告消息中发送的非本地的服务信息。
[0113] 在本发明实施例中,所述第二服务公告消息可以只携带有第二设备对应的第二服务信息(即,该第二服务公告消息为在稀疏环境下发送的服务公告消息),所述第二服务公告消息还可以携带有除该第二服务信息以外的服务信息(即,该第二服务公告消息为在密集环境下发送的服务公告消息)。
[0114] 本发明实施例中的稀疏环境和密集环境可以自由定义,如设定一个设备数量阈值,若当前网络下设备的数量小于该设备数量阈值,则当前环境为稀疏环境,若当前网络下设备的数量大于或等于该设备数量阈值,则当前环境为密集环境;可以理解的是,稀疏环境和密集环境还有其它定义方法,本发明实施例具体不做限定。
[0115] 具体的,所述第二服务信息包括:第二设备的服务标识和运行规律信息;所述服务标识用于表示第二设备所要提供的服务,和/或第二设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息;时间信息如:唤醒时间(用于指示对等设备处于激活状态的时间);信道信息如:operating class和channel number(表示对等设备在监听状态时将位于哪个工作信道)。可以理解的是,在实际应用中,运行规律信息还可以包括有其它内容,此处具体不作限定。
[0116] 进一步的,所述第二服务信息还可以包括:所述第二设备的服务信息有效期,和/或设备地址信息。
[0117] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数N(即其它对等设备只允许在N个服务发现请求消息中携带该服务信息)。
[0118] 302、根据所述服务公告消息的收发状态判断所述第一设备是否处于密集环境; [0119] 第一设备根据所述服务公告消息的收发状态判断所述第一设备是否处于密集环境,若是,则触发步骤303,采用密集模式发送第一服务公告消息;若 否,则触发步骤305,采用稀疏模式发送第一服务公告消息;具体的,所述收发状态可以包括:在预定义时间内收到第二服务公告消息的数量,或发送所述第一服务公告消息的平均等待时间。 [0120] 所述根据预定义时间内收到的服务公告消息的数量判断所述第一设备是否处于密集环境具体可以为:
[0121] 在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;
[0122] 当α1Vsparse+α2Vdense>thr1时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1第一密集环境阈值。
[0123] 否则,认为所述第一设备处于稀疏环境。
[0124] 可选的,所述根据预定义时间内收到的服务公告消息的数量判断所述第一设备是否处于密集环境具体还可以为:
[0125] 在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;
[0126] 当(α1VsparseT1+α2VdenseT2)/T0>thr2时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值。
[0127] 否则,设备认为处于稀疏环境。
[0128] 可选的,所述根据预定义时间内收到的服务公告消息的数量判断所述第一设备是否处于密集环境具体还可以为:
[0129] 统计发送所述第一服务公告消息的等待时间的平均值TA;如,可以记录W次发送第一探测请求消息的等待时间,W次等待时间之和除以W,即得发送第一探测请求消息的等待时间的平均值TA;
[0130] 若所述TA>thr3,则认为处于密集环境;否则,设备认为处于稀疏环境。所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。
[0131] 可以理解的是,是否处于密集环境还有其它判断方法,本发明实施例具体不做限定。
[0132] 303、第一设备生成第一服务公告消息;
[0133] 在第一设备接收到第二设备发送的第二服务公告消息之后,若第二服务公告消息中包括有多个设备的服务信息,则仅提取在所述第二服务公告消息中所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;第一设备可以在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量,进一步可选的,所述N个第二服务信息的总数据量可以最接近所述消息包容量。
[0134] 在确定了需要携带的服务信息之后,第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和N个第二设备的第二服务信息。 [0135] 所述第一服务信息用于使得在所述第一设备通信范围内的对等设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的对等设备获知所述第二设备的服务信息。
[0136] 具体的,所述第一服务信息包括:第一设备的服务标识和运行规律信息;所述服务标识用于表示第一设备所要提供的服务,和/或第一设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息。
[0137] 进一步的,所述第一服务信息还可以包括:所述第一设备的服务信息有效期,和/或设备地址信息。
[0138] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m。
[0139] 在上述所描述的服务信息中,服务信息有效期只在源服务信息(即发送方自身的服务信息)中携带,转发的服务信息则无需携带。设备地址信息则只在转发服务消息中携带,源服务消息则无需额外携带(因为已包含在帧头地址域中)。
[0140] 304、第一设备发送携带所述第二服务信息的第一服务公告消息;
[0141] 在实际应用中,第一设备可以使用广播的方式向四周发送该第一服务公 告消息,使得尽量多的对等设备可以发现该第一设备的服务。
[0142] 可选的,第一设备可以在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,所述第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述NP为大于零的整数。
[0143] 305、第一设备发送没有携带所述第二服务信息的第一服务公告消息。 [0144] 在本发明实施例中,增加了密集环境的判定规则,使得第一设备在发送第一服务公告消息时,可以根据判定结果选择是否携带第二设备的服务信息,实现了资源的优化配置。
[0145] 由于本发明实施例中的设备会对非本地的服务信息进行转发的操作,因此,本地的服务信息可能会被转发到非可达节点(即该服务信息对应的设备的通信范围之外的节点),为了避免这种情况,本发明人实施例提供了相应的解决方案,请参阅图4,本发明实施例中服务公告消息的传输方法的另一个实施例包括:
[0146] 401、第一设备接收所述第二设备发送的第二服务公告消息;
[0147] 第一设备接收所述第二设备发送的第二服务公告消息,所述第二服务公告消息中携带有第二服务信息,所述第二设备为所述第一设备的对等设备。
[0148] 具体的,所述第二服务信息包括:第二设备的服务标识和运行规律信息;所述服务标识用于表示第二设备所要提供的服务,和/或第二设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息;时间信息如:唤醒时间(用于指示对等设备处于激活状态的时间);信道信息如:operating class和channel number(表示对等设备在监听状态时将位于哪个工作信道)。可以理解的是,在实际应用中,运行规律信息还可以包括有其它内容,此处具体不作限定。
[0149] 进一步的,所述还可以第二服务信息包括:所述第二设备的服务信息有效期,和/或设备地址信息。
[0150] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m(即其它对等 设备只允许在m个服务发现请求消息中携带该服务信息)。
[0151] 可选的,若所述第二服务公告消息携带有第三服务信息,则除了执行步骤402,还需要执行步骤408。具体的,当第三服务信息中包含有第三设备的设备地址信息时,第一设备则可通过单播形式向第三设备发送服务响应消息;否则,第一设备以广播形式发送服务响应消息。
[0152] 402、第一设备获取所述第二服务公告消息的信号强度指示;
[0153] 第一设备获取所述第二服务公告消息的接收信号强度指示(RSSI,Received Signal Strength Indication)。所述RSSI可以由第一设备通过检测接收信号获得。 [0154] 403、判断所述RSSI是否大于第一RSSI阈值;
[0155] 若所述RSSI大于第一RSSI阈值,则确定所述第二设备处于所述第一设备的转发半径范围内,并执行步骤404;所述转发半径为转发所述第二服务信息的有效半径,即若所述第二设备处于所述第一设备的转发半径范围内,则接收到经所述第一设备转发出去的第二服务信息的对等设备,可以与该第二设备进行有效的通信范围。
[0156] 若所述RSSI不大于第一RSSI阈值,则忽略所述第二服务公告消息中携带的第二服务信息,结束流程。
[0157] 在本发明实施例中,所述第一RSSI阈值为判断是否转发第二服务信息的阈值,当通过接收第二服务公告消息获得的RSSI大于该第一RSSI阈值时,则可以认为本地设备在该第二设备的转发半径内(即接收到经本地设备转发的第二服务信息的对等设备,在该第二设备的通信范围内),因此,可以将将所述第二服务信息存入所述第一设备的携带候选列表中。
[0158] 404、第一设备提取所述第二设备的第二服务信息;
[0159] 在第一设备接收到第二设备发送的第二服务公告消息之后,若第二服务公告消息中包括有多个设备的服务信息,则仅提取在所述第二服务公告消息中提取所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中。 [0160] 405、第一设备选择服务信息;
[0161] 第一设备可以在所述第一设备的携带候选列表中,选取N个第二服务信 息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量,进一步可选的,所述N个第二服务信息的总数据量可以最接近所述消息包容量。 [0162] 在本发明实施例中,为了避免一个对等设备的服务信息被连续地转发,导致服务信息被转发至原发送该服务信息的设备的通信范围之外,本发明实施例限定了只转发发送方对应的服务信息。可选的,根据实际情况,第一设备还可以在第二服务公告消息中选择除第二服务信息以外的一个或两个服务信息进行转发。
[0163] 406、第一设备生成第一服务公告消息;
[0164] 在确定了需要携带的服务信息之后,第一设备生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息。 [0165] 所述第一服务信息用于使得在所述第一设备通信范围内的对等设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的对等设备获知所述第二设备的服务信息。
[0166] 具体的,所述第一服务信息包括:第一设备的服务标识和运行规律信息;所述服务标识用于表示第一设备所要提供的服务,和/或第一设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息。
[0167] 进一步的,所述还可以第一服务信息包括:所述第一设备的服务信息有效期,和/或设备地址信息。
[0168] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m。
[0169] 具体的,当服务信息中包含有设备地址信息时,其它对等设备则可通过单播形式发送服务公告消息或服务响应消息;否则,其它对等设备以广播形式发送服务公告消息或服务响应消息。
[0170] 在上述所描述的服务信息中,服务信息有效期只在源服务信息(即发送 方自身的服务信息)中携带,转发的服务信息则无需携带。设备地址信息则只在转发服务消息中携带,源服务消息则无需额外携带(因为已包含在帧头地址域中)。
[0171] 在本发明实施例中,服务公告消息用于传播服务信息,实现对等设备间的相互发现;服务公告消息中携带的服务信息包括发送方的服务信息(如,本发明实施例中的第一服务信息),也可以包括第三方(即除发送方和接收方的对等设备,如本发明实施例中的第二设备)的服务信息。
[0172] 407、第一设备发送所述第一服务公告消息。
[0173] 在实际应用中,第一设备可以使用广播的方式向四周发送该第一服务公告消息,使得尽量多的对等设备可以发现该第一设备的服务。
[0174] 可选的,第一设备可以在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,所述第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述为NP大于零的整数。
[0175] 408、第一设备判断所述第三服务信息是否为所述第一设备所需要的服务; [0176] 若所述第三服务信息为所述第一设备所需要的服务,则执行步骤409; [0177] 若所述第三服务信息不是所述第一设备所需要的服务,则忽略所述第三服务信息。
[0178] 409、第一设备向生成所述第三服务信息的第三设备返回服务响应消息。 [0179] 第一设备向生成所述第三服务信息的第三设备返回服务响应消息;可选的,为了避免非可达节点,在发送服务响应消息之前,第一设备可以获取所述第二服务公告消息的接收信号RSSI,若所述RSSI大于第二RSSI阈值,则确定所述第三设备处于所述第一设备的可信半径范围内(即第三设备在第一设备的通信范围内),并触发所述向发送所述第三服务信息的第三设备返回服务响应消息的步骤。
[0180] 可选的,为了避免非可达节点,还可以采用较低的功率发送服务公告消息,以较高的功率发送服务响应消息,具体的:当设备采用密集模式时,使用较低功率进行发射,故传输范围比稀疏模式减小。稀疏模式发射功率称为高功率,密集模式下发射功率称为低功率。因此,此方案的关键在于,密集 模式下的服务公告消息以低功率发射,但响应采用高功率。
通过合适的参数设置(低功率、允许转发的跳数等),上述方法可避免不可达节点的响应。
显然,对于仅允许一跳转发而言,最优的的参数设置应满足2×低功率传输半径=高功率传输半径。
[0181] 在本发明实施例中,假定对等设备间在密集模式下发送服务公告消息的功率都相等,第一设备可以以第一功率向所述第三设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率,即第一设备以较高的功率向所述第三设备发送服务响应消息。具体的,所述第一功率所形成的传输半径为所述第二功率形成的传输半径的M倍,所述M为大于一的整数。
[0182] 下面对用于执行上述服务公告消息的传输方法的本发明服务公告消息的传输设备的实施例进行说明,其逻辑结构请参考图5,本发明实施例中服务公告消息的传输设备的一个实施例包括:
[0183] 消息生成单元501,用于生成第一服务公告消息,所述第一服务公告消息包括:第一设备的第一服务信息和至少一个第二设备的第二服务信息;所述第二服务信息所述第一设备接收所述第二设备发送的消息获得的,所述第二设备为第一设备的对等设备;所述第一服务信息用于使得在第一设备通信范围内的对等设备获知第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的对等设备获知所述第二设备的服务信息;
[0184] 消息发送单元502,用于发送所述第一服务公告消息。
[0185] 可选的,本发明实施例中的设备还包括:
[0186] 消息接收单元503,用于在生成第一服务公告消息之前,接收所述至少一个第二设备发送的第二服务公告消息,所述第二服务公告消息包括:所述第二服务信息; [0187] 存储单元506,用于将所述第二服务信息加入携带候选列表中,所述携带候选列表中存储可携带在所述第一服务公告消息中发送的非本地的服务信息。
[0188] 进一步的,所述消息生成单元501包括:
[0189] 信息提取模块5011,用于在所述第二服务公告消息中仅提取所述第二设 备的第二服务信息,并将所述第二服务信息存入第一设备的携带候选列表中;
[0190] 信息选取模块5012,用于在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量。
[0191] 所述消息发送单元502具体用于:在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述为NP大于零的整数。
[0192] 可选的,本发明实施例中的服务公告消息的传输设备还包括:
[0193] 环境判定单元504,用于根据所述第一服务公告消息的收发状态判断所述第一设备是否处于密集环境;若是,则触发所述消息生成单元生成所述第一服务公告消息;若否,则直接触发所述消息发送单元发送没有携带所述第二服务信息的第一服务公告消息。 [0194] 进一步的,所述环境判定单元504包括:
[0195] 第一判断模块5041,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当α1Vsparse+α2Vdense>thr1时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1为第一密集环境阈值; [0196] 或,
[0197] 第二判断模块5042,用于在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当(α1VsparseT1+α2VdenseT2)/T0>thr2时,则认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值;
[0198] 或,
[0199] 第三判断模块5043,用于统计发送所述第一服务公告消息的等待时间的平均值TA;若所述TA>thr3,则认为处于密集环境,所述等待时间为第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间,所述thr3为第三密集环境阈值。 [0200] 可选的,本发明实施例中的服务公告消息的传输设备还包括:
[0201] 信号获取单元505,用于获取所述第二服务公告消息的RSSI;
[0202] 所述存储单元506具体用于,若所述RSSI大于第一RSSI阈值,则将所述第二服务信息加入所述第一设备的携带候选列表中。
[0203] 可选的,本发明实施例中的设备还包括:
[0204] 服务判定单元507,用于若所述第二服务公告消息携带有第三服务信息,则判断所述第三服务信息是否为所述第一设备所需要的服务,所述消息发送单元还用于当所述服务判定单元判断结果为是时,向生成所述第三服务信息的设备返回服务响应消息。 [0205] 进一步的,所述设备还包括:
[0206] 响应判定单元508,用于若所述RSSI大于第二RSSI阈值,则触发所述消息发送单元向生成所述第三服务信息的设备返回服务响应消息。
[0207] 所述消息发送单元具体以第一功率向所述第三服务信息对应的设备发送服务响应消息,所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功率。 [0208] 本发明实施例的服务公告消息的传输设备中各个单元具体的交互过程如下: [0209] 消息接收单元503接收所述第二设备发送的第二服务公告消息,所述第二服务公告消息中携带有第二服务信息,所述第二设备为所述第一设备的对等设备。
[0210] 具体的,所述第二服务信息包括:第二设备的服务标识和运行规律信息;所述服务标识用于表示第二设备所要提供的服务,和/或第二设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息;时间信息如:唤醒时间(用于指示对等设备处于激活状态的时间);信道信息如:operating class和channel number(表示对等设备在监听状态时将位于哪个工作信道)。可以理解的是,在实际应用中,运行规律信息还可以包括有其它内容,此处具体不作限定。
[0211] 进一步的,所述还可以第二服务信息包括:所述第二设备的服务信息有效期,和/或设备地址信息。
[0212] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m(即其它对等设备只允许在m个服务发现请求消息中携带该服务信息)。
[0213] 具体的,当服务信息中包含有对等设备地址信息时,其它对等设备则可通过单播形式发送服务公告消息或服务响应消息;否则,其它对等设备以广播形式发送服务公告消息或服务响应消息。
[0214] 在第一设备接收到第二设备发送的第二服务公告消息之后,若第二服务公告消息中包括有多个设备的服务信息,则仅提取在所述第二服务公告消息中所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;所述携带候选列表用于存储可携带在所述第一服务公告消息中发送的非本地的服务信息。第一设备可以在所述第一设备的携带候选列表中,选取N个第二服务信息生成第一服务公告消息,所述N为大于零的整数,且所述N小于或等于所述携带候选列表中第二服务信息存储的个数,所述N个第二服务信息的总数据量小于所述第一服务公告消息的消息包容量,进一步可选的,所述N个第二服务信息的总数据量可以最接近所述消息包容量。
[0215] 可选的,若所述第二服务公告消息携带有第三服务信息,服务判定单元507判断所述第三服务信息是否为所述第一设备所需要的服务,若所述第三服务信息为所述第一设备所需要的服务,则触发消息发送单元向生成所述第三服务信息的设备返回服务响应消息。
[0216] 可选的,为了避免非可达节点,在发送服务响应消息之前,信号获取单元505可以获取所述第二服务公告消息的接收信号RSSI,若所述RSSI大于第二RSSI阈值,响应判定单元508则确定所述第三设备处于所述第一设备的可信半径范围内(即第三设备在第一设备的通信范围内),并触发所述向发送所述第三服务信息的第三设备返回服务响应消息的步骤。
[0217] 可选的,为了避免非可达节点,还可以采用较低的功率发送服务公告消息,以较高的功率发送服务响应消息,具体的:当设备采用密集模式时,使 用较低功率进行发射,故传输范围比稀疏模式减小。稀疏模式发射功率称为高功率,密集模式下发射功率称为低功率。因此,此方案的关键在于,密集模式下的服务公告消息以低功率发射,但响应采用高功率。
通过合适的参数设置(低功率、允许转发的跳数等),上述方法可避免不可达节点的响应。
显然,对于仅允许一跳转发而言,最优的的参数设置应满足2×低功率传输半径=高功率传输半径。
[0218] 可选的,在获取了第二服务公告消息之后,可以由信号获取单元505获取所述第二服务公告消息的RSSI;若所述RSSI大于第一RSSI阈值,则再由存储单元506确定所述第二设备处于所述第一设备的转发半径范围内,则提取所述第二设备的第二服务信息。 [0219] 在获取了第二服务公告消息之后,还可以由环境判定单元504根据预定义时间内收到的服务公告消息的数量判断所述第一设备是否处于密集环境;若是,则触发所述消息生成单元;若否,则直接触发所述消息发送单元发送没有携带所述第二服务信息的第一服务公告消息。
[0220] 具体的,密集环境的判定可以由第一判断模块5041在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当α1Vsparse+α2Vdense>thr1时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1第一密集环境阈值。否则,设备认为处于稀疏环境。
[0221] 密集环境的判定也可以由第二判断模块5042在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当(α1VsparseT1+α2VdenseT2)/T0>thr2时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值。否则,设备认为处于稀疏环境。 [0222] 密集环境的判定还可以由第三判断模块5043统计发送所述第一服务公告消息的等待时间的平均值TA;若所述TA>thr3,则认为处于密集环境;否则,设备认为处于稀疏环境。所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间。
[0223] 在确定了需要携带的服务信息之后,消息生成单元501生成第一服务公 告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和N个第二设备的第二服务信息。
[0224] 所述第一服务信息用于使得在所述第一设备通信范围内的对等设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的对等设备获知所述第二设备的服务信息。
[0225] 具体的,所述第一服务信息包括:第一设备的服务标识和运行规律信息;所述服务标识用于表示第一设备所要提供的服务,和/或第一设备所需要的服务;所述运行规律信息具体可以包括时间信息和/或信道信息。
[0226] 进一步的,所述第一服务信息还可以包括:所述第一设备的服务信息有效期,和/或设备地址信息。
[0227] 具体的,服务信息有效期可以表示其它对等设备在此有效期内可携带该服务信息,超过此有效期则服务信息失效,其它对等设备不再携带。某些情况下,该服务信息有效期可用运行规律中的时间信息表示,即两者用同一值表示。有效期既可以是时间值,也可以是其它值,例如次数m。
[0228] 具体的,当服务信息中包含有对等设备地址信息时,其它对等设备则可通过单播形式发送服务公告消息或服务响应消息;否则,其它对等设备以广播形式发送服务公告消息或服务响应消息。
[0229] 在上述所描述的服务信息中,服务信息有效期只在源服务信息(即发送方自身的服务信息)中携带,转发的服务信息则无需携带。对等设备地址信息则只在转发服务消息中携带,源服务消息则无需额外携带(因为已包含在帧头地址域中)。
[0230] 在生成了所述第一服务公告消息之后,消息发送单元502第一设备可以使用广播的方式向四周发送该第一服务公告消息,使得尽量多的对等设备可以发现该第一设备。 [0231] 可选的,消息发送单元502可以在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,所述第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述NP为大于零的整数。
[0232] 本发明实施例还提供了一种计算机存储介质,其中,该计算机存储介质 可存储有程序,该程序执行时包括上述方法实施例中记载的服务公告消息的传输方法的部分或全部步骤。
[0233] 请参见图6,本发明实施例还提供了一种服务公告消息的传输设备,所述设备为第一设备,具体可包括:
[0234] 接收器601,发送器602,存储器603和处理器604(设备中的处理器的数量可以为一个或多个,图6中以一个处理器为例)在本发明的一些实施例中,接收器601,发送器602,存储器603和处理器604可通过总线或其它方式连接,其中,图6中以通过总线连接为例。
[0235] 其中,所述存储器603可以用于存储如下内容:
[0236] 所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息;所述第二服务信息为所述第一设备接收所述第二设备发送的消息获得的;所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第一设备的服务信息,所述第二服务信息用于使得在所述第二设备通信范围内的设备获知所述第二设备的服务信息。
[0237] 所述第二服务公告消息包括:所述第二服务信息;所述携带候选列表用于存储可携带在所述第一服务公告消息中发送的非本地的服务信息。
[0238] 所述第一服务信息包括:所述第一设备的服务标识和运行规律信息; [0239] 所述第二服务信息包括:所述第二设备的服务标识和运行规律信息; [0240] 所述运行规律信息包括:时间信息和/或信道信息。
[0241] 所述第一服务信息还可以包括:所述第一设备的服务信息有效期,和/或设备地址信息;
[0242] 所述第二服务信息还可以包括:所述第二设备的服务信息有效期,和/或设备地址信息。
[0243] 接收器601用于接收所述第二设备发送的第二服务公告消息。
[0244] 发送器602用于发送所述第一服务公告消息,还可以用于向生成第三服务信息的设备返回服务响应消息。
[0245] 处理器604用于执行如下步骤:
[0246] 在接收器601接收所述第二设备发送的第二服务公告消息之后,若第二服务公告消息中包括有多个设备的服务信息,则仅提取在所述第二服务公告 消息中所述第二设备的第二服务信息,并将所述第二服务信息存入所述第一设备的携带候选列表中;根据所述第一服务公告消息的消息包容量,在所述第一设备的携带候选列表中选择N个服务信息作为第一服务公告消息所需要携带的信息,所述N为大于零的整数。
[0247] 可选的,若所述第二服务公告消息携带有第三服务信息,则判断所述第三服务信息是否为所述第一设备所需要的服务,若所述第三服务信息为所述第一设备所需要的服务,则指示发送器602向生成所述第三服务信息的设备返回服务响应消息。
[0248] 可选的,为了避免非可达节点,在发送服务响应消息之前,可以获取所述第二服务公告消息的接收信号RSSI,若所述RSSI大于第二RSSI阈值,则确定所述第三设备处于所述第一设备的可信半径范围内(即第三设备在第一设备的通信范围内),并触发所述向发送所述第三服务信息的第三设备返回服务响应消息的步骤。
[0249] 可选的,为了避免非可达节点,还可以采用较低的功率发送服务公告消息,以较高的功率发送服务响应消息,具体的:当设备采用密集模式时,使用较低功率进行发射,故传输范围比稀疏模式减小。稀疏模式发射功率称为高功率,密集模式下发射功率称为低功率。因此,此方案的关键在于,密集模式下的服务公告消息以低功率发射,但响应采用高功率。
通过合适的参数设置(低功率、允许转发的跳数等),上述方法可避免不可达节点的响应。
显然,对于仅允许一跳转发而言,最优的的参数设置应满足2×低功率传输半径=高功率传输半径。
[0250] 可选的,在获取了第二服务公告消息之后,可以获取所述第二服务公告消息的RSSI;若所述RSSI大于第一RSSI阈值,则确定所述第二设备处于所述第一设备的转发半径范围内,则提取所述第二设备的第二服务信息。
[0251] 在获取了第二服务公告消息之后,还可以根据预定义时间内收到的服务公告消息的数量判断第一设备是否处于密集环境;若是,则触发所述消息生成单元;若否,则直接触发所述消息发送单元发送没有携带所述第二服务信息的第一服务公告消息。
[0252] 具体的,密集环境的判定可以在预定义时间T0内分别统计接收到的稀疏 模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当α1Vsparse+α2Vdense>thr1时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr1第一密集环境阈值。否则,设备认为处于稀疏环境。
[0253] 密集环境的判定也可以在预定义时间T0内分别统计接收到的稀疏模式和密集模式的服务公告消息的数量Vsparse和数量Vdense;当(α1VsparseT1+α2VdenseT2)/T0>thr2时,设备认为处于密集环境,所述α1、α2分别为Vsparse和Vdense的加权系数,所述thr2第二密集环境阈值。否则,设备认为处于稀疏环境。
[0254] 密集环境的判定还可以统计发送所述第一服务公告消息的等待时间的平均值TA;若所述TA>thr3,则认为处于密集环境;否则,设备认为处于稀疏环境。所述等待时间为所述第一设备从监听信道开始到成功发送所述第一服务公告消息所需要的时间。 [0255] 在确定了需要携带的服务信息之后,生成第一服务公告消息,所述第一服务公告消息包括:所述第一设备的第一服务信息和第二设备的第二服务信息。
[0256] 在生成了所述第一服务公告消息之后,可以指示发送器602可以使用广播的方式向四周发送该第一服务公告消息,使得尽量多的对等设备可以发现该第一设备的服务。 [0257] 可选的,可以指示发送器602可以在一个服务发现周期内发送NP次所述第一服务公告消息,所述服务发现周期分为NP个等分时间段,所述第一设备在每个所述等分时间段内随机发送一次所述第一服务公告消息,所述NP为大于零的整数。
[0258] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0259] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0260] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0261] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0262] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。