一种基于软件定义车联网的路由方法与流程

文档序号:14915189发布日期:2018-07-11 00:31阅读:267来源:国知局

本发明属于无线通信技术领域,应用于车联网。



背景技术:

目前,车联网有两种结构,一是基于蜂窝网络的车联网,车辆是作为蜂窝网络中的接入节点,通过接入蜂窝网络连接互联网。数据传输是通过蜂窝网络上下行链路进行传输,即当车辆节点需要发送数据包时,通过蜂窝网络上行链路进行传输,同样地,通过蜂窝网络下行链路向车辆节点进行发送数据。目前采用4G蜂窝网络,在大规模的数据传输会给用户带来较为高昂的通信费用。

二是基于短程无线网络通信技术的车联网,主要是车辆Ad-hoc网络,它依靠短程无线网络通信技术在车辆节点之间建立连接,短程无线网络通信技术主要有DSRC、Wi-Fi Direct、Bluetooth 5.0、LTE Direct等。但是,进行远距离数据传输时,往往需要经过多个节点的中继转发,因为端到端的数据传输,需要找到一条端到端的路径,而处于两端之间的中继节点如何进行数据转发,就需要依靠车辆节点维护包含邻居节点信息的本地路由表,通过路由表来寻找合适的路由。在基于多跳的数据传输中,确定路由信息和路由方法是非常重要的。

现有的车辆Ad-hoc网络中的基于位置信息的路由方法是通过泛洪策略在每个节点中维护所有邻居节点位置信息的路由表。由于车联网是一种特殊的网络,车联网中车辆节点的移动性较高,网络的拓扑结构变化较快,导致了为了获得实时性的路由信息,节点在维护路由表时需要付出大量的计算资源等开销,但车辆节点的计算资源、存储资源等都具有局限性。其次,在堵车情景下,在特定的区域和时间段中,具有较高密度的车辆节点,车辆节点集群使用泛洪策略广播彼此的位置信息可能会引起广播风暴。所以现有的车辆Ad-hoc网络中的基于位置信息的路由方法已经不再适用。



技术实现要素:

针对现有车辆Ad-hoc网络存在的问题,本发明所要解决的技术问题就是提供一种基于软件定义车联网的路由方法,它能减少车辆节点的开销,且能避免车辆节点集群由泛洪策略引起的广播风暴。

为了解决上述技术问题,本发明提供的一种基于软件定义车联网的路由方法,包括以下步骤:

步骤1、车辆节点周期地向控制器上传位置信息、运动信息以及邻居节点信息,控制器由此生成全局路由表;

步骤2、车辆节点向控制器请求其通往目标节点的路由信息,控制器根据请求并向该节点发送路由信息;

步骤3、车辆节点根据路由信息与下一跳节点通过短程无线通信技术连接并传输数据报文;

步骤4、在传输报文的过程中对异常情况进行处理,直到目标节点收到该数据报文。

本发明采用短程无线通信技术的软件定义车联网,通过控制器来集中获取、管理所有节点的位置信息、运动信息以及邻居节点信息,控制器通过蜂窝网络向车辆节点传输控制信息;而车辆间大规模数据量的数据传输则通过短程无线通信技术来进行传输,控制信息的数据量非常小,有效地解决了现有Ad-hoc网络中采用位置信息的路由方法的车联网存在的问题,一方面减少了车辆节点的开销,另一方面避免了车辆节点集群由泛洪策略引起的广播风暴。

附图说明

本发明的附图说明如下:

图1是本方法发明的应用环境示意图;

图2是本方法发明的功能划分图;

图3是本方法发明的流程图;

图4是控制器的全局路由表中的节点信息表单个节点信息项图。

图5是车辆节点的数据报文帧格式图;

图6是车辆节点的请求报文帧格式图;

图7是控制器的路由报文帧格式图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明:

本方法发明的应用环境如图1所示,在公路网上行驶的车辆节点通过无线短程通信技术进行连接,形成车辆Ad-hoc网络,车辆节点间进行数据流的传输;右上端云状的图案表示控制器,控制器通过有线连接路网旁的基站,基站通过蜂窝网络向车辆节点进行控制流的传输。

如图2所示,本方法发明的构思是:按功能划分为数据平面和控制平面,数据平面是车辆节点通过无线短程通信技术进行通信组成的Ad-hoc网络,车辆节点之间的数据传输通过多跳中继转发来实现。控制平面通过控制器获取车辆节点的位置等信息并生成全局路由表,并通过蜂窝网络将路由信息传输给车辆节点。控制平面主要由在云端的服务器集群组成,能对路网上数量庞大的车辆节点提供高效可靠的服务,控制平面的控制器主要提供请求处理和位置信息处理功能。

控制器在初始化时获取所有车辆节点的位置信息、运动信息以及邻居节点信息,生成逻辑上的路由拓扑信息。在新的节点加入车辆网络时,该节点主动将位置信息、运动信息以及邻居节点信息传送给控制器,所有节点都定期上传自己的位置信息和运动信息,控制器维护路由拓扑信息。

当车辆节点请求进行数据传输时,通过蜂窝网络接口(基站)向控制平面的控制器发送传输请求,控制器接收到车辆节点发送的请求后,根据请求的类型和实时的路由信息来寻找一条最优路径,并将包含该路径的控制信息通过蜂窝网络接口发送给车辆节点,车辆节点就可以根据反馈的路由信息通过短程无线通信技术经过多跳将数据包传输到目的节点。

在数据传输超时或路由中断的情况下,通过蜂窝网络传输数据。

本发明提供的一种基于软件定义车联网的路由方法,包括以下步骤:

步骤1、车辆节点周期地向控制器上传位置信息、运动信息以及邻居节点信息,控制器由此生成全局路由表;

步骤2、车辆节点向控制器请求其通往目标节点的路由信息,控制器根据请求并向该节点发送路由信息;

步骤3、车辆节点根据路由信息与下一跳节点通过短程无线通信技术连接并传输数据报文;

步骤4、在传输报文的过程中对异常情况进行处理,直到目标节点收到该数据报文。

本方法发明的流程图如图3所示,该流程具体实现了基于软件定义车联网的路由方法。为了清楚说明该流程图,先对以下的概念进行说明:

节点A为首次发送数据传输请求的车辆节点,也是路由中的源节点,而节点B为路由中的目标节点;

时间T为数据报文在传输中的超时时间,当数据报文在传输过程中花费了接近T的时间,那么就要对报文进行相应处理;

节点Xi为传输过程中传输到达的当前车辆节点,节点Xi+1为路由信息中节点Xi的下一跳节点;

t为当前时刻,ti在为节点Xi向控制器发送信息的时刻, tj为节点Xi接收到路由信息的时刻;

δ为一时间常量,即周期,Ɛ为一较小常量。

图3所示的流程如下:

在步骤101,车辆节点A加入到车联网中;

车辆节点A不是特指某一个特定的节点,而是指任一新加入的车辆节点,在流程中更好说明,将该车辆节点定义为特定节点A。

在步骤102,车辆节点A通过自身的速度传感器、加速度传感器、GPS获取自身的位置信息和运动信息。位置信息和运动信息包含:GPS信息、加速度信息、速度信息与邻居节点的连接强度信息,由于车辆节点间通过短程无线通信技术进行连接,当无线短程通信的通信半径为R,建立无线短程通信是需要两个节点之间的距离小于R,当两节点之间的距离小于R,则称这两个节点为邻居关系,使用无线短程通信技术可以发现自身节点的邻居节点。

在步骤103,车辆节点A将采集到的位置信息、运动信息以及邻居节点信息通过蜂窝网络发送给控制器。

在步骤104,在车联网系统启动时,位于云端的控制器将初始化全局路由表,全局路由表是包含所有车辆节点的路由表,初始化工作主要是新建一张空白全局路由表。全局路由表的构成可以是车联网中的车辆节点信息以及车辆节点之间是否为邻居节点等信息。全局路由表分为节点信息表和邻居信息表,节点信息表包含所有节点的节点信息,节点信息项如图4所示,存储节点的序号,序号为节点MAC地址的哈希值,节点的GPS位置信息,其中为节点的经纬度信息,节点的速度信息,包括速度的大小和方向,节点的加速度信息,包括加速度的方向和大小,以及节点的邻居节点列表,包括该节点的所有邻居节点的MAC地址信息。邻居信息表为记录任意两个节点之间是否为邻居关系的表,简单地可以使用矩阵进行存储,矩阵中两个节点对应的元素的取值代表着由连接强度计算出的相对距离,若不是邻居节点,则该元素的取值为无穷大。新建全局路由表的工作即为在控制器中生成不记录任何内容的节点信息表和邻居信息表。

车联网系统启动后,位于云端的控制器是在一直运行的。

在步骤105,控制器接收到车辆节点的位置信息、运动信息以及邻居节点信息后对这些信息进行处理。具体地,控制器获取位置信息后,由GPS信息可以获知当前节点的空间坐标,由速度和加速度信息可以获知当前节点的未来运动趋势,速度信息包含运动速度的方向和大小,通过速度方向可以知道两个节点是相向而行还是背向而行,加速度信息包含运动加速度的方向和大小,通过加速度的方向和大小可以知道车辆节点的速度是变大还是变小,综合速度信息和加速度信息可以判断出两个节点之间的距离是增大还是减小,由连接强度可以获知当前节点与邻居节点的相对距离,根据无线信号衰减模型可以根据连接强度,即信号强度判断出两点的相对距离,再根据节点的邻居节点信息可以得到每个节点和哪些节点可以建立连接,即每两个节点是否为邻居节点,当两个车辆节点为邻居节点时,即可通过短程无线通信技术进行连接。

在步骤106,控制器根据步骤105中处理后得到的信息,将节点的位置信息、运动信息存储到控制器的全局路由表中节点信息表中的对应项中,而通过计算该节点与邻居节点的相对距离来存储到邻居节点表的对应项中,更新在全局路由表中该节点的信息以及与该节点的邻居节点信息。

在步骤107,车辆节点A判断当前时刻t与向控制器发送的时刻ti的差值是否小于周期δ,若小于意味着车辆节点A向控制器发送了自身的位置信息、运动信息以及邻居节点信息后还未经过了一个周期δ,则转到步骤108,否则当该差值等于或大于周期δ时,则车辆节点A继续采集信息,即继续步骤102。因为周期δ的大小影响着车辆节点周期上传信息的频率,也就影响着控制器中全局路由表的实时性,显然,周期δ越小,全局路由表的实时性越高,但也带来了越高的网络开销,故周期δ应取于一个合理值,这样既能保证全局路由表的实时性也能避免较大的网络开销。

在步骤108,车辆节点A判断当前是否有数据传输请求,如果有,则转到步骤109,否则执行步骤107;

上述的步骤,只是一个车辆节点去上传信息的流程,而在本发明中,所有车辆节点都会周期性地执行以上步骤102和103,位于云端的控制器就根据这些信息得到一个实时的全局路由表,之后车辆节点进行数据传输请求时,控制器就可以根据全局路由表生成路由信息。

在步骤109,车辆节点A请求向节点B发送数据报文,由此需要从A节点开始,可能经过中间节点多跳后到达节点B的一条路由。

数据报文帧格式如图5所示,它包含设备序号、目标设备序号、报文序号、时间戳、超时时间、类型、报文优先级、报文帧号、路由信息标志位、路由信息以及数据。设备序号为当前节点的MAC地址的哈希码,目标设备序号为目标节点的MAC地址的哈希码,报文序号为路由报文中的哈希码,时间戳记录当前时间ti,当传输的数据非常多时,可能需要进行分帧传输,通过报文帧号来记录分帧后的帧号,路由信息标志位用于记录路由信息栏中是否包含路由信息。

在步骤110,车辆节点A通过蜂窝网络向控制器发送请求报文。

请求报文帧格式如图6所示,包含请求序号、请求类型、时间戳、哈希码、源节点序号和目标节点序号。请求序号为在车辆节点A中记录的自增变量,请求类型为请求的数据传输的应用场景,例如娱乐应用场景下的视频等的传输与紧急情况应用场景下的自然灾害信息等的传输,这两种请求对时延等网络需求肯定不一样的。时间戳为记录请求发送的当前时间,哈希码为通过对时间戳和源节点序号进行哈希运算得到的一个哈希码,该哈希码可以唯一确定一个请求。源节点序号记录的是发送请求的节点的MAC地址的哈希值,同样地,目标节点序号为该请求发往的目的节点的MAC地址的哈希值。

在步骤111,控制器得到车辆节点A的请求报文后,根据请求类型和当前的网络状况来生成一个合适的超时时间T,超时时间代表这该请求的数据传输服务需要在超时时间T内得到满足。

在步骤112,控制器通过查询全局路由表,根据路由算法得到从车辆节点A经过中间节点多跳到达目标节点B的一条路由信息,路由信息包含了从A节点到B节点的每一跳节点的MAC地址信息。

路由算法有很多种,常见的有迪杰斯特拉算法等。

在步骤113,控制器将路由信息和超时时间T封装在路由报文中,通过蜂窝网络将路由报文发送给车辆节点A。

路由报文帧格式如图7所示,它包含路由序号、哈希码、报文优先级、超时时间以及路由信息。路由序号为控制器在云端生成的记录路由报文个数的自增变量,哈希码与请求报文的哈希码一致,报文优先级为根据请求类型得到的优先级,优先级越高,在传输过程中优先传输。

在步骤114,当前节点Xi接收到从控制器发送的路由报文后,当前节点Xi包含车辆节点A,将路由报文中的T和当前时刻tj封装在数据报文中,即将超时时间T、当前时刻tj等以及发送的数据存储在形式与数据报文一致的数据结构中。

在步骤115,当前节点Xi将路由信息也封装在数据报文中。

在步骤116,判断当前时间t与数据报文中记录的tj的差值,即该数据报文在传输过程中经过的时间,是否大于T与Ɛ的差值,若是,表示该数据报文在传输过程中已经花费了接近超时时间T的时间,那么执行步骤126,通过蜂窝网络将数据报文直接发送给控制器;否则,执行步骤117。

在步骤117,判断路由信息中当前节点Xi的下一跳节点Xi+1是否在当前节点Xi的邻居节点中,路由信息是控制器在接收到请求报文时生成的实时路由信息,但由于车联网的网络拓扑结构一直在进行较快地变化,可能在传输的过程中,由于网络拓扑结构的变化,当前节点Xi的下一跳节点与当前节点Xi的距离大于R。若是,则执行步骤118;否则,执行步骤121。

在步骤118,当前节点Xi与下一跳节点Xi+1通过短程无线通信技术建立连接,并向下一跳节点Xi+1传输数据报文。

在步骤119,判断节点Xi+1是否为目标节点B,若不是,节点Xi+1成为了当前节点Xi,当前节点Xi将从数据报文中删除上一个节点的路由信息,即只保留从当前节点Xi开始的路由信息,然后封装在数据报文中,执行步骤115;若是,则执行步骤120。

在步骤120,节点B接收到数据报文,流程结束。

在步骤121,当前节点Xi通过蜂窝网络向控制器发送请求报文,请求当前节点Xi到达目标节点B的路由信息;

由于网络拓扑结构已经发生改变,当前节点Xi已经无法连接路由信息中的下一跳节点Xi+1,即传输中断。

在步骤122,控制器根据请求类型和当前的网络状况来生成一个合适的超时时间T,超时时间代表这该请求的数据传输服务需要在超时时间T内得到满足。

在步骤123,控制器通过查询全局路由表,得到当前节点Xi达到目标节点B的路由信息。

在步骤124,控制器判断当前生成的路由信息与之前的路由信息是否一致,若是,表示当前无法找到一条新的替代路由,而原路由可能由于某些原因失效,所以只能通过蜂窝网络发送数据报文,执行步骤126,否则,控制器找到了一条不同于原路由信息的新路由信息,执行步骤125。

在步骤125,控制器将路由信息和超时时间T封装在路由报文中,通过蜂窝网络发送给当前节点Xi,前节点Xi继续步骤114。

在步骤126,当前节点Xi通过蜂窝网络将数据报文发送给控制器。

在步骤127,控制器通过蜂窝网络将数据报文发送至目标节点B。

在步骤128,目标节点B接收到数据报文,流程结束。

本发明解决了因车联网中车辆节点的移动性较高,网络的拓扑结构变化较快,使用Ad-hoc网络中的基于位置信息的路由方法所导致的节点在维护路由表时所需大量的计算资源等开销问题。

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