具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具有单一服务区标识符(Service Set Identifier,简称SSID)的无中心基础设施网络,例如:Ad hoc网络、P2P网络,也可以称作独立基本服务区(Independent Basic Service Set,简称IBSS)网络。IBSS网络的时间轴可以被划分为等间隔的信标间隔(Beacon Interval,简称BI),BI开始有一个ATIM(Announcement Traffic Indication Message,简称ATIM)窗,ATIM之后是竞争窗。省电模式下所有节点会周期性地在BI内的ATIM窗内通过竞争访问机制收发信标(Beacon)帧和ATIM帧。ATIM窗的起始时间称为目标信标发送时间(Target Beacon Transmission Time,简称TBTT),所有节点都周期性地在ATIM窗内保持活跃状态。每个节点在TBTT上设置退避时间以竞争访问机制收发信标(Beacon)帧。为了减少冲突,每个节点在尝试发送信标之前在0~Td_max的时间范围内取一随机值,其中,Td_max=2*aCWmin*aSlotTime,aCWmin是竞争窗的下限值,为一整数,aSlotTime为一个系统单位时间即时隙长度。即每个IBSS网络的节点会在TBTT时间点上开始等待一段延迟时间,其取值为0至Td_max之间的随机数,所设置的延迟时间按照退避算法递减,延迟时间先减到零的节点先发信标帧,如果一个节点在延迟时间减到零之前收到了别的节点发送的信标帧,该节点则在下一个TBTT到来前不再发送自己的信标帧。
上述IBSS网络信标帧的竞发机制是由网络节点在每次TBTT上重新计算一个退避延迟,这个退避延迟在0~2*aCWmin*aSlotTime中取值,等待退避延迟递减到0时发出信标帧。采用这种做法,网络里的某个节点可能连续几个BI间隔都成功竞发出信标帧,而有些节点可能在一段时间里一直都发不出信标帧。并且,在TBTT点上就开始进行退避,当有些普通节点的随机取值正好是0时就可以踏在TBTT点上发出信标帧,不利于保留TBTT点供紧急目的使用。
ATIM窗里如果没有ATIM帧,则表示没有数据发送,节点可以在BI内的ATIM窗后的省电模式时间里省电休眠;如果接收到ATIM帧,则表示发送方节点有数据要发送,如果ATIM是单播,接收方节点需要在ATIM窗内给该节点返回肯定应答(ACK)消息,两者在BI内的ATIM窗之后的竞争期要保持活跃状态来与对方进行数据通信;如果有数据要发送,也要先向接收方节点发送ATIM帧,并等该节点回应了ACK帧,以确认BI时间内双方都处在激活状态再进行数据传输。如果ATIM是组播或广播,接收方节点则不需给发送方节点返回肯定应答(ACK)消息。上述ATIM帧的发收机制的一部分可被借鉴到下述本发明实施例中所需建立的新帧里。
图1为本发明实施例一提供的主控节点的协商方法的流程示意图,如图1所示,本实施例可以包括以下步骤:
步骤101、普通节点接收主控节点发送的携带有主控身份标识的管理帧;
步骤102、普通节点获取再次接收主控节点发送的管理帧的最大时间间隔;
步骤103、当所获取的最大时间间隔后未再次接收到上述管理帧时,普通节点则根据预设策略确定成为新的主控节点。
本实施例中,普通节点接收到主控节点发送的携带有主控身份标识的管理帧之后,继续等待下一次主控节点所发送的管理帧,当在获取到的再次接收主控节点发送的管理帧的最大时间间隔后没有接收到该管理帧时,该普通节点则与其他普通节点进行协商,根据预设策略确定成为新的主控节点。主控节点以外的其他节点(普通节点)根据获取到的最大时间间隔内是否接收到主控节点所发送的管理帧来发现主控节点是否脱离无中心基础设施网络(例如:Ad hoc网络、P2P网络),实现了在主控节点脱离无中心基础设施网络后,无中心基础设施网络能够及时获知原主控节点已脱离网络,并且重新协商出新的主控节点以维护和管理网络,不会影响无中心基础设施网络的节点之间正常通信。
图2为本发明实施例二提供的主控节点的协商方法的流程示意图,如图2所示,本实施例可以包括以下步骤:
步骤201、普通节点B接收主控节点A利用分布式协调函数(DistributedCoordination Function,简称DCF)竞争访问机制以广播或组播形式发送的携带有主控身份标识的信标帧。
其中,具体的信标帧竞发规则可以为:网络的普通节点在创建或加入网络时计算随机的退避延时;在每个BI的起始点TBTT到来后,普通节点先等待一个短时隙,例如:短帧间间隔(Short Inter Frame Space,简称SIFS)等于10μs或1μs,再按随机的退避延时竞发信标帧;在BI内收到其他普通节点的信标帧后在下一BI的起始点TBTT不重新计算随机退避延时,而沿用上一BI剩余的退避延时;非特殊情况下,在BI内成功发出信标帧后在下一BI将自己的信标竞发延迟设置成整个IBSS网络退避延迟取值范围的上限值;
主控节点A在所发送的信标帧里除了携带一个主控身份标识,还可以携带当前发送信标帧时无中心基础设施网络里的节点总数N及各节点加入网络的先后顺序(1,2,...,N),随机退避延时的取值可以是Random()+log((N-n+1)*aSlotTime),其中n为节点的序号,Random()可在[02*cWmin*aSlotTime]间取值;
步骤202、普通节点B获取再次接收主控节点发送的信标帧的最大时间间隔Tm。
普通节点B可以根据主控节点A在所发送的信标帧中所携带的当前发送信标帧时无中心基础设施网络里的节点总数N确定再次接收到主控节点发送的信标帧的最大时间间隔Tm,即Tm=N*BI。但是,考虑到在最大时间间隔Tm内无中心基础设施网络中的节点总数N可能会发生变化,则最大时间间隔Tm可以取保险值Tm=2*N*BI;
步骤203、当时间间隔Tm后未再次接收到主控节点A发送的信标帧时,且普通节点B的主控能力高于预先设置的阈值能力即具有成为主控节点的主控能力时,则向其他普通节点例如:普通节点C、普通节点D......以组播或广播形式发送广播新主指示信息(Announcement Master Indication Message,简称AMIM)帧,以声明成为网络中新的主控节点。
该AMIM帧为一管理帧,除了用以声明成为网络中新的主控节点外,还具有让发送方节点在BI内保持活跃状态的功能。此外,AMIM帧可以携带有发送方节点B的标识信息、剩余工作时间、最后一次接收到主控节点A所发送的信标帧的时间和发送方节点B的主控能力。
具体地,在省电模式下,本步骤中的普通节点B可以在最近的ATIM窗中通过DCF竞争访问机制向其他普通节点发送AMIM帧;在非省电模式下,则ATIM窗的长度为0,本步骤中的普通节点B可以在信标间隔内的任意时刻通过DCF竞争访问机制发送AMIM帧;
步骤204、普通节点B判断在BI内是否接收到其他普通节点例如:普通节点C、普通节点D......通过退避竞争机制所返回的否定应答(NOWAY)帧,如果是,则执行步骤206;否则,则执行步骤205;
步骤205、普通节点B在下一BI的起始点TBTT的时间点上无退避(即退避时间为0,踏在TBTT时间点上)向其他普通节点例如:普通节点C、普通节点D......以广播形式发送携带有主控身份标识的信标帧,确定成为新的主控节点。
进一步地,普通节点B在这个信标帧里除了携带主控身份标识,还可以通知更改BI时间间隔,发布新的网络节点总数等。
进一步地,如果普通节点B在发出AMIM帧后,在BI内意外收到另一普通节点的AMIM,则在下一BI的TBTT点上放弃发送作为新的主控节点的信标帧;
步骤206、普通节点B向成功竞发出NOWAY帧的节点返回ACK,并且不改变自身的普通节点身份,在TBTT的短时隙之后按退避算法竞发信标帧。
本实施例中其他普通节点例如:普通节点C接收到普通节点B所发送的AMIM之后,由于AMIM帧的发送方节点必定具有阈值以上的主控能力,如果普通节点C在Tm后亦没收到主控节点的信标帧,则普通节点C不对普通节点B作出应答以默认B作为新的主控节点。在省电模式下,普通节点C可以在ATIM窗后的竞争窗省电休眠,在下一BI(这时还是按原主控节点制定的值算)的ATIM窗里按规定醒来收发信标帧。现有的IBSS网络信标竞发机制是由网络中的节点在每次TBTT上重新计算一个退避延迟,这个退避延迟在0-2*aCWmin*aSlotTime中取值,等待退避延迟递减到0时发出信标。采用这种做法,网络里的某个节点可能连续几个BI间隔都成功竞发出信标,而有些节点可能在一段时间里一直都发不出信标。并且,在TBTT点上就开始进行退避,当有些普通节点的随机取值正好是0时就可以踏在TBTT点上发出信标,不利于保留TBTT点供紧急目的使用。可以根据步骤201所述重新规定IBSS网络信标竞发机制。无论普通节点C在本BI内是否休眠,在下一BI的TBTT上它将准备收发信标帧,如果在TBTT的短时隙内收到了信标帧,它将取消发送自己的信标帧,否则在TBTT的短时隙后按退避算法竞争发信标帧。
如果普通节点C在该AMIM帧所对应的BI内接收到了原主控节点发送的信标帧,意味着普通节点B可能由于干扰等原因未收到原主控节点的信标帧而误以为原主控节点脱离网络而错误发出新主控声明。这时普通节点C则向普通节点B及其他节点广播NOWAY帧,NOWAY帧里不携带值,以拒绝普通节点B成为新的主控节点并维护当前主控节点。NOWAY帧定义为与AMIM帧配对的否认应答帧,在否认AMIM帧的发送节点成为主控节点时使用,为一具有高退避时间优先级的控制帧。NOWAY帧是以退避竞争机制广播出去的。如果普通节点C在将NOWAY帧广播出去之前先听到了其他普通节点广播的NOWAY帧,它则取消剩余的NOWAY帧的退避计时,不再发送NOWAY帧。这样就保证了BI内不会因为各普通节点纷纷同时回应AMIM而造成信道堵塞,并且避免了各普通节点一个接一个回应AMIM的长耗时。如果NOWAY帧只广播出去一次,AMIM的发送方节点有可能发生没收到NOWAY帧的意外,从而在下一个BI的起始点TBTT无退避发出新信标,使其他节点无法照常轮发信标。因此,如上一段所述,AMIM的发送方节点在收到NOWAY帧后要给NOWAY帧的发送方节点回应一个ACK帧,表示收到了NOWAY帧。而发出NOWAY帧的节点在收到ACK帧之前要向AMIM帧的发送方节点持续发出NOWAY帧。
声明作主控节点的普通节点B,如果收到了NOWAY帧,便可了解到自己误发了AMIM,则不改变自己的普通节点身份,在TBTT的短时隙后按退避算法竞发信标帧;如果没有收到NOWAY帧,则该节点在TBTT时间点上无退避竞发信标帧。
本实施例中的阈值能力可以在WiFi(Wireless Fidelity,简称Wi-Fi)联盟制定的规范里进行规定。阈值能力的内容可以包括节点剩余工作时间和节点QoS能力。因为规定了没有达到阈值能力的节点不能参与竞争,如果没有节点违规,则第一个发出新主控声明的节点即为新的主控节点。本实施例中并不一定是主控能力最高的成为新的主控节点。
本实施例中的AMIM帧的发送方节点(普通节点B)必须在BI内一直保持活跃状态。本实施例中的AMIM-NOWAY-ACK机制也可以利用其他已有的帧实现。例如:AMIM帧和ATIM帧也可以合并在一起,即让平时为空帧的ATIM帧携带主控声明消息,节点接收到携带主控声明的ATIM帧后可以按照本实施例中接收到AMIM帧一样处理(需要重新规定携带主控声明的ATIM帧的发送方节点在ATIM窗后的竞争窗里必须保持活跃状态,但携带主控声明的ATIM帧的接收方节点可以在ATIM窗后的竞争窗省电休眠)。
可替换地,本实施例中,在Tm后未收到主控节点所发送的信标帧的普通节点也可以先向主控节点的目标地址发出是否脱离该无中心基础设施网络的问询,若没有收到主控节点的响应再发出声明新主控的AMIM,同样实现了在主控节点脱离无中心基础设施网络后,无中心基础设施网络能够及时获知原主控节点已脱离网络,并且重新协商出新的主控节点以维护和管理网络,不会影响无中心基础设施网络的节点之间正常通信。
图3为本发明实施例三提供的主控节点的协商方法的流程示意图,如图3所示,本实施例可以包括以下步骤:
步骤301、普通节点接收主控节点利用DCF竞争访问机制以广播或组播形式发送的携带有主控身份标识和按照节点的主控能力排列的节点列表的探测帧;
步骤302、普通节点获取再次接收主控节点发送的探测帧的最大时间间隔Tm。
步骤301中的主控节点在所发送的探测帧里除了携带一个主控身份标识,还可以携带当前发送探测帧时无中心基础设施网络里的节点总数N,以供本步骤中接收到该探测帧的普通节点确定再次接收到主控节点发送的探测帧的最大时间间隔Tm,即Tm=N*BI。但是,考虑到在最大时间间隔Tm内无中心基础设施网络中的节点总数N可能会发生变化,则最大时间间隔Tm可以取保险值Tm=2*N*BI;
步骤303、当时间间隔Tm后未再次接收到主控节点发送的探测帧时,普通节点根据所接收到探测帧中的节点列表协商确定成为新的主控节点。
假设步骤301中普通节点所接收到探测帧中的节点列表是按照节点的主控能力的递减或人为安排的顺序排列的,则在本步骤中,该节点列表中上的第一个普通节点若收到了主控节点的第一次探测帧之后,在Tm时间内没有收到主控节点的第二次探测帧,即认为主控节点脱离该无中心基础设施网络,则向原主控节点的目标地址发出是否脱离该无中心基础设施网络的问询。若没有收到原主控节点的响应,并且还收到了其他普通节点关于原主控节点是否脱离该无中心基础设施网络的问询,该普通节点便可以向其他普通节点以广播或组播形式发送成为新的主控节点的通知消息,从而实现了在主控节点脱离无中心基础设施网络网络后,无中心基础设施网络网络能够及时获知原主控节点已脱离网络,并且重新协商出新的主控节点以维护和管理网络,不会影响无中心基础设施网络网络的节点之间正常通信。
可替换地,步骤301中,普通节点所接收到的探测帧还可以是主控节点每隔预设时间段以广播或组播形式发送的探测帧。该探测帧发送的具体时间点可以称为主控节点目标信标发送时间(Leader Target Beacon TransmissionTime,简称LTBTT),该LTBTT的定义方法可以有但不限于以下几种:
1、在每个BI的ATIM窗的起始时间TBTT上,即LTBTT=TBTT;
2、在每隔几个BI的ATIM窗的起始时间TBTT上,例如:LTBTT=3*BI;
3、在每个BI的ATIM窗内TBTT之后的某一时间点上,例如:LTBTT=3*BI+0.1*ATIM;
4、比每个BI的ATIM窗内TBTT略前的某一时间点上,例如:LTBTT=3*BI-0.1*ATIM。
如果采用第1种或者第2种的定义,还需要主控节点在LTBTT上必须以最高优先级发探测帧,其他节点在LTBTT上必须听探测帧而暂停后发的探测帧和ATIM之外的其他帧的退避计时;如果采用第3种或第4种的定义,还需要所有节点在LTBTT上必须醒来。步骤303中,该节点列表中上的第一个普通节点若在LTBTT上没有收到原主控节点的探测帧,即认为主控节点脱离该无中心基础设施网络,则向原主控节点的目标地址发出是否脱离该无中心基础设施网络的问询。若没有收到原主控节点的响应,并且还收到了其他普通节点关于原主控节点是否脱离该无中心基础设施网络的问询,该普通节点便可以向其他普通节点以组播或广播形式发送成为新的主控节点的通知消息。本实施例通过主控节点周期性组播携带有节点列表的探测帧来发现主控节点的消失和协商确定出新的主控节点,从而实现了在主控节点脱无中心基础设施网络后,无中心基础设施网络能够及时获知原主控节点已脱离网络,并且重新协商出新的主控节点以维护和管理网络,不会影响无中心基础设施网络的节点之间正常通信。
进一步地,本实施例中涉及的节点列表除了按照节点的主控能力排列之外,还可以进一步考虑节点电量这个因素,也就是说,该节点列表中节点的排列顺序是由节点的主控能力和节点电量共同确定的。
图4为本发明实施例四提供的主控节点的协商装置的结构示意图,如图4所示,本实施例可以包括接收模块41、获取模块42和协商模块43。接收模块41接收主控节点发送的携带有主控身份标识的管理帧,获取模块42获取接收模块41再次接收上述主控节点发送的管理帧的最大时间间隔,当获取模块42获取的最大时间间隔后接收模块41未接收到上述管理帧时,协商模块43则根据预设策略确定成为新的主控节点。
本实施例提供的主控节点的协商装置可以认为是一个节点。本实施例中,接收模块接收到主控节点发送的携带有主控身份标识的管理帧之后,继续等待下一次主控节点所发送的管理帧,当在获取模块获取到的再次接收主控节点发送的管理帧的最大时间间隔后,接收模块没有接收到该管理帧时,协商模块则与其他普通节点的协商模块进行协商,根据预设策略确定新的主控节点。
本实施例中的管理帧可以为信标帧,还可以为探测帧。
进一步地,管理帧可以为信标帧时,本实施例中的协商模块43可以进一步包括声明单元431和发送单元432。当获取模块42获取的最大时间间隔后接收模块41未再次接收到上述管理帧时,声明单元431则根据DCF竞争访问机制发送用于声明成为新的主控节点的广播新主指示信息帧即AMIM帧。在BI内未接收到不认可上述声明的否定应答帧即NOWAY帧,发送单元432则在下一BI的起始点无退避延时发送成为新的主控节点的信标帧,确定成为新的主控节点。
进一步地,本实施例的主控节点的协商装置还可以进一步包括应答模块44,用于接收到不认可上述声明的否定应答帧,则向发送该否定应答帧的节点返回知道消息。
进一步地,管理帧可以为探测帧时,该探测帧中还可以携带有按照节点的主控能力排列的节点列表,本实施例中的协商模块43具体可以用于当获取模块42获取的最大时间间隔后接收模块41未再次接收到探测帧时,根据上述节点列表确定成为新的主控节点。
主控节点以外的其他节点(普通节点)中的协商模块可以根据获取模块所获取到的最大时间间隔内接收模块是否接收到主控节点所发送的管理帧来发现主控节点是否脱离无中心基础设施网络,实现了在主控节点脱离无中心基础设施网络后,无中心基础设施网络能够及时获知原主控节点已脱离网络,并且重新协商出新的主控节点以维护和管理网络,不会影响无中心基础设施网络的节点之间正常通信。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。