背景技术
随着车载通信系统的发展和移动自组网技术的逐渐成熟,为了实现对车辆的实时、动态、智能化管理,国际上专门开发了针对车联网的DSRC(DedicatedShort Range Communications,专用短程通信)协议。DSRC通过信息的双向传输,将车辆与车辆、车辆和路侧的信息采集设备有机的连接起来,支持点对点、点对多点通信。
移动分时隙ALOHA(Mobile Slotted Aloha,MS-ALOHA)机制是一种基于分时方式的DSRC MAC(Medium Access Control,媒体接入控制)层接入和资源分配机制,资源分配基于帧结构以slot(时隙)为单位。参阅图1所示,
每N个slot构成一个帧(记为Frame),每个帧中的slot的编号为0~N-1,在帧之间循环往复。每个slot中只允许一个车辆进行发送,即车辆之间为TDMA(Time Division Multiple Access,时分复用接入)模式。车辆在所占用的时隙上中不仅发送应用层的数据,而且还需要发送FI(Frame Information,帧信息),在FI中会指示一个帧中各个slot的占用状态,例如,一种可能的FI结构如图2所示)。
MS-ALOHA机制的基本思想是:任意一节点(如,车辆)加入网络时,需要通过监听帧中的空闲时隙资源占用一个时隙,如果节点不主动放弃该所占用的时隙资源,则可一直使用占用的时隙传输数据,在这期间其他节点不能使用该时隙。在占用的时隙上,节点需要周期性发送FI,FI中携带节点获得的与该节点相距两跳范围内的其他节点占用时隙的情况,指示节点感知到的每个时隙的占用状况信息(也称时隙状态信息、时隙信息),对每个时隙给出该时隙的:时隙占用状态信息,占用时隙的节点对应的STI(Source TemporaryIdentifier,临时资源标识)或可称为节点标识,占用时隙的节点的优先级状态(也可认为是占用时隙节点在该时隙发送的数据对应的优先级状态);其中,时隙占用状态信息可以表达时隙的四种占用状态:(00)表示时隙为空闲状态,(10)表示时隙已被与本节点相距一跳的其他节点占用(简称为一跳节点占用)或本节点占用,(11)表示时隙已被与本节点相距两跳的其他节点占用(简称为两跳节点占用),(01)表示时隙已被其他两个以上的节点占用,即为碰撞状态;在非自身占用的时隙,每个节点通过监听相邻一跳的节点发送的FI,能够判断相邻三跳范围内每个节点占用时隙的情况,当发现本节点占用的时隙资源与其他节点使用的资源发生碰撞时,重新预约新的空闲时隙。为方便后续描述,本发明中对FI及其内部信息内容统一采用如下描述方式:
节点发送帧信息(FI)称为:FI消息,也可简称为FI;
FI中指示的每个时隙对应的占用状况信息称为:FI消息中每个时隙对应的时隙信息域;
FI中每个时隙对应的占用状况信息中给出的三类信息(即:时隙占用状态、STI、优先级信息)分别称为:每个时隙的时隙信息域中包含的时隙占用状态子域、STI子域、优先级子域;
需要说明的是,上述描述方式只是为了后续描述方便而规定,当然也可以采用其他的描述方式。
在MS-ALOHA机制下,在对占用时隙的维护过程中,节点需要维护(N-1)*N时隙状态缓存表,用来存储对应时隙上接收到的相邻节点发送的FI消息中携带的各时隙的时隙信息域。例如,参阅图3所示,图3中展示的时隙状态缓存表的维数为N*N维,由于节点本身在所占时隙发送的FI消息不需要存储,因此节点实际维护的时隙状态缓存表为N-1行(假设每个节点只占用一个时隙),本发明后续内容中描述的(N-1)*N时隙状态缓存表均是指不保存节点本身占用时隙发送FI的时隙信息;其中,时隙对应的检测域是指占用该时隙发送的FI消息中该时隙对应的时隙信息域称为该时隙的“检测域”,“非检测域”是指非占用该时隙发送的FI中该时隙对应的时隙信息域称为该时隙的非“检测域”。其中default值为缺省值。
节点在一个时隙上接收到FI消息时,总是用新接收到的FI消息中携带的时隙信息内容覆盖时隙状态缓存表中对应时隙所在行的信息内容(即覆盖一个帧周期前记录的内容)。具体过程如下:
节点在自身占用的时隙生成并发送FI消息,需要按照一定规则填写各个field(域),包括时隙占用状态子域、STI子域以及优先级子域。发送完毕后,节点会清空所发送的FI信息。
节点在非自身占用的时隙上,需要接收周围节点发送的FI消息,并根据接收到的FI消息更新时隙状态缓存表,在到达本节点自身占用的时隙前判断自身占用的时隙是否维护成功及非自身占用时隙各时隙的占用状态,其中,当在非自身占用的时隙上没有接收到FI,节点会将时隙状态缓存表中该时隙对应的行的各域填default值。Default值当前按空闲状态(00)处理,当然也可以定义其他处理方式。
目前,现有的基于FI交互的时隙资源分配机制,主要是研究通过FI交互来使各节点感知周围节点的时隙占用状态,从而确定自身可申请的时隙资源。但是,在车联网中,交通安全和行车效率类的应用对消息发送时延提出了很高的使用要求,如,存在大量消息的发送时延要求为100ms,然而,传统基于集中式资源分配的蜂窝网络难以满足这些应用的发送时延要求,例如,假设发送时延要求为“从当前时间起延时100ms”,而采用传统方式申请的时隙资源的到达时间有可能超过100ms,因而很容易造成消息发送延迟。
众所周知,对于发送时延要求较高的应用而言,消息发送的延迟有可能造成无法挽回的严重后果,因此,为满足车联网中消息交互的低时延要求,需要重新设计的时隙资源调度机制。
具体实施方式
本发明实施例中,设计了一种新的时隙资源调度机制,利用通过FI交互方式获得的时隙资源信息,来满足高层下发的具有不同时延要求的数据包的发送要求(即资源调度),具体为:节点根据数据包的发送剩余时间来为数据包分配相应的时隙资源,从而满足了不同时延要求数据包的发送要求。
本发明实施例中,各节点对帧中各时隙的FI的维护方式可以分为以下两类:
第一种维护方式为:采用累积方式保存FI。即在一个帧周期内,节点在其他节点占用的时隙内接收其他节点发送的FI,通过对保存的FI进行分析获得各时隙的时隙状态信息,具体如图3所示。
第二种维护方式为:采用迭代方式保存FI。即节点仅保存一个关于各时隙当前占用状态的向量,称为时隙状态向量(也可称作时隙状态表)后续称为时隙状态向量(表),一种可能的时隙状态向量(表)如图4所示,当节点接收到其他节点发送的FI时,根据新接收FI中各时隙对应的时隙信息域对本地保存的时隙状态向量(表)中每一个时隙对应的时隙信息单元进行更新,通过维护时隙状态向量(表)的方式来对时隙信息进行维护。当节点需发送自身判定的FI时,会根据保存的时隙状态向量(表)中的信息生成要发送的FI。
需要说明的是,上述描述方式只是为了后续描述方便而规定,当然也可以采用其他的描述方式。
另一方面,本发明实施例中,一个节点可以占用多个时隙资源,而当节点占用多个时隙资源时,为了对节点占用的多个时隙资源进行维护,将与节点相关的时隙分为以下几类(具体参阅图5所示):
1、自占时隙:本发明实施例中定义节点成功占用发送FI和/或数据包的时隙为节点的自占时隙。
而具体的,节点的自占时隙又可以进一步分为以下两种:
自占主时隙:节点自占时隙中某个特定的时隙。每个节点可以将自占时隙中的某个时隙确定为自身的主时隙。
自占从时隙:自占时隙中,除主时隙外的节点其它自占时隙。
当然,节点也可以不对自占时隙作上述区分。
2、申请时隙:MAC层比较缓存队列中的需要发送的高层数据包的数据量和节点的自占时隙或使用时隙(包含申请时隙)可提供的传输容量,如果数据包的数据量大于自占时隙或使用时隙(包含申请时隙)所可以提高的传输容量时申请的新的时隙。在到达申请时隙时,若确定该申请时隙未被其他节点占用,才会将申请时隙转换为自占时隙。
基于上述技术定义,节点占用的时隙资源还可以采用以下方式划分:
1)节点使用时隙(也可简称为使用时隙):为方便后续描述,将节点占用的时隙和节点正在申请的时隙统称为节点使用时隙。在一些特定场景中,节点使用时隙也可以只包括节点占用的时隙。
2)非节点使用时隙:帧中所有时隙中除节点使用时隙以外的所有其他时隙。
下面结合附图对本发明优选的实施方式进行详细说明。
本发明实施例中,高层在向第一节点下发数据包时,会针对每一个数据包关联相应的发送时延,不同的数据包可能对应不同的发送时延,第一节点每接收到一个数据包,均会根据该数据包的时延要求设置一定时器,待定时器超时时,即是达到最大时延的时刻,相应的数据包必须在这一时刻之前发送。由于时间在不停推移,每个数据包的定时器所维护的时长也在不断减少,本实施例中,针对任意一个数据包,将从当前时间开始到数据包的发送时延对应的最晚发送时间点之间的时长长度,称为该任意一个数据包的发送剩余时间,显然,缓存中的数据包通常对应着不同的发送剩余时间,每一个数据包对应的定时器用于指示相应数据包的发送剩余时间。如果数据包在相应的定时器超时前未能成功发送,则丢弃该数据包。
参阅图6所示,本发明实施例中,第一节点为具有不同发送时延的数据包分配时隙资源的详细流程如下:
步骤600:第一节点每接收到一个高层下发的新数据包,对该新数据包进行保存,并根据该新数据包对应的发送时延维护相应的发送剩余时间。
本发明实施例中,第一节点按照设定顺序依次接收高层下发的数据包,每接收一个新的数据包,第一节点均会将该新数据包保存至本地MAC缓存中,同时,根据该新数据包对应的发送时延设置与该新数据包关联的定时器,该定时器维护的是新数据包的发送剩余时间。
步骤610:第一节点从上述新数据包开始,针对保存的发送剩余时间大于等于上述新数据包的发送剩余时间的每一个数据包,按照发送剩余时间从小到大的顺序,依次进行时隙资源判定,其中,在确定任意一个数据包对应的发送剩余时间内,需要发送的数据包数目大于第一节点当前使用的时隙数目时,申请新的时隙资源。
第一节点在已保存的数据包中针对发送剩余时间大于等于上述新数据包的发送剩余时间的所有数据包进行时隙资源判定,即也包括新数据包本身。
本发明实施例中,第一节点针对各个数据包进行时隙资源判定时,可以采用但不限于以下两种方法:
第一种方法为:将已保存的数据包按照其各自对应的发送剩余时间的大小进行从小到大或从大到小排序,再在排序后的各数据包中从上述新数据包开始,针对发送剩余时间大于等于上述新数据包的发送剩余时间的各个数据包,按照发送剩余时间从小到大的顺序,依次对每一个数据包进行时隙资源判定。
第二种方法为:第一节点从上述新数据包开始,将每一个已保存的数据包的发送剩余时间与上述新数据包的发送剩余时间进行比较,再根据比较结果从已保存的各数据包中提取出发送剩余时间大于等于上述新数据包的发送剩余时间的各个数据包,再按照发送剩余时间从小到大的顺序,依次对提取的每一个数据包进行时隙资源判定。即每次进行时隙资源判定时,其判定对象均为当前还未进行时隙资源判定操作且发送剩余时间在提取的各个数据包中最小的数据包;第一节点每次对一个提取出的数据包执行完时隙资源判定后,会按照相同规则选取下一个数据包执行时隙资源判定,依次类推,不再赘述。
本发明实施例中,针对任意一个数据包(以下称为数据包X)的时隙资源判定即是指,第一节点判定数据包X对应的发送剩余时间内所需发送的数据包数目(包括数据包X)是否大于第一节点当前的使用时隙数目(包含自占时隙和申请时隙),若是,则说明当前的时隙资源无法承载待发送的数据包,此时,第一节点应该申请新的时隙资源,否则,说明当前的时隙资源能够承载待发送的数据包,第一节点可以读取下一个数据包继续进行时隙资源判定。
例如,假设第一节点接收数据包X之前,已保存有4个数据包,分别称为数据包1、数据包2、数据包3和数据包4,而第一节点具有4个使用时隙,分别称为时隙1、时隙2、时隙3和时隙4,显然,一个数据包对应一个使用时隙。那么,第一节点接收到数据包X后,假设各数据包按照发送剩余时间从小到大的顺序排列为:数据包1<数据包2<数据包X<数据包3<数据包4,则第一节点会从按照数据包X->数据包3->数据包4的顺序依次进行时隙资源判定。具体为:
首先,第一节点判定数据包X的发送剩余时间内存在待发送的3个数据包,分别为数据包1、数据包2和数据包X,而当前第一节点的使用时隙数目为4,3<4,显然,第一节点无需为数据包X申请新的时隙资源。
接着,第一节点继续判定数据包3的发送剩余时间内存在待发送的4个数据包,分别为数据包1、数据包2、数据包X和数据包3,而当前第一节点的使用时隙数目为4,4=4,显然,第一节点无需为数据包3申请新的时隙资源。
最后,第一节点继续判定数据包4的发送剩余时间内存在待发送的5个数据包,分别为数据包1、数据包2、数据包X、数据包3和数据包4,而当前第一节点的使用时隙数目为4,5>4,显然,第一节点需要申请新的时隙资源,当然,新申请的时隙不一定用于发送数据包4。
由于从新接收的数据包开始,第一节点会按照发送剩余时间递增的顺序依次针对每一个提取的数据包进行时隙资源判定,因此,当第一节点确定需要申请新的时隙资源时,实际上是为当前作为判定对象的数据包发送申请新的时隙资源,因而,考虑到该数据包的发送时延,第一节点申请新的时隙资源时需要参考该数据包的发送剩余时间。
例如,本发明实施例中,第一节点针对提取的数据包X申请新的时隙资源时,根据本地维护的时隙状态信息(如,本地维护的时隙状态缓存表或时隙状态向量,需要说明的是第一节点也可以采用其他方式获得的时隙状态信息来确定新申请时隙,如第一节点维护的历史时隙状态信息),判断数据包X对应的发送剩余时间到达前,系统内是否存在空闲时隙;
若是,则在空闲时隙内随机选择一个时隙作为新申请的时隙,其中,由于新申请的时隙是随机选择的,因此新申请的时隙不一定用于发送数据包X;否则,可以采用三种处理方式,一种是将数据包X丢弃,另一种是将数据包X仍放在缓存中并终止本次申请时隙过程(即由对数据包X进行时隙资源判定而引起的申请时隙过程),最后一种是从已保存的数据包中选取一个发送剩余时间小于数据包X且优先级低于数据包X的低优先级数据包,并将选取的低优先级数据包从缓存中删除,较优地,当存在多个发送剩余时间小于数据包X且优先级低于数据包X的低优先级数据包时,将其中优先级最低的数据包中发送剩余时间最小的数据包丢弃。
需要说明的是,为了增加数据包发送成功的机会,第一节点可能会为数据包X设置时延裕量。所谓时延裕量是指第一节点在根据数据包X的发送时延设置维护发送剩余时间的定时器长度时,并不是严格按照发送时延要求的长度来设定定时器的长度,而是留出一定的时延裕量,用于当数据包X在初始设置的发送剩余时间内不能成功发送时,再根据时延裕量更新维护发送剩余时间的定时器的长度,从而增加数据包X在其时延要求范围内发送成功的机会。特别地,当不同数据包对应的优先级不同时,可以通过设置有差别的时延裕量来对不同优先等级数据包的发送成功率进行保证。
使用时延裕量的一个例子为:设数据包X的发送时延为100ms,即要求数据包在100ms内发送出去,根据数据包X的优先等级(或根据其他规则)确定数据包X的时延裕量为20ms,则此时初始的维护发送剩余时间的定时器长度等于发送时延(100ms)减去时延裕量(20ms)为80ms(需要说明的是,这里设置发送剩余时间的长度仅考虑了时延裕量,在实际系统中可能还需要考虑其他裕量,如硬件的处理时间裕量等等,此时,在维护发送剩余时间的定时器长度中还需要把其他的裕量值也去掉,如,除20ms的时延裕量外还要考虑5ms的硬件处理时间裕量,此时的剩余时间就为75ms)。假设当需要在数据包X的剩发送余时间(80ms)内申请新的时隙资源时,发现没有空闲时隙,而此时数据包X的时延裕量不为0(为20ms),则第一节点根据时延裕量值更新发送剩余时间为100ms(这里为将时延裕量值加入发送剩余时间中,然后将时延裕量值置0),然后在更新后的发送剩余时间范围内申请新的时隙资源。数据包时延裕量的设置方式,可以采用一级的(即时延裕量值一次释放完),也可以采用多级的(即时延裕量值分多次释放),由于时延裕量的设置方式不属于发明范围,这里不进行详细描述。
基于上述分析,当为数据包X设置了时延裕量,且对应的时延裕量不为0时,如果需要在数据包X的发送剩余时间内申请新的时隙资源但没有空闲时隙,则除采用上述三种处理方式外,第一节点还可以采用以下处理方式:根据时延裕量指示的时间长度更新数据包X对应的发送剩余时间,在更新后的发送剩余时间内选择空闲时隙作为新申请时隙,其中,若在更新后的发送剩余时间内仍然没有空闲时隙,则丢弃数据包X,并停止针对后续数据包进行时隙资源判定,或者,保留数据包X,停止针对数据包X的时隙申请过程,并继续针对后续数据包进行时隙资源判定,或者,从已保存的数据包中选取一个发送剩余时间小于数据包X且优先级低于数据包X的低优先级数据包,并将选取的低优先级数据包从缓存中删除,较优地,当存在多个发送剩余时间小于数据包X且优先级低于数据包X的低优先级数据包时,将其中优先级最低的数据包中发送剩余时间最小的数据包丢弃。
针对判定的任意一个数据包,均可以采用上述方法申请新的时隙资源,在此不再赘述。另一方面,在空闲时隙中选取了新申请的时隙后,第一节点需要将新申请的时隙添加到申请时隙列表中,并更新该新申请的时隙对应的时隙状态信息。
较佳的,在针对任意一个数据包(以下仍称为数据包X)进行时隙资源判定的过程中,当第一节点确定数据包X对应的发送剩余时间内需要发送的数据包数目大于本装置当前使用的时隙数目,需要申请新的时隙资源,且在当申请新的时隙资源的过程中,发现数据包X对应的发送剩余时间到达前,系统内不存在空闲时隙时,若第一节点采用第一种处理方式(即将数据包X丢弃),则停止针对后续数据包的时隙资源判定,这是因为,第一节点每接收一个新的数据包,便会执行一轮时隙资源判定,若第一节点针对数据包X执行时隙资源判定后申请了新的时隙资源,那么第一节点当前能够使用的时隙资源数目必然能够满足当前接收的数据包的发送需求,若没有申请到新时隙,由于已将数据包X丢弃,那么第一节点当前能够使用的时隙资源数目也能够满足当前接收的数据包的发送需求,因此,为了进一步节省计算量,第一节点针对后续数据包可以不再执行时隙判定操作。
另一方面,随着时间的推移,每当一个第一节点的使用时隙(包括自占时隙和申请时隙)到达时(即没有发生碰撞),第一节点从在发送缓存中选择时延允许的发送剩余时间最小的数据包进行发送,其中,如果任意一数据包在相应的发送剩余时间变为零时(即定时器超时)还未能发送成功,则第一节点会将该数据包丢弃。
此外,在到达任意一个使用时隙时,若第一节点确定当前不存在待发送的数据包,则撤销该使用时隙,其中,若上述使用时隙为申请时隙,则第一节点将该申请时隙从本地维护的申请时隙列表中删除,若上述使用时隙为自占时隙,则第一节点将该自占时隙从本地维护的自占时隙列表中删除。
下面采用几个具体的应用场景对上述实施例作出进一步的详细说明。
第一种应用场景为:高层数据包到达节点A的发送缓存,时隙资源到达时进行数据包发送。
例如,参阅图7所示,本实施例中,假设一个Frame(帧)中包含8个时隙,在Frame2以前的每个帧周期中节点A都会从高层接收到两个数据包,节点A在一个帧周期中占用了两个时隙:时隙2和时隙5。
那么,节点A进行时隙资源调度的具体处理过程如下:
1)节点A在Frame2的时隙6接收到一个数据包b,数据包b的时延要求为8ms。节点A为数据包b设置维护发送剩余时间的定时器,该定时器维护的时间长度等于数据包b的发送时延,即8ms。然后,节点A将数据包b存储至发送缓存中,并按数据包b对应的发送剩余时间进行升序排列。
由于此时发送缓存中只有一个数据包b,因此数据b排在缓存队列的最前面。由于当前发送缓存中的数据包数目“1”小于数据包b对应的发送剩余时间内节点A使用的时隙数目“2”,因此,节点A不需要申请新的时隙资源。
2)节点A在Frame2的时隙7接收到一个数据包c,数据包c的时延要求为6ms。节点A为数据包c设置维护发送剩余时间的定时器,该定时器维护的时间长度等于数据包c的发送时延,即6ms。然后,节点A将数据包c存储至发送缓存中,并按数据包c对应的发送剩余时间进行升序排列。
由于此时发送缓存中已存在数据包b,但数据包c的发送剩余时间小于数据包b(数据包b的发送剩余时间现在已更新为7ms),因此,数据包c在发送缓存中将位于数据包b的前面。然后,节点A从数据包c开始判断:是否当前的数据包c对应的定时器指示的发送剩余时间内,需要发送的数据包数目大于节点A当前使用的时隙资源数目(包括自占时隙和申请时隙),由于在数据包c的发送剩余时间内需要发送的数据包只有一个数据包c,且在其发送剩余时间内存在两个自占时隙,因此判断不需要申请新时隙;接下来对数据包b进行判断,由于在数据包b对应的发送剩余时间内需要发送的数据包有数据包c和数据包b两个,且在其发送剩余时间内存在两个自占时隙,因此,节点A判定不需要申请新的时隙资源。
3)节点A在Frame3的时隙1接收到一个数据包d,数据包d的发送时延为8ms。节点A为数据包d设置维护发送剩余时间的定时器,该定时器维护的时间长度等于数据包d的发送时延,即8ms。然后,节点A将数据包d存储至发送缓存中,并按数据包d对应的发送剩余时间进行升序排列。
由于此时发送缓存中已存在数据包c和数据包b,而数据包c和数据包b当前的发送剩余时间分别为5ms和6ms,因此,数据包d在发送缓存中将放在最后。然后,节点A从数据包d开始判断:是否当前的数据包d对应的定时器指示的发送剩余时间内,需要发送的数据包数目大于节点A当前使用的时隙资源数目(包括自占时隙和申请时隙),由于在数据包d的发送剩余时间内需要发送的数据包有数据包c、数据包b和数据包d三个,但在其发送剩余时间内仅有两个自占时隙,因此,节点A判定需要申请新的时隙资源。
4)节点A查找本地维护的时隙状态向量(表)(本发明实施例中假设节点A采用一维方式维护时隙状态信息),时隙状态向量(表)中各时隙的占用状态定义如下:10表示被1跳节点占用;11表示被两跳节点占用;01表示碰撞时隙;00表示空闲时隙或被三跳节点占用时隙。则在Frame3的时隙1,节点A维护的时隙状态向量(表)如表1所示:
表1
Slot0 |
Slot1 |
Slot2 |
Slot3 |
Slot4 |
Slot5 |
Slot6 |
Slot7 |
00 |
00 |
a:10 |
00 |
b:10 |
a:10 |
00 |
00 |
而在在数据包d的发送剩余时间(8ms)内包含5个空闲时隙(时隙0、时隙1、时隙3、时隙6、时隙7),则节点A从空闲时隙中随机选择时隙6作为自身新的申请时隙,并将时隙6加入节点A的申请时隙列表。
5)在Frame3的时隙2到达时,假设时隙2此时仍为节点A的自占时隙(即此前没有指示该时隙2发生碰撞),则节点A将从发送缓存中选择发送剩余时间最短的数据包c(即发送缓存队列最前面的数据包)进行发送。
6)在Frame3的时隙5到达时,假设时隙5此时仍为节点A的自占时隙(即此前没有指示该时隙5发生碰撞),则节点A将从发送缓存中选择发送剩余时间最短的数据包b(即发送缓存队列最前面的数据包)进行发送。
7)在Frame3中的时隙7到达时,假设节点A的申请时隙时隙7此时仍为空闲状态,那么,将时隙7改为自占时隙,并将时隙7从节点A的申请时隙列表中删除同时添加到自占时隙列表中,然后,节点A从发送缓存中选择发送剩余时间最短的数据包c(即发送缓存队列最前面的数据包)在时隙7进行发送,此时,节点A维护的时隙状态向量(表)如表2所示:
表2
Slot0 |
Slot1 |
Slot2 |
Slot3 |
Slot4 |
Slot5 |
Slot6 |
Slot7 |
00 |
00 |
a:10 |
00 |
b:10 |
a:10 |
00 |
a:10 |
在上述应用场景中,需要说明的是,当节点A通过接收其他节点发送的FI判断自身使用的时隙(包括自占时隙和申请时隙)发生碰撞时,将会启动碰撞处理过程,而碰撞处理过程的不属于本发明实施例的描述范围。
第二种应用场景为:节点A没有接收到高层数据包,则将对应的时隙资源撤销。
例如,参阅图8所示,本实施例中,假设一个Frame中包含8个时隙,在Frame2以前每个帧周期中节点A都会从高层接收到三个数据包,节点A在一个帧周期中占用了三个时隙:时隙2、时隙5和时隙7。节点A维护的时隙状态向量(表)如表3所示:
表3
Slot0 |
Slot1 |
Slot2 |
Slot3 |
Slot4 |
Slot5 |
Slot6 |
Slot7 |
00 |
00 |
a:10 |
00 |
b:10 |
a:10 |
00 |
a:10 |
那么,节点A进行时隙资源撤销的具体处理过程如下:
1)节点A在Frame2的时隙6接收到一个数据包c,数据包c的时延要求为8ms。节点A为数据包c设置维护发送剩余时间的定时器,该定时器维护的时间长度等于数据包c的发送时延,即8ms。然后,节点A将数据包c存储至发送缓存中,并按数据包c对应的发送剩余时间进行升序排列。
由于此时发送缓存中只有一个数据包c,因此数据包c排在缓存队列的最前面。由于当前发送缓存中的数据包数目“1”小于数据包c对应的发送剩余时间内节点A使用的时隙数目“3”,因此,节点A不需要申请新的时隙资源。
2)在Frame3的时隙2到达时,假设时隙2此时仍为节点A的自占时隙(即此前没有指示该时隙2发生碰撞),则节点A将从发送缓存中选择发送剩余时间最短的数据包c(即发送缓存队列最前面的数据包)进行发送。
3)在Frame3的时隙5到达时,假设时隙5此时仍为节点A的自占时隙(即此前没有指示该时隙5发生碰撞),由于此时节点A的发送缓存中已经没有数据包,因此节点A将时隙5撤销,即将时隙5从节点A的自占时隙列表中删除。此时,节点A维护的时隙状态向量(表)更新如表4所示:
表4
Slot0 |
Slot1 |
Slot2 |
Slot3 |
Slot4 |
Slot5 |
Slot6 |
Slot7 |
00 |
00 |
a:10 |
00 |
b:10 |
00 |
00 |
a:10 |
4)在Frame3的7时隙到达时,假设时隙7此时仍为节点A的自占时隙(即此前没有指示该时隙7发生碰撞),由于此时节点A的发送缓存中已经没有数据包,因此,节点A将时隙7撤销,即将时隙7从节点A的自占时隙列表中删除。此时,节点A维护的时隙状态向量(表)更新如表5所示:
表5
Slot0 |
Slot1 |
Slot2 |
Slot3 |
Slot4 |
Slot5 |
Slot6 |
Slot7 |
00 |
00 |
a:10 |
00 |
b:10 |
00 |
00 |
00 |
基于上述实施例中,参阅图9所示,本发明实施例中,第一节点包括通信单元90和调度单元91,其中,
通信单元90,用于每接收到一个高层下发的新数据包,将该新数据包进行保存,并根据该新数据包对应的发送时延维护该新数据包的发送剩余时间;
调度单元91,用于于从上述新数据包开始,针对保存的发送剩余时间大于等于上述新数据包的发送剩余时间的每一个数据包,按照发送剩余时间从小到大的顺序,依次进行时隙资源判定,其中,在确定任意一个数据包对应的发送剩余时间内,需要发送的数据包数目大于本装置当前使用的时隙数目时,申请新的时隙资源。
综上所述,本发明实施例中,第一节点每接收到一个高层下发的新数据包时,根据新数据包的时延要求维护相应的发送剩余时间,以及从新数据包开始按照发送剩余时间递增的顺序依次对每一个提取的数据包进行时隙资源判定,在确定任意一个数据包对应的发送剩余时间内,需要发送的数据包数目大于第一节点当前使用的时隙数目时,申请新的时隙资源。这样,第一节点每接收到一个新数据包,便会判定一次当前的时隙资源是否可以在满足数据包发送时延要求的前提下承载待发送的数据包,从而可以在获知时隙资源不能满足待发送数据包的时延要求时及时申请新的时隙资源,从而解决了基于FI交互的时分资源分配机制下的时隙资源调度问题,满足了车联网中消息交互的低时延要求,保证了消息的及时发送,从而有效保障了车联网的性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。