一种数据包发送方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种数据包发送方法及装置。
背景技术
随着车路协同通信***的发展和移动自组网技术的逐渐成熟,为了实现对车辆的实时、动态、智能化管理,国际上专门开发了针对车联网的专用短程通信(Dedicated ShortRange Communications,DSRC)协议。DSRC通过信息的双向传输,将车辆与车辆、车辆和路侧的信息采集设备有机的连接起来,支持点对点、点对多点通信。
移动分时隙ALOHA(Mobile Slotted Aloha,MS-ALOHA)机制是一种基于分时方式的DSRC MAC层接入和资源分配机制,资源分配基于帧结构以slot(时隙)为单位。参阅图1所示,每N个slot构成一个帧(记为Frame),每个帧中的slot的编号为0~N-1,在帧之间循环往复。每个slot中只允许一个车辆进行发送,即车辆之间为(Time Division MultipleAccess,时分复用接入)模式。车辆在所占用的时隙上中不仅发送应用层的数据,而且还需要发送FI(Frame Information,帧信息),在FI中会指示一个帧中各个slot的占用状态。
MS-ALOHA机制的基本思想是:任意一节点(如,车辆)加入网络时,需要通过监听帧中的空闲时隙资源占用一个时隙,如果节点不主动放弃该所占用的时隙资源,则可一直使用占用的时隙传输数据,在这期间其他节点不能使用该时隙。在占用的时隙上,节点需要周期性发送FI,FI中携带节点获得的与该节点相距两跳范围内的其他节点占用时隙的情况,指示节点感知到的每个时隙的占用状况信息,对每个时隙给出该时隙的包括:时隙占用状态信息,占用时隙的节点对应的STI(Source Temporary Identifier,临时资源标识)或可称为节点标识,占用时隙的节点的优先级状态(也可认为是占用时隙节点在该时隙发送的数据对应的优先级状态);其中,时隙占用状态信息可以表达时隙的四种占用状态:(00)表示时隙为空闲状态,(10)表示时隙已被与本节点相距一跳的其他节点占用(简称为一跳节点占用)或本节点占用,(11)表示时隙已被与本节点相距两跳的其他节点占用(简称为两跳节点占用),(01)表示时隙已被其他两个以上的节点占用,即为碰撞状态;在非自身占用的时隙,每个节点通过监听相邻一跳的节点发送的FI,能够判断相邻三跳范围内每个节点占用时隙的情况,当发现本节点占用的时隙资源与其他节点使用的资源发生碰撞时,重新预约新的空闲时隙。为方便后续描述,本发明中对FI及其内部信息内容统一采用如下描述方式:
节点发送帧信息(FI)称为:FI消息,也可简称为FI;FI中指示的每个时隙对应的占用状况信息称为:FI消息中每个时隙对应的时隙信息域。
节点在一个时隙上接收到FI消息时,总是用新接收到的FI消息中携带的时隙信息内容覆盖一个帧周期前记录的内容。节点在自身占用的时隙生成并发送FI消息,需要按照一定规则填写各个field(域),包括时隙占用状态子域、STI子域以及优先级子域。发送完毕后,节点会清空所发送的FI信息。
在状态更新ALOHA(State Update Aloha,SU-ALOHA)机制下,对FI的传输方式,以及节点根据FI消息中携带的时隙信息内容对本地维护时隙的时隙信息内容的处理方式,在MS-ALOHA机制处理方式的基础上进行了相应改进。具体为:在SU-ALOHA机制下,节点采用迭代方式保存FI信息,即节点仅保存一个关于各时隙当前占用状态的向量,称为时隙状态向量(也可称作时隙状态表)后续称为时隙状态向量(表),当一个节点仅拥有一个自身使用的时隙时,该节点仅保存自身使用的时隙对应的时隙状态向量(表)。节点接收到其他节点发送的FI后,根据新接收FI中各时隙对应的时隙信息域对本地保存的时隙状态向量(表)中每一个时隙对应的时隙信息单元进行更新。当节点需发送自身判定的FI时,会根据保存的时隙状态向量(表)中的信息生成要发送的FI。
在车路协同通信***中,应用层发送至媒体接入控制(Medium Access Control;MAC)层的数据包中携带该数据包的最大发送时延,即从数据包发送至MAC层至该数据包被MAC层从空口成功发送出去的最大允许时延。若在最大发送时延内,数据包未获得MAC层的发送机会,则表明该数据包发送失败,即被丢弃,应用层需要重新发送该数据包至MAC层。
现有技术下,主要采用MS-ALOHA算法为接入车路协同通信***的节点分配发送时隙。具体为,当MAC层接收到应用层发送的数据包后,即根据时隙状态向量(表),在该数据包的最大发送时延允许范围内查询是否存在自占时隙可以用于发送该数据包,若存在,则选择该自占时隙作为该数据包的发送时隙;若不存在,则在该数据包的最大发送时延允许范围内随机分配一个空闲时隙作为该数据包的发送时隙。在车路协同通信***中,自占时隙,是指第一节点向其他节点发送FI的时隙。并且,当在以后的帧周期中,第一节点在发送FI的时隙不发生碰撞时,则该时隙一直为第一节点的自占时隙。申请时隙,是指第一节点在当前帧周期中选择某个时隙n作为向其他节点发送FI的发送时隙,计划在上述时隙n中向其他节点发送FI,但是未到达发送FI时刻的时隙n。自占时隙是申请时隙经过周围节点正反馈FI由申请时隙转化得到。
因此,自占时隙和申请时隙在本质上都体现了在MS-ALOHA算法下数据包的发送时隙选择的随机性。在上述数据包发送时隙的选择机制下,当随机选择的数据包发送时隙位于最大发送时延允许范围对应的最后时刻时,一旦上述选定的发送时隙出现异常,即会造成数据包的发送失败。例如,参阅图2所示,节点在时隙2触发数据包的发送,该数据包的最大发送时延为1帧,即从第1帧时隙2开始到第2帧时隙1结束为最大发送时延允许的数据包发送时间范围。根据MS-ALOHA算法,在上述数据包最大发送时延对应的所有时隙中,随机选择一个空闲时隙作为数据包的发送时隙,此处选择第2帧时隙1为数据包的发送时隙;节点从第1帧的时隙2开始进入持续监听阶段,当某个时隙不是本节点的发送时隙时,则收发机将处于接收状态,接收其他节点发送的FI,并根据该FI对本节点保存的时隙状态向量(表)进行更新,根据上述时隙状态向量(表),当在第2帧时隙0判断第2帧时隙1发生时隙资源碰撞时,则不能在第2帧时隙1发送上述数据包;只能对上述数据包进行丢弃处理。
综上所述,在车路协同通信***中,MAC层对应用层发送的数据包经空口进行发送过程中,需要在该数据包的最大发送时延对应的所有时隙中随机选择一个空闲时隙作为发送时隙,当上述随机选择的发送时隙对应的时刻位于最大发送时延允许范围的后期时刻时,当该发送时隙发生异常(发生碰撞),且在最大发送时延允许范围内,上述发送时隙之后没有空闲时隙时,或者,当随机选择的发送时隙位于最大发送时延对应的所有时隙的最后一个时隙,且该发送时隙发生异常时,则没有机会再次为该数据包选择发送时隙,即会使该数据包发送失败而被丢弃,此时,需要应用层向MAC层重新发送上述数据包,造成资源的浪费,安全性差的问题。
发明内容
本发明实施例提供一种数据包发送方法及装置,用以解决现有技术中存在的车路协同通信***中,在最大发送时延允许范围内未能及时将数据包成功发送出去,影响***可靠性和安全性的问题。
本发明实施例提供的具体技术方案如下:
一种数据包发送方法,包括:
确认数据包中携带的数据包发送优先级信息,根据所述数据包发送优先级信息,设置所述数据包对应的时延裕量值;
根据所述数据包携带的最大发送时延信息与所述时延裕量值,计算数据包第一发送剩余时间;
利用第一发送剩余时间发送所述数据包。
一种数据包发送装置,包括:
设置单元,用于确认数据包中携带的数据包发送优先级信息,根据所述数据包发送优先级信息,设置所述数据包对应的时延裕量值;
计算单元,用于根据所述数据包携带的最大发送时延信息与所述时延裕量值,计算数据包第一发送剩余时间;
发送单元,用于利用所述第一发送剩余时间发送所述数据包。
本发明实施例中,基于SU-ALOHA算法,根据数据包对应的数据包发送优先级设置相应的时延裕量值;根据该时延裕量值和数据包中携带的数据包最大发送时延信息,计算数据包的发送剩余时间;利用上述发送剩余时间发送上述数据包。采用本发明技术方案,能够针对数据包对应的优先级设置其时延裕量值,从而在发送剩余时间对应的所有时隙中随机选择空闲时隙作为发送时隙发送上述数据包,能够避免将最大发送时延时长的最后时刻对应的时隙作为发送时隙,当该发送时隙出现异常时,造成数据包发送失败的问题,保证高优先级数据包的发送,提高了***的安全性和稳定性。
附图说明
图1为现有技术下超帧结构示意图;
图2为现有技术下采用MS-ALOHA算法发送数据包的帧结构示意图;
图3为本发明实施例中数据包发送装置结构示意图;
图4为本发明实施例中数据包发送的详细流程图;
图5为本发明实施例中高优先级数据包在第一发送时隙发送成功的帧结构示意图;
图6为本发明实施例中高优先级数据包在第一发送时隙发送成功的流程图;
图7为本发明实施例中高优先级数据包在第二发送时隙发送成功的帧结构示意图;
图8为本发明实施例中高优先级数据包在第二发送时隙发送成功的流程图;
图9为本发明实施例中高优先级数据包在第三发送时隙发送成功的流程图;
图10为本发明实施例中高优先级数据包发送不成功的流程图。
具体实施方式
为了解决现有技术中存在的车路协同通信***中,在数据包的最大发送时延时长对应的所有时隙中随机选择空闲时隙作为数据包的发送时隙,当上述发送时隙出现异常,使得在上述最大发送时延允许范围内未能及时将数据包成功发送出去,影响***可靠性和安全性的问题。本发明实施例中,基于SU-ALOHA算法,根据数据包对应的数据包发送优先级设置相应的时延裕量值;根据该时延裕量值和数据包中携带的数据包最大发送时延信息,计算数据包的发送剩余时间;利用上述发送剩余时间发送上述数据包。采用本发明技术方案,能够针对数据包对应的优先级设置其时延裕量值,从而在发送剩余时间对应的所有时隙中随机选择空闲时隙作为上述数据包发送时隙,能够避免将最大发送时延时长的最后时刻对应的时隙作为发送时隙,当该发送时隙出现异常时,造成数据包发送失败的问题,保证高优先级数据包的发送,提高了***的安全性和稳定性。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图3所示,本发明实施例中,数据包发送装置包括设置单元30,计算单元31和发送单元32,其中,
设置单元30,用于确认数据包中携带的数据包发送优先级信息,根据上述数据包发送优先级信息,设置上述数据包对应的时延裕量值;
计算单元31,用于根据上述数据包携带的最大发送时延信息与上述时延裕量值,计算数据包第一发送剩余时间;
发送单元32,用于利用上述第一发送剩余时间发送上述数据包。
其中,数据包发送装置还包括第一处理单元33,以及第二处理单元34:
第一处理单元33,用于判断第一发送剩余时间对应的所有时隙中是否存在空闲时隙;若存在空闲时隙,则随机选择一个空闲时隙作为第一发送时隙;若不存在空闲时隙,且上述时延裕量值不为零时,将第一发送剩余时间更新为第二发送剩余时间,在第二发送剩余时间对应的所有时隙中,随机选择一个空闲时隙作为第一发送时隙;
其中,第一处理单元33,具体用于判断第一发送剩余时间对应的所有时隙中是否存在空闲时隙;若存在空闲时隙,则随机选择一个空闲时隙作为第一发送时隙;若不存在空闲时隙,且时延裕量值不为零时,记录无空闲时隙确定时间,计算第一发送剩余时间与无空闲时隙确定时间之间的差值,获取第一剩余时间差值,无空闲时隙确定时间为确定第一发送剩余时间对应的所有时隙中不存在空闲时隙的时隙对应的时间,第一剩余时间差值为大于等于零的值,计算第一剩余时间差值与时延裕量值对应的时延裕量时长的和,获取第二发送剩余时间,将时延裕量值更新为零,在第二发送剩余时间对应的所有时隙中,随机选择一个空闲时隙作为第一发送时隙。
第二处理单元34,用于当在第一发送时隙前的一个时隙中确定第一发送时隙发生碰撞时,判断在由时隙碰撞事件确定时间至第一发送剩余时间结束前对应的所有时隙中是否存在空闲时隙;若存在空闲时隙,则随机选择一个空闲时隙作为第二发送时隙;若不存在空闲时隙,且时延裕量值不为零时,则将第一发送剩余时间更新为第三发送剩余时间,并在第三发送剩余时间对应的所有时隙中,随机选择一个空闲时隙作为第二发送时隙。
其中,第二处理单元34,具体用于当在第一发送时隙前的一个时隙中确定第一发送时隙发生碰撞时,判断在由时隙碰撞事件确定时间至第一发送剩余时间结束前对应的所有时隙中是否存在空闲时隙;若存在空闲时隙,则随机选择一个空闲时隙作为第二发送时隙;若不存在空闲时隙,且时延裕量值不为零时,记录碰撞事件确定时间,计算第一发送剩余时间与碰撞事件确定时间之间的差值,获取第二剩余时间差值,第二剩余时间差值为大于等于零的值,碰撞事件确定时间为确定第一发送时隙发生碰撞的时隙对应的时间,计算第二剩余时间差值与时延裕量值对应的时延裕量时长的和,获取第三发送剩余时间,将时延裕量值更新为零,在第三发送剩余时间对应的所有时隙中,随机选择一个空闲时隙作为第二发送时隙。
基于上述技术方案,参阅图4所示,本发明实施例中,在车路协同通信***中,仅针对100ms及以上的业务发送时延对应的处理流程,不考虑低时延业务(低时延业务处理有其他保障机制),发送数据包的详细流程如下:
步骤400:确认数据包中携带的数据包发送优先级信息,根据上述数据包发送优先级信息,设置数据包对应的时延裕量值。
具体为:
MAC层接收高层发送的数据包,该数据包中携带数据包发送优先级信息,根据该数据包发送优先级信息,设置数据包对应的时延裕量值。
本发明实施例中,根据数据包中携带的数据包发送优先级信息,设置该数据包的时延裕量对应的时延时长,例如,时延裕量值为20ms;根据数据包中携带的数据包发送优先级信息,设置该数据包的时延裕量对应的时延时隙数目,例如,时延裕量值为5个时隙,每个时隙可以对应一定的时长。
进一步地,本发明实施例中,针对数据包携带的优先级不同,为数据包设置不同的时延裕量值,即数据包的优先级与数据包对应的时延裕量值存在一定的映射关系,该映射关系可以预先设置。上述预设映射关系的原则为:预设高优先级数据包对应的时延裕量值比低优先级数据包对应的时延裕量值大。例如,当时延裕量值为时延裕量对应的时延时长时,数据包1的优先级高于数据包2的优先级,则预设数据包1的时延裕量值为20ms,数据包2的时延裕量值为10ms;又如,当时延裕量值为时延裕量对应的时延时隙数目时,数据包1的优先级高于数据包2的优先级,则预设数据包1的时延时隙数目为5个时隙,预设数据包2的时延时隙数目为2个时隙。
步骤410:根据上述数据包携带的最大发送时延信息与上述时延裕量值,计算数据包第一发送剩余时间。
具体为:
根据上述数据包携带的最大发送时延信息,获取该数据包对应的最大发送时延时长;根据上述时延裕量值,获取该数据包对应的时延裕量时长;计算上述最大发送时延时长与时延裕量时长的差值,该差值即为上述数据包的第一发送剩余时间。例如,数据包对应的最大发送时延时长为100ms,根据该数据包对应的优先级得到数据包的时延裕量时长为30ms,则该数据包对应的第一发送剩余时间为70ms,即从数据包到达时刻开始至其后的70ms之间为该数据包的第一发送剩余时间。
步骤420:利用上述第一发送剩余时间发送上述数据包。
具体为:
本发明实施例中,本节点可以根据其他节点发送的FI生成时隙状态向量(表),该时隙状态向量(表)中记录各个时隙的状态信息,根据该时隙状态向量(表)中记录的各个时隙状态信息,在上述第一发送剩余时间对应的所有时隙中,判断是否存在空闲时隙,若存在空闲时隙,则随机选取一个空闲时隙作为第一发送时隙;若不存在空闲时隙,并且该数据包对应的时延裕量值不为零,则将第一发送剩余时间更新为第二发送剩余时间,在第二发送剩余时间对应的所有时隙中选择一个空闲时隙作为第一发送时隙。
在上述过程中,将第一发送剩余时间更新为第二发送剩余时间的方法为:记录无空闲时隙确定时间,计算上述第一发送剩余时间与无空闲时隙确定时间之间的差值,该差值即为第一剩余时间差值,即第一剩余时间差值=第一发送剩余时间-无空闲时隙确定时间,其中,无空闲时隙确定时间为确定上述数据包对应的第一发送剩余时间对应的所有时隙中不存在空闲时隙的时隙对应的时间,上述第一剩余时间差值为大于等于零的值;计算该第一剩余时间差值与上述时延裕量值对应的时延裕量时长的和,即第二发送剩余时间=第一剩余时间差值+时延裕量时长,即可获取第二发送剩余时间;此时,将时延裕量值更新为零。
当在第一发送时隙前的各个时隙中均确定第一发送时隙未发生碰撞时,在第一发送时隙发送数据包。较佳地,可以预设一定时器,当数据包到达时,该定时器即可开始计时,用于指示该数据包可用于发送的剩余时间,即定时器计数=最大发送时延时长-时延裕量时长。当定时器计数为零,且时延裕量时长同时为零时,则表明数据包在其最大发送时延时长允许范围内未能成功发送,即被丢弃。
本发明实施例中,预设缓存队列存储未完成数据包发送,且未到达最大发送时延时长的数据包。该缓存队列中的数据包可以按照优先级进行排序,优先级最高的数据包位于缓存队列的队首;也可以按照数据包对应的发送剩余时间进行排序,发送剩余时间最短的数据包位于队首,该发送剩余时间可以为第一发送剩余时间,也可以为在第一发送时隙未成功发送数据包,而更新第一发送剩余时间后获得的第二发送剩余时间;还可以按照其他方式进行排序。本发明实施例中,当到达某个已经选定的发送时隙时,在该发送时隙上发送哪一个数据包取决于缓存队列中所有数据包的排序,即在发送时隙前的各个时隙中均确定该发送时隙未发生碰撞时,根据缓存队列中数据包的排队方式,在上述发送时隙发送位于缓存队列队首的数据包。当某个数据包对应的定时器计数为零,且时延裕量时长同时为零时,则将该数据包从缓存队列中删除,表明该数据包被丢弃。
由于时隙状态向量(表)根据其他节点发送的FI实时进行更新,因此,可能存在在选择第一发送时隙的时刻,第一发送时隙为空闲时隙,而在选定第一发送时隙后,本节点在第一发送时隙前的某个时隙发现第一发送时隙发生碰撞的情况,即其他节点占用第一发送时隙的情况。因此,当在上述在第一发送时隙前的某个时隙中确定第一发送时隙发生碰撞时,即上述初次选择发送时隙后发送数据包失败时,判断由碰撞事件确定时间至第一发送剩余时间结束前对应的所有时隙中是否存在空闲时隙,若存在空闲时隙,则随机选择一个空闲时隙作为第二发送时隙,上述碰撞事件确定时间为确定第一发送时隙发生碰撞的时隙对应的时间。当在由碰撞事件确定时间至第一发送剩余时间结束前对应的所有时隙中,不存在空闲时隙,则将第一发送剩余时间更新为第三发送剩余时间后,在第三发送剩余时间对应的所有时隙中,重新选择一个空闲时隙作为第二发送时隙。当在第二发送时隙前的各个时隙中均确定第二发送时隙未发生碰撞时,根据缓存队列中数据包的排队方式,在第二发送时隙发送位于缓存队列队首的数据包,即获得再次选择发送时隙发送数据包的机会。在获取第三发送剩余时间的同时,将时延裕量值更新为零。
在上述过程中,获取第三发送剩余时间的具体过程为:记录碰撞事件确定时间,计算该第一发送剩余时间与碰撞事件确定时间之间的差值,获取第二剩余时间差值,即第二剩余时间差值=第一发送剩余时间-碰撞事件确定时间;计算上述第二剩余时间差值与时延裕量值对应的时延裕量时长的和,获取第三发送剩余时间,即第三发送剩余时间=第二剩余时间差值+时延裕量时长,其中,第二剩余时间差值为大于等于零的值。例如,时延裕量值对应的时延预量时长为30ms,第一发送剩余时间为70ms,第一发送时隙对应的时间为60ms,在第50ms处确定第一发送时隙发生碰撞,即碰撞事件确定时间为50ms,则第三发送剩余时间为50ms(70ms-50ms+30ms)。此时,将上述定时器更新,根据第三发送剩余时间,重新开始计时。
特殊地,当在第一发送时隙前的一个时隙中确定第一发送时隙发生碰撞,且时延预量值为零时,或者,在第二发送时隙前的一个时隙中确定第二发送时隙仍发生碰撞时,即再次发送数据包失败时:搜索缓存队列,查询在缓存队列中是否存在优先级较低的数据包,若存在,则获取优先级较低的数据包的发送时隙作为第三发送时隙,在第三发送时隙发送上述数据包,上述优先级较低的数据包即被丢弃,其中,低优先级数据包的发送时隙对应的时间在数据包对应的最大发送时延结束之前。上述第一发送时隙为在第二发送剩余时间对应的所有时隙中选择的第一发送时隙。
当第二发送时隙前的一个时隙中确定第二发送时隙仍发生碰撞时,并且在缓存队列中不存在优先级较低的数据包,获取本节点的3跳节点占用的时隙作为上述数据包的第三发送时隙,在该第三发送时隙发送上述数据包,其中,上述3跳节点占用的时隙对应的时间在数据包对应的最大发送时延结束之前;或者,获取优先级低于该数据包的其他节点占用的时隙作为第三发送时隙,在第三发送时隙发送上述数据包;或者,直接丢弃上述数据包,请求高层重新发送该数据包。
若在上述第三发送时隙之前的任意一个时隙中确定上述第三发送时隙仍存在碰撞,或者在数据包对应的最大发送时延结束前,不存在优先级低于上述数据包的数据包时,即定时器为零,且时延裕量值对应的时长为零时,仍未完成数据包的发送时,则丢弃该数据包。
本发明实施例中,将数据包对应的最大发送时延信息对应的时长划分为两部分,即发送剩余时间和时延裕量值对应的时延时长,根据数据包对应的优先级不同设置不同的时延裕量值,能够优先在数据包的发送剩余时间对应的所有时隙中选择上述数据包对应的第一发送时隙,一旦第一发送时隙发生碰撞,仍能够在确定第一发送时隙发生碰撞的碰撞事件确定时间至数据包对应的最大发送时延时长结束之前对应的所有时隙中重新选择其他的发送时隙发送上述数据包,并且优先级高的数据包能够抢占优先级低的数据包对应的发送时隙,进一步保证了高优先级数据包的发送,提高了***的可靠性和安全性。
根据上述技术方案,下面结合具体场景,详细介绍在车路协同通信***中,发送数据包的过程:假设1帧包含100个时隙,每个时隙对应时长为1ms,数据包1和数据包2对应不同的业务优先级,其中数据包1对应的优先级低于数据包2对应的优先级,数据包1对应最大发送时延时长为200ms,发送时延裕量值对应的时延裕量时长为10ms;数据包2对应的最大发送时延时长为100ms,发送时延裕量值对应的时延裕量时长为20ms。
实施例一
参阅图5所示,数据包1到达MAC层的时刻为第1帧时隙0,数据包2到达MAC层的时刻为第2帧的时隙0,数据缓存队列中仅包含数据包1和数据包2。参阅图6所示,当为数据包1和数据包2初次选定的发送时隙未存在异常时,发送数据包的流程为:
步骤600:根据数据包1携带的优先级信息,设置数据包1对应的时延裕量值,根据数据包1的最大发送时延时长,计算数据包1的发送剩余时间,并在该发送剩余时间对应的所有时隙中随机选择一个空闲时隙作为数据包1的发送时隙。
参阅图5所示,低优先级数据包1在第1帧时隙0到达后,根据最大发送时延时长200ms,时延裕量值对应的时延裕量时长10ms,确定低优先级数据包1发送剩余时间为190ms(200ms-10ms),在该发送剩余时间对应的所有时隙中随机选择一个空闲时隙作为数据包1的发送时隙,假设数据包1的发送时隙为第2帧的时隙89。数据包1对应的定时器1由190ms开始计时。
步骤610:根据数据包2携带的优先级信息,设置数据包2对应的时延裕量值,根据数据包2的最大发送时延时长,计算数据包2的发送剩余时间,并在该发送剩余时间对应的所有时隙中随机选择一个空闲时隙作为数据包2的第一发送时隙。
高优先级数据包2在第2帧时隙0到达后,根据最大发送时延时长100ms,时延裕量值对应的时延裕量时长20ms,确定高优先级数据包2发送剩余时间为80ms(100ms-20ms),在该发送剩余时间对应的所有时隙中随机选择一个空闲时隙作为第一发送时隙,假设该第一发送时隙为第2帧的时隙79。数据包2对应的定时器由80ms开始计时。
步骤620:确定在数据包2的第一发送时隙及数据包1的发送时隙均不存在碰撞时,在上述第一发送时隙发送数据包2,在上述数据包1的发送时隙发送数据包1。
本发明实施例中,节点在非本节点的发送时隙接收其他节点发送的FI,根据该FI更新自身的时隙状态向量(表),根据该时隙状态向量(表)中的信息,确定到达上述第一发送时隙及数据包1的发送时隙均未出现异常时,在上述第一发送时隙(第2帧时隙79)发送数据包2,在上述数据包1的发送时隙(第2帧时隙89)发送数据包1。
实施例二
参阅图7所示,当上述数据包2的第一发送时隙发生异常,再次选择数据包2的第二发送时隙后,成功完成数据包1和数据包2的发送,数据缓存队列中仅包含数据包1和数据包2。参阅图8所示,发送数据包的过程为:
步骤800:根据确定数据包2的第一发送时隙发生碰撞的碰撞事件确定时间,以及数据包2对应的时延裕量值,更新数据包2对应的发送剩余时间。
本发明实施例中,数据包2对应的碰撞事件确定时间对应的时隙为第2帧时隙78,数据包2的时延裕量对应的时延裕量时长为20ms,则数据包2对应的更新后的发送剩余时间为21ms(79ms-78ms+20ms)。根据更新后的发送剩余时间,更新定时器2,即定时器2由21ms开始计时。
步骤810:在更新后的发送剩余时间对应的所有时隙中,随机选择一个空闲时隙作为数据包2的第二发送时隙。
此处选择第2帧时隙95作为数据包2的第二发送时隙。
步骤820:确定数据包2的第二发送时隙及数据包1的发送时隙不存在碰撞时,在上述第二发送时隙发送数据包2,在上述数据包1的发送时隙发送数据包1。
本发明实施例中,节点根据时隙状态向量(表)确定上述第二发送时隙及数据包1的发送时隙均未出现异常时,在上述第二发送时隙(第2帧时隙95)发送数据包2,在上述数据包1的发送时隙(第2帧时隙89)发送数据包1。
实施例三
当上述数据包2的第二发送时隙存在异常,在确定第二发送时隙发生碰撞的碰撞事件确定时间至数据包2对应的最大发送时延时长之间对应的所有时隙中,没有空闲时隙可以作为发送时隙时,抢占数据包1的发送时隙(第2帧时隙89)作为第三发送时隙,成功完成数据包2的发送,数据缓存队列中仅包含数据包1和数据包2。参阅图9所示,发送数据包的过程为:
步骤900:确定在数据包1的发送时隙不存在碰撞时,丢弃数据包1。
根据节点存储的时隙状态向量(表),本节点在第2帧时隙85发现时隙95发生碰撞时,由于数据包2在第2帧时隙85对应的时间至数据包对应的最大发送时延时长之间对应的所有时隙中,没有空闲时隙可以作为发送时隙时,且判定数据包1的发送时隙不存在碰撞时,则丢弃数据包1。
步骤910:将上述数据包1的发送时隙作为数据包2的第三发送时隙,在第三发送时隙发送数据包2。
在第三发送时隙(第2帧时隙89)发送数据包2。
实施例四
参阅图10所示,当上述数据包2的第二发送时隙存在异常时,丢弃数据包2的过程为:
步骤1000:确定数据包2的第二发送时隙为碰撞状态时,在确定第二发送时隙发生碰撞的碰撞事件确定时间至数据包2对应的最大发送时延时长之间对应的所有时隙中,确定没有空闲时隙可以作为发送时隙,并且也不存在优先级低于数据包2的数据包等待发送。
本发明实施例中,在第2帧时隙90发现第2帧时隙95发生碰撞时,在第2帧时隙90对应的时间至数据包2对应的最大发送时延时长之间对应的所有时隙中,确定没有空闲时隙可以作为发送时隙。并且低于数据包2的低优先级数据包1在第2帧时隙89完成了发送过程,因此,在数据包2的最大发送时延允许范围内,也不存在优先级低于数据包2的数据包等待发送。
步骤1010:丢弃数据包2。
本发明实施例中,确认数据包中携带的数据包发送优先级信息,根据该数据包发送优先级信息,设置该数据包对应的时延裕量值,针对数据包的优先级不同,设置与数据包优先级对应的时延裕量值;根据上述数据包携带的最大发送时延信息与上述时延裕量值,计算数据包发送剩余时间,使不同优先级的数据包对应不同的发送剩余时间,优先级高的数据包对应更长的发送剩余时间;利用上述发送剩余时间发送上述数据包,当在发送剩余时间结束前,未能完成数据包的发送,还可以根据时延裕量值更新发送剩余时间,利用更新后的发送剩余时间重新发送上述数据包。采用本发明技术方案,能够针对数据包对应的优先级设置其时延裕量值,从而在发送剩余时间中随机选择发送时隙发送上述数据包,能够避免在最大发送时延的最后时刻发送上述数据包,当为数据包随机选择的发送时隙出现异常时,造成数据包发送失败的问题,保证高优先级数据包的发送,提高了***的安全性和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。