CHEN JI (CN)
CN103037448A | 2013-04-10 | |||
KR20110074066A | 2011-06-30 | |||
EP1511218A1 | 2005-03-02 |
权利要求 1、 一种服务公告消息的传输方法, 其特征在于, 包括: 第一设备生成第一服务公告消息, 所述第一服务公告消息包括: 所述 第一设备的第一服务信息和至少一个第二设备的第二服务信息; 所述第二 服务信息为所述第一设备从接收到的所述第二设备发送的消息中获得的; 所述第一服务信息用于使得在所述第一设备通信范围内的设备获知所述第 一设备的服务信息, 所述第二服务信息用于使得在所述第二设备通信范围 内的设备获知所述第二设备的服务信息; 所述第一设备发送所述第一服务公告消息。 2、 根据权利要求 1所述的方法, 其特征在于, 所述生成第一服务公告 消息之前, 包括: 接收所述至少一个第二设备发送的第二服务公告消息, 所述第二服务 公告消息包括所述第二服务信息; 将所述第二服务信息加入携带候选列表中, 所述携带候选列表用于存 储可携带在所述第一服务公告消息中发送的非本地的服务信息。 3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述第一服务信息包括: 所述第一设备的服务标识和运行规律信息; 所述第二服务信息包括: 所述第二设备的服务标识和运行规律信息; 所述运行规律信息包括: 时间信息和 /或信道信息。 4、 根据权利要求 3所述的方法, 其特征在于, 所述第一服务信息还包括: 所述第一设备的服务信息有效期, 和 /或设 备地址信息; 所述第二服务信息还包括: 所述第二设备的服务信息有效期, 和 /或设 备地址信息。 5、 根据权利要求 2所述的方法, 其特征在于, 若所述第二服务公告消 息中包括有多个设备的服务信息, 则所述生成第一服务公告消息, 包括: 在所述第二服务公告消息中仅提取所述第二设备的第二服务信息, 并 将所述第二服务信息存入所述第一设备的携带候选列表中; 在所述第一设备的携带候选列表中, 选取 N个第二服务信息生成第一 服务公告消息, 所述 N为大于零的整数, 且所述 N小于或等于所述携带候 选列表中第二服务信息存储的个数, 所述 N个第二服务信息的总数据量小 于所述第一服务公告消息的消息包容量。 6、 根据权利要求 1至 5任意一项所述的方法, 其特征在于, 所述生成 第一服务公告消息之前, 还包括: 根据所述第一服务公告消息的收发状态判断所述第一设备是否处于密 集环境; 若是, 则触发所述生成第一服务公告消息的步骤; 若否, 则发送没有携带所述第二服务信息的第一服务公告消息。 7、 根据权利要求 6所述的方法, 其特征在于, 所述根据服务公告消息 的收发状态判断所述第一设备是否处于密集环境, 包括: 在预定义时间 T。内分别统计接收到的稀疏模式和密集模式的服务公告 消息的数量 Vspare o数量 Vdense, 当 th 时, 则认为处于 密集环境, 所述 αι、 a2分别为 Vspars o Vdense的加权系数, 所述 th^为第一 密集环境阔值, 或者, 当(aA^arse + D/To h^时, 则认为处于密 集环境, 所述 αι、 a2分别为 Vspars o 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所述的设备, 其特征在于, 所述环境判定单元包 括: 第一判断模块, 用于在预定义时间 T。内分别统计接收到的稀疏模式和 密集模式的服务公告消息的数量 Vsparse和数量 Vdense; 当 01^^^ + a2Vdense> thri时, 则认为处于密集环境, 所述 ai、 (X2分别为 ^^和 Vdense的加权系 数, 所述 为第一密集环境阔值; 或, 第二判断模块, 用于在预定义时间 T。内分别统计接收到的稀疏模式和 密集模式的服务公告消息的数量 Vsparse和数量 Vdense; 当 (a1VsparseT1 + a2Vdense T2 )/T0 >thr2时, 则认为处于密集环境, 所述 ai、 a2分别为 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所述的设备, 其特征在于, 所述消息发送 单元具体以第一功率向所述第三服务信息对应的设备发送服务响应消息, 所述第一功率大于所述第二设备用于发送所述第二服务公告消息的第二功 |
本申请要求于 2013年 5月 15日提交中国专利局、 申请号为 201310179966.1中国专利申请的优先权,其全部内 通过引用结合在本申请 中。 技术领域 本发明涉及无线通信领域, 尤其涉及一种服务公告消息的传输方法及 设备。 背景技术 伴随着移动互联网时代的来临, 社交、 本地化、 移动成为互联网行业 的主流模式。 特别是随着配备无线保真( Wi-Fi, wireless fidelity )接口的移 动终端设备的普及,基于 Wi-Fi的社交应用正在成为业界的热点。为此, Wi-Fi 联盟( WFA, Wi-Fi Alliance )成立了邻居感知网络( NAN, Neighbor Awareness Networking ) 等针对 social (社交)应用的任务组, 研究基于 Wi-Fi的 social 应用对于 Wi-Fi本身的影响, 并制定相关标准。
NAN任务组研究的典型场景是对等移动设备之间 在关联之前, 相互发 现设备及其所能提供的服务。 例如, 社交游戏应用中, 两台移动设备通过 Wi-Fi发现彼此, 并在关联前确认对方是否与自己具有相同的游 戏爱好, 以 避免关联后却发现双方兴趣不同所导致的信令 开销的浪费; 再比如, 在好 友发现应用中, 两个同时启用了好友发现应用的设备在彼此靠 近时, 设备 将提醒主人对方的出现。 上述发现过程的关键是设备发现和服务发现, 两 者可同时完成。 前者相对简单, 而后者则由于服务的多样性而相对复杂, 因此是目前的主要研究热点, 也是本发明的主要着眼点。
从技术上来看,服务发现过程主要通过下述方 法完成:探测设备在 social 信道上(通常是 2.4GHz频带的 1/6/11信道)发射服务公告消息, 然后监听服 务响应消息; 对等设备侦听到服务公告消息后, 若其携带的服务信息表明 其符合自己的要求, 则发送服务发现响应消息。 按照 NAN服务发现的要求, 即使一个服务发现的任务已经完成, 但服务发现机制却仍需在后台持续运 行(因为服务发现的目标往往不止一个) 。 在 Wi-Fi设备密集的情况下, 由 于现有技术的方案要求每个探测设备频繁地发 送服务公告消息以保证较高 的发现效率,使得 social信道被这种服务公告消息的小数据包充斥 ,造成"小 包风暴,,, 导致服务发现效率和媒体利用率低下, 并极大地影响其他 Wi-Fi 网络的正常工作。 发明内容 本发明实施例提供了一种服务公告消息的传输 方法及设备, 用于在保 证服务发现效率的同时提高媒体利用效率。
本发明实施例第一方面提供的服务公告消息的 传输方法, 包括: 第一设备生成第一服务公告消息, 所述第一服务公告消息包括: 所述 第一设备的第一服务信息和至少一个第二设备 的第二服务信息; 所述第二 服务信息为所述第一设备从接收到的所述第二 设备发送的消息中获得的; 所述第一服务信息用于使得在所述第一设备通 信范围内的设备获知所述第 一设备的服务信息, 所述第二服务信息用于使得在所述第二设备通 信范围 内的设备获知所述第二设备的服务信息;
所述第一设备发送所述第一服务公告消息。
在第一方面的第一种可能实现的方法中, 所述生成第一服务公告消息 之前, 包括:
接收所述至少一个第二设备发送的第二服务公 告消息, 所述第二服务 公告消息包括: 所述第二服务信息;
将所述第二服务信息加入携带候选列表中, 所述携带候选列表用于存 储可携带在所述第一服务公告消息中发送的非 本地的服务信息。
结合第一方面或第一方面的第一种实现方法, 在第一方面的第二种可 能实现的方法中,
所述第一服务信息包括: 所述第一设备的服务标识和运行规律信息; 所述第二服务信息包括: 所述第二设备的服务标识和运行规律信息; 所述运行规律信息包括: 时间信息和 /或信道信息。
结合第一方面的第二种实现方法, 在第一方面的第三种可能实现的方 法中,
所述第一服务信息包括: 所述第一设备的服务信息有效期, 和 /或设备 地址信息;
所述第二服务信息包括: 所述第二设备的服务信息有效期, 和 /或设备 地址信息。
结合第一方面的第一种可能实现的方法, 在第四种可能实现的方法中, 若所述第二服务公告消息中包括有多个设备的 服务信息, 则所述生成第一 服务公告消息, 包括: 在所述第二服务公告消息中仅提取所述第二设 备的第二服务信息, 并 将所述第二服务信息存入所述第一设备的携带 候选列表中;
随机在所述第一设备的携带候选列表中, 选取 N个第二服务信息生成 第一服务公告消息, 所述 N为大于零的整数, 且所述 N小于或等于所述携 带候选列表中第二服务信息存储的个数, 所述 N个第二服务信息的总数据 量小于所述第一服务公告消息的消息包容量。
结合第一方面, 以及第一方面的第一至第四任意一种可能实现 的方法, 在第五种可能实现的方法中, 所述生成第一服务公告消息之前, 还包括: 根据所述第一服务公告消息的收发状态判断所 述第一设备是否处于密 集环境;
若是, 则触发所述生成第一服务公告消息的步骤;
若否, 则发送没有携带所述第二服务信息的第一服务 公告消息。
结合第一方面的第五种可能实现的方法, 在第六种可能实现的方法中, 所述根据服务公告消息的收发状态判断所述第 一设备是否处于密集环境, 包括:
在预定义时间 T。内分别统计接收到的稀疏模式和密集模式 服务公告 消息的数量 V spare o数量 V dense , 当 th 时, 则认为处于 密集环境, 所述 αι 、 a 2 分别为 V spars o V dense 的加权系数, 所述 th^为第一 密集环境阔值, 或者, 当(aA^arse + D/To h^时, 则认为处于密 集环境, 所述 αι 、 a 2 分别为 V spars o V dense 的加权系数, 所述 thr 2 第二密集 环境阔值;
或者, 统计发送所述第一服务公告消息的等待时间的 平均值 T A , 若所 述 T A >thr 3 , 则认为处于密集环境, 所述等待时间为所述第一设备从监听信 道开始到成功发送所述第一服务公告消息所需 要的时间, 所述 thr 3 为第三 密集环境阔值。
结合第一方面的第一至第六任意一种可能实现 的方法, 在第七种可能 实现的方法中, 所述接收第二设备发送的第二服务公告消息之 后, 包括: 获取所述第二服务公告消息的接收信号强度指 示 RSSI;
若所述 RSSI 大于第一 RSS I 阔值, 则将所述第二服务信息加入所述第 一设备的携带候选列表中。
结合第一方面的第一至第七任意一种可能实现 的方法, 在第八种可能 实现的方法中, 若所述第二服务公告消息还携带有第三服务信 息, 则所述 方法还包括:
判断所述第三服务信息是否为所述第一设备所 需要的服务, 若是, 则 向生成所述第三服务信息的第三设备返回服务 响应消息。
结合第一方面的第八种可能实现的方法, 在第九种可能实现的方法中, 所述向生成所述第三服务信息的第三设备返回 服务响应消息之前, 包括: 获取所述第二服务公告消息的 RSSI;
若所述 RSSI 大于第二 RSS I 阔值, 则触发所述向生成所述第三服务信 息的第三设备返回服务响应消息的步骤。
结合第一方面的第八或第九种可能实现的方法 , 在第十种可能实现的 方法中, 所述接收第二设备发送的第二服务公告消息之 后, 所述向生成所 述第三服务信息的第三设备返回服务响应消息 具体为:
以第一功率向所述第三设备发送服务响应消息 , 所述第一功率大于所 述第二设备用于发送所述第二服务公告消息的 第二功率。
本发明实施例第二方面提供的服务公告消息的 传输设备, 包括: 消息生成单元, 用于生成第一服务公告消息, 所述第一服务公告消息 包括: 第一设备的第一服务信息和至少一个第二设备 的第二服务信息; 所 述第二服务信息为第一设备从接收到的所述第 二设备发送的消息中获得 的; 所述第一服务信息用于使得在第一设备通信范 围内的设备获知第一设 备的服务信息, 所述第二服务信息用于使得在所述第二设备通 信范围内的 设备获知所述第二设备的服务信息;
消息发送单元, 用于发送所述第一服务公告消息。
在第二方面的第一种可能实现的方法中, 所述设备还包括:
消息接收单元, 用于在生成第一服务公告消息之前, 接收所述至少一 个第二设备发送的第二服务公告消息, 所述第二服务公告消息包括所述第 二服务信息;
存储单元, 用于所述第二服务信息将所述第二服务信息加 入携带候选 列表中, 所述携带候选列表中存储可携带在所述第一服 务公告消息中发送 的非本地的服务信息。
结合第二方面的第一种可能实现的方法, 在第二种可能实现的方法中, 所述消息发送单元包括: 信息提取模块, 用于在所述第二服务公告消息中仅提取所述第 二设备 的第二服务信息, 并将所述第二服务信息存入第一设备的携带候 选列表中; 信息选取模块, 用于随机在所述第一设备的携带候选列表中, 选取 N 个第二服务信息生成第一服务公告消息, 所述 N为大于零的整数, 且所述 N 小于或等于所述携带候选列表中第二服务信息 存储的个数, 所述 N个第二 服务信息的总数据量小于所述第一服务公告消 息的消息包容量。
结合第二方面, 或第二方面的第一至二任意一种实现方法, 在第二方 面的第三种可能实现的方法中, 所述设备还包括:
环境判定单元, 用于根据所述服务公告消息的收发状态判断第 一设备 是否处于密集环境; 若是, 则触发所述消息生成单元生成所述第一服务公 告消息; 若否, 则直接触发所述消息发送单元发送没有携带所 述第二服务 信息的第一服务公告消息。
结合第二方面的第三种可能实现的方法, 在第四种可能实现的方法中, 所述环境判定单元包括:
第一判断模块, 用于在预定义时间 T。内分别统计接收到的稀疏模式和 密集模式的服务公告消息的数量 V sparse 和数量 V dense ; 当 01^^^ + a 2 V dense > th ri 时, 则认为处于密集环境, 所述 ai 、 (X 2 分别为 ^^和 V dense 的加权系 数, 所述 为第一密集环境阔值;
或,
第二判断模块, 用于在预定义时间 T。内分别统计接收到的稀疏模式和 密集模式的服务公告消息的数量 V sparse 和数量 V dense ; 当 (a 1 V sparse T 1 + a 2 V dense T 2 )/T 0 >thr 2 时, 则认为处于密集环境, 所述 ai 、 a 2 分别为 V sparse 和 V dense 的 加权系数, 所述 thr 2 第二密集环境阔值;
或,
第三判断模块, 用于在预定义时间内计算发送所述第一服务公 告消息 的等待时间的平均值 T A , 或计算若干次发送所述第一服务公告消息的等 待 时间的平均值 T A ; 若所述 T A >thr 3 , 则认为处于密集环境, 所述等待时间为 第一设备从监听信道开始到成功发送所述第一 服务公告消息所需要的时 间, 所述 thr 3 为第三密集环境阔值。
结合第二方面的第一至四任意一种可能实现的 方法, 在第五种可能实 现的方法中, 所述设备还包括: 信号获取单元, 用于获取所述第二服务公告消息的 RSSI;
所述存储单元具体用于, 若所述 RSS I 大于第一 RSS I 阔值, 则将所述 第二服务信息加入第一设备的携带候选列表中 。
结合第二方面的第一至五任意一种可能实现的 方法, 在第六种可能实 现的方法中, 所述设备还包括:
服务判定单元, 用于若所述第二服务公告消息还携带有第三服 务信息, 则判断所述第三服务信息是否为第一设备所需 要的服务, 所述消息发送单 元还用于当所述服务判定单元判断结果为是时 , 向生成所述第三服务信息 的设备返回服务响应消息。
结合第二方面的第六种可能实现的方法, 在第七种可能实现的方法中, 所述设备还包括:
信号获取单元, 用于获取所述第二服务公告消息的 RSSI;
响应判定单元, 用于若所述 RSSI 大于第二 RSS I 阔值, 则触发所述消 息发送单元向生成所述第三服务信息的设备返 回服务响应消息。
结合第二方面的第六或第七种可能实现的方法 , 在第八种可能实现的 方法中, 所述消息发送单元具体用于: 以第一功率向所述第三服务信息对 应的设备发送服务响应消息, 所述第一功率大于所述第二设备用于发送所 述第二服务公告消息的第二功率。
从以上技术方案可以看出, 本发明实施例具有以下优点:
在本发明实施例中, 第一设备接收到第二设备发送的第二服务信息 之 后, 第一设备在第一服务公告消息中携带该第二服 务信息, 使得在一个服 务公告消息中携带至少两个设备的服务信息, 提高了服务公告消息的利用 效率, 从而使得在同等服务发现效果的情况下, 可以降低对等设备间相互 发送服务公告消息的频率, 进而降低了发生 "小包风暴 "的可能性。 附图说明 图 1是本发明实施例服务公告消息的传输方法的 个流程示意图; 图 2是本发明实施例服务公告消息的传输方法的 一个流程示意图; 图 3是本发明实施例服务公告消息的传输方法的 一个流程示意图; 图 4是本发明实施例服务公告消息的传输方法的 一个流程示意图; 图 5是本发明实施例中服务公告消息的传输设备 一个结构示意图; 图 6是本发明实施例设备的一个结构示意图。 具体实齢式 本发明实施例提供了一种服务公告消息的传输 方法及设备, 用于在保 证服务发现效率的同时提高媒体利用效率。
请参阅图 1,本发明实施例中服务公告消息的传输方法 一个实施例包 括:
101、 第一设备生成第一服务公告消息;
在第一设备接收到第二设备发送的第二服务信 息之后, 第一设备生成 第一服务公告消息, 所述第一服务公告消息包括: 所述第一设备的第一服 务信息和第二设备的第二服务信息; 所述第二服务信息为所述第一设备从 接收到的所述第二设备发送的消息获得的, 所述第二设备为所述第一设备 的对等设备; 所述第一服务信息用于使得在所述第一设备通 信范围内的对 等设备获知所述第一设备的通信信息, 所述第二服务信息用于使得在所述 第二设备通信范围内的对等设备获知所述第二 设备的通信信息。
可选的, 所述服务公告消息具体可以为探测请求消息。
所述对等设备为两个具有相同特定功能的设备 ; 可选的, 在本发明实 施例中, 所述第一设备及其对等设备可以为具有 NAN功能的设备。
在本发明实施例中, 服务公告消息用于传播服务信息, 实现对等设备 间的相互发现; 服务公告消息中携带的服务信息包括发送方的 服务信息 (如, 本发明实施例中的第一服务信息), 也可以包括第三方(即除发送方 和接收方的对等设备, 如本发明实施例中的第二设备) 的服务信息。
102、 第一设备发送所述第一服务公告消息;
在实际应用中, 第一设备可以使用广播的方式向四周发送该第 一服务 公告消息, 使得尽量多的对等设备可以发现该第一设备的 服务。
在本发明实施例中, 可以理解的是, 所述第二设备是相对于第一设备 而言的, 即本地设备若接收到另一对等设备发送的服务 公告消息, 则作为 接收方的所述本地设备为第一设备, 作为发送方的所述另一对等设备相对 于所述第一设备而言, 称为第二设备; 进一步的, 若第二设备发送的服务 公告消息中包含有第三服务信息(非第二设备 生成的第二服务信息), 则称 生成所述第三服务信息的对等设备为第三设备 。
可以理解的是, 所述第一设备可以接收多个所述第二设备发送 的服务 公告消息, 因此第一设备中可以存储有多个所述第二服务 信息。
在本发明实施例中, 第一设备接收到第二设备发送的第二服务信息 之 后, 第一设备在第一服务公告消息中携带该第二服 务信息, 使得在一个服 务公告消息中携带至少两个设备的服务信息, 提高了服务公告消息的利用 效率, 从而使得在同等服务发现效果的情况下, 可以降低对等设备间相互 发送服务公告消息的频率, 进而降低了发生 "小包风暴 "的可能性。
下面对本发明服务公告消息的传输方法进行具 体描述,请参阅图 2, 本 发明实施例中服务公告消息的传输方法的另一 个实施例包括:
201、 第一设备接收所述第二设备发送的第二服务公 告消息;
第一设备接收所述第二设备发送的第二服务公 告消息, 所述第二服务 公告消息中携带有第二服务信息, 所述第二设备为所述第一设备的对等设 备。
具体的, 所述第二服务信息包括: 第二设备的服务标识和运行规律信 息; 所述服务标识用于表示第二设备所要提供的服 务, 和 /或第二设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息; 时间 信息如: 唤醒时间(用于指示对等设备处于激活状态的 时间); 信道信息如: opera t ing c las s 和 channe l number (表示对等设备在监听状态时将位于 哪个工作信道)。 可以理解的是, 在实际应用中, 运行规律信息还可以包括 有其它内容, 此处具体不作限定。
进一步的, 所述还可以第二服务信息包括: 所述第二设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m (即其 它对等设备只允许在 m个服务发现请求消息中携带该服务信息)。
202、 第一设备选择服务信息;
在第一设备接收到第二设备发送的第二服务公 告消息之后, 若第二服 务公告消息中包括有多个设备的服务信息, 则可以仅提取在所述第二服务 公告消息中所述第二设备的第二服务信息, 并将所述第二服务信息存入所 述第一设备的携带候选列表中; 所述携带候选列表用于存储可携带在所述 第一服务公告消息中发送的非本地的服务信息 。
第一设备根据所述第一服务公告消息的消息包 容量, 在所述第一设备 的携带候选列表中选择 N个服务信息作为第一服务公告消息所需要携 的 信息, 所述 N为大于零的整数。
在本发明实施例中, 为了避免一个对等设备的服务信息被连续地转 发, 导致服务信息被转发至原发送该服务信息的设 备的通信范围之外, 本发明 实施例限定了只转发发送方对应的服务信息。 可选的, 根据实际情况, 第 一设备还可以在第二服务公告消息中选择除第 二服务信息以外的一个或两 个服务信息进行转发。
203、 第一设备生成第一服务公告消息;
在确定了需要携带的服务信息之后, 第一设备生成第一服务公告消息, 所述第一服务公告消息包括: 所述第一设备的第一服务信息和第二设备的 第二服务信息。
所述第一服务信息用于使得在所述第一设备通 信范围内的对等设备获 知所述第一设备的服务信息, 所述第二服务信息用于使得在所述第二设备 通信范围内的对等设备获知所述第二设备的服 务信息。
具体的, 所述第一服务信息包括: 第一设备的服务标识和运行规律信 息; 所述服务标识用于表示第一设备所要提供的服 务, 和 /或第一设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息。
进一步的, 所述第一服务信息还可以包括: 所述第一设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m。
在上述所描述的服务信息中, 服务信息有效期只在源服务信息 (即发 送方自身的服务信息) 中携带, 转发的服务信息则可以无需携带。 对等设 备地址信息则只在转发服务消息中携带, 源服务消息则无需额外携带 (因 为已包含在帧头地址域中)。
在本发明实施例中, 服务公告消息用于传播服务信息, 实现对等设备 间的相互发现; 服务公告消息中携带的服务信息包括发送方的 服务信息 (如, 本发明实施例中的第一服务信息)。
2 04、 第一设备发送所述第一服务公告消息;
在实际应用中, 第一设备可以使用广播的方式向四周发送该第 一服务 公告消息, 使得尽量多的对等设备可以发现该第一设备的 服务。
可选的, 第一设备可以在一个服务发现周期内发送 NP次所述第一服务 公告消息, 所述服务发现周期分为 NP个等分时间段, 所述第一设备在每个 所述等分时间段内随机发送一次所述第一服务 公告消息, 所述 NP为大于零 的整数。
本发明实施例的服务公告消息的传输方法在密 集环境中应用的效率更 高, 因此, NAN设备可以选择在密集环境中才使用该方法, 具体请参阅图 3, 本发明实施例中服务公告消息的传输方法的另 一个实施例包括:
301、 第一设备接收所述第二设备发送的第二服务公 告消息;
第一设备接收所述第二设备发送的第二服务公 告消息, 所述第二服务 公告消息中携带有第二服务信息, 所述第二设备为所述第一设备的对等设 备。
第一设备将所述第二服务信息加入携带候选列 表中, 所述携带候选列 表中存储可携带在所述第一服务公告消息中发 送的非本地的服务信息。
在本发明实施例中, 所述第二服务公告消息可以只携带有第二设备 对 应的第二服务信息 (即, 该第二服务公告消息为在稀疏环境下发送的服 务 公告消息), 所述第二服务公告消息还可以携带有除该第二 服务信息以外的 服务信息(即,该第二服务公告消息为在密集 环境下发送的服务公告消息)。
本发明实施例中的稀疏环境和密集环境可以自 由定义, 如设定一个设 备数量阔值, 若当前网络下设备的数量小于该设备数量阔值 , 则当前环境 为稀疏环境, 若当前网络下设备的数量大于或等于该设备数 量阔值, 则当 前环境为密集环境; 可以理解的是, 稀疏环境和密集环境还有其它定义方 法, 本发明实施例具体不做限定。
具体的, 所述第二服务信息包括: 第二设备的服务标识和运行规律信 息; 所述服务标识用于表示第二设备所要提供的服 务, 和 /或第二设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息; 时间 信息如: 唤醒时间(用于指示对等设备处于激活状态的 时间); 信道信息如: opera t ing c la s s 和 channe l number (表示对等设备在监听状态时将位于 哪个工作信道)。 可以理解的是, 在实际应用中, 运行规律信息还可以包括 有其它内容, 此处具体不作限定。
进一步的, 所述第二服务信息还可以包括: 所述第二设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 N (即其 它对等设备只允许在 N个服务发现请求消息中携带该服务信息)。
302、 根据所述服务公告消息的收发状态判断所述第 一设备是否处于密 集环境;
第一设备根据所述服务公告消息的收发状态判 断所述第一设备是否处 于密集环境,若是,则触发步骤 303,釆用密集模式发送第一服务公告消息; 若否, 则触发步骤 305, 釆用稀疏模式发送第一服务公告消息; 具体的, 所 述收发状态可以包括: 在预定义时间内收到第二服务公告消息的数量 , 或 发送所述第一服务公告消息的平均等待时间。
所述根据预定义时间内收到的服务公告消息的 数量判断所述第一设备 是否处于密集环境具体可以为:
在预定义时间 T。内分别统计接收到的稀疏模式和密集模式 服务公告 消息的数量 V sparee 和数量 V dense ;
当 0^ ^ + a 2 V dense > thi^时, 设备认为处于密集环境, 所述 、 a 2 分别 为 V sp „ se 和 V dense 的加权系数, 所述 thi^第一密集环境阔值。
否则, 认为所述第一设备处于稀疏环境。
可选的, 所述根据预定义时间内收到的服务公告消息的 数量判断所述 第一设备是否处于密集环境具体还可以为:
在预定义时间 T。内分别统计接收到的稀疏模式和密集模式 服务公告 消息的数量 V sparee 和数量 V dense ;
当(aJwJi + o^Vd議 T 2 ) /T。 > thr 2 时, 设备认为处于密集环境, 所述 、 α 2 分别为 V sp „ se 和 V dense 的加权系数, 所述 thr 2 第二密集环境阔值。 否则, 设备认为处于稀疏环境。
可选的, 所述根据预定义时间内收到的服务公告消息的 数量判断所述 第一设备是否处于密集环境具体还可以为:
统计发送所述第一服务公告消息的等待时间的 平均值 T A ; 如, 可以记 录 W次发送第一探测请求消息的等待时间, W次等待时间之和除以 W, 即 得发送第一探测请求消息的等待时间的平均值 T A;
若所述 T A >thr 3 , 则认为处于密集环境; 否则, 设备认为处于稀疏环境。 所述等待时间为所述第一设备从监听信道开始 到成功发送所述第一服务公 告消息所需要的时间, 所述 thr 3 为第三密集环境阔值。
可以理解的是, 是否处于密集环境还有其它判断方法, 本发明实施例 具体不做限定。
303、 第一设备生成第一服务公告消息;
在第一设备接收到第二设备发送的第二服务公 告消息之后, 若第二服 务公告消息中包括有多个设备的服务信息, 则仅提取在所述第二服务公告 消息中所述第二设备的第二服务信息, 并将所述第二服务信息存入所述第 一设备的携带候选列表中; 第一设备可以在所述第一设备的携带候选列表 中,选取 N个第二服务信息生成第一服务公告消息,所 N为大于零的整数, 且所述 N小于或等于所述携带候选列表中第二服务信 存储的个数, 所述 N 个第二服务信息的总数据量小于所述第一服务 公告消息的消息包容量, 进 一步可选的, 所述 N个第二服务信息的总数据量可以最接近所述 息包容 量。
在确定了需要携带的服务信息之后, 第一设备生成第一服务公告消息, 所述第一服务公告消息包括: 所述第一设备的第一服务信息和 N个第二设 备的第二服务信息。
所述第一服务信息用于使得在所述第一设备通 信范围内的对等设备获 知所述第一设备的服务信息, 所述第二服务信息用于使得在所述第二设备 通信范围内的对等设备获知所述第二设备的服 务信息。
具体的, 所述第一服务信息包括: 第一设备的服务标识和运行规律信 息; 所述服务标识用于表示第一设备所要提供的服 务, 和 /或第一设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息。 进一步的, 所述第一服务信息还可以包括: 所述第一设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m。
在上述所描述的服务信息中, 服务信息有效期只在源服务信息 (即发 送方自身的服务信息) 中携带, 转发的服务信息则无需携带。 设备地址信 息则只在转发服务消息中携带, 源服务消息则无需额外携带 (因为已包含 在帧头地址域中) 。
304、 第一设备发送携带所述第二服务信息的第一服 务公告消息; 在实际应用中, 第一设备可以使用广播的方式向四周发送该第 一服务 公告消息, 使得尽量多的对等设备可以发现该第一设备的 服务。
可选的, 第一设备可以在一个服务发现周期内发送 N P 次所述第一服务 公告消息, 所述服务发现周期分为 N P 个等分时间段, 所述第一设备在每个 所述等分时间段内随机发送一次所述第一服务 公告消息, 所述 N P 为大于零 的整数。
305、 第一设备发送没有携带所述第二服务信息的第 一服务公告消息。 在本发明实施例中, 增加了密集环境的判定规则, 使得第一设备在发 送第一服务公告消息时, 可以根据判定结果选择是否携带第二设备的服 务 信息, 实现了资源的优化配置。
由于本发明实施例中的设备会对非本地的服务 信息进行转发的操作, 因此, 本地的服务信息可能会被转发到非可达节点 (即该服务信息对应的 设备的通信范围之外的节点) , 为了避免这种情况, 本发明人实施例提供 了相应的解决方案, 请参阅图 4, 本发明实施例中服务公告消息的传输方法 的另一个实施例包括:
401、 第一设备接收所述第二设备发送的第二服务公 告消息; 第一设备接收所述第二设备发送的第二服务公 告消息, 所述第二服务 公告消息中携带有第二服务信息, 所述第二设备为所述第一设备的对等设 备。
具体的, 所述第二服务信息包括: 第二设备的服务标识和运行规律信 息; 所述服务标识用于表示第二设备所要提供的服 务, 和 /或第二设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息; 时间 信息如: 唤醒时间(用于指示对等设备处于激活状态的 时间); 信道信息如: opera t ing c las s 和 channe l number (表示对等设备在监听状态时将位于 哪个工作信道)。 可以理解的是, 在实际应用中, 运行规律信息还可以包括 有其它内容, 此处具体不作限定。
进一步的, 所述还可以第二服务信息包括: 所述第二设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m (即其 它对等设备只允许在 m个服务发现请求消息中携带该服务信息)。
可选的, 若所述第二服务公告消息携带有第三服务信息 , 则除了执行 步骤 402, 还需要执行步骤 408。 具体的, 当第三服务信息中包含有第三设 备的设备地址信息时, 第一设备则可通过单播形式向第三设备发送服 务响 应消息; 否则, 第一设备以广播形式发送服务响应消息。
402、 第一设备获取所述第二服务公告消息的信号强 度指示;
第一设备获取所述第二服务公告消息的接收信 号强度指示 ( RSSI, Rece ived S igna l Strength Ind ica t ion ) 0 所述 RSSI可以由第一设备通过 检测接收信号获得。
403、 判断所述 RSSI是否大于第一 RSSI阔值;
若所述 RSSI 大于第一 RSS I 阔值, 则确定所述第二设备处于所述第一 设备的转发半径范围内, 并执行步骤 404; 所述转发半径为转发所述第二服 务信息的有效半径, 即若所述第二设备处于所述第一设备的转发半 径范围 内, 则接收到经所述第一设备转发出去的第二服务 信息的对等设备, 可以 与该第二设备进行有效的通信范围。
若所述 RSSI不大于第一 RSSI 阔值, 则忽略所述第二服务公告消息中 携带的第二服务信息, 结束流程。
在本发明实施例中, 所述第一 RSSI阔值为判断是否转发第二服务信息 的阔值, 当通过接收第二服务公告消息获得的 RSSI 大于该第一 RSSI 阔值 时, 则可以认为本地设备在该第二设备的转发半径 内 (即接收到经本地设 备转发的第二服务信息的对等设备, 在该第二设备的通信范围内), 因此, 可以将将所述第二服务信息存入所述第一设备 的携带候选列表中。
404、 第一设备提取所述第二设备的第二服务信息;
在第一设备接收到第二设备发送的第二服务公 告消息之后, 若第二服 务公告消息中包括有多个设备的服务信息, 则仅提取在所述第二服务公告 消息中提取所述第二设备的第二服务信息, 并将所述第二服务信息存入所 述第一设备的携带候选列表中。
405、 第一设备选择服务信息;
第一设备可以在所述第一设备的携带候选列表 中, 选取 N个第二服务 信息生成第一服务公告消息, 所述 N为大于零的整数, 且所述 N小于或等 于所述携带候选列表中第二服务信息存储的个 数, 所述 N个第二服务信息 的总数据量小于所述第一服务公告消息的消息 包容量, 进一步可选的, 所 述 N个第二服务信息的总数据量可以最接近所述 息包容量。
在本发明实施例中, 为了避免一个对等设备的服务信息被连续地转 发, 导致服务信息被转发至原发送该服务信息的设 备的通信范围之外, 本发明 实施例限定了只转发发送方对应的服务信息。 可选的, 根据实际情况, 第 一设备还可以在第二服务公告消息中选择除第 二服务信息以外的一个或两 个服务信息进行转发。
406、 第一设备生成第一服务公告消息;
在确定了需要携带的服务信息之后, 第一设备生成第一服务公告消息, 所述第一服务公告消息包括: 所述第一设备的第一服务信息和第二设备的 第二服务信息。
所述第一服务信息用于使得在所述第一设备通 信范围内的对等设备获 知所述第一设备的服务信息, 所述第二服务信息用于使得在所述第二设备 通信范围内的对等设备获知所述第二设备的服 务信息。
具体的, 所述第一服务信息包括: 第一设备的服务标识和运行规律信 息; 所述服务标识用于表示第一设备所要提供的服 务, 和 /或第一设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息。
进一步的, 所述还可以第一服务信息包括: 所述第一设备的服务信息 有效期, 和 /或设备地址信息。 具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m。
具体的, 当服务信息中包含有设备地址信息时, 其它对等设备则可通 过单播形式发送服务公告消息或服务响应消息 ; 否则, 其它对等设备以广 播形式发送服务公告消息或服务响应消息。
在上述所描述的服务信息中, 服务信息有效期只在源服务信息 (即发 送方自身的服务信息) 中携带, 转发的服务信息则无需携带。 设备地址信 息则只在转发服务消息中携带, 源服务消息则无需额外携带 (因为已包含 在帧头地址域中)。
在本发明实施例中, 服务公告消息用于传播服务信息, 实现对等设备 间的相互发现; 服务公告消息中携带的服务信息包括发送方的 服务信息 (如, 本发明实施例中的第一服务信息), 也可以包括第三方(即除发送方 和接收方的对等设备, 如本发明实施例中的第二设备) 的服务信息。
407、 第一设备发送所述第一服务公告消息。
在实际应用中, 第一设备可以使用广播的方式向四周发送该第 一服务 公告消息, 使得尽量多的对等设备可以发现该第一设备的 服务。
可选的, 第一设备可以在一个服务发现周期内发送 N P 次所述第一服务 公告消息, 所述服务发现周期分为 N P 个等分时间段, 所述第一设备在每个 所述等分时间段内随机发送一次所述第一服务 公告消息, 所述为 N P 大于零 的整数。
408、 第一设备判断所述第三服务信息是否为所述第 一设备所需要的服 务;
若所述第三服务信息为所述第一设备所需要的 服务, 则执行步骤 409; 若所述第三服务信息不是所述第一设备所需要 的服务, 则忽略所述第 三服务信息。
409、 第一设备向生成所述第三服务信息的第三设备 返回服务响应消 息。
第一设备向生成所述第三服务信息的第三设备 返回服务响应消息; 可 选的, 为了避免非可达节点, 在发送服务响应消息之前, 第一设备可以获 取所述第二服务公告消息的接收信号 RSSI,若所述 RSSI大于第二 RSSI阔值, 则确定所述第三设备处于所述第一设备的可信 半径范围内 (即第三设备在 第一设备的通信范围内) , 并触发所述向发送所述第三服务信息的第三设 备返回服务响应消息的步骤。
可选的, 为了避免非可达节点, 还可以釆用较低的功率发送服务公告 消息, 以较高的功率发送服务响应消息, 具体的: 当设备釆用密集模式时, 使用较低功率进行发射, 故传输范围比稀疏模式减小。 稀疏模式发射功率 称为高功率, 密集模式下发射功率称为低功率。 因此, 此方案的关键在于, 密集模式下的服务公告消息以低功率发射, 但响应釆用高功率。 通过合适 的参数设置 (低功率、 允许转发的跳数等) , 上述方法可避免不可达节点 的响应。 显然, 对于仅允许一跳转发而言, 最优的的参数设置应满足 2x低 功率传输半径 =高功率传输半径。
在本发明实施例中, 假定对等设备间在密集模式下发送服务公告消 息 的功率都相等, 第一设备可以以第一功率向所述第三设备发送 服务响应消 息, 所述第一功率大于所述第二设备用于发送所述 第二服务公告消息的第 二功率, 即第一设备以较高的功率向所述第三设备发送 服务响应消息。 具 体的,所述第一功率所形成的传输半径为所述 第二功率形成的传输半径的 M 倍, 所述 M为大于一的整数。
下面对用于执行上述服务公告消息的传输方法 的本发明服务公告消息 的传输设备的实施例进行说明, 其逻辑结构请参考图 5, 本发明实施例中服 务公告消息的传输设备的一个实施例包括:
消息生成单元 501, 用于生成第一服务公告消息, 所述第一服务公告消 息包括: 第一设备的第一服务信息和至少一个第二设备 的第二服务信息; 所述第二服务信息所述第一设备接收所述第二 设备发送的消息获得的, 所 述第二设备为第一设备的对等设备; 所述第一服务信息用于使得在第一设 备通信范围内的对等设备获知第一设备的服务 信息, 所述第二服务信息用 于使得在所述第二设备通信范围内的对等设备 获知所述第二设备的服务信 息;
消息发送单元 502, 用于发送所述第一服务公告消息。
可选的, 本发明实施例中的设备还包括:
消息接收单元 503, 用于在生成第一服务公告消息之前,接收所述 至少 一个第二设备发送的第二服务公告消息, 所述第二服务公告消息包括: 所 述第二服务信息;
存储单元 506, 用于将所述第二服务信息加入携带候选列表中 , 所述携 带候选列表中存储可携带在所述第一服务公告 消息中发送的非本地的服务 信息。
进一步的, 所述消息生成单元 501包括:
信息提取模块 5011, 用于在所述第二服务公告消息中仅提取所述第 二 设备的第二服务信息, 并将所述第二服务信息存入第一设备的携带候 选列 表中;
信息选取模块 5012, 用于在所述第一设备的携带候选列表中, 选取 N 个第二服务信息生成第一服务公告消息, 所述 N为大于零的整数, 且所述 N小于或等于所述携带候选列表中第二服务信 存储的个数, 所述 N个第 二服务信息的总数据量小于所述第一服务公告 消息的消息包容量。
所述消息发送单元 502具体用于: 在一个服务发现周期内发送 N P 次所 述第一服务公告消息, 所述服务发现周期分为 N P 个等分时间段, 第一设备 在每个所述等分时间段内随机发送一次所述第 一服务公告消息, 所述为 N P 大于零的整数。
可选的, 本发明实施例中的服务公告消息的传输设备还 包括: 环境判定单元 504,用于根据所述第一服务公告消息的收发状 态判断所 述第一设备是否处于密集环境; 若是, 则触发所述消息生成单元生成所述 第一服务公告消息; 若否, 则直接触发所述消息发送单元发送没有携带所 述第二服务信息的第一服务公告消息。
进一步的, 所述环境判定单元 504包括:
第一判断模块 5041, 用于在预定义时间 T。内分别统计接收到的稀疏模 式和密集模式的服务公告消息的数量 V sparee 和数量 V dense ; 当 01^^^ + a 2 V dense > thri时, 则认为处于密集环境, 所述 αι 、 a 2 分别为 V sparse 和 V dense 的加权系数, 所述 为第一密集环境阔值;
或,
第二判断模块 5042, 用于在预定义时间 T。内分别统计接收到的稀疏模 式和密集模式的服务公告消息的数量 V sparse 和数量 V dense ; 当(^Vspa^ + a 2 V dense T 2 )/T。 >thr 2 时, 则认为处于密集环境, 所述 αι 、 a 2 分别为 V sparse 和 V dense 的加权系数, 所述 thr 2 第二密集环境阔值;
或,
第三判断模块 5043, 用于统计发送所述第一服务公告消息的等待时 间 的平均值 T A ; 若所述 T A >thr 3 , 则认为处于密集环境, 所述等待时间为第一 设备从监听信道开始到成功发送所述第一服务 公告消息所需要的时间, 所 述 thr 3 为第三密集环境阔值。
可选的, 本发明实施例中的服务公告消息的传输设备还 包括: 信号获取单元 505, 用于获取所述第二服务公告消息的 RSSI;
所述存储单元 506具体用于, 若所述 RSSI大于第一 RSSI阔值, 则将 所述第二服务信息加入所述第一设备的携带候 选列表中。
可选的, 本发明实施例中的设备还包括:
服务判定单元 507, 用于若所述第二服务公告消息携带有第三服务 信 息, 则判断所述第三服务信息是否为所述第一设备 所需要的服务, 所述消 息发送单元还用于当所述服务判定单元判断结 果为是时, 向生成所述第三 服务信息的设备返回服务响应消息。
进一步的, 所述设备还包括:
响应判定单元 508, 用于若所述 RSSI大于第二 RSSI阔值, 则触发所 述消息发送单元向生成所述第三服务信息的设 备返回服务响应消息。
所述消息发送单元具体以第一功率向所述第三 服务信息对应的设备发 送服务响应消息, 所述第一功率大于所述第二设备用于发送所述 第二服务 公告消息的第二功率。
本发明实施例的服务公告消息的传输设备中各 个单元具体的交互过程 ^口下:
消息接收单元 503接收所述第二设备发送的第二服务公告消息 , 所述 第二服务公告消息中携带有第二服务信息, 所述第二设备为所述第一设备 的对等设备。
具体的, 所述第二服务信息包括: 第二设备的服务标识和运行规律信 息; 所述服务标识用于表示第二设备所要提供的服 务, 和 /或第二设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息; 时间 信息如: 唤醒时间(用于指示对等设备处于激活状态的 时间); 信道信息如: opera t ing c las s 和 channe l number (表示对等设备在监听状态时将位于 哪个工作信道)。 可以理解的是, 在实际应用中, 运行规律信息还可以包括 有其它内容, 此处具体不作限定。
进一步的, 所述还可以第二服务信息包括: 所述第二设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m (即其 它对等设备只允许在 m个服务发现请求消息中携带该服务信息)。
具体的, 当服务信息中包含有对等设备地址信息时, 其它对等设备则 可通过单播形式发送服务公告消息或服务响应 消息; 否则, 其它对等设备 以广播形式发送服务公告消息或服务响应消息 。
在第一设备接收到第二设备发送的第二服务公 告消息之后, 若第二服 务公告消息中包括有多个设备的服务信息, 则仅提取在所述第二服务公告 消息中所述第二设备的第二服务信息, 并将所述第二服务信息存入所述第 一设备的携带候选列表中; 所述携带候选列表用于存储可携带在所述第一 服务公告消息中发送的非本地的服务信息。 第一设备可以在所述第一设备 的携带候选列表中, 选取 N个第二服务信息生成第一服务公告消息, 所述 N 为大于零的整数, 且所述 N 小于或等于所述携带候选列表中第二服务信息 存储的个数, 所述 N个第二服务信息的总数据量小于所述第一服 公告消 息的消息包容量, 进一步可选的, 所述 N个第二服务信息的总数据量可以 最接近所述消息包容量。
可选的, 若所述第二服务公告消息携带有第三服务信息 , 服务判定单 元 507判断所述第三服务信息是否为所述第一设备 所需要的服务, 若所述第 三服务信息为所述第一设备所需要的服务, 则触发消息发送单元向生成所 述第三服务信息的设备返回服务响应消息。
可选的, 为了避免非可达节点, 在发送服务响应消息之前, 信号获取 单元 505可以获取所述第二服务公告消息的接收信号 RSSI,若所述 RSSI大于 第二 RSSI阔值, 响应判定单元 508则确定所述第三设备处于所述第一设备的 可信半径范围内 (即第三设备在第一设备的通信范围内) , 并触发所述向 发送所述第三服务信息的第三设备返回服务响 应消息的步骤。 可选的, 为了避免非可达节点, 还可以釆用较低的功率发送服务公告 消息, 以较高的功率发送服务响应消息, 具体的: 当设备釆用密集模式时, 使用较低功率进行发射, 故传输范围比稀疏模式减小。 稀疏模式发射功率 称为高功率, 密集模式下发射功率称为低功率。 因此, 此方案的关键在于, 密集模式下的服务公告消息以低功率发射, 但响应釆用高功率。 通过合适 的参数设置 (低功率、 允许转发的跳数等) , 上述方法可避免不可达节点 的响应。 显然, 对于仅允许一跳转发而言, 最优的的参数设置应满足 2x低 功率传输半径 =高功率传输半径。
可选的, 在获取了第二服务公告消息之后, 可以由信号获取单元 505 获取所述第二服务公告消息的 RSSI; 若所述 RSSI大于第一 RSSI阔值, 则 再由存储单元 506确定所述第二设备处于所述第一设备的转发 半径范围内, 则提取所述第二设备的第二服务信息。
在获取了第二服务公告消息之后, 还可以由环境判定单元 504根据预定 义时间内收到的服务公告消息的数量判断所述 第一设备是否处于密集环 境; 若是, 则触发所述消息生成单元; 若否, 则直接触发所述消息发送单 元发送没有携带所述第二服务信息的第一服务 公告消息。
具体的, 密集环境的判定可以由第一判断模块 5041 在预定义时间 T 0 内分别统计接收到的稀疏模式和密集模式的服 务公告消息的数量 V sparse 和 数量 V dense ; 当(A rse+ th 时,设备认为处于密集环境, 所述 ( a 2 分别为 V spars o V dense 的加权系数, 所述 th^第一密集环境阔值。 否则, 设备认为处于稀疏环境。
密集环境的判定也可以由第二判断模块 5042在预定义时间 T。内分别统 计接收到的稀疏模式和密集模式的服务公告消 息的数量 V sparee 和数量 V dense ; 当 (aiVsparseTi + D/To hl^时, 设备认为处于密集环境, 所述 ( tt 2 分别为 V spars o V dense 的加权系数, 所述 thr 2 第二密集环境阔值。 否则, 设 备认为处于稀疏环境。
密集环境的判定还可以由第三判断模块 5043统计发送所述第一服务公 告消息的等待时间的平均值 T A ; 若所述 T A >thr3, 则认为处于密集环境; 否 则, 设备认为处于稀疏环境。 所述等待时间为所述第一设备从监听信道开 始到成功发送所述第一服务公告消息所需要的 时间。
在确定了需要携带的服务信息之后, 消息生成单元 501 生成第一服务 公告消息, 所述第一服务公告消息包括: 所述第一设备的第一服务信息和 N 个第二设备的第二服务信息。
所述第一服务信息用于使得在所述第一设备通 信范围内的对等设备获 知所述第一设备的服务信息, 所述第二服务信息用于使得在所述第二设备 通信范围内的对等设备获知所述第二设备的服 务信息。
具体的, 所述第一服务信息包括: 第一设备的服务标识和运行规律信 息; 所述服务标识用于表示第一设备所要提供的服 务, 和 /或第一设备所需 要的服务; 所述运行规律信息具体可以包括时间信息和 /或信道信息。
进一步的, 所述第一服务信息还可以包括: 所述第一设备的服务信息 有效期, 和 /或设备地址信息。
具体的, 服务信息有效期可以表示其它对等设备在此有 效期内可携带 该服务信息, 超过此有效期则服务信息失效, 其它对等设备不再携带。 某 些情况下, 该服务信息有效期可用运行规律中的时间信息 表示, 即两者用 同一值表示。 有效期既可以是时间值, 也可以是其它值, 例如次数 m。
具体的, 当服务信息中包含有对等设备地址信息时, 其它对等设备则 可通过单播形式发送服务公告消息或服务响应 消息; 否则, 其它对等设备 以广播形式发送服务公告消息或服务响应消息 。
在上述所描述的服务信息中, 服务信息有效期只在源服务信息 (即发 送方自身的服务信息) 中携带, 转发的服务信息则无需携带。 对等设备地 址信息则只在转发服务消息中携带, 源服务消息则无需额外携带 (因为已 包含在帧头地址域中) 。
在生成了所述第一服务公告消息之后, 消息发送单元 502 第一设备可 以使用广播的方式向四周发送该第一服务公告 消息, 使得尽量多的对等设 备可以发现该第一设备。
可选的, 消息发送单元 502可以在一个服务发现周期内发送 N P 次所述第 一服务公告消息, 所述服务发现周期分为 N P 个等分时间段, 所述第一设备 在每个所述等分时间段内随机发送一次所述第 一服务公告消息, 所述 N P 为 大于零的整数。
本发明实施例还提供了一种计算机存储介质, 其中, 该计算机存储介 质可存储有程序, 该程序执行时包括上述方法实施例中记载的服 务公告消 息的传输方法的部分或全部步骤。 请参见图 6, 本发明实施例还提供了一种服务公告消息的传 输设备, 所 述设备为第一设备, 具体可包括:
接收器 601, 发送器 602, 存储器 603和处理器 604 (设备中的处理器 的数量可以为一个或多个, 图 6 中以一个处理器为例)在本发明的一些实 施例中, 接收器 601, 发送器 602, 存储器 603和处理器 604可通过总线或 其它方式连接, 其中, 图 6中以通过总线连接为例。
其中, 所述存储器 603可以用于存储如下内容:
所述第一服务公告消息包括: 所述第一设备的第一服务信息和第二设 备的第二服务信息; 所述第二服务信息为所述第一设备接收所述第 二设备 发送的消息获得的; 所述第一服务信息用于使得在所述第一设备通 信范围 内的设备获知所述第一设备的服务信息, 所述第二服务信息用于使得在所 述第二设备通信范围内的设备获知所述第二设 备的服务信息。
所述第二服务公告消息包括: 所述第二服务信息; 所述携带候选列表 用于存储可携带在所述第一服务公告消息中发 送的非本地的服务信息。
所述第一服务信息包括: 所述第一设备的服务标识和运行规律信息; 所述第二服务信息包括: 所述第二设备的服务标识和运行规律信息; 所述运行规律信息包括: 时间信息和 /或信道信息。
所述第一服务信息还可以包括: 所述第一设备的服务信息有效期, 和 / 或设备地址信息;
所述第二服务信息还可以包括: 所述第二设备的服务信息有效期, 和 / 或设备地址信息。
接收器 601用于接收所述第二设备发送的第二服务公告 消息。
发送器 602用于发送所述第一服务公告消息, 还可以用于向生成第三 服务信息的设备返回服务响应消息。
处理器 604用于执行如下步骤:
在接收器 601接收所述第二设备发送的第二服务公告消息 之后, 若第 二服务公告消息中包括有多个设备的服务信息 , 则仅提取在所述第二服务 公告消息中所述第二设备的第二服务信息, 并将所述第二服务信息存入所 述第一设备的携带候选列表中; 根据所述第一服务公告消息的消息包容量, 在所述第一设备的携带候选列表中选择 N个服务信息作为第一服务公告消 息所需要携带的信息, 所述 N为大于零的整数。 可选的, 若所述第二服务公告消息携带有第三服务信息 , 则判断所述 第三服务信息是否为所述第一设备所需要的服 务, 若所述第三服务信息为 所述第一设备所需要的服务, 则指示发送器 602向生成所述第三服务信息的 设备返回服务响应消息。
可选的, 为了避免非可达节点, 在发送服务响应消息之前, 可以获取 所述第二服务公告消息的接收信号 RSSI, 若所述 RSSI大于第二 RSSI阔值, 则确定所述第三设备处于所述第一设备的可信 半径范围内 (即第三设备在 第一设备的通信范围内) , 并触发所述向发送所述第三服务信息的第三设 备返回服务响应消息的步骤。
可选的, 为了避免非可达节点, 还可以釆用较低的功率发送服务公告 消息, 以较高的功率发送服务响应消息, 具体的: 当设备釆用密集模式时, 使用较低功率进行发射, 故传输范围比稀疏模式减小。 稀疏模式发射功率 称为高功率, 密集模式下发射功率称为低功率。 因此, 此方案的关键在于, 密集模式下的服务公告消息以低功率发射, 但响应釆用高功率。 通过合适 的参数设置 (低功率、 允许转发的跳数等) , 上述方法可避免不可达节点 的响应。 显然, 对于仅允许一跳转发而言, 最优的的参数设置应满足 2x低 功率传输半径 =高功率传输半径。
可选的, 在获取了第二服务公告消息之后, 可以获取所述第二服务公 告消息的 RSSI; 若所述 RSSI大于第一 RSSI阔值, 则确定所述第二设备处 于所述第一设备的转发半径范围内, 则提取所述第二设备的第二服务信息。
在获取了第二服务公告消息之后, 还可以根据预定义时间内收到的服 务公告消息的数量判断第一设备是否处于密集 环境; 若是, 则触发所述消 息生成单元; 若否, 则直接触发所述消息发送单元发送没有携带所 述第二 服务信息的第一服务公告消息。
具体的, 密集环境的判定可以在预定义时间 T。内分别统计接收到的稀 疏模式和密集模式的服务公告消息的数量 V sparse 和数量 V dense ; 当 α^^^ + a 2 V dense > thri时,设备认为处于密集环境, 所述 αι 、 a 2 分别为 V sparse 和 V dense 的加权系数, 所述 th ri 第一密集环境阔值。 否则, 设备认为处于稀疏环境。
密集环境的判定也可以在预定义时间 T。内分别统计接收到的稀疏模式 和密集模式的服务公告消息的数量 V sparee 和数量 V dense ; 当(aA^^e^ + a 2 V dense T 2 )/T。 >thr 2 时, 设备认为处于密集环境, 所述 αι 、 a 2 分别为 V sparse 和 V dense 的加权系数, 所述 thr 2 第二密集环境阔值。 否则, 设备认为处于稀 疏环境。
密集环境的判定还可以统计发送所述第一服务 公告消息的等待时间的 平均值 T A ; 若所述 T A >thr3, 则认为处于密集环境; 否则, 设备认为处于稀 疏环境。 所述等待时间为所述第一设备从监听信道开始 到成功发送所述第 一服务公告消息所需要的时间。
在确定了需要携带的服务信息之后, 生成第一服务公告消息, 所述第 一服务公告消息包括: 所述第一设备的第一服务信息和第二设备的第 二服 务信息。
在生成了所述第一服务公告消息之后, 可以指示发送器 602 可以使用 广播的方式向四周发送该第一服务公告消息, 使得尽量多的对等设备可以 发现该第一设备的服务。
可选的, 可以指示发送器 602可以在一个服务发现周期内发送 N P 次所述 第一服务公告消息, 所述服务发现周期分为 N P 个等分时间段, 所述第一设 备在每个所述等分时间段内随机发送一次所述 第一服务公告消息, 所述 N P 为大于零的整数。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置和方法 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性 的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以 有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个 系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之 间的耦合或直接耦合或通信连接可以是通过一 些接口, 装置或单元的间接 耦合或通信连接, 可以是电性, 机械或其它的形式。 作为单元显示的部件可以是或者也可以不是物 理单元, 即可以位于一个地 方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的 部分或者全部单元来实现本实施例方案的目的 。
另外, 在本发明各个实施例中的各功能单元可以集成 在一个处理单元 中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在 一个单元中。 上述集成的单元既可以釆用硬件的形式实现, 也可以釆用软 件功能单元的形式实现。 所述集成的单元如果以软件功能单元的形式实 现并作为独立的产品销 售或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做 出贡献的部分或者该技术方 案的全部或部分可以以软件产品的形式体现出 来, 该计算机软件产品存储 在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以 是个人 计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述 方法的全 部或部分步骤。而前述的存储介质包括: U盘、移动硬盘、只读存储器( ROM, Read-Only Memory ). 随机存取存 4诸器 ( RAM, Random Access Memory )、 磁碟或者光盘等各种可以存储程序代码的介质 。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可 轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明 的保护范围应所述以权利要求的保护范围为准 。