发明内容
本发明实施例所要解决的技术问题在于,提供一种服务发现方法及装置,以,减少服务发现时的功耗及对信道的占用,提高媒体利用效率。
为了解决上述技术问题,本发明实施例第一方面提供了一种服务发现方法,包括:
第一设备构造零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配;
接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
在本发明实施例第一方面的第一种可能的实现方式中,所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述第一设备构造零数据报文请求帧,包括:
所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文请求帧;或者,
所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,包括:
将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
结合第一方面或结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现,包括:
接收所述第二设备返回的零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;
发送携带所述第一设备的服务标识信息及地址信息的探测请求帧至所述第二设备;
接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第二设备的服务发现。
结合第一方面或结合第一方面的第一或第二种可能的实现方式,在第四种可能的实现方式中,所述接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现,包括:
接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测请求帧;
发送携带所述第一设备的服务标识信息及地址信息的探测响应帧至所述第二设备,完成与所述第二设备的服务发现。
结合第一方面或结合第一方面的第一或第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
结合第一方面或结合第一方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
结合第一方面或结合第一方面的第一或第二或第三或第四或第五或第六种可能的实现方式,在第七种可能的实现方式中,所述零数据报文请求帧还包含所述第一设备的地址信息。
本发明实施例第二方面提供了一种服务发现方法,包括:
第二设备接收第一设备发送的零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配;
若是,则所述第二设备发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
在本发明实施例第二方面的第一种可能的实现方式中,所述第二设备发送响应消息至所述第一设备,完成与所述第一设备的服务发现,包括:
发送携带所述第二设备的服务标识信息及地址信息的探测请求帧;
接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
在本发明实施例第二方面的第二种可能的实现方式中,所述第二设备发送响应消息至所述第一设备,完成与所述第一设备的服务发现,包括:
所述第二设备构造零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;
发送所述零数据报文响应帧至所述第一设备;
接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧;
发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述零数据报文响应帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述第二设备构造零数据报文响应帧,包括:
所述第二设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文响应帧;或者,
所述第二设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文响应帧。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,包括:
将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
结合第二方面的第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,所述零数据报文响应帧还包含所述第二设备的地址信息和/或所述第一设备的地址信息。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五或第六种可能的实现方式,在第七种可能的实现方式中,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
结合第二方面或结合第二方面的第一或第二或第三或第四或第五或第六或第七种可能的实现方式,在第八种可能的实现方式中,所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
本发明实施例第三方面提供了一种服务发现装置,包括:
构造单元,用于构造零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
发送单元,用于发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配;
接收单元,用于接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
在本发明实施例第三方面的第一种可能的实现方式中,所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述构造单元具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文请求帧;或者,
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述构造单元将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转时,具体用于将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
结合第三方面或结合第三方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述接收单元具体用于:
接收所述第二设备返回的零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;
指示所述发送单元发送携带所述第一设备的服务标识信息及地址信息的探测请求帧至所述第二设备。
结合第三方面或结合第三方面的第一或第二种可能的实现方式,在第四种可能的实现方式中,所述接收单元具体用于:
接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测请求帧;
指示所述发送单元发送携带所述第一设备的服务标识信息及地址信息的探测响应帧至所述第二设备,完成与所述第二设备的服务发现。
结合第三方面或结合第三方面的第一或第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,所述零数据报文请求帧还包含所述第一设备的地址信息。
结合第三方面或结合第三方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
结合第三方面或结合第三方面的第一或第二或第三或第四或第五或第六种可能的实现方式,在第七种可能的实现方式中,所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
本发明实施例第四方面提供了一种服务发现装置,包括:
接收单元,用于接收第一设备发送的零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
判断单元,用于根据所述接收单元接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配;
发送单元,用于若所述判断单元判定所述第一设备为匹配设备,则发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
在本发明实施例第四方面的第一种可能的实现方式中,所述发送单元具体用于:
发送携带所述第二设备的服务标识信息及地址信息的探测请求帧,以使所述接收单元接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
结合第四方面或结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
构造单元,用于构造零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;
所述发送单元具体用于:
在所述构造单元构造零数据报文响应帧后,发送所述零数据报文响应帧至所述第一设备;
若所述接收单元接收到所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧,发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述零数据报文响应帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述构造单元具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文响应帧;或者,
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中的预设的至少一个比特翻转,构造所述零数据报文响应帧。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述构造单元将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转时,将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
结合第四方面的第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,所述零数据报文响应帧还包含所述第二设备的地址信息和/或所述第一设备的地址信息。
结合第四方面或结合第四方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
结合第四方面或结合第四方面的第一或第二或第三或第四或第五或第六种可能的实现方式,在第七种可能的实现方式中,所述判断单元具体用于:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
结合第四方面或结合第四方面的第一或第二或第三或第四或第五或第六或第七种可能的实现方式,在第八种可能的实现方式中,所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
实施本发明实施例,具有如下有益效果:
通过发送帧长度较短的NDP请求帧来实现和其他设备的服务发现及关联,可显著降低设备的功耗;且由于帧长度较短,且仅携带了设备的部分的服务标识信息,因此信息量较少,可显著降低对信道资源的占用,减少对其他Wi-Fi网络的影响,提高了媒体的利用率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,为本发明一种服务发现方法的第一实施例的流程示意图,在本实施例中,所述方法包括以下步骤:
S101,第一设备构造零数据报文请求帧。
具体地,所述零数据报文(Null Data Packet,简称NDP)请求帧为不包含MAC层协议数据单元(Protocol Data Unit,简称PDU)的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。其中,MAC层PDU(简称MPDU)由MAC层头部、帧体、校验域及扩展部分组成。物理帧即为物理头结合MPDU构成的帧,其帧的长度较长,而所述NDP帧为不包含MPDU的物理帧即为只有物理头的物理帧,其帧长度短,可利用物理头中的信号(Signal,简称SIG)域携带信息。在802.11中,一个物理帧由物理头和可能存在的数据DATA部分组成。物理头一般由长、短训练序列和SIG域组成。在802.11n之前的正交频分复用(Orthogonal Frequency DivisionMultiplexing,简称OFDM)物理帧格式中,SIG域包括速率RATE字段、长度LENGTH字段、奇偶性Parity字段等。设备接收到一个帧后,首先根据SIG域中的RATE字段获知DATA部分的长度和速率即调制编码方式(Modulation and Coding Scheme,简称MCS),然后使用相应MCS解调出DATA部分。Parity字段用于对SIG域进行校验。物理头的发送默认使用基本速率(802.11n之前为1Mbps,802.11n及之后标准为6Mbps),而DATA部分的发送则使用SIG域中RATE字段指示的发送速率。如果没有DATA部分,而只发送物理头部分,并对SIG域进行合理设计,则可用SIG携带信息,达到减小帧长度的目的。这种帧即为NDP帧,也就是没有MAC层数据的物理层帧。使用NDP帧取代某些频繁使用且帧长度较长的常规帧,对于节能、提高媒体利用率等具有十分重要的意义。在本实施例中,所述第一设备即可以通过构造NDP请求帧,利用SIG域携带信息,起到缩短帧长度,降低功耗,提高媒体利用率的效果。
S102,发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配。
在NAN场景中,要求某设备持续发送服务发现请求消息以寻找到服务匹配的其他设备,在这个过程中,由于可匹配的其他设备可能一开始并不在该设备的通信范围之内,因此,服务发现的过程中,该设备需要发送多次的服务发现请求消息。如果利用常规帧中长度较长的探测请求帧来发送服务发现请求消息,那么设备的功耗将非常大,其功耗和帧长度以及发送次数成正比。且大量较长的探测请求帧也将占用大量的信道资源。但是采用本实施例中所述的NDP请求帧来进行发送的话,由于其帧长度较短,因此可以显著降低设备功耗,尤其在发送次数较多的情况下,对于功耗降低的效果越明显。同时,较短的帧长度也能降低对信道的占用,提高媒体利用率。
S103,接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
在本实施例中,所述服务类型可包括以下中的至少一项:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;又如,在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;又如,在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
具体地,随着第一设备持续不断的发送所述NDP请求帧,当所述第二设备接收到所述第一设备的NDP请求帧时,根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则可以判断所述第一设备的服务类型与所述第二设备的服务类型匹配,进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配,也即所述第二设备判定所述第一设备为匹配设备。对NDP请求帧进行响应,发送对应的响应消息给所述第一设备,完成与所述第二设备的服务发现;若所述第二设备根据判断得出所述第一设备与自身的服务需求匹配不匹配,则无需对所述第一设备的NDP帧进行响应。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。当然,也可以为用户的标识信息或设备的标识信息或用户标识信息对应的哈希值等等。
这样,在帧长度较短的NDP帧内,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息可以为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
更具体地,当所述第二设备判定所述第一设备为匹配设备时,其返回的响应帧同样可能为NDP类型的响应帧,其和所述NDP请求帧的格式可以一样,因此,可以在这一类NDP帧的信息中携带帧的类型信息以区分请求帧和响应帧。且为了后续的关联,还可以在这一类NDP帧中携带设备地址信息的一部分,与携带服务标识信息的方式类似,可以将设备MAC地址的一部分或设备MAC地址的哈希值或设备MAC地址哈希值的一部分携带在这一类NDP帧上,在不大量增加帧长度及信息量的前提下,实现携带地址信息的目的。
在本实施例中,通过持续发送帧长度较短的NDP请求帧来实现和其他设备的服务发现,可显著降低设备的功耗;且由于帧长度较短,仅携带设备的部分服务标识信息,因此信息量较少,可显著降低对信道资源的占用,减少对其他Wi-Fi网络的影响,提高了媒体的利用率。
请一并参照图2、图11、图12、图13及图15,图2为本发明一种服务发现方法的第二实施例的流程示意图,在本实施例中,所述方法包括以下步骤:
S201,所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值。
具体地,所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,802.11n定义了三种物理层汇聚过程(Physical Layer ConvergenceProcedure,简称PLCP)PDU格式,在三种格式中,第一种格式为旧有设备格式;第二种格式是在高吞吐量(High Throughput,简称HT)头之前加上了旧有设备的物理头,使得该格式能够兼容旧有设备;第三种格式则是纯粹的HT头,不兼容旧有设备。由于格式二中的旧有设备的物理头用于旧有设备兼容,且其旧有信号域(Legacy Signal,简称L-SIG)长度较短,故其L-SIG域不便修改。这样,作为NDP帧则只能考虑在其高吞吐量信号域(High ThroughputSignal,简称HT-SIG)中进行设计。
更具体地,请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HT Length)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。其中,在802.11n中定义了77种MCS,而7位的MCS字段可表示128种MCS,故还剩余51种保留组合。于是,可以利用这51种保留组合来表示具体的NDP帧类型。当一个旧有设备收到该帧时,由于无法解析MCS字段,故将丢弃该帧,达到了兼容旧有设备的目的。如果采用现有的MCS组合设计NDP帧,可能导致旧有设备出现未知的错误。
而在802.11ac中只有一种PLCP DPU(简称PPDU)格式,与802.11n类似的,可在其超高吞吐量信号域(Very High Throughput Signal,简称VHT-SIG)中进行NDP帧设计。具体地,802.11ac的VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,802.11ac中定义了10种MCS,而其包括的4位MCS字段可表示16种MCS,故还剩余6种保留组合。优选地,可以利用这6种保留组合来表示具体的NDP帧类型。当一个旧有设备收到该NDP帧时,由于无法解析MCS字段,故将丢弃该帧,达到了兼容的目的。
S202,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。
具体地,由于802.11n中已经定义了一种NDP帧,NDP Sounding(NDP探测帧),这种帧的HT-SIG域中的Not Sounding=0。为了兼容NDP sounding帧,在新的NDP请求帧中可以令Not Sounding=1。这样,加上6位尾比特字段、7位的MCS字段以及8位的CRC字段,HT-SIG中还剩余26位,可用来承载其它信息如设备的服务标识信息等。所述空闲的字段可以是未定义的字段,也可以是超出已定义的MCS方式后,剩余的字段。
请参照图12,为一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。具体地,在本实施例中为构造零数据报文请求帧,可在MCS字段的最后两位配置为11,使得HT-SIG域中的MCS大于或等于96,多于802.11n定义的MCS方式(77种),从而使MCS字段的前5位可在不引起旧有设备误解的情况下重新定义,这样便增加了5位空闲的字段可供使用;在剩余的未定义即空闲的26位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;当然,所述服务类型信息可以独立存在,也可以包含于所述帧类型信息中,如将帧类型分为查询请求帧、查询响应帧等。这样帧类型信息中便携带了服务类型信息如查询等。具体在构造时,将帧类型字段与服务类型字段构造为相邻字段即可;将第6-第7位分别设置为1、1,第8-第23位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;第26位必须设为1,可选地,还可以划分出第27-第34共8位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第24-第25位可以作为保留字段,留作备用。这样便构造了一个如图13所示的原始的NDP帧。图13是按照图12的方法构造零数据报文帧后所述零数据报文帧的帧结构图,如图所示,构造后的NDP帧包括旧有设备的物理头即旧有设备的短训练域、长训练域、信号域以及高吞吐量信号域。因为其包含了旧有设备的信息,因此能兼容旧有设备。
类似地,在802.11ac中构造NDP帧时,不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽(BW)字段;小组编号(Group ID)字段为0或63时表示单用户,否则表示多用户,而单用户和多用户时后续字段的含义不同,故也应保留。此外,由于802.11ac中已经定义了一种NDP帧,NDP Sounding(NDP探测帧),这种帧的VHT-SIG-B域为固定格式,其第5位=0,第8位=1,第12位=0。为兼容已定义的NDP sounding帧,在新的NDP帧中VHT-SIG-B中不与已定义的NDP sounding帧相同即可。一种简单的方法是反转其中一个或多个比特。例如,令第5位=1,或第8位=0,或第12位=1等等。这样,VHT-SIG-B中剩余的其它位还可用来承载信息。
以20MHz带宽为例,此时VHT-SIG-B长度为26位,VHT-SIG-B为48位。若采用多用户方式解析,则小组编号字段不为0或63即可,一种简单的实现方法是令小组编号字段中两个比特分别为0和1,此时小组编号字段中其它比特可重新定义,用于承载信息。这种情况下,MCS字段位于VHT-SIG-B中。为兼容NDP Sounding,令VHT-SIG-B中第5位=1。一种具体的NDP设计方案可以是,对于VHT-SIG中空闲的字段配置24位为服务标识字段;配置2位为服务类型字段。可选地,还可以在MCS字段基础上增加了2比特作为帧类型字段,故共可表示6×4=24种NDP帧类型;地址字段由两部分组成,共8位;在VHT-SIG-B中新增8位CRC字段,作为VHT-SIG-B的校验字段。上述方案中之所以在VHT-SIG-B中增添CRC字段,是因为现有标准中VHT-SIG-B的CRC校验位于DATA部分的服务域中。16位的服务域位于VHT-SIG-B之后,因此,可以考虑NDP帧中包含服务域。这样则无需在VHT-SIG-B中增添CRC字段,可将这8比特分配给服务标识字段和/或地址字段。例如,分配给服务标识字段,则可使其长度增加到32位,更进一步地,服务域中的7位扰频器初始字段及1位保留字段也可用于承载信息。此时,服务域中的CRC应为VHT-SIG-B及这些位的校验。这样便构造了一个如图15所示的原始的NDP帧。图15是按照图14的方法构造零数据报文帧后所述零数据报文帧的帧结构图,如图所示,构造后的NDP帧包括旧有设备的物理头即旧有设备的短训练域、长训练域、信号域以及高吞吐量信号域A、高吞吐量短训练域、高吞吐量长训练域及高吞吐量信号域B。因为其包含了旧有设备的信息,因此能兼容旧有设备。
S203,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文请求帧。
S204,发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配。
在NAN场景中,要求某设备持续发送服务发现请求消息以寻找到服务匹配的其他设备,在这个过程中,由于可匹配的其他设备可能一开始并不在该设备的通信范围之内,因此,服务发现的过程中,该设备需要发送多次的服务发现请求消息。如果利用常规帧中长度较长的探测请求帧来发送服务发现请求消息,那么设备的功耗将非常大,其功耗和帧长度以及发送次数成正比。且大量较长的探测请求帧也将占用大量的信道资源。但是采用本实施例中所述的NDP请求帧来进行发送的话,由于其帧长度较短,因此可以显著降低设备功耗,尤其在发送次数较多的情况下,对于功耗降低的效果越明显。同时,较短的帧长度也能降低对信道的占用,提高媒体利用率。
S205,接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
在本实施例中,所述服务类型可包括以下中的至少一项:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;又如,在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;又如,在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
具体地,随着第一设备持续不断的发送所述NDP请求帧,当所述第二设备接收到所述第一设备的NDP请求帧时,根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则可以判断所述第一设备的服务类型与所述第二设备的服务类型匹配,进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配,也即所述第二设备判定所述第一设备为匹配设备。对NDP请求帧进行响应,发送对应的响应消息给所述第一设备,完成与所述第二设备的服务发现;若所述第二设备根据判断得出所述第一设备与自身的服务需求匹配不匹配,则无需对所述第一设备的NDP帧进行响应。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,在帧长度较短的NDP帧内,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息可以为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
更具体地,当所述第二设备判定所述第一设备为匹配设备时,其返回的响应帧同样可能为NDP类型的响应帧,其和所述NDP请求帧的格式一样,因此,可以在这一类NDP帧的信息中携带帧的类型信息以区分请求帧和响应帧。且为了后续的关联,还可以在这一类NDP帧中携带设备地址信息的一部分,与携带服务标识信息的方式类似,可以将设备MAC地址的一部分或设备MAC地址的哈希值或设备MAC地址哈希值的一部分携带在这一类NDP帧上,在不大量增加帧长度及信息量的前提下,实现携带地址信息的目的。
在本实施例中,针对802.11n及802.11ac给出了具体地的构造NDP帧的方法,基于HT-SIG或VHT-SIG中MCS字段保留的组合实现对旧有设备的兼容,再配合其他空闲字段携带设备的服务类型及服务标识信息,实现利用较短帧长度的帧完成服务发现及关联的过程,构造简单且能兼容旧有设备,不会对现有网络中的其他设备造成不利影响。
请一并参照图3、图11、图14,图3为本发明一种服务发现方法的第三实施例的流程示意图,在本实施例中,所述方法包括以下步骤:
S301,所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。。
请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,在802.11n中,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HTLength)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。
请再参照图14,为另一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。在本实施例中,为构造零数据报文请求帧。如图14所示,具体地,除了8位的CRC字段及6位的尾比特字段之外,其他的34位均可配置用于携带其他信息。在剩余的未定义即空闲的34位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再将第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;第6-第21位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;可选地,还可以划分出第25-第34共10位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第22-第24位可以作为保留字段,留作备用。
而在802.11ac中,因为不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽字段。翻转预设比特实现对旧有设备的兼容的原理类似于基于802.11n的NDP设计。以VHT-SIG-A包括7位的尾比特字段及8位的CRC字段,若其中的8位CRC全部翻转为例,带宽字段仍需保留,故VHT-SIG-A中剩余32比特可用于承载信息。若带宽为20MHz且VHT-SIG-B中新增CRC字段,则VHT-SIG-B中剩余11位可用于承载信息;若VHT-SIG-B的CRC位于服务域,则VHT-SIG-B中剩余19位;若考虑使用服务域中的8比特(7位扰频器初始字段和1位保留字段),则VHT-SIG-B和服务域共剩余27比特。这样,可用于承载信息的比特位最多为59位。例如,带宽字段2位,服务类型字段2位,帧类型字段4位,服务标识字段36位,地址字段12位,保留字段3位等等。
S302,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段。
S303,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
设备在完成帧校验之后,即发送NDP帧之前,可先将HT-SIG中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
而在802.11ac中,VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,前者的CRC字段位于VHT-SIG-A中,设备在发送NDP帧之前,同样可以先将VHT-SIG-A中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
优选地,无论在802.11n还是在802.11ac中,为了降低两次校验所需计算量,可将所述HT-SIG或VHT-SIG-A域中的CRC字段部分或全部翻转。以全部CRC字段翻转为例,接收设备在做CRC校验时,只需将CRC之前部分的校验结果与CRC字段进行异或,若结果为00000000,表示该帧为正确接收的常规帧;若结果为11111111,表示该帧为正确接收的NDP帧;否则,该帧接收错误,丢弃之。这样便可以大大降低计算量。
在802.11n中,通过翻转预设比特的方式已经可以实现对旧有设备的兼容,而除CRC字段和尾比特字段即用于初始化编解码器的字段之外的34位均空闲,可用于承载设备的服务类型和服务标识信息。相对于本发明第二实施例中基于MCS字段保留组合的方案,本方案使得可用比特多出3位,可将这3位划分至任意字段如服务标识字段、服务类型字段,可选地,还可以划分至地址字段或保留字段。这样便构造了一个原始的NDP帧。类似地,在802.11ac中,使用翻转预设比特的方式来进行构造,空闲字段也将增多。
S304,发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配。
在NAN场景中,要求某设备持续发送服务发现请求消息以寻找到服务匹配的其他设备,在这个过程中,由于可匹配的其他设备可能一开始并不在该设备的通信范围之内,因此,服务发现的过程中,该设备需要发送多次的服务发现请求消息。如果利用常规帧中长度较长的探测请求帧来发送服务发现请求消息,那么设备的功耗将非常大,其功耗和帧长度以及发送次数成正比。且大量较长的探测请求帧也将占用大量的信道资源。但是采用本实施例中所述的NDP请求帧来进行发送的话,由于其帧长度较短,因此可以显著降低设备功耗,尤其在发送次数较多的情况下,对于功耗降低的效果越明显。同时,较短的帧长度也能降低对信道的占用,提高媒体利用率。
S305,接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
在本实施例中,所述服务类型可包括以下中的至少一项:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;又如,在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;又如,在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
具体地,随着第一设备持续不断的发送所述NDP请求帧,当所述第二设备接收到所述第一设备的NDP请求帧时,根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则可以判断所述第一设备的服务类型与所述第二设备的服务类型匹配,进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配,也即所述第二设备判定所述第一设备为匹配设备。对NDP请求帧进行响应,发送对应的响应消息给所述第一设备,完成与所述第二设备的服务发现;若所述第二设备根据判断得出所述第一设备与自身的服务需求匹配不匹配,则无需对所述第一设备的NDP帧进行响应。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,在帧长度较短的NDP帧内,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息可以为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
更具体地,当所述第二设备判定所述第一设备为匹配设备时,其返回的响应帧同样可能为NDP类型的响应帧,其和所述NDP请求帧的格式一样,因此,可以在这一类NDP帧的信息中携带帧的类型信息以区分请求帧和响应帧。且为了后续的关联,还可以在这一类NDP帧中携带设备地址信息的一部分,与携带服务标识信息的方式类似,可以将设备MAC地址的一部分或设备MAC地址的哈希值或设备MAC地址哈希值的一部分携带在这一类NDP帧上,在不大量增加帧长度及信息量的前提下,实现携带地址信息的目的。
在本实施例中,针对802.11n及802.11ac给出了另一种具体地构造NDP帧的方法,通过翻转预设比特实现对旧有设备的兼容,再配合其他空闲字段携带设备的服务类型及服务标识信息实现利用较短帧长度的帧完成服务发现及关联的过程,构造简单且能兼容旧有设备,不会对现有网络中的其他设备造成不利影响。
请一并参照图4、图11及图14,为本发明一种服务发现方法的第四实施例的流程示意图,在本实施例中,所述方法包括以下步骤:
S401,所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。。
请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,在802.11n中,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HTLength)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。
请再参照图14,为另一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。在本实施例中,为构造零数据报文请求帧。如图14所示,具体地,除了8位的CRC字段及6位的尾比特字段之外,其他的34位均可配置用于携带其他信息。在剩余的未定义即空闲的34位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再将第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;第6-第21位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;可选地,还可以划分出第25-第34共10位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第22-第24位可以作为保留字段,留作备用。
而在802.11ac中,因为不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽字段。翻转预设比特实现对旧有设备的兼容的原理类似于基于802.11n的NDP设计。以VHT-SIG-A包括7位的尾比特字段及8位的CRC字段,若其中的8位CRC全部翻转为例,带宽字段仍需保留,故VHT-SIG-A中剩余32比特可用于承载信息。若带宽为20MHz且VHT-SIG-B中新增CRC字段,则VHT-SIG-B中剩余11位可用于承载信息;若VHT-SIG-B的CRC位于服务域,则VHT-SIG-B中剩余19位;若考虑使用服务域中的8比特(7位扰频器初始字段和1位保留字段),则VHT-SIG-B和服务域共剩余27比特。这样,可用于承载信息的比特位最多为59位。例如,带宽字段2位,服务类型字段2位,帧类型字段4位,服务标识字段36位,地址字段12位,保留字段3位等等。
S402,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段。
S403,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
设备在完成帧校验之后,即发送NDP帧之前,可先将HT-SIG中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
而在802.11ac中,VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,前者的CRC字段位于VHT-SIG-A中,设备在发送NDP帧之前,同样可以先将VHT-SIG-A中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
优选地,无论在802.11n还是在802.11ac中,为了降低两次校验所需计算量,可将所述HT-SIG或VHT-SIG-A域中的CRC字段部分或全部翻转。以全部CRC字段翻转为例,接收设备在做CRC校验时,只需将CRC之前部分的校验结果与CRC字段进行异或,若结果为00000000,表示该帧为正确接收的常规帧;若结果为11111111,表示该帧为正确接收的NDP帧;否则,该帧接收错误,丢弃之。这样便可以大大降低计算量。
在802.11n中,通过翻转预设比特的方式已经可以实现对旧有设备的兼容,而除CRC字段和尾比特字段即用于初始化编解码器的字段之外的34位均空闲,可用于承载设备的服务类型和服务标识信息。相对于本发明第二实施例中基于MCS字段保留组合的方案,本方案使得可用比特多出3位,可将这3位划分至任意字段如服务标识字段、服务类型字段,可选地,还可以划分至地址字段或保留字段。这样便构造了一个原始的NDP帧。类似地,在802.11ac中,使用翻转预设比特的方式来进行构造,空闲字段也将增多。
S404,发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配。
在NAN场景中,要求某设备持续发送服务发现请求消息以寻找到服务匹配的其他设备,在这个过程中,由于可匹配的其他设备可能一开始并不在该设备的通信范围之内,因此,服务发现的过程中,该设备需要发送多次的服务发现请求消息。如果利用常规帧中长度较长的探测请求帧来发送服务发现请求消息,则可携带较完整的服务标识信息及设备地址信息,但设备的功耗将非常大,其功耗和帧长度以及发送次数成正比。且大量较长的探测请求帧也将占用大量的信道资源。但是采用本实施例中所述的NDP请求帧来进行发送的话,由于其帧长度较短,因此可以显著降低设备功耗,尤其在发送次数较多的情况下,对于功耗降低的效果越明显。同时,较短的帧长度也能降低对信道的占用,提高媒体利用率。NDP帧长度有限,一般无法携带完整的服务标识信息和完整的设备地址信息,但仍可通过携带部分服务标识信息(如,携带的服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分),或部分服务标识信息和部分设备地址信息(如,携带的地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分),达到与其他设备初步服务发现的目的。此后,一般仍需通过常规的探测请求/响应帧交互来完成最终的服务发现。当然,在某些情形下,服务标识信息较短,仅通过NDP帧即可完成服务发现,无需后续的常规探测请求/响应帧交互过程。
S405,接收所述第二设备返回的零数据报文响应帧。
具体地,所述第二设备在判定所述第一设备为匹配设备之后,可以按照如前述实施例中的方法构造NDP帧作为所述零数据报文响应帧,并将所述零数据报文响应帧发送给所述第一设备,其构造NDP响应帧的过程与所述第一设备构造NDP请求帧的过程类似,此处不再赘述。由于NDP帧的长度有限,通常无法携带完整的服务标识信息,或完整的服务标识信息及地址信息,因此此处所述第二设备判定所述第一设备为匹配设备可以理解为所述第二设备根据所述零数据报文请求帧中所携带的信息初步判定所述第一设备为匹配设备,为了最终判定所述第一设备为匹配设备以及真正实现服务发现,可以进一步通过下面的步骤S406和S407来实现,或者,也可以通过NDP帧或常规的探测请求帧/响应帧一次携带部分信息从而进行多次交互,从而最终确定对方是否为服务匹配的设备,从而完成服务发现。本发明各实施例中与此相同的地方,均可作同样的理解,而不再赘述。
S406,发送携带所述第一设备的服务标识信息及地址信息的探测请求帧至所述第二设备。
在所述第一设备接收到所述第二设备发送的NDP响应帧之后,因为在前面过程中两者发送及接收的均为NDP帧,由于NDP帧的长度有限,通常无法携带完整的服务标识信息,或完整的服务标识信息及地址信息,而无法完成真正的服务发现,因此还需要发送帧长度较长,携带信息充足的探测请求帧给所述第二设备,从而最终确定对方是否为服务匹配的设备,进而完成服务发现。
S407,接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第二设备的服务发现。
其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息。
在本实施例中,所述服务类型可包括以下中的至少一项:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备WI-FI接口的手机发布商品信息,表示“我提供某商品”;又如,在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备WI-FI接口的手机发布需求信息,表示“我需要某商品”;又如,在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
在本实施例中,所述第二设备发送给所述第一设备的响应帧同样也为NDP帧,其可携带帧类型信息、所述第二设备的服务类型信息及所述第二设备服务标识信息。
请一并参照图5、图11及图14,图5为本发明一种服务发现方法的第五实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S501,所述第一设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。。
请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,在802.11n中,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HTLength)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。
请再参照图14,为另一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。在本实施例中,为构造零数据报文请求帧。如图14所示,具体地,除了8位的CRC字段及6位的尾比特字段之外,其他的34位均可配置用于携带其他信息。在剩余的未定义即空闲的34位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再将第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;第6-第21位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;可选地,还可以划分出第25-第34共10位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第22-第24位可以作为保留字段,留作备用。
而在802.11ac中,因为不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽字段。翻转预设比特实现对旧有设备的兼容的原理类似于基于802.11n的NDP设计。以VHT-SIG-A包括7位的尾比特字段及8位的CRC字段,若其中的8位CRC全部翻转为例,带宽字段仍需保留,故VHT-SIG-A中剩余32比特可用于承载信息。若带宽为20MHz且VHT-SIG-B中新增CRC字段,则VHT-SIG-B中剩余11位可用于承载信息;若VHT-SIG-B的CRC位于服务域,则VHT-SIG-B中剩余19位;若考虑使用服务域中的8比特(7位扰频器初始字段和1位保留字段),则VHT-SIG-B和服务域共剩余27比特。这样,可用于承载信息的比特位最多为59位。例如,带宽字段2位,服务类型字段2位,帧类型字段4位,服务标识字段36位,地址字段12位,保留字段3位等等。
S502,将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段。
S503,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
设备在完成帧校验之后,即发送NDP帧之前,可先将HT-SIG中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
而在802.11ac中,VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,前者的CRC字段位于VHT-SIG-A中,设备在发送NDP帧之前,同样可以先将VHT-SIG-A中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
优选地,无论在802.11n还是在802.11ac中,为了降低两次校验所需计算量,可将所述HT-SIG或VHT-SIG-A域中的CRC字段部分或全部翻转。以全部CRC字段翻转为例,接收设备在做CRC校验时,只需将CRC之前部分的校验结果与CRC字段进行异或,若结果为00000000,表示该帧为正确接收的常规帧;若结果为11111111,表示该帧为正确接收的NDP帧;否则,该帧接收错误,丢弃之。这样便可以大大降低计算量。
在802.11n中,通过翻转预设比特的方式已经可以实现对旧有设备的兼容,而除CRC字段和尾比特字段即用于初始化编解码器的字段之外的34位均空闲,可用于承载设备的服务类型和服务标识信息。相对于本发明第二实施例中基于MCS字段保留组合的方案,本方案使得可用比特多出3位,可将这3位划分至任意字段如服务标识字段、服务类型字段,可选地,还可以划分至地址字段或保留字段。这样便构造了一个原始的NDP帧。类似地,在802.11ac中,使用翻转预设比特的方式来进行构造,空闲字段也将增多。
S504,发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配。
在NAN场景中,要求某设备持续发送服务发现请求消息以寻找到服务匹配的其他设备,在这个过程中,由于可匹配的其他设备可能一开始并不在该设备的通信范围之内,因此,服务发现的过程中,该设备需要发送多次的服务发现请求消息。如果利用常规帧中长度较长的探测请求帧来发送服务发现请求消息,那么设备的功耗将非常大,其功耗和帧长度以及发送次数成正比。且大量较长的探测请求帧也将占用大量的信道资源。但是采用本实施例中所述的NDP请求帧来进行发送的话,由于其帧长度较短,因此可以显著降低设备功耗,尤其在发送次数较多的情况下,对于功耗降低的效果越明显。同时,较短的帧长度也能降低对信道的占用,提高媒体利用率。
S505,接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测请求帧。
具体地,在所述第二设备接收所述NDP请求帧,判定所述第一设备为匹配设备之后,因为在前面过程中所述第一设备发送的均为NDP帧,通常携带不了自身完整的服务标识信息及地址信息,因此无法与所述第二设备完成真正的服务发现,因此所述第一设备和第二设备之间还需要通过发送帧长度较长、携带信息充足的常规的探测请求帧和探测响应帧,来最终确定对方是否为服务匹配的设备,进而完成两个设备之间的服务发现。具体地,可以由所述第二设备接收所述NDP请求帧,判定所述第一设备为匹配设备之后,发送帧长度较长、携带信息充足的探测请求帧给所述第一设备,作为对所述NDP请求帧的响应消息,然后结合步骤S506,最终完成两个设备之间的服务发现。当然,也可以由所述第二设备和第一设备每次携带部分信息发送给对方从而经过多次探测请求/响应交互之后,最终确定对方是否为服务匹配的设备,进而完成两个设备之间的服务发现。与第四实施例相比,本实施例五能够节省一个NDP响应帧,特别适合于第一设备发出服务通告而等待需要该服务的设备请求或响应的场景。
S506,发送携带所述第一设备的服务标识信息及地址信息的探测响应帧至所述第二设备,完成与所述第二设备的服务发现。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
在本实施例中,所述服务类型可包括以下中的至少一项:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备WI-FI接口的手机发布商品信息,表示“我提供某商品”;又如,在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备WI-FI接口的手机发布需求信息,表示“我需要某商品”;又如,在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
请参照图6,为本发明另一种服务发现方法的第一实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S601,第二设备接收第一设备发送的零数据报文请求帧。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
S602,根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配。若是,则执行步骤S603,否则执行步骤S604。
具体地,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
S603,所述第二设备发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
S604,不响应所述第一设备。
在本实施例中,所述服务类型可包括:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
可选的,所述零数据报文请求帧还可以包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
可选的,所述零数据报文响应帧还可以包含所述第二设备的地址信息和/或所述第一设备的地址信息。如果携带了地址信息,则可以减少两个设备的交互次数,提升服务发现的效率,但会增加所述零数据报文响应帧的信息携带量。
请参照图7,为本发明另一种服务发现方法的第二实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S701,第二设备接收第一设备发送的零数据报文请求帧。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
S702,根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配。若是,则执行步骤S703-S704,否则执行步骤S705。
具体地,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
S703,发送携带所述第二设备的服务标识信息及地址信息的探测请求帧。
具体地,该探测请求帧可以是针对所述第一设备发出,也可以是广播帧,对网络覆盖范围内的所有设备进行广播。
S704,接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
S705,不响应所述第一设备。
在本实施例中,所述服务类型可包括:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
可选的,所述零数据报文请求帧还可以包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
可选的,所述零数据报文响应帧还可以包含所述第二设备的地址信息和/或所述第一设备的地址信息。如果所述零数据报文响应帧还携带了地址信息,则可以减少两个设备的交互次数,提升服务发现的效率,但会增加所述零数据报文响应帧的信息携带量。
请参照图8,为本发明另一种服务发现方法的第三实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S801,第二设备接收第一设备发送的零数据报文请求帧。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
S802,根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配。若是,则执行步骤S803-S806,否则执行步骤S807。
具体地,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
S803,所述第二设备构造零数据报文响应帧。
其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息。
所述零数据报文响应帧帧还包含所述第二设备的地址信息或所述第一设备的地址信息。
S804,发送所述零数据报文响应帧至所述第一设备。
S805,接收所述第一设备返回的携带所述第一设备完整服务标识信息及地址信息的探测请求帧。
S806,发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
S807,不响应所述第一设备。
在本实施例中,所述服务类型可包括:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
可选的,所述零数据报文请求帧还可以包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
可选的,所述零数据报文响应帧还可以包含所述第二设备的地址信息或所述第一设备的地址信息。如果携带了地址信息,则可以减少两个设备的交互次数,提升服务发现的效率,但会增加所述零数据报文响应帧的信息携带量。
请一并参照图9、图11、图12、图13及图15,图9为本发明另一种服务发现方法的第四实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S901,第二设备接收第一设备发送的零数据报文请求帧。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
S902,根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配。若是,则执行步骤S903-S908,否则执行步骤S909。
具体地,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
S903,所述第二设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值。
具体地,802.11n定义了三种PPDU格式,在三种格式中,第一种格式为不支持NAN的旧有设备格式;第二种格式是在HT头之前加上了旧有设备的物理头,使得该格式能够兼容旧有设备;第三种格式则是纯粹的HT头,不兼容旧有设备。由于格式二中的旧有设备的物理头用于旧有设备兼容,且其L-SIG长度较短,故其L-SIG域不便修改。这样,作为NDP帧则只能考虑在其HT-SIG中进行设计。
更具体地,请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HT Length)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。其中,在802.11n中定义了77种MCS,而7位的MCS字段可表示128种MCS,故还剩余51种保留组合。于是,可以利用这51种保留组合来表示具体的NDP帧类型。当一个旧有设备收到该帧时,由于无法解析MCS字段,故将丢弃该帧,达到了兼容旧有设备的目的。如果采用现有的MCS组合设计NDP帧,可能导致旧有设备出现未知的错误。
而在802.11ac中只有一种PPDU格式,与802.11n类似的,可在其超高吞吐量信号域(Very High Throughput Signal,简称VHT-SIG)中进行NDP帧设计。具体地,802.11ac的VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,802.11ac中定义了10种MCS,而其包括的4位MCS字段可表示16种MCS,故还剩余6种保留组合。优选地,可以利用这6种保留组合来表示具体的NDP帧类型。当一个旧有设备收到该NDP帧时,由于无法解析MCS字段,故将丢弃该帧,达到了兼容的目的。
S904,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。
具体地,由于802.11n中已经定义了一种NDP帧,NDP Sounding(NDP探测帧),这种帧的HT-SIG域中的Not Sounding=0。为了兼容NDP sounding帧,在新的NDP响应帧中可以令Not Sounding=1。这样,加上6位尾比特字段、7位的MCS字段以及8位的CRC字段,HT-SIG中还剩余26位,可用来承载其它信息如设备的服务标识信息等。所述空闲的字段可以是未定义的字段,也可以是超出已定义的MCS方式后,剩余的字段。请参照图12,为一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。在本实施例中,为构造零数据报文响应帧。具体地,可在MCS字段的最后两位配置为11,使得HT-SIG域中的MCS大于或等于96,多于802.11n定义的MCS方式(77种),从而使MCS字段的前5位可在不引起旧有设备误解的情况下重新定义,这样便增加了5位空闲的字段可供使用;在剩余的未定义即空闲的26位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;将第6-第7位分别设置为1、1,第8-第23位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;第26位必须设为1,可选地,还可以划分出第27-第34共8位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第24-第25位可以作为保留字段,留作备用。这样便构造了一个如图13所示的原始的NDP帧。图13是按照图12的方法构造零数据报文帧后所述零数据报文帧的帧结构图,如图所示,构造后的NDP帧包括旧有设备的物理头即旧有设备的短训练域、长训练域、信号域以及高吞吐量信号域。因为其包含了旧有设备的信息,因此能兼容旧有设备。类似地,在802.11ac中,不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽(BW)字段;小组编号(Group ID)字段为0或63时表示单用户,否则表示多用户,而单用户和多用户时后续字段的含义不同,故也应保留。此外,由于802.11ac中已经定义了一种NDP帧,NDP Sounding(NDP探测帧),这种帧的VHT-SIG-B域为固定格式,其第5位=0,第8位=1,第12位=0。为兼容已定义的NDP sounding帧,在新的NDP帧中VHT-SIG-B中不与已定义的NDPsounding帧相同即可。一种简单的方法是反转其中一个或多个比特。例如,令第5位=1,或第8位=0,或第12位=1等等。这样,VHT-SIG-B中剩余的其它位还可用来承载信息。
以20MHz带宽为例,此时VHT-SIG-B长度为26位,VHT-SIG-B为48位。若采用多用户方式解析,则小组编号字段不为0或63即可,一种简单的实现方法是令小组编号字段中两个比特分别为0和1,此时小组编号字段中其它比特可重新定义,用于承载信息。这种情况下,MCS字段位于VHT-SIG-B中。为兼容NDP Sounding,令VHT-SIG-B中第5位=1。一种具体的NDP设计方案可以是,对于VHT-SIG中空闲的字段配置24位为服务标识字段;配置2位为服务类型字段。可选地,还可以在MCS字段基础上增加了2比特作为帧类型字段,故共可表示6×4=24种NDP帧类型;地址字段由两部分组成,共8位;在VHT-SIG-B中新增8位CRC字段,作为VHT-SIG-B的校验字段。上述方案中之所以在VHT-SIG-B中增添CRC字段,是因为现有标准中VHT-SIG-B的CRC校验位于DATA部分的服务域中。16位的服务域位于VHT-SIG-B之后,因此,可以考虑NDP帧中包含服务域。这样则无需在VHT-SIG-B中增添CRC字段,可将这8比特分配给服务标识字段和/或地址字段。例如,分配给服务标识字段,则可使其长度增加到32位,更进一步地,服务域中的7位扰频器初始字段及1位保留字段也可用于承载信息。此时,服务域中的CRC应为VHT-SIG-B及这些位的校验。这样便构造了一个如图15所示的原始的NDP帧。图15是按照图14的方法构造零数据报文帧后所述零数据报文帧的帧结构图,如图所示,构造后的NDP帧包括旧有设备的物理头即旧有设备的短训练域、长训练域、信号域以及高吞吐量信号域A、高吞吐量短训练域、高吞吐量长训练域及高吞吐量信号域B。因为其包含了旧有设备的信息,因此能兼容旧有设备。
S905,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文响应帧。
S906,发送所述零数据报文响应帧至所述第一设备。
S907,接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧。
S908,发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
S909,不响应所述第一设备。
在本实施例中,所述服务类型可包括:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
可选的,所述零数据报文请求帧还可以包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
可选的,所述零数据报文响应帧还可以包含所述第二设备的地址信息和/或所述第一设备的地址信息。如果携带了地址信息,则可以减少两个设备的交互次数,提升服务发现的效率,但会增加所述零数据报文响应帧的信息携带量。
请一并参照图10、图11及图14,图10为本发明另一种服务发现方法的第五实施例的流程示意图;在本实施例中,所述方法包括以下步骤:
S1001,第二设备接收第一设备发送的零数据报文请求帧。
其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
S1002,根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配。若是,则执行步骤S1003-S1008,否则执行步骤S1009。
具体地,所述根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配,包括:
根据所述零数据报文请求帧中所述第一设备的服务类型信息,判断所述第一设备的服务类型是否与所述第二设备的服务类型匹配;
若所述第一设备的服务类型为发布服务且所述第二设备的服务类型为查找服务;或所述第一设备的服务类型为查找服务且所述第二设备的服务类型为发布服务;或所述第一设备的服务类型为合作服务且所述第二设备的服务类型为合作服务;则进一步根据所述零数据报文请求帧中所述第一设备的服务标识信息,判断所述第一设备的提供的服务是否与所述第二设备需求的服务匹配;
若是,则判定所述第一设备与所述第二设备的服务需求匹配。
S1003,所述第二设备选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段。
请参照图11,为本发明服务发现方法中一种高吞吐量信号域的字段示意图。如图所示,在802.11n中,HT-SIG域包含48位,其中,第1-第7位的7位MCS字段用于指示DATA部分使用的调制编码方式;第8位为带宽(BW)字段;第9-第24位为16位的高吞吐量长度(HTLength)字段;第25位为平滑(Smoothing)字段,第26位为非探测(Not Sounding)字段;第27位为保留(Reserved)字段;第28位为聚合(Aggregation)字段;第29-30位为2位的空时分组编码字段;第31位为前向纠错编码字段;第32位为短保护间隔字段;第33-34位为扩展空间流数目字段;第35-42位为8位的循环冗余校验(Cyclic Redundancy Code,简称CRC)字段,用于表示HT-SIG域的循环冗余校验;第43-48位为6位的尾部比特字段,其各位的值均为0,用于初始化编解码器。
请再参照图14,为另一种按照本发明服务发现方法对高吞吐量信号域构造零数据报文帧后的字段示意图。在本实施例中,为构造零数据报文请求帧。如图14所示,具体地,除了8位的CRC字段及6位的尾比特字段之外,其他的34位均可配置用于携带其他信息。在剩余的未定义即空闲的34位中,可划分出第1-第2位为服务类型字段,表示所述第一设备的服务类型,如00表示合作、01表示发布、10表示查询、11表示保留等,如果服务类型较多,则可以用3位或更多位来表示设备的服务类型;此外再将第3-第5位作为帧类型字段,例如001表示NDP请求帧、010表示NDP响应帧等;第6-第21位作为16位的服务标识字段,用于表示所述第一设备的服务标识信息;可选地,还可以划分出第25-第34共10位的地址字段,用于表示所述第一设备的地址信息;第35-42位为CRC字段;第43-第48位为尾比特字段。剩下的第22-第24位可以作为保留字段,留作备用。
而在802.11ac中,因为不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽字段。翻转预设比特实现对旧有设备的兼容的原理类似于基于802.11n的NDP设计。以VHT-SIG-A包括7位的尾比特字段及8位的CRC字段,若其中的8位CRC全部翻转为例,带宽字段仍需保留,故VHT-SIG-A中剩余32比特可用于承载信息。若带宽为20MHz且VHT-SIG-B中新增CRC字段,则VHT-SIG-B中剩余11位可用于承载信息;若VHT-SIG-B的CRC位于服务域,则VHT-SIG-B中剩余19位;若考虑使用服务域中的8比特(7位扰频器初始字段和1位保留字段),则VHT-SIG-B和服务域共剩余27比特。这样,可用于承载信息的比特位最多为59位。例如,带宽字段2位,服务类型字段2位,帧类型字段4位,服务标识字段36位,地址字段12位,保留字段3位等等。
S1004,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段。。
具体地,在802.11n中,通过翻转预设比特的方式已经可以实现对旧有设备的兼容,而除CRC字段和尾比特字段即用于初始化编码器的字段之外的34位均空闲,可用于承载设备的服务类型或服务标识信息。相对于本发明第二实施例中基于MCS字段保留组合的方案,本方案使得可用比特多出3位,可将这3位划分至任意字段如服务标识字段、服务类型字段,可选地,还可以划分至地址字段或保留字段。这样便构造了一个原始的NDP帧。
而在802.11ac中,因为不同带宽时VHT-SIG-B长度不同,故应保留其用于表示带宽的带宽字段。翻转预设比特实现对旧有设备的兼容的原理类似于基于802.11n的NDP设计。以VHT-SIG-A包括7位的尾比特字段及8位的CRC字段,若其中的8位CRC全部翻转为例,带宽字段仍需保留,故VHT-SIG-A中剩余32比特可用于承载信息。若带宽为20MHz且VHT-SIG-B中新增CRC字段,则VHT-SIG-B中剩余11位可用于承载信息;若VHT-SIG-B的CRC位于服务域,则VHT-SIG-B中剩余19位;若考虑使用服务域中的8比特(7位扰频器初始字段和1位保留字段),则VHT-SIG-B和服务域共剩余27比特。这样,可用于承载信息的比特位最多为59位。例如,带宽字段2位,服务类型字段2位,帧类型字段4位,服务标识字段36位,地址字段12位,保留字段3位等等。这样便构造了一个原始的NDP帧。
S1005,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
设备在完成帧校验之后,即发送NDP帧之前,可先将HT-SIG中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
而在802.11ac中,VHT-SIG部分由VHT-SIG-A和VHT-SIG-B两部分组成,前者的CRC字段位于VHT-SIG-A中,设备在发送NDP帧之前,同样可以先将VHT-SIG-A中某些比特翻转。这样旧有设备接收到该帧后,CRC校验将发现帧错误,于是丢弃该帧;而新设备可配置其发现CRC校验错误时,将相应比特翻转并重新校验,若此时校验结果正确,则说明该帧为NDP帧。
优选地,无论在802.11n还是在802.11ac中,为了降低两次校验所需计算量,可将所述HT-SIG或VHT-SIG-A域中的CRC字段部分或全部翻转。以全部CRC字段翻转为例,接收设备在做CRC校验时,只需将CRC之前部分的校验结果与CRC字段进行异或,若结果为00000000,表示该帧为正确接收的常规帧;若结果为11111111,表示该帧为正确接收的NDP帧;否则,该帧接收错误,丢弃之。这样便可以大大降低计算量。
在802.11n中,通过翻转预设比特的方式已经可以实现对旧有设备的兼容,而除CRC字段和尾比特字段即用于初始化编解码器的字段之外的34位均空闲,可用于承载设备的服务类型和服务标识信息。相对于本发明第二实施例中基于MCS字段保留组合的方案,本方案使得可用比特多出3位,可将这3位划分至任意字段如服务标识字段、服务类型字段,可选地,还可以划分至地址字段或保留字段。这样便构造了一个原始的NDP帧。类似地,在802.11ac中,使用翻转预设比特的方式来进行构造,空闲字段也将增多。
S 1006,发送所述零数据报文响应帧至所述第一设备。
S1007,接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧。
S1008,发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
S1009,不响应所述第一设备。
在本实施例中,所述服务类型可包括:
发布服务,用于表示设备提供的服务;例如在流动农贸市场场景中,摊主可通过具备Wi-Fi接口的手机发布商品信息,表示“我提供某商品”;在朋友发现场景中,用户可广播自己的身份信息,表示“我是某人”等。
查找服务,用于表示设备需要的服务;例如在流动农贸市场场景中,顾客可通过具备Wi-Fi接口的手机发布需求信息,表示“我需要某商品”;在朋友发现场景中,用户可广播朋友的身份信息,表示“我找某人”等。
合作服务,用于表示设备寻求合作的服务。具体地,可表示需要和其它设备一起完成该服务,其中的设备地位平等。例如,在社交游戏场景中,所有参与者地位平等。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
可选的,所述零数据报文请求帧还可以包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
可选的,所述零数据报文响应帧还可以包含所述第二设备的地址信息和/或所述第一设备的地址信息。如果携带了地址信息,则可以减少两个设备的交互次数,提升服务发现的效率,但会增加所述零数据报文响应帧的信息携带量。
请参照图16,为本发明一种服务发现装置的第一实施例的组成示意图;在本实施例中,所述装置包括:构造单元100、发送单元200、接收单元300。
所述构造单元100用于构造零数据报文请求帧;其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息。
所述发送单元200用于发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配;
所述接收单元300用于接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述构造单元100具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值;
将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文请求帧。
或者,所述构造单元100具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段;
在完成帧校验之后,将所述高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
优选地,所述构造单元100将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转时,具体用于将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
所述接收单元300具体用于:
接收所述第二设备返回的零数据报文响应帧;
指示所述发送单元200发送携带所述第一设备的服务标识信息及地址信息的探测请求帧至所述第二设备;
接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第二设备的服务发现;
其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息。
或者,所述接收单元300具体用于:
接收所述第二设备返回的携带所述第二设备的服务标识信息及地址信息的探测请求帧;
指示所述发送单元200发送携带所述第一设备的服务标识信息及地址信息的探测响应帧至所述第二设备,完成与所述第二设备的服务发现。
其中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
请参照图17,为本发明一种服务发现装置的第二实施例的组成示意图;在本实施例中,所述装置包括:处理器800及与所述处理器800相配合的存储器900。
具体地,所述存储器用于存储所述处理器800执行的程序,所述处理器800用于构造零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
发送所述零数据报文请求帧以使第二设备接收所述零数据报文请求帧并判断所述第一设备是否与所述第二设备的服务需求匹配;
接收所述第二设备在判定所述第一设备与所述第二设备的服务需求匹配后返回的响应消息,完成与所述第二设备的服务发现。
所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述处理器800具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值;
将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文请求帧。
或者,所述处理器800具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文请求帧的帧类型信息承载于所述帧类型字段,将所述第一设备的服务类型信息承载于所述服务类型字段,将所述第一设备的服务标识信息承载于所述服务标识字段;
在完成帧校验之后,将所述高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文请求帧。
优选地,所述处理器800将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转时,具体用于将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
其中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
请参照图18,为本发明另一种服务发现装置的第一实施例的组成示意图;在本实施例中,所述装置包括:接收单元400、判断单元500、发送单元600。
所述接收单元400用于接收第一设备发送的零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
所述判断单元500用于根据所述接收单元400接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配;
所述发送单元600用于若所述判断单元500判定所述第一设备为匹配设备,则发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
所述发送单元600具体用于:
发送携带所述第二设备的服务标识信息及地址信息的探测请求帧,以使所述接收单元400接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
其中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
所述零数据报文响应帧帧还包含所述第二设备的地址信息和/或所述第一设备的地址信息。
请参照图19,为本发明另一种服务发现装置的第二实施例的组成示意图。在本实施例中,所述装置包括:接收单元400、判断单元500、发送单元600。
所述接收单元400用于接收第一设备发送的零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
所述判断单元500用于根据所述接收单元400接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配;
所述发送单元600用于若所述判断单元500判定所述第一设备为匹配设备,则发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
所述构造单元700用于构造零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;
所述发送单元600具体用于:
在所述构造单元700构造零数据报文响应帧后,发送所述零数据报文响应帧至所述第一设备;
若所述接收单元400接收到所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧,发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
所述零数据报文请求帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述构造单元700具体用于:
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值;
将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文响应帧。
或者,所述构造单元700具体用于:选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段;
将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段;
在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中的预设的至少一个比特翻转,构造所述零数据报文响应帧。
优选地,所述构造单元700将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转时,将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
其中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
所述零数据报文响应帧帧还包含所述第二设备的地址信息或所述第一设备的地址信息。
当然,由于设备之间的服务发现及关联是相互的,因此实施例中的服务发现装置既可以发送NDP请求帧发起服务发现,也可以接收其他设备的NDP请求帧返回NDP响应帧或常规的探测响应帧。
请参见图20,为本发明另一种服务发现装置的第三实施例的组成示意图。在本实施例中,所述装置包括:处理器1000及与所述处理器1000相配合的存储器1100。
所述存储器1100用于存储所述处理器1000执行的程序。
所述处理器1000用于接收第一设备发送的零数据报文请求帧,其中,所述零数据报文请求帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文请求帧包含所述零数据报文请求帧的帧类型信息、所述第一设备的服务类型信息及所述第一设备的服务标识信息;
根据接收的所述零数据报文请求帧,判断所述第一设备是否与所述第二设备的服务需求匹配;
若是,则发送响应消息至所述第一设备,完成与所述第一设备的服务发现。
具体地,所述处理器1000具体用于发送携带所述第二设备的服务标识信息及地址信息的探测请求帧;接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。或者,
构造零数据报文响应帧,其中,所述零数据报文响应帧为不包含媒体接入控制层协议数据单元的物理帧,且所述零数据报文响应帧包含所述零数据报文响应帧的帧类型信息、所述第二设备的服务类型信息及所述第二设备的服务标识信息;发送所述零数据报文响应帧至所述第一设备;接收所述第一设备返回的携带所述第一设备的服务标识信息及地址信息的探测请求帧;发送携带所述第二设备的服务标识信息及地址信息的探测响应帧,完成与所述第一设备的服务发现。
所述零数据报文响应帧的帧结构包括训练域及信号域,所述信号域用于承载信息,所述处理器1000构造所述零数据报文响应帧时,具体用于:选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中的调制编码方式字段的取值配置为未定义的取值区间中的值,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,构造所述零数据报文响应帧;或者,
选择所述信号域中的高吞吐量信号域或超高吞吐量信号域进行配置,将所述高吞吐量信号域或超高吞吐量信号域中空闲的字段划分为帧类型字段、服务类型字段及服务标识字段,将所述零数据报文响应帧的帧类型信息承载于所述帧类型字段,将所述第二设备的服务类型信息承载于所述服务类型字段,将所述第二设备的服务标识信息承载于所述服务标识字段,在完成帧校验之后,将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,构造所述零数据报文响应帧。
优选地,所述处理器1000将所述高吞吐量信号域或超高吞吐量信号域中预设的至少一个比特翻转,具体用于:
将所述高吞吐量信号域或超高吞吐量信号域中的循环冗余检验字段所含的比特中的部分或全部翻转。
其中,所述服务类型包括以下中的至少一项:
发布服务,用于表示设备提供的服务;
查找服务,用于表示设备需要的服务;
合作服务,用于表示设备寻求合作的服务。
所述服务标识信息为设备服务名称的一部分或设备服务名称的哈希值或设备服务名称哈希值的一部分。
这样,无需携带的完整服务标识信息便可以实现服务辨识的作用,利于减少发送的信息量,从而降低功耗,节省信道资源。
所述零数据报文请求帧还包含所述第一设备的地址信息。所述地址信息为设备地址的一部分或设备地址的哈希值或设备地址哈希值的一部分。
所述零数据报文响应帧帧还包含所述第二设备的地址信息和/或所述第一设备的地址信息。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过上述实施例的描述,本发明具有以下优点:
通过发送帧长度较短的NDP请求帧来实现和其他设备的服务发现及关联,可显著降低设备的功耗;且由于帧长度较短,且仅携带了设备的部分的服务标识信息,因此信息量较少,可显著降低对信道资源的占用,减少对其他Wi-Fi网络的影响,提高了媒体的利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,简称ROM)或随机存储记忆体(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。