背景技术
随着车载通信系统的发展和移动自组网技术的逐渐成熟,为了实现对车辆的实时、动态、智能化管理,国际上专门开发了针对车联网的专用短程通信(Dedicated Short Range Communications,DSRC)协议。DSRC通过信息的双向传输,将车辆与车辆、车辆和路侧的信息采集设备有机的连接起来,支持点对点、点对多点通信。
移动分时隙ALOHA(Mobile Slotted Aloha,MS-ALOHA)机制是一种基于分时方式的DSRC MAC层接入和资源分配机制,资源分配基于帧结构以slot(时隙)为单位。参阅图1A所示,每N个slot构成一个帧(记为Frame),每个帧中的slot的编号为0~N-1,在帧之间循环往复。每个slot中只允许一个车辆进行发送,即车辆之间为(Time Division Multiple Access,时分复用接入)模式。车辆在所占用的时隙上中不仅发送应用层的数据,而且还需要发送FI(Frame Information,帧信息),在FI中会指示一个帧中各个slot的占用状态,例如,一种可能的FI结构如图1B所示)。
MS-ALOHA机制的基本思想是:任意一节点(如,车辆)加入网络时,需要通过监听帧中的空闲时隙资源占用一个时隙,如果节点不主动放弃该所占用的时隙资源,则可一直使用占用的时隙传输数据,在这期间其他节点不能使用该时隙。在占用的时隙上,节点需要周期性发送FI,FI中携带节点获得的与该节点相距两跳范围内的其他节点占用时隙的情况,指示节点感知到的每个时隙的占用状况信息,对每个时隙给出该时隙的包括:时隙占用状态信息,占用时隙的节点对应的STI(Source Temporary Identifier,临时资源标识)或可称为节点标识,占用时隙的节点的优先级状态(也可认为是占用时隙节点在该时隙发送的数据对应的优先级状态);其中,时隙占用状态信息可以表达时隙的四种占用状态:(00)表示时隙为空闲状态,(10)表示时隙已被与本节点相距一跳的其他节点占用(简称为一跳节点占用)或本节点占用,(11)表示时隙已被与本节点相距两跳的其他节点占用(简称为两跳节点占用),(01)表示时隙已被其他两个以上的节点占用,即为碰撞状态;在非自身占用的时隙,每个节点通过监听相邻一跳的节点发送的FI,能够判断相邻三跳范围内每个节点占用时隙的情况,当发现本节点占用的时隙资源与其他节点使用的资源发生碰撞时,重新预约新的空闲时隙。为方便后续描述,本发明中对FI及其内部信息内容统一采用如下描述方式:
节点发送帧信息(FI)称为:FI消息,也可简称为FI;
FI中指示的每个时隙对应的占用状况信息称为:FI消息中每个时隙对应的时隙信息域;
FI中每个时隙对应的占用状况信息中给出的三类信息(即:时隙占用状态、STI、优先级信息)分别称为:每个时隙的时隙信息域中包含的时隙占用状态子域、STI子域、优先级子域;
需要说明的是,上述描述方式只是为了后续描述方便而规定,当然也可以采用其他的描述方式。
在MS-ALOHA机制下,在对占用时隙的维护过程中,节点需要维护(N-1)*N时隙状态缓存表,用来存储对应时隙上接收到的相邻节点发送的FI消息中携带的各时隙的时隙信息域。例如,参阅图2所示,图2中展示的时隙状态缓存表的维数为N*N维,由于节点本身在所占时隙发送的FI消息不需要存储,因此节点实际维护的时隙状态缓存表为N-1行(假设每个节点只占用一个时隙),本发明后续内容中描述的(N-1)*N时隙状态缓存表均是指不保存节点本身占用时隙发送FI的时隙信息;其中,时隙对应的检测域是指占用该时隙发送的FI消息中该时隙对应的时隙信息域称为该时隙的“检测域”,“非检测域”是指非占用该时隙发送的FI中该时隙对应的时隙信息域称为该时隙的非“检测域”。其中default值为缺省值。
节点在一个时隙上接收到FI消息时,总是用新接收到的FI消息中携带的时隙信息内容覆盖时隙状态缓存表中对应时隙所在行的信息内容(即覆盖一个帧周期前记录的内容)。具体过程如下:
节点在自身占用的时隙生成并发送FI消息,需要按照一定规则填写各个field(域),包括时隙占用状态子域、STI子域以及优先级子域。发送完毕后,节点会清空所发送的FI信息。
节点在非自身占用的时隙上,需要接收周围节点发送的FI消息,并根据接收到的FI消息更新时隙状态缓存表,在到达本节点自身占用的时隙前判断自身占用的时隙是否维护成功及非自己占用时隙各时隙的占用状态,其中,当在非自身占用的时隙上没有接收到FI,节点会将时隙状态缓存表中该时隙对应的行的各域填default值。Default值当前按空闲状态(00)处理,当然也可以定义其他处理方式。
在MS-ALOHA机制下,任意一节点判断时隙资源发生碰撞有以下两种情况:
1)节点自身占用的时隙资源发生碰撞。
在(N-1)*N时隙状态缓存表中,节点自身占用的时隙对应的列(N-1个元素)上所指示的时隙信息中出现以下任意一种情况,则认为节点自身占用的时隙发生碰撞:
a、N-1元素对应的时隙信息中存在一个或多个指示本时隙被与节点STI不同的其他节点占用(对应的时隙占用状态指示为10),且节点自身的优先级不是占用该时隙的所有节点(包括本节点和N-1元素对应的时隙信息中指示与本节点占用相同时隙的所有其他节点)中最高的。
b、N-1元素对应的时隙信息中存在一个或多个指示本时隙被与节点STI不同的其他节点占用(对应的时隙占用状态指示为10),且节点的优先级为占用该时隙的所有节点(包括本节点和N-1元素对应的时隙信息中指示与本节点占用相同时隙的所有其他节点)中的最高优先级但不是唯一的最高优先级节点(由于只有4个优先等级,因此可能出现优先等级相同的多个节点)。则节点可以选择在自身当前占用的时隙+N上发送FI,在之后的流程中,如果再次出现这种情况,节点可以概率p再次在slot p+2*N发送,以概率(1-p)认为发生时隙资源碰撞。
2)非节点自身占用的时隙资源发生碰撞。
对于任一非节点自身占用的时隙对应的时隙状态缓存表中的N-1个元素中,出现了两个及以上的时隙信息指示该时隙被两个及以上节点(即:STI不同)占用(对应时隙占用状态指示为10),则确定该时隙资源发生碰撞。
现有技术下,当节点判断自身占用的时隙发生资源碰撞时,将重新发起接入过程重新获得时隙资源。当节点判断非自身占用的时隙资源发生碰撞时,将在自身发送的FI中将发生碰撞时隙的时隙状态信息填为(01),对应的STI填写发生碰撞的节点中优先级最高的节点对应的STI,优先级信息填写优先级最高的节点的优先级;当发生碰撞的节点优先级相同时,随机选一个STI填写,而优先级信息填写最高的优先级。
另一方面,现有技术下, MS-ALOHA机制中,任意一节点填写FI消息中每个时隙对应的时隙信息域中各子域(包括时隙占用状态子域、STI子域和优先级子域)的规则如下:
(1)对于节点自身占用的slot,时隙占用状态子域填写占用状态(10),STI子域和优先级子域分别填写自身的STI和优先级信息
(2)对于其他slot,分别考察(N-1)*N时隙状态缓存表中对应的列:
如果slot对应的列中的N-1个元素中时隙占用状态都指示为空闲状态(00)、default状态或两跳节点占用状态(11),则该slot的时隙占用状态子域填写为空闲状态(00),且不填写STI子域和优先级子域;
如果slot的检测域中时隙占用状态指示为占用状态(10),且其他N-2个元素中时隙占用状态都指示为空闲状态(00)、default状态及两跳节点占用状态(11),或者,时隙的检测域中时隙占用状态指示为占用状态(10),且其他N-2个元素中时隙占用状态都指示为占用状态(10)并且STI指示与检测域中的STI指示相同,则将该slot的时隙占用状态子域填写为占用状态(10),同时根据对应的STI和优先级信息填写STI子域和优先级子域。
如果slot对应的列中的N-1个元素的时隙占用状态中出现了两个及其以上的占用状态(10),且各自对应的STI不同,则将该slot的时隙占用状态子域填写为碰撞状态(01),同时,STI子域填写优先级最高的节点的STI,当存在多个最高优先级节点时,随机选一个最高优先级节点的STI填写STI子域,优先级子域填写最高优先级节点对应的优先级。
如果slot对应的检测域中时隙占用状态指示为default状态,且其他N-1个元素中,存在一个或多个元素的时隙占用状态指示为占用状态(10),而且它们对应的STI都相同,则将该slot的时隙占用状态子域填写为两跳占用状态(11),同时,根据对应的STI和优先级信息填写STI子域和优先级子域。
现有技术下,采用MS-ALOHA机制进行时隙资源碰撞判断的方法会产生以下问题:
首先,时隙资源的判断规则会导致不必要的资源碰撞指示。
例如,上述时隙占用状态信息填写为碰撞状态(01)的条件是:N-1个元素中,出现了2个及其以上的占用状态(10),且STI不同。但是,实际应用中,被指示占用同一个时隙且STI不同的两个节点可能互为四跳节点,而当两个节点互为四跳节点时,已满足MS-ALOHA机制规定的资源复用距离的要求(即大于三跳),因此采用MS-ALOHA机制现有的时隙资源碰撞判断条件将会降低资源复用效率。如,参阅图3所示,节点B通过FI通知节点A,一跳节点C占用时隙n,而节点D通过FI通知节点A,一跳节点E占用时隙n,则节点A获知两跳节点C和两跳节点E同时占用时隙n,则节点A认为时隙n上的资源发生碰撞,但是,节点C和节点E互为四跳节点,可以利用时隙n的资源,此时,若节点A判定资源发生碰撞,则会降低资源利用效率。
其次,FI的处理流程不完善。
目前,在FI的生成规则中,没有考虑当节点接收到的FI中指示非本节点占用的时隙发生碰撞,即FI中该时隙对应的时隙信息域的时隙占用状态子域为占用状态为(01)时的处理方式,即当节点接收到的FI中指示非节点占用的某一时隙已被两个及以上的其他节点占用时,节点无法根据现有规则确定该时隙的状态并作出相关处理。
具体实施方式
为了解决MS-ALOHA机制中所存在的资源碰撞判断失误问题,以及在FI生成时,无法对接收到的其他节点发送的FI中携带的碰撞状态指示信息(01)准确处理的问题,提出一种新的资源碰撞的判定方法,具体介绍如下。
目前,第一节点对于本节点占用的时隙是否发生碰撞的判断,以及对接收到的其他节点发送的指示本节点占用时隙发生碰撞时的处理方式均属于现有技术,其具体实施方式如下:
第一节点对于自身占用的时隙,当节点接收到其他节点发送的FI消息中第一节点对于自身占用的时隙对应的时隙信息域中的时隙占用状态子域指示本节点占用的时隙发生碰撞时,则确定本节点占用的时隙发生了碰撞,或者,当节点接收到其他节点发送的FI消息中第一节点对于自身占用的时隙对应的时隙信息域指示本节点占用时隙被其他节点占用时,则确定本节点占用的时隙发生了碰撞;此时,节点应用释放自身所占用的时隙资源,并重新发起接入过程重新获得时隙资源。
而本发明实施例提出一种新的资源碰撞的判定方法,主要是应用于“第一节点对于非本节点占用的时隙”这一应用场景的。参阅图4A所示,其具体流程如下:
步骤400:第一节点接收其他节点发送的FI消息。
本实施例中,较佳的,第一节点均以自身占用的两个相邻时隙之间的时长为一个帧周期,并在一个帧周期包含的除本节点占用的时隙之外的各个时隙内接收其他节点发送的FI消息。
另一方面,第一节点接收到的FI,可以为从某一设定时间点开始到当前时间接收的FI,或者,为从当前时间往前倒推一帧时间内接收的FI,其中,所谓某一设定时间点,可以是第一节点占用的时隙,可以是第一节点确定的FI接收参考时隙,也可以是第一节点开始监听信道的时隙。
实际应用中,节点处理时隙资源的过程可以分为信道接入过程和信道维护过程。信道接入过程用于进行时隙资源申请;信道维护过程用于对自占的时隙进行维护。信道接入过程分为以下5个步骤:
步骤一:监听一帧(又称监听阶段)。
节点监听一帧中的所有slot,并将接收到的FI消息存入N*N时隙状态缓存表中的对应位置。在一帧结束后,自组织网络中的节点获得了如图2所示的N*N矩阵形式维护的时隙状态信息,并执行步骤二。
步骤二:选择一个空闲时隙(available slot)。
根据时隙状态缓存表保存的信息确定:如果有空闲slot,选择该slot;如果空闲slot多于一个,从中随机选一个;如果没有空闲slot,那么将比自己当前优先级低的slot作为空闲slot进行选择。
选择空闲slot后,执行步骤三。
步骤三:等待选定的slot到达,再次确认是否空闲。
假设步骤二中,选择空闲slot p。那么,在slot p到达前,持续监听各个slot,用新的slot中接收的FI信息覆盖图2中的相应的旧的slot中接收的FI信息。等到slot p-1的结尾,检查slot p是否仍然满足步骤二中的条件(包括无空闲slot时的优先级考虑的方式):
如满足,则执行步骤四(即发送FI)。
如不满足,此刻立即执行步骤二。
步骤四:在slot p发送生成的FI消息。
发送完毕后,执行步骤五。
步骤五:监听反馈,确认是否成功占用时隙。
信道维护由两部分操作构成:一方面是要在自己占用的时隙上发送FI信息;另一方面是在非自己占用的时隙上接收FI信息,并根据接收到的FI信息更新自己维护的时隙状态表以判断自己占用时隙是否发生碰撞,当发生碰撞时,重新开始信道接入过程预约新的时隙资源。
发送时隙:根据当前的时隙状态表生成FI信息,并发送。
接收时隙:根据接收到的FI信息中各时隙对应的时隙信息域对自己维护的时隙状态表中各时隙对应的时隙信息单元进行更新。当自己占用的时隙判断为发生碰撞时,则信道维护过程结束,重新进入信道接入过程,监听空闲时隙,预约新的时隙资源。
上述步骤400中提及的第一节点开始监听信道的时隙,可以从信道接入过程执行步骤一的时隙开始,也可以从信道维护过程开始。
步骤410:第一节点对于非本节点占用的时隙,根据接收到的FI消息,判断上述时隙被第一设定跳数节点和第二设定跳数范围内至少一个非上述第一设定跳数节点的其他节点同时占用时,确定上述时隙发生资源碰撞。
较佳的,第一节点可以在本节点将要发送FI时执行上述判断操作,可以在每次接收到FI时执行上述判断操作,也可以在接入过程中监听阶段结束时执行上述判断操作,还可以在其他设定时间点执行上述判断操作。
较佳的,上述第一设定跳数节点为一跳节点,即是指与第一节点相距一跳的节点,那么,在执行步骤410时,第一节点对于非本节点占用的第一时隙,根据接收到的FI,确认上述第一时隙被一跳节点和至少一个非该一跳节点的其他节点同时占用时,确定该第一时隙发生资源碰撞。
例如:节点A根据接收到的FI确定时隙n被一跳节点B和两跳节点E同时占用,则确定时隙n的资源发生碰撞,并将其时隙占用状态判断为碰撞状态。
又例如:节点A根据接收到的FI确定时隙n被一跳节点B占用,并且除一跳节点B之外的其他节点指示时隙n为“碰撞状态”,则确定时隙n的资源发生碰撞,并将其时隙占用状态判断为碰撞状态。
根据上述举例可以看出,第一节点根据接收到的其他节点发送的FI,获知其他节点指示某一时隙为“碰撞状态”时,只有在自身的一跳节点也占用该时隙的情况下,才会将该时隙的时隙占用状态判断为碰撞状态,否则,不认为时隙资源发生碰撞。这样,可以有效避免相距四跳的节点无法复用时隙资源的情况出现,有效提高了资源的复用效率。
基于上述实施例,以下实施例中,仅以第一设定跳数节点为一跳节点,第二设定跳数范围是两跳范围为例进行介绍,技术人员可以根据将以下实施例中记载的相关技术方案应用于其他相适合的应用场景中。当然第一设定跳数也可以是两跳、三跳等,第二设定跳数范围也可以是三跳范围、四跳范围等,在此不再赘述。
实际应用中,第一节点在帧周期内接收其他节点发送的FI消息后,会有两种FI信息保存方式,在不同的FI信息保存方式下,步骤410的执行方式也略有不同。下面对两种FI信息保存方式下步骤410的执行方式分别作出介绍。
第一种FI信息保存方式为:采用累积方式保存FI,即在一个帧周期内,节点在其他节点占用的时隙内接收其他节点发送的FI,并在本节点占用的时隙发送FI消息之前,对接收到的其他节点发送的FI统一进行处理,获得本节点需要发送的FI。
采用第一种FI保存方式时,节点接收到所有其他节点发送的FI后,可以采用如图2所示的基于MS-ALOHA机制的时隙状态缓存表的方式进行保存,表中的每一行存储对应节点在某一时隙接收到的FI中的时隙信息,当然,也可以采用其他实现方式,如,表中的每一列存储对应节点在某一时隙接收到FI中的时隙信息,或采用数据、链表等其他数据结构来存储节点在某一时隙接收到的FI中的时隙信息)。下面以采用时隙状态缓存表来保存节点收到的FI且表中的每一行存储对应节点在某一时隙接收到的FI中的时隙信息为例进行介绍。
第一节点在本节点占用的时隙发送FI前,基于之前接收的其他节点发送的FI得到的(N-1)*N的时隙状态缓存表(设不保存本节点占用时隙发送的FI),能够判断各个时隙当前的占用状态。此时,步骤410的具体执行方式如下:
第一节点对于非本节点占用的任意一时隙,当确认该任意一时隙对应的检测域信息指示该任意一时隙已被一跳节点占用,且该任意一时隙对应的至少一个非检测域信息指示该任意一时隙被非上述一跳节点的另一节点占用时,判断该任意一时隙为碰撞状态;和/或,第一节点对于非本节点占用的任意一时隙,当确认该任意一时隙对应的检测域信息指示该任意一时隙已被一跳节点占用,且该任意一时隙对应的至少一个非检测域信息指示该任意一时隙为碰撞状态时,判断该任意一时隙为碰撞状态。
例如,第一节点检测(N-1)*N维时隙状态缓存表中时隙n所对应的列(即其他节点针对时隙n发送的时隙信息,记为N-1个元素):即检测不同节点指示的时隙n的时隙信息,若确定时隙n对应的检测域信息指示时隙n被一跳节点占用,而至少一个非检测域信息指示时隙n被另一一跳节点占用(此一跳节点与检测域指示的一跳节点不同,检测域中的一跳节点占用是距第一节点一跳距离的节点,非检测域中的一跳节点是距发送对应FI消息节点一跳距离的节点,因此非检测域中指示的一跳节点对于第一节点来说是两跳节点),则将时隙n判定为碰撞状态。
又例如:第一节点检测(N-1)*N维的时隙状态缓存表中时隙n所对应的列(即其他节点针对时隙n发送的时隙信息,记为N-1个元素),即检测不同节点指示的时隙n的时隙信息,若确定时隙n对应的检测域信息指示时隙n被一跳节点占用,而至少一个非检测域信息指示时隙n为碰撞状态,则将时隙n判定为碰撞状态。
从上述实施例可以看出,本发明实施例中,第一节点被其他节点通知非本节点占用的时隙n发生碰撞时,其处理方式为:
第一节点检测(N-1)*N维时隙状态缓存表中时隙n所对应的列(N-1个元素),如果时隙n对应的检测域信息指示时隙n被一跳节点占用,而至少一个非检测域信息指示时隙n为碰撞状态,则将时隙n判断为碰撞状态;
如果时隙n对应的检测域指示为default状态\空闲状态,而至少一个非检测域信息指示时隙n为碰撞状态,那么,第一节点在确定时隙n的时隙状态时,会根据时隙n对应的列中N-1个元素(即检测域和非检测域)内将时隙n指示为非碰撞状态的元素内容决定(即不考虑将时隙n指示为碰撞状态的非检测域内容的影响)。
第二种FI信息保存方式为:采用迭代方式保存FI信息,即节点仅保存一个关于各时隙当前占用状态的向量,称为时隙状态向量(也可称作时隙状态表)后续称为时隙状态向量(表),一种可能的时隙状态向量(表)如图4B所示,当节点接收到其他节点发送的FI时,根据新接收FI中各时隙对应的时隙信息域对本地保存的时隙状态向量(表)中每一个时隙对应的时隙信息单元进行更新。当节点需发送自身判定的FI时,会根据保存的时隙状态向量(表)中的信息生成要发送的FI。
为方便后续描述,本发明中对时隙状态向量(表)及其内部信息内容统一采用如下描述方式:
节点保存的记录各时隙当前占用状态信息的格式称为:时隙状态向量,或时隙状态表;
时隙状态向量(表)中指示的每个时隙对应的占用状况信息称为:时隙状态向量(表)中每个时隙对应的时隙信息单元;
时隙状态向量(表)中每个时隙对应的占用状况信息中给出的三类信息(即:时隙占用状态、STI、优先级信息)分别称为:每个时隙的时隙信息单元中包含的时隙占用状态子单元(这里,时隙占用状态子单元中内容不需要和FI中时隙占用状态子域内容完全相同,但需要有映射关系,如:对于节点保存的时隙状态表中可以设“自占”和“一跳节点占用”两个状态来表明时隙的占用状态,而节点将保存的时隙状态表中的信息内容映射到要发送的FI消息中时,FI中两种状态的时隙对应的时隙信息域中的时隙占用状态子域可以都映射为“10”,其他节点接收到FI后通过时隙信息域所在位置(是检测域还是非检测域)来判断对应时隙信息域的时隙占用状态子域中的“10”指的是发送节点自占还是发送节点的一跳节点占用)、STI子单元、优先级子单元
需要说明的是,上述描述方式只是为了后续描述方便而规定,当然也可以采用其他的描述方式。
采用第二种FI保存方式时,节点在某个时隙中接收到其他节点发送的FI消息后,可以对当前保存的时隙状态向量(表)中指示的各时隙的时隙信息单元内容进行更新时,其中,第一节点对于非本节点占用的任意一时隙,根据接收到的FI,当确认已保存的时隙状态向量(表)中该任意一时隙对应的时隙信息单元指示该任意一时隙已被一跳节点占用,而接收FI中该任意一时隙对应的时隙信息域指示该任意一时隙被非上述一跳节点的另一两跳节点占用时,判断上述任意一时隙为碰撞状态;和/或,第一节点对于非本节点占用的任意一时隙,当确认已保存的时隙状态向量(表)中该任意一时隙对应的时隙信息单元指示该任意一时隙已被一跳节点占用,而接收FI中该任意一时隙对应的时隙信息域指示该任意一时隙为碰撞状态时,判断上述任意一时隙为碰撞状态。
上述实施例中,对于任意一时隙是否为碰撞状态的判定规则可以采用以下规则之一或任意组合,并且并不限于以下几种规则:
例如,第一节点对于帧周期内非本节点占用的时隙n,根据时隙m-1中已保存的时隙状态向量(表)确定时隙n已被一跳节点占用,同时,上述第一节点根据在时隙m中新接收的FI中对应的时隙信息域,确定时隙n被指示为被非上述一跳节点的另一两跳节点所占用,则上述第一节点将保存的时隙状态向量(表)中时隙n对应的时隙占用状态子单元内容更新为碰撞状态,对应的STI子单元和优先级子单元的更新规则见后续描述。
如,参阅图3所示,节点A保存的时隙状态向量(表)中将时隙n的时隙占用状态记录为被一跳节点B占用,此时节点A收到节点C发送的FI,FI指示时隙n被节点A的两跳节点E占用(节点E和节点B的STI不同),则节点A将保存的时隙状态向量(表)中时隙n的时隙占用状态更新为碰撞状态;
又例如,第一节点对于帧周期内非本节点占用的时隙n,根据时隙n-1中已保存的时隙状态向量(表)确定时隙n已被两跳节点占用,同时,上述第一节点根据在时隙n中新接收的FI中对应的时隙信息域,确定时隙n被指示为被非上述两跳节点的另一一跳节点所占用,则上述第一节点将保存的时隙状态向量(表)中时隙n对应的时隙占用状态子单元内容更新为碰撞状态,对应的STI子单元和优先级子单元的更新规则见后续描述。
又例如,第一节点对于帧周期内非本节点占用的时隙n,根据时隙m-1中已保存的时隙状态向量(表)确定时隙n已被一跳节点占用,同时,上述第一节点根据在时隙m中新接收的FI中对应的时隙信息域,确定时隙n被指示为碰撞状态,则上述第一节点将保存的时隙状态向量(表)中时隙n对应的时隙占用状态子单元内容更新为碰撞状态,对应的STI子单元和优先级子单元的更新规则见后续描述。
又例如,第一节点对于帧周期内非本节点占用的时隙n,根据时隙m-1中保存的时隙状态向量(表)确定时隙n的时隙占用状态为碰撞状态,那么不论在时隙m中新接收的FI中对应的时隙信息域指示时隙n是何种时隙状态,(如,被上述第一节点占用、被一跳节点占用、被两跳节点占用、空闲状态、碰撞状态),上述第一节点在保存的时隙状态向量(表)中均将时隙n的时隙占用状态保持为碰撞状态。
从上述实施例可以看出,本发明实施例中,第一节点对被其他节点通知非本节点占用的时隙n发生碰撞时,其处理方式为:
如果第一节点根据已保存的时隙状态向量(表),确定时隙n的时隙占用状态被记录为“一跳节点占用”,则当接收到其他节点发送的FI中指示时隙n的时隙占用状态为碰撞状态时,将时隙n的时隙占用状态更新为碰撞状态。
如果第一节点根据已保存的时隙状态向量(表),确定时隙n的时隙占用状态被记录为非“一跳节点占用”,则当接收到其他节点发送的FI中指示时隙n的时隙占用状态为碰撞状态时,维持时隙n原有的时隙占用状态不变。
在上述各实施例中,当第一节点判断非本节点占用的任意一时隙发生了资源碰撞时,在本节点发送的FI中指示该任意一时隙发生资源碰撞,进一步地,可以结合节点优先级信息和节点标识信息,确定在FI中指示该任意一时隙为碰撞状态的指示方式。例如,第一节点确定非本节点占用的任意一时隙为碰撞状态时,若在该任意一时隙上,高优先级节点和低优先级节点的时隙资源发生碰撞,则上述第一节点在FI中发送的该任意一时隙对应的时隙信息中指示高优先级节点对应的STI以及高优先级节点对应的优先级信息。另外,当采用第二种FI信息保存方式时,当第一节点判断非本节点占用的任意一时隙发生了资源碰撞时,在本节点保存的时隙状态向量(表)中该任意一时隙对应的时隙信息单元的时隙占用状态子单元中指示该任意一时隙为碰撞状态,进一步地,可以结合节点优先级信息和节点标识信息,确定在时隙状态向量(表)中指示该任意一时隙为碰撞状态的指示方式。例如,第一节点确定非本节点占用的任意一时隙为碰撞状态时,若在该任意一时隙上,高优先级节点和低优先级节点的时隙资源发生碰撞,则在第一节点保存的时隙状态向量(表)中该任意一时隙对应的时隙信息单元中指示高优先级节点对应的STI以及高优先级节点对应的优先级信息。
由上述内容可以看出,本发明实施例中,第一节点确定非本节点占用的任意一时隙发生资源碰撞后,若第一节点维护时隙状态向量(表),则在保存的时隙状态表中将判断为碰撞状态的时隙对应的时隙信息单元中的时隙占用状态子单元置为碰撞状态,若第一节点未维护时隙状态表,则当采用判断后的结果生成第一节点发送的FI时,将FI中判断为碰撞状态的时隙对应的时隙信息域中时隙占用状态子域置为碰撞状态;
另一方面,第一节点确定非本节点占用的任意一时隙发生资源碰撞后,若第一节点维护时隙状态表,则结合节点优先级信息和节点标识信息在保存的时隙状态表中更新判断为碰撞状态的时隙对应的时隙信息单元中的节点标识子单元和优先级子单元;如,
若第一节点确定判断为碰撞状态的时隙上,高优先级节点和低优先级节点的资源发生碰撞,则第一节点在时隙状态向量(表)中发生碰撞的时隙对应的时隙信息单元中,将节点标识(即STI)子单元置为高优先级节点对应的节点标识,以及将优先级子单元置为高优先级节点对应的优先级信息。
若第一节点未维护时隙状态表,则当采用判断后的结果生成第一节点发送的FI时,结合节点优先级信息和节点标识信息确定FI中判断为碰撞状态的时隙对应的时隙信息域中节点标识子域和优先级子域;如,
若第一节点确定判断为碰撞状态的时隙上,高优先级节点和低优先级节点的资源发生碰撞,则第一节点在FI中发送的发生碰撞的时隙对应的时隙信息域中,将节点标识子域置为高优先级节点对应的节点标识,以及将优先级子域置为高优先级节点对应的优先级信息。
下面以两个具体的应用场景为例对上述流程进行详细说明。
第一种应用场景为:采用N*N维时隙状态缓存表维护时隙信息的碰撞判定方法(即采用第一种FI保存方式),其中,假设设一个帧中包含6个时隙,节点A占用时隙3,在时隙2结束时,节点A保存的N*N维时隙状态缓存表如表1所示(本实施例中没有考虑优先级相关信息):
表1
(节点A时隙占用状态)
Slot 1:B |
B:10 |
00 |
A:10 |
00 |
E:10 |
00 |
Slot 2:G |
00 |
G:10 |
00 |
00 |
00 |
H:10 |
Slot 3:A |
|
|
|
|
|
|
Slot 4:F |
00 |
00 |
00 |
F:10 |
00 |
00 |
Slot 5:C |
D:10 |
00 |
A:10 |
01 |
C:10 |
01 |
Slot 6: |
default |
default |
default |
default |
default |
default |
节点A在发送自身的FI之前,根据已保存的时隙状态缓存表确定各时隙的状态。具体如下:
时隙1:碰撞状态。
原因:时隙1的检测域和至少一个非检测域都指示时隙1被占用,但占用时隙的节点不同。
时隙2:被节点G。
原因:除时隙2对应的检测域指示时隙2被节点G占用外,时隙2对应列上的非检测域均指示时隙2为空闲状态或default状态。
时隙3:被节点A占用。
原因:时隙3对应的非检测域没有指示时隙3还被其他节点占用,即:节点自身占用的时隙没有发生碰撞。
时隙4:碰撞状态。
原因:时隙4对应的检测域指示时隙4节点F占用(即检测域指示为10),但时隙4对应的一个非检测域指示时隙4为碰撞状态(01)。
时隙5:碰撞状态。
原因:时隙5对应的检测域和至少一个非检测域都指示时隙5被占用,但指示占用时隙5的节点不同。
时隙6:被节点H占用。
原因:虽然在时隙5接收到节点C发送的时隙状态信息中指示时隙6为碰撞状态,由于时隙6的检测域指示为default状态,根据前述判断规则“如果时隙对应的检测域指示为default状态\空闲状态,而至少一个非检测域信息指示该时隙为碰撞状态,那么,第一节点在确定该时隙的时隙状态时,会根据时隙n对应的列中N-1个元素(即检测域和非检测域)内将该时隙指示为非碰撞状态的元素内容决定”,因此确定时隙6的状态为被节点H占用。
这样,节点A根据表1可以确定出当前各个时隙的状态信息,具体如表2所示:
表2
Slot 3:A |
01 |
G:10 |
A:10 |
01 |
01 |
H:10 |
节点根据确定如表2所示的各时隙的状态信息生成要发送的FI,其中,节点A会在FI中添加各时隙对应S TI和优先级信息。实际实施过程中,可以采用从表1先生成表2然后再生成要发送的FI,也可以采用根据本发明所述的判断方法直接由表1生成要发送的FI
另一种应用场景为:采用时隙状态向量(表)维护时隙信息的碰撞判定方法。假设一个帧中包含5个时隙,节点A占用时隙5,节点内部维护的时隙状态向量(表)各时隙对应的时隙占用状态定义如下(本实施例中没有考虑优先级相关信息):
10被一跳节点占用或自己占用;
11被两跳节点占用;
01碰撞时隙
00空闲时隙或被三跳节点占用时隙。
假设在时隙3结束时,节点A保存的时隙状态向量(表)如表3所示:
表3
而假设节点A在时隙4接收到的节点B发送的FI中携带的时隙信息如表4所示:
表4
则节点A根据节点B发送的FI中携带的时隙信息更新自己保存的时隙状态向量(表),具体如下:
时隙1状态:碰撞状态。
原因:节点A之前保存的FI确认时隙1发生资源碰撞。
时隙2:碰撞状态。
原因:节点A根据时隙状态向量(表)中的时隙信息确认时隙2被一跳节点C占用,接着,节点A根据一跳节点B发送的FI判定时隙2同时被两跳节点E占用。
时隙3:碰撞状态。
原因:节点A根据时隙状态向量(表)中的时隙信息确认时隙3被一跳节点D占用,接着,节点A根据一跳节点B发送的FI判定时隙3已发生资源碰撞。
时隙4:碰撞状态。
原因:节点A根据时隙状态向量(表)中的时隙信息确认时隙4被两跳节点F占用,接着,节点A在时隙4上接收到一跳节点B发送的FI,指示时隙4被一跳节点B占用。
时隙5:被节点A自己占用。原因:节点A根据时隙状态向量(表)中的时隙信息已认为时隙5被自己占用,在接收到节点B发送的FI中没有指示该时隙被其他节点占用。
节点A根据在时隙4接收到的节点B发送的FI更新后的时隙状态向量(表)具体如表5所示:
表5
在到达时隙5时,节点A根据保存的时隙状态向量(表)中的时隙信息(表5)生成发送的FI。
需要说明的是,在第二种应用场景下,当前只使用了两个bit来在时隙状态向量(表)中区分不同的时隙占用状态,由上可以看出,00表示两种不同的时隙状态,一个是空闲状态,一个是被三跳节点占用,尽管根据内部状态生成向节点发送的FI中不管是空闲时隙还是被三跳节点占用时隙都将指示为00,但这两个不同的状态对节点本身发生资源碰撞时资源的选择还是有影响的,如,三跳节点占用的时隙资源,不能被选择。为了更加明确地区分不同的时隙占用状态,在节点维护自身的时隙占用状态向量(表)时,可以对空闲状态和被三跳节点占用状态进行区分,根据具体算法的要求还可以增加其他的时隙占用状态区分参量。
另一方面,本实施例中,以上的描述中均假设每个节点在一个帧中只占用N个时隙中的1个时隙,例如,节点的时隙信息采用累积方式保存时,节点最多收到的是N-1个其他节点发送的FI。需要指出的是,对于节点同时占用1个以上时隙的情况(例如,节点在帧中占用2个时隙,那么,当节点的时隙状态信息采用累积方式保存时,节点最多可以收到N-2个其他节点发送的FI),仍然适用于本发明实施例所提出的判定处理方法,按照相同的逻辑执行即可。
基于上述实施例,参阅图5所示,本发明实施例中,第一节点包括通信单元50和处理单元51,其中,
通信单元50,用于接收其他节点发送的FI;
处理单元51,用于对于非本装置占用的时隙,根据接收到的FI,判断所述时隙被第一设定跳数节点和第二设定跳数范围内至少一个非所述第一设定跳数节点的其他节点同时占用时,确定该时隙发生资源碰撞。
综上所述,本发明实施例中,提出一种资源碰撞的判定方法,第一节点根据接收到的其他节点发送的FI,通过分析本节点的一跳节点占用的时隙和另一节点占用的时隙是否相同,确定是否需要此时隙(非本节点占用时隙)判定为碰撞状态,以及通过分析本节点的一跳节点是否占用了其他节点指示的碰撞时隙,确定是否需要将此时隙(非本节点占用时隙判定为碰撞状态),这样,可以有效避免节点将可复用的时隙资源误判为碰撞时隙,从而避免了因碰撞指示信息的扩展传播导致不必要的时隙资源浪费,提高了资源复用效率。
进一步地,本发明实施例中,还提出了第一节点接收到其他节点发送的FI指示非本节点占用时隙发生资源碰撞时的处理方式、从而完善了MS-ALOHA机制下FI的处理方式。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。