本公开一般涉及无线网络,并且尤其涉及对等网络内的群主选择。
相关技术背景
wi-fi网络可由提供与数个无线设备(诸如移动站(sta))的无线通信信道或链路的一个或多个接入点(ap)形成。可对应于基本服务集(bss)的每个ap周期性地广播信标帧以使得在该ap的无线射程内的任何sta能够建立和/或维持与wi-fi网络的通信链路。可包括指示ap是否具有用于sta的经排队下行链路数据的话务指示映射(tim)以及该ap的定时同步功能(tsf)值的信标帧通常是根据目标信标传输时间(tbtt)调度来广播的。
对等(p2p)网络可以在不存在ap的情况下由数个sta形成。对于根据wi-fi联盟p2p规范(也被称为“wi-fi直连”)来操作的p2p网络,sta之一可被指定为群主(go),而其他的sta可被指定为p2p客户端。p2p群主可执行ap的许多功能,诸如举例而言,向p2p群中的其他sta广播信标帧。所广播的信标帧可包括群主的tsf值,以及所要求的操作参数、所支持的能力、成员关系、和p2p群内可用的服务。
选择多个sta中的哪个sta将用作p2p群的go是重要的,因为例如go可控制来自p2p群的成员的数据传输并且应当因此能够与p2p群成员通信。
概述
提供本概述以便以简化形式介绍以下将在详细描述中进一步描述的概念选集。本概述并非旨在标识出要求保护的主题内容的关键特征或必要特征,亦非旨在限定要求保护的主题内容的范围。
公开了一种用于为对等(p2p)网络选择群主(go)的方法和装备。对于示例实施例而言,第一无线设备可确定指示在该第一无线设备的无线通信射程内有多少个其他无线设备的第一计数值。第一无线设备可随后针对一个或多个第二无线设备确定一个或多个第二计数值,该一个或多个第二计数值各自指示在该一个或多个第二无线设备中的相应的一个第二无线设备的无线通信射程内有多少个其他无线设备。第一无线设备可从该一个或多个第二无线设备接收该一个或多个第二计数值。第一无线设备可随后至少部分地基于该第一计数值是大于还是小于该一个或多个第二计数值来将第一无线设备或者一个或多个第二无线设备中的一个第二无线设备选择为对等网络的群主。例如,在第一数目大于一个或多个第二计数值时,将第一无线设备选择为go;在第一数目小于一个或多个第二计数值时,将第一无线设备选择为go。在第一数目等于第二计数值中的最大者时,可基于第一无线设备和一个或多个第二无线设备的mac地址的(例如,比较)来选择go。
一种无线设备可包括:一个或多个天线、包括用于通过该一个或多个天线来发射和接收信号的收发机、一个或多个处理器、以及存储配置成由该一个或多个处理器来执行的一个或多个程序的存储器。该一个或多个程序包括用于执行示例实施例的方法的指令。而且,在无线设备内提供的非瞬态计算机可读存储介质可存储配置成由无线设备中的一个或多个处理器来执行的一个或多个程序。该一个或多个程序可包括用于执行示例实施例的方法的指令。
附图简要说明
本发明各实施例是作为示例来解说的,且不旨在受附图中各图的限制。相似的附图标记贯穿附图和说明书指代相似的元素。
图1描绘了其内可实现示例实施例的网络系统。
图2示出了作为图1中描述的无线设备的一个实施例的无线设备。
图3示出了根据示例实施例的描绘用于操作p2p网络的示例操作的解说性流程图。
图4a示出了根据示例实施例的描绘用于为p2p网络选择群主的示例操作的解说性流程图。
图4b示出了根据示例实施例的描绘用于为p2p网络选择群主的另一示例操作的解说性流程图。
图5示出了根据示例实施例的描绘用于选择p2p网络的新群主的示例操作的解说性流程图。
详细描述
示例实施例在以下在根据ieee802.11标准族的一个或多个方面来操作的无线系统的上下文中描述。将理解,示例实施例等同地适用于其它无线网络(例如,蜂窝网络、蓝牙网络、微微网络、毫微微网络、卫星网络等),以及适用于使用一个或多个有线标准或协议(例如,以太网和/或homeplug/plc标准)的信号的系统。如本文所使用的,术语“wlan”和
另外,术语“睡眠状态”、“打盹状态”以及“功率节省状态”是指低功率操作模式,其中启用wi-fi的设备或站的一个或多个组件被停用(例如,为了延长电池寿命),并且由此术语“睡眠状态”、“打盹状态”以及“功率节省状态”在本文中能被可互换地使用。术语“无线设备”和“站”(即sta)在本文中能被可互换地使用。另外,术语“p2p网络”和“p2p群”两者都可以指在没有专用接入点的情况下可彼此通信的数个无线设备(例如,根据wi-fi直连协议),并且由此术语“p2p网络”和“p2p群”在本文中能被可互换地使用。
在以下描述中,阐述了众多具体细节(诸如具体组件、电路、和过程的示例),以提供对本公开的透彻理解。如本文所使用的,术语“被耦合”意指直接耦合至、或通过一个或多个居间组件或电路来耦合。而且,在以下描述中并且出于解释目的,阐述了具体的命名以提供对本公开各实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以不需要这些具体细节就能实践本发明各实施例。在其他实例中,以框图形式示出公知的电路和设备以避免混淆本公开。本文所描述的在各种总线上提供的任何信号可以与其他信号进行时间复用并且在一条或多条共用总线上提供。另外,各电路元件或软件块之间的互连可被示为总线或单信号线。每条总线可替换地是单信号线,而每条单信号线可替换地是总线,并且单线或总线可表示用于各组件之间的通信的大量物理或逻辑机制中的任一个或多个。本发明各实施例不应被解释为限于本文描述的具体示例,而是在其范围内包括由所附权利要求所限定的所有实施例。
图1描绘了其中可实现示例实施例的示例网络系统100。系统100被示为包括四个无线设备wd1-wd4,其一起形成例如可根据wi-fi直连协议(尽管可采用其他无线协议来管控无线系统100的操作)来操作的对等(p2p)网络110(或p2p群110)。为了简明起见,虽然仅在图1中示出四个无线设备wd1-wd4,但将理解,网络系统100可包括任何数目的无线设备。
无线设备wd1-wd4中的每一者可以是任何合适的启用wi-fi的无线设备,包括例如蜂窝电话、智能电话、智能手表、个人数字助理(pda)、平板设备、膝上型计算机、路由器、网关、集线器、接入点、移动站(sta)、媒体播放器、扬声器、音频放大器、或诸如此类。无线设备wd1-wd4中的每一者可被指派唯一性的媒体接入(mac)地址(即,分别为mac1–mac4),该媒体接入地址例如由该无线设备的制造商来编程于其中。对于至少一些实施例而言,无线设备wd1-wd4中的每一者可包括至少一个或多个收发机、一个或多个处理资源(例如,处理器和/或asic)、一个或多个存储器资源、显示器、一个或多个指示器、以及电源(例如,电池)。存储器资源可包括非瞬态计算机可读介质(例如,一个或多个非易失性存储器元件,诸如eprom、eeprom、闪存存储器、硬盘驱动器等),其存储用于执行以下关于图3和4所描述的操作的指令。
在形成p2p群之前,无线设备wd1-wd4可执行发现操作以发现附近的无线设备和/或确定由附加的设备提供什么服务(例如,打印)。该发现操作可包括两个阶段:设备发现阶段和服务发现阶段。在设备发现阶段期间,无线设备确定在wi-fi通信射程内的其他无线设备的身份和/或可用性,例如,通过扫描3个社交信道(例如,2.4ghz频带中的信道1、6和11)以寻找传入信标帧和/或通过向可能正在那些信道上监听的任何无线设备广播探测请求帧来这么做。之后,在服务发现阶段期间,无线设备向可用对等设备(例如,在设备发现阶段期间发现的可用对等设备)查询关于它们提供的服务。
一旦无线设备wd1-wd4发现彼此(在那之后它们可被称为“对等”设备),无线设备wd1-wd4就可为该p2p网络110选择群主(go)。如以上提及的,群主(go)可执行通常与接入点相关联的许多功能(例如,准许新的成员进入该p2p群,管理p2p网络、广播信标帧等)。作为结果,go也可被称为“软ap”。其他对等设备(例如,未被选择为go的那些无线设备wd1-wd4)可被称为p2p客户端设备。go还可允许p2p客户端设备使用任何合适的(诸)有线或无线通信标协议来连接至网络(例如,局域网(lan)、广域网(wan)、城域网(man)、和/或因特网)。对于一个示例而言,经由go的至回程网络的蜂窝连接来向附近的客户端设备提供对因特网的接入的go通常可被称为“热点”。
一旦形成了p2p群,该p2p群的成员(例如,go以及客户端设备)就可以在没有传统接入点的辅助的情况下彼此通信,从而允许数个无线设备(诸如图1的无线设备wd1-wd4)在几乎任何地方形成p2p群。另外,p2p群的成员可(向彼此)提供服务,包括例如,打印、游戏、文件共享、和/或因特网网关服务。
目前,存在两种为p2p群选择go的主要技术。在通常被称为自主式群主选择的第一技术中,无线设备的用户将用户的设备设立为go。在通常被称为基于协商的群创建的第二技术中,数个候选无线设备彼此竞争以被选择为go。更具体地,每个候选无线设备可计算其自己的群主意愿值,并且随后这些候选无线设备将它们自己的群主意愿值与其他无线设备的群主意愿值相比较。具有最高群主意愿值的无线设备变成go,并且所有其他无线设备变成客户端设备。无线设备的群主意愿值通常基于该无线设备是否能够执行基础设施wlan服务与p2p群之间的交叉连接、无线设备中的剩余功率、该无线设备是否已经是另一群的群主、和/或收到信号强度指示符(rssi)值。
因为go管理p2p群并且可控制其客户端设备在何时可向彼此传送数据,所以该go在尽可能多的客户端设备的无线通信射程内是重要的。当前wi-fi直连协议在确定群主意愿值时不考虑这一信息。由此,基于常规技术来选择go可能不会导致选择最能够服务具有不同物理位置的最多数目个客户端设备的go。这是要由示例实施例解决的技术问题中的至少一个技术问题。
例如,参照图1,虽然所有无线设备wd1-wd4都可以是p2p网络110的成员,但是无线设备wd1-wd4中的一者或多者可能不能够与所有其他无线设备通信。更具体地,对于图1中描绘的示例而言,无线设备wd2的位置可允许与无线设备wd1和wd3进行无线通信但是不能与无线设备wd4进行无线通信(例如,因为无线设备wd4不在无线设备wd2的无线覆盖区域内);无线设备wd3的位置可允许与无线设备wd1和wd2进行无线通信但是不能与无线设备wd4进行无线通信(例如,因为无线设备wd3不在无线设备wd4的无线覆盖区域内);以及无线设备wd4的位置可仅允许与无线设备wd1进行无线通信(例如,因为仅无线设备wd1在无线设备wd4的无线覆盖区域内)。然而,无线设备wd1的中央位置(例如,相对于其他无线设备wd2-wd4的位置)可允许无线设备wd1与所有其他无线设备wd2-wd4进行无线地通信(例如,因为所有无线设备wd2-wd4都在无线设备wd1的无线覆盖区域内)。作为结果,无线设备wd1可以是对于p2p网络110的go的选择而言的最佳候选。
根据示例实施例,可以至少部分地基于无线设备wd1-wd4中的每一者可以与多少个其他无线设备无线地通信来选择p2p群110的go。对于至少一个示例实施例而言,无线设备wd1-wd4中的每一者可确定在无线射程内有多少个p2p网络110内的其他无线设备,以及可(例如,在存储器中)存储指示在无线射程内的其他无线设备的数目的计数器值或数目。无线设备wd1-wd4可彼此交换它们的计数值,并且随后彼此比较计数值以确定无线设备wd1-wd4中的哪一个具有最大计数值(例如,并且由此无线设备wd1-wd4中的哪一个能够与p2p网络110中的最大数目的其他无线设备进行无线通信)。之后,具有最大计数值或数目的无线设备可被选择为p2p网络110的go。对于至少一个示例实施例而言,该计数值或数目可形成无线设备的群主意愿值的基础。
对于其他实施例而言,无线设备的群主意愿值可基于该计数值与一个或多个其他参数的组合,该参数包括例如无线设备是否能够执行基础设施wlan服务与p2p群之间的交叉连接、无线设备中的剩余功率、无线设备是否已经是另一群的群主、和/或收到信号强度指示符(rssi)值。对于此类其他实施例而言,在确定群主意愿值时要考虑的参数可被指派各种权重值,例如,以便相对较高地强调一个或多个第一参数和/或相对较低地强调一个或多个第二参数。以此方式,无线设备wd1-wd4的用户可动态地配置和/或调节如何确定群主意愿值。
对于至少一些示例实施例而言,无线设备wd1-wd4中的每一者可通过(例如,向无线信道)传送探测请求并且随后监听以查看有多少个其他无线设备进行响应来确定在无线射程内有多少个其他无线设备。更具体地,如果另一无线设备在射程内且接收到探测请求,则(根据当前的wi-fi协议)其他无线设备将用探测响应来响应。由此,如果其他无线设备用探测响应来响应,则该其他无线设备可被认为在无线射程内。相反,如果其他无线设备没有用探测响应来响应,则该其他无线设备可被认为不在无线射程内。因为探测请求和探测响应的报头包括发送方无线设备的mac地址,所以接收探测请求和/或探测响应的无线设备可提取发送方设备的mac地址并且之后在存储器中存储该无线设备的mac地址。对于一些示例实施例而言,无线设备wd1-wd4中的每一者可维护从其接收到帧(例如,探测请求和/或探测响应)的无线设备的mac地址的列表。无线设备wd1-wd4中的一者或多者可使用它的mac地址列表来推导出计数值或数目和/或至少部分地确定无线设备的群主意愿值。
图2示出了作为图1的无线设备wd1-wd4的一个实施例的无线设备200。无线设备200包括指示器205、显示器210、至少一个收发机220、至少一个处理器230、存储器240、以及天线(ant)。虽然图2中仅示出了一个天线,但是无线设备200可包括任何合适数目个天线。指示器205可以是任何合适的指示器(例如,一个或多个led),其向无线设备200的用户提醒无线设备200的操作状态(或其他状态)。显示器210可以是任何合适类型的显示器(例如,触敏显示器),其提供无线设备200的用户接口。
收发机220可被用于向其他无线设备传送信号和从其他无线设备接收信号。在一些实施例中,收发机220可包括多个收发机以在不同的频带内和/或根据不同的协议来传送和接收信号。例如,收发机220中的第一收发机可传送和接收wi-fi信号,收发机220中的第二收发机可传送和接收蜂窝信号,而收发机220中的第三收发机可传送和接收蓝牙信号。收发机220还可传送信标帧、探测请求、探测响应、发现消息、动作帧、管理帧、测量帧、和/或数据帧(以及其他合适的帧)。
存储器240可包括设备数据库242,其可被用作本地高速缓存以存储mac地址或者数个其他无线设备的其他标识信息。对于一些实施例而言,设备数据库242中的每个mac地址条目可表示在无线设备200的无线通信射程内的无线设备。可以结合p2p发现操作来创建到设备数据库242中的mac地址条目,如以下更详细讨论的。对于至少一个实施例而言,设备数据库242还可(或替换地)存储无线设备200的计数值或数目和/或在无线设备200的无线射程内的其他无线设备的计数值或数目。另外,设备数据库242可存储无线设备200的群主意愿值和/或在无线设备200的无线射程内的其他无线设备的群主意愿值。对于至少一个示例实施例而言,设备数据库242还可存储先前与无线设备200相关联的和/或连接至无线设备200的其他无线设备的历史关联(例如,以及对应的mac地址)。
另外,设备数据库242可包括存储无线设备200和在无线设备200的无线通信射程内的所有其他无线设备的计数值或数目(或替换地群主意愿值)的群主候选表243。对于其他实施例而言,群主候选表243可被集成在设备数据库242内。
另外,存储器240还可包括可存储以下软件模块的非瞬态计算机可读存储介质(例如,一个或多个非易失性存储器元件,诸如eprom、eeprom、闪存存储器、硬盘驱动器等):
·用于确定在无线设备200的通信射程内可能有多少个无线设备的设备发现模块244;
·用于从一群候选无线设备中选择p2p网络110的群主的群主选择模块246;以及
·用于邀请其他无线设备加入p2p网络110的p2p邀请模块248。
每个软件模块包括在由处理器230执行时可致使无线设备200执行对应的(诸)功能的程序指令。由此,存储器240的非瞬态计算机可读存储介质可包括用于执行图3、4a、4b和5的所有或部分操作的指令。
耦合至指示器205、显示器210、收发机220和存储器240的处理器230可以是任何合适的能够执行存储在无线设备200中(例如,在存储器240内)的一个或多个软件程序的脚本或指令的一个或多个处理器。虽然在图2中被示为耦合在收发机220与存储器240之间,但是对于实际的实施例而言,收发机220、处理器230、以及存储器240可使用一个或多个总线(为了简明起见未示出)来连接到一起。
处理器230可执行设备发现模块244以确定在无线设备200的无线通信射程内有多少个其他无线设备和/或与其他无线设备共享这一信息。如以上提及的,无线设备200的通信射程内的其他无线设备可以是p2p网络110的候选并且可以是被选择为p2p网络110的go的候选。对于一些实施例而言,由处理器230执行设备发现模块244可致使收发机220向其他无线设备广播探测请求以及监听从其他无线设备传送的响应。例如,由处理器230执行设备发现模块244可致使无线设备200在无线介质上传送探测请求以引起来自在无线设备200的无线射程内的附近无线设备的响应。如果另一无线设备在射程内且接收到探测请求,则该另一无线设备可向无线设备200发送探测响应。无线设备200可以从该探测响应中提取该另一无线设备的mac地址,并且将该mac地址存储在设备数据库242中。以此方式,在设备数据库242中存储mac地址可指示对应的该另一无线设备在无线设备200的无线射程内。对于至少一个实施例而言,在新的mac地址被存储在设备数据库242中时,设备发现模块244可递增无线设备200的计数值或数目。在当前存储在设备数据库242中的mac地址被删除(或标记为无效)时,设备发现模块244可递减计数值或数目,例如,因为对应的无线设备不再在无线设备200的无线射程内。如以上提及的,存储在设备数据库242中的mac地址的数目可被用于确定无线设备200的群主意愿值的至少一部分。
处理器230可执行群主选择模块246以至少部分地基于将形成p2p网络110的无线设备的计数值或数目(或替换地群主意愿值)来为p2p网络110选择go。对于至少一些示例实施例而言,群主选择模块246在由处理器230执行时可以将无线设备wd1-wd4的计数值或数目彼此比较以确定无线设备wd1-wd4中的哪个无线设备具有最大的计数值或数目(并且由此确定无线设备wd1-wd4中的哪个无线设备能够与最大数目的其他无线设备无线地通信)。由此,对于至少一个示例实施例而言,如果无线设备200具有最大的计数值或数目(例如,与p2p群中的其他无线设备的计数值或数目比较),则无线设备200可将其自己选择为p2p群的go。相反,如果无线设备200不具有最大的计数值或数目,则无线设备200可将其自己指定为p2p群中的客户端设备。
对于其他示例实施例而言,每个无线设备的群主意愿值可基于计数值与一个或多个其他参数的组合,该其他参数包括例如该无线设备是否能够执行基础设施wlan服务与p2p群之间的交叉连接、无线设备中的剩余功率、该无线设备是否已经是另一群中的群主、和/或收到信号强度指示符(rssi)值。
处理器230可执行p2p邀请模块248以邀请其他无线设备加入p2p网络110。在无线设备200被选择成作为p2p网络110的go来操作时,p2p邀请模块248可由处理器230执行。对于至少一些示例实施例而言,p2p邀请模块248可被执行以使得无线设备200向由存储在设备数据库242中的mac地址标识的无线设备发送邀请消息(例如,以加入p2p网络110)。
图3示出了根据示例实施例的描绘用于操作p2p网络110的示例操作300的解说性流程图。示例实施例可以执行本文描述的操作连同附加操作、较少操作、以不同的次序执行操作、并行地执行操作、和/或不同地执行一些操作。
参照图1-3,无线设备wd1-wd4可首先进入发现阶段(301)。在发现阶段301期间,无线设备wd1-wd4可发现其他附近的无线设备。在一些实施例中,可在无线设备wd1-wd4从相应的用户接收到开始发现阶段301的指示时进入发现阶段301。对于一个示例而言,无线设备wd1-wd4中的每一者可检测按钮按压或任何其他技术上可行的用户输入。对于另一示例而言,无线设备wd1-wd4可使用“配对”(例如,使用近场通信(nfc)或蓝牙信号)来促成p2p网络110的设立。
在发现阶段301期间,无线设备wd1-wd4中的每一者可确定有多少个其他无线设备是可见的(例如,在它的无线通信射程内)(302)。在一些实施例中,无线设备wd1-wd4中的每一者可向其他无线设备传送探测请求,并且随后监听探测响应以确定在无线射程内有多少个其他无线设备。如以上提及的,每个探测响应包括响应方无线设备的mac地址,并且无线设备wd1-wd4中的每一者可编辑在它的无线射程内的其他无线设备的mac地址的列表(例如,使用接收到的探测请求)。无线设备wd1-wd4中的每一者可使用结果得到的mac地址列表来确定指示在它的无线射程内有多少个其他无线设备的计数值或数目。对于至少一个示例实施例而言,无线设备wd1-wd4中的每一者的群主意愿值可至少部分地基于所确定的计数值或数目。
仍然在发现阶段301中时,无线设备wd1-wd4中的每一者可确定有多少个无线设备对于p2p网络110中的其他无线设备中的每一者而言是可见的(304)。例如,无线设备wd1可例如在共享操作期间从其他无线设备wd2-wd4中的每一者接收计数值或数目(或群主意愿值)。该共享操作可利用任何合适的(诸)帧,并且可以在发现阶段301期间被执行。
更具体地,无线设备wd1-wd4可在预关联服务发现时段期间彼此共享指示它们的所确定的计数值或数目的信息。预关联服务发现协议的示例包括由来自因特网工程任务组的rfc6267描述的mdns(多播域名系统)协议、来自
随后,在连接阶段305期间,无线设备wd1-wd4可形成彼此的连接以及形成p2p网络110。首先,为p2p网络110选择群主(go)(306)。如以上提及的,无线设备wd1-wd4中的每一者可以将它们的计数值或数目与其他无线设备的计数值或数目进行比较以便选择go。具有最大的计数值或数目的无线设备可被选择为go,而所有其他无线设备可变成客户端设备。对于至少一个示例实施例而言,无线设备wd1-wd4可将它们的群主意愿值彼此进行比较,并且具有最大的群主意愿值的无线设备可被选择为go。对于一些实施例而言,如果多于一个候选无线设备具有相同的计数值或数目(或相同的群主意愿值),则候选无线设备的mac地址可被用作“打破平局者”。对于一些实施例而言,具有最大mac地址的候选无线设备可被选择为go。对于其他实施例而言,具有最小mac地址的候选无线设备可被选择为go。
随后,go可邀请其他无线设备加入p2p网络110(308)。在一些实施例中,go可使用p2p邀请规程来邀请其他无线设备加入p2p网络110。例如,go可向被邀请的无线设备传送p2p邀请帧。响应于该邀请帧,go可以从被邀请的无线设备接收p2p邀请响应帧。在一些实施例中,p2p邀请和响应帧可用作与将无线设备加入p2p网络110相关联的按钮按压的等效物。
接下来,无线设备wd1-wd4可进入通信阶段(309)。在通信阶段期间,在p2p网络110内的无线设备wd1-wd4之间可交换数据和其他信息(310)。
对于一些实施例而言,p2p网络110内的无线设备wd1-wd4可指示无线设备的操作阶段。例如,还是参考图2,在无线设备200进入发现阶段301时,与指示器205相关联的led可以按第一占空比来闪烁。例如,led可以在发现阶段301期间按25%的占空比来闪烁。随着无线设备200进入连接阶段305,led可以按第二占空比来闪烁。例如,led可以在连接阶段305期间按50%的占空比来闪烁。随着无线设备200进入通信阶段309,led可以按第三占空比来闪烁,或者可以持续地发光。在其他实施例中,可以将其他占空比用于指示不同的操作阶段。在又一实施例中,可以将不同的led颜色用于指示无线设备200的不同操作阶段。
在一些实施例中,在go在308处邀请其他无线设备之后,一个或多个附加无线设备可加入p2p网络110。例如,附加无线设备可检测按钮按压,并且响应于检测到按钮按压,该附加无线设备可向go发送加入p2p网络110的请求。已经是p2p网络110的成员的其他无线设备可以不受影响。
图4a示出了根据示例实施例的描绘用于为p2p网络110选择go的更详细的操作400的解说性流程图。一些实施例可以执行本文描述的操作连同附加操作、较少操作、以不同的次序执行操作、并行地执行操作、和/或不同地执行一些操作。另外,为了简明起见,虽然图4a的操作在以下关于无线设备wd1来描述,但是与p2p网络110相关联的其他无线设备也可执行图4a的操作(并且也可被认为是选择go的候选者)。
第一无线设备wd1确定指示在无线设备wd1的无线通信射程内有多少个其他无线设备wd2-wd4的第一计数值(402)。随后,第一无线设备wd1针对一个或多个第二无线设备wd2-wd4确定一个或多个第二计数值,该一个或多个第二计数值各自指示在一个或多个第二无线设备wd2-wd4中的相应的一个第二无线设备的无线通信射程内有多少个其他无线设备(404)。如以上提及的,第一无线设备wd1可以从该一个或多个第二无线设备wd2-wd4接收指示一个或多个第二计数值的信息。
随后,第一无线设备wd1至少部分地基于该第一计数值是大于还是小于一个或多个第二计数值来将第一无线设备wd1或者该一个或多个第二无线设备wd2-wd4中的一个第二无线设备选择为对等网络110的群主(406)。例如,如果第一计数值大于第二计数值,则第一无线设备wd1被选择为go(406a)。相反,如果第一计数值小于该一个或多个第二计数值,则具有最大第二计数值的第二无线设备wd2被选择为go(406b)。在第一计数值等于第二计数值中的最大者时,可基于具有相同的最高计数值的无线设备的mac地址的比较来选择go(406c)。
图4b示出了根据另一示例实施例的描绘用于为p2p网络110选择go的更详细的操作450的解说性流程图。一些实施例可以执行本文描述的操作连同附加操作、较少操作、以不同的次序执行操作、并行地执行操作、和/或不同地执行一些操作。另外,为了简明起见,虽然图4b的操作在以下关于无线设备wd1来描述,但是与p2p网络110相关联的其他无线设备也可执行图4b的操作(并且也可被认为是选择go的候选者)。
对于对等网络,将在第一无线设备的无线通信射程内有多少个无线设备与在第二无线设备的无线通信射程内有多少个无线设备进行比较(452)。对于至少一些实施例而言,第一无线设备可以向其他无线设备传送探测请求(452a),并且可以从数个其他无线设备接收探测响应,所接收到的探测响应的数目指示在第一无线设备的无线通信射程内有多少个无线设备(452b)。
接下来,可至少部分地基于该比较来将第一无线设备或第二无线设备选择为群主(454)。对于至少一些实施例而言,如果在第一无线设备的无线通信射程内的无线设备比在第二无线设备的无线通信射程内的无线设备更多,则可将第一无线设备选择为群主(454a),并且如果在第二无线设备的无线通信射程内的无线设备比在第一无线设备的无线通信射程内的无线设备更多,则可将第二无线设备选择为群主(454b。)如果该比较指示在第一无线设备和第二无线设备的无线通信射程内有相等数目的无线设备,则可基于第一无线设备和第二无线设备的媒体接入控制(mac)地址的比较来将第一无线设备或第二无线设备选择为群主(454c)。对于一些实施例而言,具有较高数值的mac地址的无线设备可被选择为群主。对于其他实施例而言,具有最低数值的mac地址的无线设备可被选择为群主。
通过至少部分地基于无线设备中的哪一个无线设备在将形成p2p群的最大数目的其他无线设备的无线射程内来选择go,示例实施例可确保所选择的go将能够与该群中最大数目的无线设备进行通信。这是对前述至少一个技术问题的技术解决方案中的至少一个解决方案。
p2p网络110内的通信可以在go被断电、置于低功率模式中、或从p2p网络110的通信射程移动时停止。在一些实施例中,可检测与当前go相关联的不活跃并且选择新的go以恢复通信。对新的go的选择在以下结合图5来更详细地描述。
图5示出了根据一些实施例的描绘用于为p2p网络110选择新的go的示例操作500的解说性流程图。还是参照图2,无线设备200可首先确定该go是不活跃的(502)。对于一个实施例而言,无线设备200可基于无线设备200没有从该go接收到信标帧来确定该go是不活跃的。例如,无线设备200可以在十秒的时段(虽然可使用其他合适的时间段)期间没有从该go接收到信标帧时得出该go是不活跃的结论。对于另一实施例而言,无线设备200可基于无线设备200没有从该go接收到指定数目的连续信标帧来确定该go是不活跃的。例如,无线设备200可在没有接收到十个连续的信标帧(虽然可使用其他数目的缺失信标帧)时得出该go是不活跃的结论。
接下来,无线设备200确定是否使用经高速缓存的数据来确定新的go(504)。经高速缓存的数据可包括存储在设备数据库242中的mac地址、存储在群主候选表243中的计数值或数目、和/或存储在群主候选表243中的群主意愿值。如果无线设备200使用经高速缓存的数据来选择新的go,则具有下一最高计数值或群主意愿值的无线设备被选择为新的群主(506)。相反,如果无线设备200不使用它的经高速缓存的数据(如504处所测试的),则可通过执行以上关于图4a和/或图4b描述的一个或多个操作来选择新的go(508)。
在说明书前述篇幅中,本发明各实施例已参照其具体示例性实施例进行了描述。然而将明显的是,可对其作出各种修改和改变而不会脱离如所附权利要求中所阐述的本公开更宽泛的范围。相应地,本说明书和附图应被认为是解说性而非限定性的。