一种车联网中数据传输的方法和设备与流程

文档序号:17629133发布日期:2019-05-10 23:59阅读:299来源:国知局
一种车联网中数据传输的方法和设备与流程

本申请涉及智能交通领域,尤其涉及一种车联网中数据传输的方法和设备。



背景技术:

随着智能交通的发展,vanet(vehicularad-hocnetwork,车辆自组织网络)逐渐引发人们的关注。vanet是一种将新一代无线网络与车辆相结合的新兴技术,包括:v2i(vehicletoinfrastructure,车辆对网络)通信技术和v2v(vehicletovehicle,车辆对车辆)通信技术。其中v2v通信技术,即车辆与车辆之间的通信,通过车辆自组织网络实现,主要用于智能交通的相关应用,如狭窄的道路、高密度节点分布、节点高速移动等。

另外,vanet下的通信机制基于无线网络,和manet(mobileadhocnetwork,移动自组网络)一样,它具有无线电传输范围短、自组织、自管理以及低带宽等性质。然而,由于节点(车辆或车载单元)的高速移动,复杂的通信环境等造成vanet中网络拓扑结构变化非常快,在vanet中使用传统的传输层协议和路由协议,v2v场景下发送方车辆和接收方车辆之间的完整连接路径会比较容易失效,造成数据包的传输成功率较低。



技术实现要素:

针对上述问题,本申请的实施例提供一种车联网中数据传输的方法和设备,用以解决vanet网络中因网络拓扑结构变化快,导致的数据包的传输成功率较低的问题。

为达到上述目的,本申请的实施例采用如下技术方案:

第一方面,提供了一种车联网中数据传输的方法,该方法包括:

维护本地邻居信息,所述本地邻居信息用于表示当前节点的邻居节点;

若待发送至目标节点的数据包的目的地址不是所述当前节点的地址,从所述本地邻居信息表示的邻居节点中确定所述当前节点的候选下一跳;

若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将所述数据包发送给所述候选下一跳;

若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存所述数据包,并循环执行从所述本地邻居信息表示的邻居节点中确定所述当前节点的候选下一跳,直至候选下一跳到目标节点的距离小于当前节点到目标节点的距离为止,将缓存的所述数据包发送给所述当前节点的候选下一跳。

第二方面,提供了一种车联网中数据传输的设备,该设备包括:

更新单元,用于维护本地邻居信息,所述本地邻居信息用于表示当前节点的邻居节点;

确定单元,用于若待发送至目标节点的数据包的目的地址不是所述当前节点的地址,从所述本地邻居信息表示的邻居节点中确定所述当前节点的候选下一跳;

执行单元,用于若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将所述数据包发送给所述候选下一跳;若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存所述数据包,并循环执行从所述本地邻居信息表示的邻居节点中确定所述当前节点的候选下一跳,直至候选下一跳到目标节点的距离小于当前节点到目标节点的距离为止,将缓存的所述数据包发送给所述当前节点的候选下一跳。

第三方面,提供了一种车联网中数据传输的设备,包括:至少一个处理器、存储器和通信总线;

所述处理器与所述存储器通过所述通信总线连接,所述存储器用于存储计算机执行指令,当所述车联网中数据传输的设备运行时,所述处理器执行所述存储器存储的所述计算机指令,以使所述车联网中数据传输的设备执行上述任一车联网中数据传输的方法。

第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,其特征在于,当所述计算机指令在车联网中数据传输的设备上运行时,使得所述车联网中数据传输的设备执行上述任一车联网中数据传输的方法。

第五方面,提供了一种计算机程序产品,当所述计算机程序产品在车联网中数据传输的设备上运行时,使得所述车联网中数据传输的设备执行上述任一车联网中数据传输的方法。

本申请的实施例提供的一种车联网中数据传输的方法和设备,通过维护本地邻居信息,在节点高速移动情况下,从本地邻居信息所表示的邻居节点中确定当前节点的候选下一跳,若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将数据包发送给距目标节点更近的候选下一跳,若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存所述数据包,重新进行下一跳的选择,直至得到合适的下一跳,将缓存的数据包发送出去。然而,现有技术中vanet网络下由于节点的高速移动,已建立的路由会随着改变的网络拓扑失效,导致发出的数据包丢失。本申请通过确定合适的候选下一跳,以此来预防vanet中没有合适的下一跳时,发送出的数据包被丢弃,并且当没有合适的下一跳时,通过缓存数据包,提高数据包的传输成功率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种vanet网络下节点间数据传输的网络架构图;

图2为本申请实施例提供的一种vanet网络下节点间数据传输的场景图;

图3为本申请实施例提供的一种车联网中数据传输的方法流程图之一;

图4为本申请实施例提供的一种车联网中数据传输的方法流程图之二;

图5为本申请实施例提供的一种车联网中数据传输的设备的功能结构图;

图6为本申请实施例提供的一种车联网中数据传输的设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本文中术语“节点”是指车联网中的节点,该节点可以为车辆、或安装在车辆上的车载单元。车联网在本实施例中以vanet为例。

本申请实施例提供了一种vanet中的节点间数据传输的网络架构图,如图1所示,包括:节点01和蜂窝网络的基站02,其中,节点01以车辆为例,每个节点01上可以安装有车载单元,车载单元例如可以包括:定位模块、通信接口和路由模块。定位模块可以是gps(globalpositioningsystem,全球定位系统)装置,该装置用来获取节点的位置信息。通信模块用于接收和/或发送信号,每个节点的gps装置获取的节点的位置信息可以通过该节点的通信模块,将节点的位置信息上传给基站;并且,每个节点的通信模块也可以通过基站获取到除该节点之外的其他节点(至少一个节点)的位置信息。每个节点的路由模块可用于根据目标节点(数据包的目的地址表示的节点)的位置信息,选择下一跳,以便向下一跳传输数据包。

图2是在vanet网络下,节点间进行数据传输的场景示意图。参考图2所示,假设节点a作为源节点(发起路由的节点),节点c作为目标节点(即节点a需要向节点c传输数据),根据图1所示的网络架构,节点a的gps装置可以通过基站获取到目标节点c的位置信息,节点a可基于目标节点c的位置信息确定下一跳,下一跳节点再继续确定其下一跳,直至将数据包传输至目标节点。例如,图2中以节点a到节点c的实际路由为a-b-c为例,在该路径上传输数据包d,其中节点b称为中间节点。当然,图2仅为本申请实施例所作示意,vanet网络下节点间进行数据传输的路由路径可以有多种形式,源节点与目标节点间的数据传输随着二者之间距离的远近,可以途径至少一个中间节点,也可以不经过中间节点。对此,本申请不做限定。

基于上述的vanet网络下节点间进行数据传输的网络架构和场景,本申请实施例提供了一种数据传输的方法,执行主体为vanet网络中的节点。其中,vanet网络中任一节点均可以参考下面的方法来传输数据,为了将当前执行该方法的节点与其他节点区分,故将当前执行该方法的节点称为当前节点。参考图3所示的车联网中数据传输的方法流程图,假设当前节点是图2中的源节点a,该方法包括以下步骤s101-s105:

s101(可选的)、获取目标节点的位置信息。

每个节点中例如均装有gps装置,节点中的gps装置通过与蜂窝网络的基站建立连接,进行信息交互,将自身获取到的位置信息上传至基站中,每个节点通过基站均可以获取到其他节点的位置信息。其中,节点的位置信息包括:节点的标识、节点的坐标(例如经纬度),一般还可以包括时间戳,用于记录该节点的坐标的采集时刻(可以称为信息采集时刻);节点的位置信息还可以包括在该位置采集时刻得到的节点的行驶信息:节点的行驶速度、节点行驶中的加速度等,以预测节点在信息采集时刻以后的某一时刻的坐标。其中,节点的标识可以是车辆的id、车载单元的id、车载单元的地址(例如ip地址)等来唯一表示该节点。节点的行驶速度和加速度均可以为矢量,即可以反映节点的移动方向。

示例的,参考图2,节点a作为当前节点,将节点c作为目标节点,当前节点a可将节点c的标识上报给基站,以从基站获取到节点c的位置信息。

s102、维护本地邻居信息。

本地邻居信息是用于表示当前节点的邻居节点。具体的,本地邻居信息可以包括:邻居节点的标识。例如,本地邻居信息可以包含邻居节点的位置信息,具体包含的内容可以参考s101中的介绍。本地邻居信息是当前节点与邻居节点进行信息交互,以获取到的邻居节点的信息,邻居节点的信息构成邻居表(也可称为邻居列表)。每个节点会定时广播hello报文,该hello报文中包含该节点的位置信息;那么,当前节点可以通过其接收到hello报文来维护本地邻居信息。具体的,当前节点接收到hello报文时,检查本地的邻居表中是否有该hello报文中包含的节点标识,若没有,则添加该hello报文中包含的节点的位置信息至邻居表中;若有,则将该hello报文中包含的节点的位置信息更新至邻居表中。

需要说明的是,如果节点c是节点a的邻居节点,则节点a可通过步骤s102中的邻居表获取到节点c的位置信息;如果节点c不是节点a的邻居节点,则节点a可通过步骤s101获取到节点c的位置信息。

s103、若待发送至目标节点的数据包的目的地址不是当前节点的地址,从本地邻居信息表示的邻居节点中确定当前节点的候选下一跳。

参考图2,当前节点(节点a)作为源节点,也就是主动发起路由的节点,节点a可以直接发送自身产生的第一数据包,第一数据包的目的地址是第一目标节点的地址,即节点a需要向第一目标节点发送第一数据包,此时节点a可以为第一数据包的发送寻找候选下一跳。

可选的,节点a也可以先将自身产生的第一数据包发送给自身(当前节点),以便于节点a同时作为中间节点接收到其他节点发送的待转发至第二目标节点的第二数据包时,并行为第一数据包和第二数据包从本地邻居信息表示的邻居节点中确定出当前节点的候选下一跳,节省路由时间。需要说明的是,第一目标节点的地址和第二目标节点的地址可以相同也可以不同,第二目标节点可以是至少一个。

通过以上方法,可以在节点即作为主动发起路由的一方,又作为其他节点发起路由的转发者时,并行处理数据包,节省数据包的处理时间,以此提升路由转发的效率。

当前节点a作为源节点,发起路由,其自身产生的第一数据包的目的地址是第一目标节点的地址,也就是节点c的地址,则从本地邻居信息表示的邻居节点中确定当前节点a的候选下一跳。

确定当前节点a的候选下一跳的方式可以是以下方式:

方式一、根据邻居节点到目标节点的距离以及当前节点到邻居节点的链路状态信息,求取邻居节点的评价值,邻居节点的评价值的大小用于表征邻居节点被选作候选下一跳的优先程度;根据邻居节点的评价值,确定当前节点的候选下一跳。

链路状态信息可以为链路的带宽、时延以及丢包率中的至少一个,也可以是由链路的带宽、时延以及丢包率中的至少一个按照预设算法得到的用于表征链路状态好坏的数值。

可选的,假设本地邻居信息中包含当前节点的n个邻居节点的信息。当前节点到邻居节点i(i=1,2,3,……,n)的链路状态是由当前节点到邻居节点i的链路的带宽、时延以及丢包率计算得到的一个数值来表示(称为链路状态表征值),记作si:

其中,b(i)表示当前节点到邻居节点i的链路的带宽,该带宽可以是指链路的总带宽或链路的可用带宽,其中可用带宽也可称为带宽余量,即未被占用的带宽,总带宽为带宽余量和已利用带宽之和;t(i)表示当前节点到邻居节点i的链路的时延,u(i)表示当前节点到邻居节点i的链路的丢包率。si值越大,表示当前节点到邻居节点i的链路状态越好。

可选的,当前节点到邻居节点i的链路状态表征值还可以是当前节点到邻居节点i的链路的带宽,当前节点到邻居节点i的链路的带宽越大,当前节点到邻居节点i的链路状态越好。

又可选的,当前节点到邻居节点i的链路状态表征值还可以是当前节点到邻居节点i的链路的时延或丢包率,当前节点到邻居节点i的链路的时延或丢包率越小,当前节点到邻居节点i的链路状态越好。

为简化计算,方便得到核心数值,对链路状态表征值作归一化处理,得到归一化之后的链路状态表征值,公式如下:

min(si)表示当前节点到n个邻居节点的链路状态表征值中最小的一个,max(si)表示当前节点到n个邻居节点的链路状态表征值中最大的一个。li的值越大,表示链路状态越好。

邻居节点到目标节点的距离用di表示,计算公式如下:

其中,xd为目标节点的位置矢量,xi为邻居节点i的位置矢量,(xd,yd),(xi,yi)分别为目标节点的坐标和邻居节点i的坐标。同样地,可以进一步对邻居节点到目标节点的距离di进行归一化处理,得到:

max(di)表示n个邻居节点到目标节点的距离中,数值最大的一个,min(di)表示n个邻居节点到目标节点的距离中,数值最小的一个。邻居节点到目标节点的距离di的归一化di的值越大,表示邻居节点i到目标节点的距离越小。

综合上述,由当前节点到邻居节点的链路状态li和邻居节点到目标节点的距离di,求取邻居节点的评价值pi,公式如下:

其中,α,β为可以根据具体需求指定的权重参数,α+β=1,两个参数的值可以人工设置,可以根据当前节点到邻居节点的链路状态和邻居节点到目标节点的距离对于路由建立的影响程度的不同进行相应的设置。例如,当前节点到邻居节点的链路状态对路由建立的影响大于邻居节点到目标节点的距离对路由建立的影响,则可以设置α为0.7,β为0.3。

通过上述公式,计算vanet网络下当前节点的所有邻居节点的评价值,选择评价值最大的邻居节点作为候选下一跳。

可选的,邻居节点的评价值还可以是当前节点到邻居节点的链路状态表征值(例如li或si),并将链路状态表征值表征链路状态最好的一个对应的邻居节点作为候选下一跳。

又可选的,邻居节点的评价值还可以是邻居节点到目标节点的距离,由于邻居节点到目标节点的距离的归一化值di越大,表示邻居节点到目标节点的距离越小,因此选取邻居节点到目标节点的距离di的值最大的邻居节点作为候选下一跳;当然还可以邻居节点到目标节点的距离di中的最小值选择候选下一跳。

方式二、确定由当前节点到目标节点的最佳路由,可以采用以下多种方式:

可选的,当前节点接收到基站发送的路由信息,即基站为当前节点到目标节点选择一条最佳路由,并将该最佳路由的信息发送至当前节点。对于当前节点而言,无论基站采用何种方式选择出当前节点到目标节点的路由,当前节点都将其作为最佳路由。例如,基站根据网络拓扑结构(多个节点的邻居信息),确定当前节点a到目标节点c的可选路由;可选路由中除当前节点外,每个节点均包含在该节点的前一节点的邻居信息中;例如,假设可选路由为a-b-c,其中b是a的邻居节点,c是b的邻居节点。将当前节点a到目标节点c的各条可选路由中,所含跳数最少的一条路由作为最佳路由,并将该最佳路由的信息发给当前节点a。当前节点a接收到这一最佳路由的信息,将最佳路由中当前节点a的下一跳节点作为当前节点a的候选下一跳。

又可选的,当前节点a接收基站发送的多个节点的邻居信息,根据多个节点的邻居信息,确定当前节点a到目标节点c的可选路由,每条可选路由中除当前节点外,每个节点均包含在该节点的前一节点的邻居信息中。进而,从各个可选路由中选取跳数最少的一条作为当前节点a到目标节点c的最佳路由。最佳路由中当前节点a的下一跳节点作为当前节点a的候选下一跳。

需要说明的是,车联网中节点间进行数据传输时,由于节点的高速移动,节点的位置信息随时变化,为保证利用邻居信息选取最佳路由的准确性,应对当前节点和邻居节点的位置进行实时预测,具体方式如下:

若接收到节点的邻居信息用于表示信息采集时刻该节点的邻居节点,信息采集时刻为当前时刻之前的时刻,此时当前节点在根据多个节点的邻居信息,确定当前节点到目标节点的可选路由时,应根据每个节点的邻居信息对应的信息采集时刻、以及节点和节点的邻居信息中的各邻居节点在信息采集时刻的位置信息(例如包括:坐标、速度和加速度)预测所述节点和所述节点的邻居信息中的邻居节点在当前时刻的位置信息(例如包括:坐标)。

可通过以下公式进行计算得到:

其中,x0,v0,a0为信息采集时刻节点的坐标,行驶速度和行驶加速度,其中行驶速度和行驶加速度均为矢量。

根据节点和节点的邻居信息中的邻居节点在当前时刻(即当前节点执行根据多个节点的邻居信息,确定当前节点a到目标节点c的可选路由这一步骤的的时刻)的位置信息,更新节点的邻居信息。具体的,一节点j在信息采集时刻的邻居表中包含r个邻居节点,若在当前时刻预测到的位置信息中,这r个邻居节点中有任一节点x的位置信息表明节点x与节点j的距离超出了节点j的通信范围,则节点x要从节点j的邻居表中删除。

进而,可以根据多个节点更新后的邻居信息,确定当前节点到目标节点的可选路由。同样的,每条可选路由中除当前节点外,每个节点均包含在该节点的前一节点的邻居信息中。

s104、若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将待发送至目标节点的数据包发送给候选下一跳。

判断候选下一跳到目标节点的距离是否小于当前节点到目标节点的距离,若是,则将当前节点中接收到的待发送至目标节点的数据包发送给所选取的候选下一跳对应的邻居节点中。

示例的,参考图2,节点a作为当前节点,节点b作为候选下一跳,目标节点为节点c,比较节点a到节点c的距离和节点b到节点c的距离,节点b到节点c的距离小于节点a到节点c的距离,节点a将自身所接收到的待发送至目标节点c的数据包发送给节点b。

s105、若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存数据包,并循环从本地邻居表信息表示的邻居节点中确定当前节点的候选下一跳,直至候选下一跳到目标节点的距离小于当前节点到目标节点的距离为止,将缓存的数据包发送给当前节点的候选下一跳。

将候选下一跳到目标节点的距离与当前节点到目标节点的距离进行对比,候选下一跳到目标节点的距离大于当前节点到目标节点的距离,转发数据包至候选下一跳会使得数据包距离目标节点更远,候选下一跳到目标节点的距离等于当前节点到目标节点的距离,转发数据包至候选下一跳没有任何有益效果,相反的占用不必要的资源,因此,将数据包保存至缓存队列中,等待网络拓扑结构的改变,例如可以指当前节点到邻居节点的链路状态以及邻居节点到目标节点的距离随着节点的移动发生变化,这种变化可以根据时间的推移、节点的速度变化得知。在网络拓扑结构发生变化后,重新确定出候选下一跳,将候选下一跳到目标节点的距离与当前节点到候选下一跳的距离进行对比,直到候选下一跳到目标节点的距离小于当前节点到候选下一跳的距离,将缓存队列中的数据包发送至候选下一跳中;当然,也可以在没找到合适的候选下一跳时,等待一预设时间间隔后,再重新确定出候选下一跳。

参考图4所示的车联网中数据传输的方法流程图,假设当前节点是节点b,则节点b可以执行以下步骤s201-s206;

s201(可选的)、接收到数据包并获取目标节点的位置信息。

参考图2,节点b作为中间节点,接收到节点a传输的数据包d,数据包d中的报文信息中包括目标节点的节点标识,节点b根据接收到的目标节点的节点标识通过蜂窝网站与目标节点进行信息交互,获取到目标节点此时的位置信息。

s202、维护本地邻居信息。

这一步骤可参考上述步骤s102,在此不再赘述。

s203(可选的)、接收数据包进行路由转发。

参考图2,节点b作为中间节点,接收到数据包。

s204、若待发送至目标节点的数据包的目的地址不是当前节点的地址,从本地邻居表信息表示的邻居节点中确定当前节点的候选下一跳。

当前节点b作为中间节点,进行路由转发,节点b接收到的数据包所含报文信息中的目的地址是第一目标节点的地址,也就是节点c的地址,则从本地邻居信息表示的邻居节点中确定当前节点b的候选下一跳。

确定当前节点b的候选下一跳的方式可以参考上述步骤s103中的两种方式,在此不再赘述。

可选的,方式三,当前节点b作为中间节点,接收到的路由信息可以是上一节点发送的路由信息,该路由信息用于指示所述当前节点到所述目标节点的最佳路由。具体最佳路由的确定可以参考上述步骤s103中方式二。

s205、若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将待发送至目标节点的数据包发送给候选下一跳。

判断候选下一跳到目标节点的距离是否小于当前节点到目标节点的距离,若是,则将当前节点中接收到的待发送至目标节点的数据包发送给所选取的候选下一跳对应的邻居节点中。

s206、若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存数据包,并循环从本地邻居表信息表示的邻居节点中确定当前节点的候选下一跳,直至候选下一跳到目标节点的距离小于当前节点到目标节点的距离为止,将缓存的数据包发送给当前节点的候选下一跳。

假设当前节点是节点c,则节点c执行以下操作。

接收数据包并进行判断。

当前节点是节点c,参考图2,节点c作为目标节点,接收到数据包d,数据包d中所含报文信息中的目的地址为目标节点的地址,即节点c的地址。对数据包信息进行判断,数据包的目的地址是当前节点c的地址,将所接收到的数据包向上交付,即对数据包进行解包,由物理层向上层层传输直至应用层,完成整个解包过程,读取数据包中的报文信息。

基于上述方法,通过维护本地邻居信息,在节点高速移动情况下,从本地邻居信息所表示的邻居节点中确定当前节点的候选下一跳,若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将数据包发送给距目标节点更近的候选下一跳,若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存所述数据包,重新进行下一跳的选择,直至得到合适的下一跳,将缓存的数据包发送出去。然而,现有技术中vanet网络下由于节点的高速移动,已建立的路由会随着改变的网络拓扑失效,导致发出的数据包丢失。本申请通过确定合适的候选下一跳,以此来预防vanet中没有合适的下一跳时,发送出的数据包被丢弃,当没有合适的下一跳时,通过缓存数据包,提高数据包的传输成功率。

上述主要从各个网元交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本申请实施例可以根据上述方法示例对车联网中数据传输的设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中涉及的车联网中数据传输的设备的功能结构示意图,如图5所示,该车联网中数据传输的设备300包括:更新单元301、确定单元302、执行单元303。

更新单元301,用于维护本地邻居信息,本地邻居信息用于表示当前节点的邻居节点。

确定单元302,用于若待发送至目标节点的数据包的目的地址不是所述当前节点的地址,从所述本地邻居信息表示的邻居节点中确定所述当前节点的候选下一跳。

可选的,用于根据邻居节点到目标节点的距离以及当前节点到邻居节点的链路状态信息,求取邻居节点的评价值,邻居节点的评价值的大小用于表征邻居节点被选作候选下一跳的优先程度;根据邻居节点的评价值,确定当前节点的候选下一跳。

又可选的,用于确定由当前节点到目标节点的最佳路由;将最佳路由中当前节点的下一跳确定为当前节点的候选下一跳。

其中,若接收到节点的邻居信息用于表示信息采集时刻节点的邻居节点,信息采集时刻为当前时刻之前的时刻,则根据多个节点的邻居信息,确定当前节点到目标节点的可选路由包括:

根据每个节点的邻居信息对应的信息采集时刻、以及节点和节点的邻居信息中的各邻居节点在信息采集时刻的位置信息预测节点和节点的邻居信息中的邻居节点在当前时刻的位置信息。

根据节点和节点的邻居信息中的邻居节点在当前时刻的位置信息,更新节点的邻居信息。

根据多个节点更新后的邻居信息,确定当前节点到目标节点的可选路由。

执行单元303,用于若候选下一跳到目标节点的距离小于当前节点到目标节点的距离,则将数据包发送给所述候选下一跳;若候选下一跳到目标节点的距离大于或等于当前节点到目标节点的距离,则缓存数据包,并循环执行从本地邻居信息表示的邻居节点中确定当前节点的候选下一跳,直至候选下一跳到目标节点的距离小于当前节点到目标节点的距离为止,将缓存的数据包发送给当前节点的候选下一跳。

本申请实施例提供的车联网中数据传输的设备,用于执行上述车联网中数据传输的方法,因此可以达到与上述车联网中数据传输的方法相同的效果。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例还提供了一种车联网中数据传输的设备,如图6所示,车联网中数据传输的设备400包括:至少一个处理器401、存储器402和通信总线403;其中,所述处理器401与所述存储器402通过所述通信总线403连接,所述存储器401用于存储计算机执行指令,当所述车联网中数据传输的设备400运行时,所述处理器401执行所述存储器402存储的所述计算机指令,以使所述车联网中数据传输的设备400执行前面任一实施例中车联网中数据传输的方法。

其中,处理器401是车联网中数据传输的设备400的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器是一个中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。

在具体的实现中,作为一种实施例,处理器401可以包括一个或多个cpu,例如图6中所示的cpu0和cpu1。且,作为一种实施例,分析服务器300可以包括多个处理器,例如图6中所示的处理器401和处理器404。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

存储器402可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是独立存在,通过通信总线403与处理器相连接。存储器402也可以和处理器集成在一起。

在具体的实现中,存储器402,用于存储本申请中的数据和执行本申请的软件程序。处理器可以通过运行或执行存储在存储器402内的软件程序,以及调用存储在存储器402内的数据,执行主机的各种功能。

通信总线403,可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponentinterconnect,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步的,车联网中数据传输的设备400还可以包括:通信接口405,包括接收单元实现接收功能,以及发送单元实现发送功能。例如,通信接口405可以用来接收车联网中每个车辆的位置信息。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当所述计算机指令在车联网中数据传输的设备上运行时,使得所述车联网中数据传输的设备执行前面任一实施例中车联网中数据传输的方法。

本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在车联网中数据传输的设备上运行时,使得所述车联网中数据传输的设备执行前面任一实施例中车联网中数据传输的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1