一种多跳车联网的实现方法与流程

文档序号:14324868阅读:227来源:国知局

本发明涉及一种实现方法,尤其涉及的是一种多跳车联网的实现方法。



背景技术:

近年来,很多研究工作致力于多跳车联网,以便使车辆驾驶人能够快速获取数据保证行使安全。随着车载网技术的发展,多跳车联网会成为未来提供服务的一种模式。

目前,多跳车联网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了数据通信性能。因此,如何降低多跳车联网的数据通信延迟和代价成为近年来研究的热点问题。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种多跳车联网的实现方法。

技术方案:本发明公开了一种多跳车联网的实现方法,所述车联网包括接入路由器、接入节点和车辆节点;每个车辆节点配置x个无线接口,每个接口使用不同的信道进行通信,每个接口由接口idi唯一标识,i取值1~x,每个信道由信道id唯一标识,接口id为i的接口使用的信道的信道id为i,x为大于1的正整数;接口id为i的接口简称为接口i;接入路由器配置一个上游有线接口和z个下游有线接口,z≥2x;接入节点配置一个上游有线接口和一个下游无线接口;接入路由器的上游有线接口与互联网骨干网相连,每个下游有线接口与一个接入节点的上游有线接口相连,每个下游有线接口由接口idj唯一标识,j取值1~z;互联网骨干网由核心路由器构成,核心路由器的每个接口与另一个核心路由器或者接入路由器相连;接入节点的下游无线接口采用一个固定的信道进行通信且该信道为车辆节点支持的信道;与一个接入路由器的z个下游接口相连的z个接入节点的信道集合包含车辆节点支持的x个信道;

一种数据由一个数据id唯一标识,一个数据包含s个数据块,s为大于1的正整数,每个数据块由数据块idh唯一标识,h取值1~s,一个服务器能够产生一种数据的一个以上的数据块;

接入路由器维护一个服务器表、一个缓存表以及一个请求表;一个服务器表项包含数据id域、数据块id集合域和服务器地址域;一个缓存表项包含数据id域、数据块id域、数据块域以及生命周期域;一个请求表项包含数据id域、数据块id域和消息域;

数据d1的数据id为did1;一个服务器产生数据d1的一个以上的数据块后,构建一个数据块id集合,该数据块id集合由产生的数据块的数据块id构成,然后该服务器执行下述发布操作:

步骤101:开始;

步骤102:服务器产生一个随机数q1,并广播一个发布消息,该发布消息的源地址为该服务器的地址,目的地址为广播地址,负载为数据id值did1、数据块id集合以及序列号q1;

步骤103:如果接入路由器从上游接口接收到该发布消息,则执行步骤107,否则执行步骤104;

步骤104:核心路由器接收到该发布消息后,如果它已经接收到具有相同序列号q1的发布消息,则执行步骤106,否则执行步骤105;

步骤105:核心路由器从除了接收到该发布消息的接口以外的所有接口转发该发布消息,执行步骤103;

步骤106:核心路由器丢弃该发布消息;

步骤107:接收到发布消息的接入路由器查看服务器表,如果存在一个服务器表项,该服务器表项的数据id域值和数据块id集合域值等于接收到的发布消息负载中的数据id和数据块id集合,且服务器地址域值等于接收到的发布消息的源地址,则执行步骤109,否则执行步骤108;

步骤108:接收到发布消息的接入路由器创建一个服务器表项,该服务器表项的数据id域值和数据块id集合域值等于接收到的发布消息负载中的数据id和数据块id集合,服务器地址域值等于接收到的发布消息的源地址;

步骤109:结束。

上说发布过程能够确保车辆节点快速获取数据。

本发明所述方法中,接入路由器、接入节点以及车辆节点通过地址实现数据通信,一个地址的长度为128比特;接入路由器的地址包含64比特的网络前缀域,(64-n)比特的预留域,以及n比特的设备id域构成,预留域值为0;接入节点以及车辆节点的地址包含64比特的网络前缀域,(64-n1-n)比特的坐标域,n1比特的接入节点id域以及n比特的设备id域构成;

接入路由器所有接口的网络前缀相同且预先设置,例如3efd:f:eeef:abcd::/64;所述车联网中的每个接入路由器配置一个上游接口和y个下游接口,y为大于1的自然数,接入路由器的上游接口的接口id为y+1;接入路由器启动后,为每个接口配置一个地址,该地址的网络前缀为预先设置的网络前缀,设备id为该接口的接口id;接入路由器为每个下游接口配置地址后,从该下游接口发送一个信标消息,该信标消息的源地址为该下游接口的地址;

一个接入节点的上游接口和下游接口分别配置一个地址;接入节点从上游接口接收到信标消息后,分别为上游接口和下游接口配置一个地址,在上游接口的地址中,网络前缀等于接收到的信标消息的源地址的网络前缀,地理坐标为0,接入节点id为接收到的信标消息的源地址的设备id,设备id为0;在下游接口的地址中,网络前缀等于接收到的信标消息的源地址的网络前缀,地理坐标为接入节点当前的地理坐标,设备id为0,接入节点id为接收到的信标消息的源地址的设备id;接入节点为下游节点配置地址后,通过下游接口定期发送信标消息;在该信标消息中,源地址为下游接口的地址,负载为参数limit,参数limit的初始值预先设置limit一般根据网络直径来确定,例如等于8;

车辆节点为每个接口配置地址之前,为每个接口配置一个临时地址,临时地址的网络前缀和接入节点id为0,地理坐标为车辆节点当前地理位置的坐标,设备id为大于0的随机数,然后车辆节点从该接口定期发送信标消息,该信标消息的源地址为该接口的临时地址,负载为空;如果一个车辆节点从接口f接收到一个信标消息后,执行下述操作:

步骤201:开始;

步骤202:车辆节点判断该信标消息的源地址是否为接入节点,如果是,则执行步骤203,否则执行步骤204;

步骤203:车辆节点将该信标消息负载中的参数limit递减1,如果该参数limit等于0,该车辆节点则停止转发该信标消息,否则从接口f转发该信标消息,执行步骤205;

步骤204:车辆节点判断信标消息的源地址的设备id是否等于自己x个接口的任一个临时地址中的设备id,如果等于,则执行步骤205,否则执行步骤206;

步骤205:车辆节点选择设备id等于接收到的信标消息的源地址的设备id的临时地址,然后选取一个随机数,该随机数不等于自己x个接口的任一个临时地址中的设备id,且不等于从x接口接收到的任何信标消息的源地址的设备id,然后将该临时地址的设备id更新为该随机数;

步骤206:结束。

本发明所述方法中,车辆节点维护一个接口表,一个接口表项包含接口id域,车辆节点地址域,接入节点地址域和生命周期域;接入路由器维护一个设备id集合来保存已经分配的设备id;

车辆节点启动后,通过x个接口侦听信标消息,如果车辆节点从接口f1接收到一个信标消息且该信标消息的源地址为接入节点,车辆节点则通过下述过程获取地址;

步骤301:开始;

步骤302:车辆节点查看接口表,如果存在一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于接收到的信标消息的源地址,则执行步骤303,否则执行步骤304;

步骤303:车辆节点选择接口id为f1且接入节点地址域值等于接收到的信标消息的源地址的接口表项,将该接口表项的生命周期设置为最大值,例如1s,执行步骤319;

步骤304:车辆节点查看接口表,如果存在一个接口表项,该接口表项的车辆节点地址域值的网络前缀等于接收到的信标消息的源地址的网络前缀,则执行步骤305,否则执行步骤306;

步骤305:车辆节点选择车辆节点地址域值的网络前缀等于接收到的信标消息的源地址的网络前缀的接口表项,然后创建一个地址,该地址的网络前缀和接入节点id等于接收到的信标消息的源地址的网络前缀和接入节点id,地理坐标为车辆节点当前的地理坐标,设备id为该接口表项的车辆节点地址域值的设备id;车辆节点创建一个接口表项,该接口表项的接口id域值为f1,接入节点地址域值等于接收到的信标消息的源地址,车辆节点地址域值等于构建的地址,执行步骤319;

步骤306:车辆节点创建一个序列号q,通过接口f1发送一个地址检测消息,该地址检测消息的源地址为接口f1的临时地址,目的地址为接收到的信标消息的源地址,负载为序列号q;

步骤307:如果车辆节点接收到该地址检测消息,则执行步骤308,否则执行步骤309;

步骤308:如果接收到地址检测消息的车辆节点在该地址检测消息的目的地址的地理坐标的一跳范围内,则直接将该地址检测消息转发给目的地址所标识的目的接入节点,否则将该地址检测消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤307;

步骤309:目的接入节点接收到地址检测消息后,将该地址检测消息通过上游接口转发给连接的接入路由器,接入路由器查看该地址检测消息的源地址的设备id是否在自己的设备id集合中;如果是,则执行步骤311,否则执行步骤310;

步骤310:接收到地址检测消息的接入路由器构建一个检测响应消息,该检测响应消息的源地址为接收到的地址检测消息的目的地址,该检测响应消息的目的地址为接收到的地址检测消息的源地址,负载为接收到的地址检测消息中的序列号q,接收到地址检测消息的接入路由器从接收到的地址检测消息的目的地址的接入节点id所标识的下游接口发送该检测响应消息,并将接收到的地址检测消息的源地址的设备id加入到自己的设备id集合中,执行步骤312;

步骤311:接收到地址检测消息的接入路由器选择一个随机数,该随机数不在自己的设备id集合中,然后构建一个检测响应消息,该检测响应消息的源地址为接收到的地址检测消息的目的地址,该检测响应消息的目的地址为接收到的地址检测消息的源地址,负载为选择的随机数和接收到的地址检测消息中的序列号q,接收到地址检测消息的接入路由器从接收到的地址检测消息的目的地址的接入节点id所标识的下游接口发送该检测响应消息,并将选择的随机数加入到自己的设备id集合中;

步骤312:接入节点接收到检测响应消息后,执行步骤313,否则执行步骤314;

步骤313:如果接收到检测响应消息地接入节点在该检测响应消息的目的地址的地理坐标的一跳范围内,则通过下游接口将该检测响应消息转发给目的地址所标识的目的车辆节点,否则通过下游接口将该检测响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤312;

步骤314:如果目的车辆节点接收到检测响应消息,则执行步骤316,否则执行步骤315;

步骤315:如果接收到检测响应消息的车辆节点在该检测响应消息的目的地址的地理坐标的一跳范围内,则直接将该检测响应消息转发给目的地址所标识的目的车辆节点,否则将该检测响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤312;

步骤316:检测响应消息地目的地址所标识的目的车辆节点通过接口f1接收到检测响应消息后,如果目的车辆节点发送的地址检测消息负载中的序列号等于检测响应消息中的序列号,则执行步骤317,否则执行步骤318;

步骤317:目的车辆节点检测响应消息,如果负载只包含序列号q,则创建一个地址,该地址的网络前缀和接入节点id等于接收到的检测响应消息的源地址的网络前缀和接入节点id,地理坐标等于目的车辆节点当前的地理坐标,设备id为接收到的检测响应消息的目的地址的设备id,然后创建一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于该检测响应消息的源地址,车辆节点地址域值等于构建的地址;否则,目的车辆节点创建一个地址,该地址的网络前缀和接入节点id等于该检测响应消息的源地址的网络前缀和接入节点id,地理坐标为目的车辆节点当前的地理坐标,设备id为该检测响应消息负载中的随机数,然后创建一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于该检测响应消息的源地址,车辆节点地址域值等于创建的地址,执行步骤319;

步骤318:接收到检测响应消息的车辆节点丢弃该检测响应消息;

步骤319:结束。

车辆节点通过上述过程可以快速配置地址从而获取数据。

本发明所述方法中,在数据d1由数据iddid1唯一标识,数据d1的数据块c1由数据块idcid1标识的条件下,车辆节点m1通过下述过程获取数据d1的数据块c1:

步骤401:开始;

步骤402:车辆节点m1查看接口表,选择符合条件1的接口表项,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址,目的地址为该接口表项的接入节点地址,负载为数据iddid1和数据块idcid1,然后车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息;

条件1:接口表项的接口id所标识的信道处于空闲状态,且该接口表项的接入节点地址的地理坐标距离车辆节点m1最近;

步骤403:如果车辆节点接收到该请求消息,则执行步骤404,否则执行步骤405;

步骤404:如果接收到请求消息的车辆节点在该请求消息的目的地址的地理坐标的一跳范围内,则直接将该请求消息转发给目的地址所标识的目的接入节点,否则将该请求消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤403;

步骤405:目的接入节点通过下游接口接收到请求消息后,将该请求消息通过上游接口转发给连接的接入路由器,接入路由器接收到请求消息后,查看缓存表,如果存在一个缓存表项,该缓存表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤406,否则执行步骤407;

步骤406:接收到请求消息的接入路由器选择数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id的缓存表项,将该缓存表项的生命周期设置为最大值,并从接收到的请求消息的源地址的接入节点id所标识的下游接口发送响应消息,在响应消息中,源地址为接收到的请求消息的目的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息中的数据id和数据块id以及缓存表项的数据块域值,执行步骤411;

步骤407:接收到请求消息的接入路由器查看请求表,如果存在一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤408,否则执行步骤409;

步骤408:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息,执行步骤410;

步骤409:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息;该接入路由器查看服务器表,随机选取一个服务器表项,该服务器表项的数据id等于接收到的请求消息中的数据id,数据块id集合包含接收到的请求消息中的数据块id,该接入路由器构建一个请求数据消息,该请求数据消息的源地址为自己上游接口的地址,目的地址为选取的服务器表项的服务器地址域值,负载为接收到的请求消息的数据id和数据块id;接入路由器从上游接口发送该请求数据消息,该请求数据消息通过互联网骨干网到达目的服务器;目的服务器接收到请求数据消息后,发送一个响应数据消息,该响应数据消息的源地址为接收到的请求数据消息的目的地址,该响应数据消息的目的地址为接收到的请求数据消息的源地址,该响应数据消息的负载为接收到的请求数据消息的数据id,数据块id以及该数据id和数据块id标识的数据块c1,该响应数据消息通过互联网骨干网到达该响应数据消息的目的地址标识的目的路由器;

步骤410:目的接入路由器接收到响应数据消息后,创建一个缓存表项,该缓存表项的数据id,数据块id以及数据块域值分别等于接收到的响应数据消息中的数据id,数据块id以及数据块,生命周期域值设置为最大值;该接入路由器查看请求表,选择所有数据id域值和数据块id域值分别等于接收到的响应数据消息中的数据id和数据块id的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:创建一个响应消息,该响应消息的源地址为该请求表项的消息域值的目的地址,该响应消息的目的地址为该请求表项的消息域值的源地址,负载为接收到的响应数据消息的负载,从构建的响应消息目的地址的接入节点id所标识的下游接口发送该响应消息,并从请求表中删除该请求表项;

步骤411:如果接入节点接收到该响应消息,则执行步骤412,否则执行步骤413;

步骤412:接入节点通过上游接口接收到响应消息后,如果该接入节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤411;

步骤413:如果目的车辆节点接收到响应消息,则执行步骤415,否则执行步骤414;

步骤414:如果接收到响应消息的车辆节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤411;

步骤415:目的车辆节点接收到响应消息后,保存响应消息中的数据块;

步骤416:结束。

车辆节点通过上述过程可以快速获取数据块。

本发明所述方法中,在车辆节点m1配置x个接口,数据d1由数据iddid1唯一标识,数据d1由u个数据块构成,每个数据块由数据块id标识的条件下,如果车辆节点m1需要获取数据d1的k个数据块,1<k≤u,则将k个数据块的数据块id构建成一个集合g并执行下述过程:

步骤501:开始;

步骤502:车辆节点m1设置一个变量k1和一个变量g1,变量k1的初始值为k,变量g1的初始值为集合g;

步骤503:如果变量k1大于车辆节点m1的接口表中的所有接口表项的总数,则执行步骤504,否则执行步骤505:

步骤504:车辆节点m1针对接口表中的每个接口表项执行下述操作:车辆节点m1从变量g1中随机选取一个数据块id,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址域值,目的地址为该接口表项的接入节点地址域值,负载为数据iddid1和选取的数据块id,车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息,从变量g1中删除选取的数据块id,将变量k1递减1;车辆节点m1针对接口表中的每个接口表项执行上述操作后,执行步骤503;

步骤505:如果变量k1小于车辆节点m1的接口表中的所有接口表项的总数且大于接口数x,则执行步骤506,否则执行步骤509;

步骤506:车辆节点m1设置一个变量k2,变量k2的初始值为1;

步骤507:车辆节点m1选择一个接口表项,该接口表项的接口id等于变量k2且接入节点地址域值的地理坐标距离车辆节点m最近,车辆节点m1从变量g1中随机选取一个数据块id,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址域值,目的地址为该接口表项的接入节点地址域值,负载为数据iddid1和选取的数据块id,车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息,从变量g1中删除选取的数据块id,将变量k1递减1;将变量k2的值递增1;

步骤508:如果变量k2大于x,则执行步骤503,否则执行步骤507;

步骤509:车辆节点m1从变量g1中随机选取一个数据块id,并选择一个符合条件1的接口表项,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址,目的地址为该接口表项的接入节点地址,负载为数据iddid1和数据块idcid1,然后从该接口表项的接口id所标识的接口发送该请求消息;从变量g1中删除选取的数据块id,将变量k1递减1;如果变量g1为空,则执行步骤510,否则执行步骤503;

步骤510:如果车辆节点接收到一个请求消息,则执行步骤511,否则执行步骤512;

步骤511:如果接收到请求消息的车辆节点在该请求消息的目的地址的地理坐标的一跳范围内,则直接将该请求消息转发给目的地址所标识的目的接入节点,否则将该请求消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤510;

步骤512:目的接入节点通过下游接口接收到请求消息后,将该请求消息通过上游接口转发给连接的接入路由器,接入路由器接收到请求消息后,查看缓存表,如果存在一个缓存表项,该缓存表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤513,否则执行步骤514;

步骤513:接收到请求消息的接入路由器选择数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id的缓存表项,将该缓存表项的生命周期设置为最大值,并从接收到的请求消息的源地址的接入节点id所标识的下游接口发送响应消息,在响应消息中,源地址为接收到的请求消息的目的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息中的数据id和数据块id以及所选择的缓存表项的数据块域值,执行步骤518;

步骤514:接收到请求消息的接入路由器查看请求表,如果存在一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤515,否则执行步骤516;

步骤515:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息,执行步骤517;

步骤516:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息;该接入路由器查看服务器表,随机选取一个服务器表项,该服务器表项的数据id等于接收到的请求消息中的数据id,数据块id集合包含接收到的请求消息中的数据块id,该接入路由器构建一个请求数据消息,该请求数据消息的源地址为自己上游接口的地址,目的地址为选取的服务器表项的服务器地址域值,负载为接收到的请求消息的数据id和数据块id;接入路由器从上游接口发送该请求数据消息,该请求数据消息通过互联网骨干网到达目的服务器;目的服务器接收到请求数据消息后,发送一个响应数据消息,该响应数据消息的源地址为接收到的请求数据消息的目的地址,该响应数据消息的目的地址为接收到的请求数据消息的源地址,该响应数据消息的负载为接收到的请求数据消息负载中的数据id,数据块id以及该数据id和数据块id标识的数据块,该响应数据消息通过互联网骨干网到达该响应数据消息的目的地址标识的目的路由器;

步骤517:目的接入路由器接收到响应数据消息后,创建一个缓存表项,该缓存表项的数据id,数据块id以及数据块域值分别等于接收到的响应数据消息中的数据id,数据块id以及数据块,生命周期域值设置为最大值;该接入路由器查看请求表,选择所有数据id域值和数据块id域值分别等于接收到的响应数据消息中的数据id和数据块id的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:创建一个响应消息,该响应消息的源地址为该请求表项的消息域值的目的地址,该响应消息的目的地址为该请求表项的消息域值的源地址,负载为接收到的响应数据消息的负载,从构建的响应消息目的地址的接入节点id所标识的下游接口发送该响应消息,并从请求表中删除该请求表项;

步骤518:如果接入节点接收到该响应消息,则执行步骤519,否则执行步骤520;

步骤519:接入节点通过上游接口接收到响应消息后,如果该接入节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤518;

步骤520:如果目的车辆节点接收到响应消息,则执行步骤522,否则执行步骤521;

步骤521:如果接收到响应消息的车辆节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤518;

步骤522:车辆节点m1接收到响应消息后,保存响应消息中的数据块;如果车辆节点m1接收到数据d1的k个数据块,则执行步骤523,否则执行步骤518;

步骤523:结束。

车辆节点通过上述过程可以快速获取数据块。

本发明所述方法中,如果车辆节点检测到一个接口表项的生命周期衰减为0,则执行下述切换操作;

步骤601:开始;

步骤602:车辆节点查看接口表,如果除了生命周期衰减为0的接口表项之外任何一个接口表项的车辆节点地址域值的网络前缀都不等于生命周期衰减为0的接口表项的车辆节点地址域值的网络前缀,则执行步骤603,否则执行步骤607;

步骤603:车辆节点通过生命周期衰减为0的接口表项的接口id所标识的接口发送一个切换消息,该切换消息的源地址为生命周期衰减为0的接口表项的车辆节点地址域值,目的地址为生命周期衰减为0的接口表项的接入节点地址域值,负载为该切换消息的源地址的设备id;车辆节点从接口表中删除生命周期衰减为0的接口表项;

步骤604:如果车辆节点接收到该切换消息,则执行步骤605,否则执行步骤606;

步骤605:如果接收到切换消息的车辆节点在该切换消息的目的地址的地理坐标的一跳范围内,则直接将该切换消息转发给目的地址所标识的目的接入节点,否则将该切换消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤604;

步骤606:目的接入节点接收到切换消息后,将该切换消息通过上游接口转发给连接的接入路由器,接入路由器接收到切换消息后,从自己的设备id集合中删除该切换消息负载中的设备id;

步骤607:结束。

车辆节点通过上述过程可以实现切换从而确保在移动过程中获取数据的正确性和连续性。

有益效果:本发明提供了一种多跳车联网实现方法,车辆节点通过本发明所提供的多跳车联网的数据传输实现方法能够从距离最近的数据提供者获取数据从而有效降低了获取数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的发布流程示意图。

图2为本发明所述获取临时地址流程示意图。

图3为本发明所述配置地址流程示意图。

图4为本发明所述获取数据块流程示意图。

图5为本发明所述获取数据流程示意图。

图6为本发明所述移动切换流程示意图。

具体实施方式:

本发明提供了一种多跳车联网实现方法,车辆节点通过本发明所提供的多跳车联网的数据传输实现方法能够从距离最近的数据提供者获取数据从而有效降低了获取数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。

图1为本发明所述的发布流程示意图。所述车联网包括接入路由器、接入节点和车辆节点构成;每个车辆节点配置x个无线接口,每个接口使用不同的信道进行通信,每个接口由接口idi唯一标识,i取值1~x,每个信道由信道id唯一标识,接口id为i的接口使用的信道的信道id为i,x为大于1的正整数;接口id为i的接口简称为接口i;接入路由器配置一个上游有线接口和z个下游有线接口,z≥2x;接入节点配置一个上游有线接口和一个下游无线接口;接入路由器的上游有线接口与互联网骨干网相连,每个下游有线接口与一个接入节点的上游有线接口相连,每个下游有线接口由接口idj唯一标识,j取值1~z;互联网骨干网由核心路由器构成,核心路由器的每个接口与另一个核心路由器或者接入路由器相连;接入节点的下游无线接口采用一个固定的信道进行通信且该信道为车辆节点支持的信道;与一个接入路由器的z个下游接口相连的z个接入节点的信道集合包含车辆节点支持的x个信道;

一种数据由一个数据id唯一标识,一个数据包含s个数据块,s为大于1的正整数,每个数据块由数据块idh唯一标识,h取值1~s,一个服务器能够产生一种数据的一个以上的数据块;

接入路由器维护一个服务器表、一个缓存表以及一个请求表;一个服务器表项包含数据id域、数据块id集合域和服务器地址域;一个缓存表项包含数据id域、数据块id域、数据块域以及生命周期域;一个请求表项包含数据id域、数据块id域和消息域;

数据d1的数据id为did1;一个服务器产生数据d1的一个以上的数据块后,构建一个数据块id集合,该数据块id集合由产生的数据块的数据块id构成,然后该服务器执行下述发布操作:

步骤101:开始;

步骤102:服务器产生一个随机数q1,并广播一个发布消息,该发布消息的源地址为该服务器的地址,目的地址为广播地址,负载为数据id值did1、数据块id集合以及序列号q1;

步骤103:如果接入路由器从上游接口接收到该发布消息,则执行步骤107,否则执行步骤104;

步骤104:核心路由器接收到该发布消息后,如果它已经接收到具有相同序列号q1的发布消息,则执行步骤106,否则执行步骤105;

步骤105:核心路由器从除了接收到该发布消息的接口以外的所有接口转发该发布消息,执行步骤103;

步骤106:核心路由器丢弃该发布消息;

步骤107:接收到发布消息的接入路由器查看服务器表,如果存在一个服务器表项,该服务器表项的数据id域值和数据块id集合域值等于接收到的发布消息负载中的数据id和数据块id集合,且服务器地址域值等于接收到的发布消息的源地址,则执行步骤109,否则执行步骤108;

步骤108:接收到发布消息的接入路由器创建一个服务器表项,该服务器表项的数据id域值和数据块id集合域值等于接收到的发布消息负载中的数据id和数据块id集合,服务器地址域值等于接收到的发布消息的源地址;

步骤109:结束。

图2为本发明所述获取临时地址流程示意图。接入路由器、接入节点以及车辆节点通过地址实现数据通信,一个地址的长度为128比特;接入路由器的地址包含64比特的网络前缀域,(64-n)比特的预留域,以及n比特的设备id域构成,预留域值为0;接入节点以及车辆节点的地址包含64比特的网络前缀域,(64-n1-n)比特的坐标域,n1比特的接入节点id域以及n比特的设备id域构成;

接入路由器所有接口的网络前缀相同且预先设置;所述车联网中的每个接入路由器配置一个上游接口和y个下游接口,y为大于1的自然数,接入路由器的上游接口的接口id为y+1;接入路由器启动后,为每个接口配置一个地址,该地址的网络前缀为预先设置的网络前缀,设备id为该接口的接口id;接入路由器为每个下游接口配置地址后,从该下游接口发送一个信标消息,该信标消息的源地址为该下游接口的地址;

一个接入节点的上游接口和下游接口分别配置一个地址;接入节点从上游接口接收到信标消息后,分别为上游接口和下游接口配置一个地址,在上游接口的地址中,网络前缀等于接收到的信标消息的源地址的网络前缀,地理坐标为0,接入节点id为接收到的信标消息的源地址的设备id,设备id为0;在下游接口的地址中,网络前缀等于接收到的信标消息的源地址的网络前缀,地理坐标为接入节点当前的地理坐标,设备id为0,接入节点id为接收到的信标消息的源地址的设备id;接入节点为下游节点配置地址后,通过下游接口定期发送信标消息;在该信标消息中,源地址为下游接口的地址,负载为参数limit,参数limit的初始值预先设置;

车辆节点为每个接口配置地址之前,为每个接口配置一个临时地址,临时地址的网络前缀和接入节点id为0,地理坐标为车辆节点当前地理位置的坐标,设备id为大于0的随机数,然后车辆节点从该接口定期发送信标消息,该信标消息的源地址为该接口的临时地址,负载为空;如果一个车辆节点从接口f接收到一个信标消息后,执行下述操作:

步骤201:开始;

步骤202:车辆节点判断该信标消息的源地址是否为接入节点,如果是,则执行步骤203,否则执行步骤204;

步骤203:车辆节点将该信标消息负载中的参数limit递减1,如果该参数limit等于0,该车辆节点则停止转发该信标消息,否则从接口f转发该信标消息,执行步骤205;

步骤204:车辆节点判断信标消息的源地址的设备id是否等于自己x个接口的任一个临时地址中的设备id,如果等于,则执行步骤205,否则执行步骤206;

步骤205:车辆节点选择设备id等于接收到的信标消息的源地址的设备id的临时地址,然后选取一个随机数,该随机数不等于自己x个接口的任一个临时地址中的设备id,且不等于从x接口接收到的任何信标消息的源地址的设备id,然后将该临时地址的设备id更新为该随机数;

步骤206结束。

图3为本发明所述配置地址流程示意图。车辆节点维护一个接口表,一个接口表项包含接口id域,车辆节点地址域,接入节点地址域和生命周期域;接入路由器维护一个设备id集合来保存已经分配的设备id;

车辆节点启动后,通过x个接口侦听信标消息,如果车辆节点从接口f1接收到一个信标消息且该信标消息的源地址为接入节点,车辆节点则通过下述过程获取地址;

步骤301:开始;

步骤302:车辆节点查看接口表,如果存在一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于接收到的信标消息的源地址,则执行步骤303,否则执行步骤304;

步骤303:车辆节点选择接口id为f1且接入节点地址域值等于接收到的信标消息的源地址的接口表项,将该接口表项的生命周期设置为最大值,执行步骤319;

步骤304:车辆节点查看接口表,如果存在一个接口表项,该接口表项的车辆节点地址域值的网络前缀等于接收到的信标消息的源地址的网络前缀,则执行步骤305,否则执行步骤306;

步骤305:车辆节点选择车辆节点地址域值的网络前缀等于接收到的信标消息的源地址的网络前缀的接口表项,然后创建一个地址,该地址的网络前缀和接入节点id等于接收到的信标消息的源地址的网络前缀和接入节点id,地理坐标为车辆节点当前的地理坐标,设备id为该接口表项的车辆节点地址域值的设备id;车辆节点创建一个接口表项,该接口表项的接口id域值为f1,接入节点地址域值等于接收到的信标消息的源地址,车辆节点地址域值等于构建的地址,执行步骤319;

步骤306:车辆节点创建一个序列号q,通过接口f1发送一个地址检测消息,该地址检测消息的源地址为接口f1的临时地址,目的地址为接收到的信标消息的源地址,负载为序列号q;

步骤307:如果车辆节点接收到该地址检测消息,则执行步骤308,否则执行步骤309;

步骤308:如果接收到地址检测消息的车辆节点在该地址检测消息的目的地址的地理坐标的一跳范围内,则直接将该地址检测消息转发给目的地址所标识的目的接入节点,否则将该地址检测消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤307;

步骤309:目的接入节点接收到地址检测消息后,将该地址检测消息通过上游接口转发给连接的接入路由器,接入路由器查看该地址检测消息的源地址的设备id是否在自己的设备id集合中;如果是,则执行步骤311,否则执行步骤310;

步骤310:接收到地址检测消息的接入路由器构建一个检测响应消息,该检测响应消息的源地址为接收到的地址检测消息的目的地址,该检测响应消息的目的地址为接收到的地址检测消息的源地址,负载为接收到的地址检测消息中的序列号q,接收到地址检测消息的接入路由器从接收到的地址检测消息的目的地址的接入节点id所标识的下游接口发送该检测响应消息,并将接收到的地址检测消息的源地址的设备id加入到自己的设备id集合中,执行步骤312;

步骤311:接收到地址检测消息的接入路由器选择一个随机数,该随机数不在自己的设备id集合中,然后构建一个检测响应消息,该检测响应消息的源地址为接收到的地址检测消息的目的地址,该检测响应消息的目的地址为接收到的地址检测消息的源地址,负载为选择的随机数和接收到的地址检测消息中的序列号q,接收到地址检测消息的接入路由器从接收到的地址检测消息的目的地址的接入节点id所标识的下游接口发送该检测响应消息,并将选择的随机数加入到自己的设备id集合中;

步骤312:接入节点接收到检测响应消息后,执行步骤313,否则执行步骤314;

步骤313:如果接收到检测响应消息地接入节点在该检测响应消息的目的地址的地理坐标的一跳范围内,则通过下游接口将该检测响应消息转发给目的地址所标识的目的车辆节点,否则通过下游接口将该检测响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤312;

步骤314:如果目的车辆节点接收到检测响应消息,则执行步骤316,否则执行步骤315;

步骤315:如果接收到检测响应消息的车辆节点在该检测响应消息的目的地址的地理坐标的一跳范围内,则直接将该检测响应消息转发给目的地址所标识的目的车辆节点,否则将该检测响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤312;

步骤316:检测响应消息地目的地址所标识的目的车辆节点通过接口f1接收到检测响应消息后,如果目的车辆节点发送的地址检测消息负载中的序列号等于检测响应消息中的序列号,则执行步骤317,否则执行步骤318;

步骤317:目的车辆节点检测响应消息,如果负载只包含序列号q,则创建一个地址,该地址的网络前缀和接入节点id等于接收到的检测响应消息的源地址的网络前缀和接入节点id,地理坐标等于目的车辆节点当前的地理坐标,设备id为接收到的检测响应消息的目的地址的设备id,然后创建一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于该检测响应消息的源地址,车辆节点地址域值等于构建的地址;否则,目的车辆节点创建一个地址,该地址的网络前缀和接入节点id等于该检测响应消息的源地址的网络前缀和接入节点id,地理坐标为目的车辆节点当前的地理坐标,设备id为该检测响应消息负载中的随机数,然后创建一个接口表项,该接口表项的接口id为f1,接入节点地址域值等于该检测响应消息的源地址,车辆节点地址域值等于创建的地址,执行步骤319;

步骤318:接收到检测响应消息的车辆节点丢弃该检测响应消息;

步骤319:结束。

图4为本发明所述获取数据块流程示意图。在数据d1由数据iddid1唯一标识,数据d1的数据块c1由数据块idcid1标识的条件下,车辆节点m1通过下述过程获取数据d1的数据块c1:

步骤401:开始;

步骤402:车辆节点m1查看接口表,选择符合条件1的接口表项,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址,目的地址为该接口表项的接入节点地址,负载为数据iddid1和数据块idcid1,然后车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息;

条件1:接口表项的接口id所标识的信道处于空闲状态,且该接口表项的接入节点地址的地理坐标距离车辆节点m1最近;

步骤403:如果车辆节点接收到该请求消息,则执行步骤404,否则执行步骤405;

步骤404:如果接收到请求消息的车辆节点在该请求消息的目的地址的地理坐标的一跳范围内,则直接将该请求消息转发给目的地址所标识的目的接入节点,否则将该请求消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤403;

步骤405:目的接入节点通过下游接口接收到请求消息后,将该请求消息通过上游接口转发给连接的接入路由器,接入路由器接收到请求消息后,查看缓存表,如果存在一个缓存表项,该缓存表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤406,否则执行步骤407;

步骤406:接收到请求消息的接入路由器选择数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id的缓存表项,将该缓存表项的生命周期设置为最大值,并从接收到的请求消息的源地址的接入节点id所标识的下游接口发送响应消息,在响应消息中,源地址为接收到的请求消息的目的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息中的数据id和数据块id以及缓存表项的数据块域值,执行步骤411;

步骤407:接收到请求消息的接入路由器查看请求表,如果存在一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤408,否则执行步骤409;

步骤408:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息,执行步骤410;

步骤409:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息;该接入路由器查看服务器表,随机选取一个服务器表项,该服务器表项的数据id等于接收到的请求消息中的数据id,数据块id集合包含接收到的请求消息中的数据块id,该接入路由器构建一个请求数据消息,该请求数据消息的源地址为自己上游接口的地址,目的地址为选取的服务器表项的服务器地址域值,负载为接收到的请求消息的数据id和数据块id;接入路由器从上游接口发送该请求数据消息,该请求数据消息通过互联网骨干网到达目的服务器;目的服务器接收到请求数据消息后,发送一个响应数据消息,该响应数据消息的源地址为接收到的请求数据消息的目的地址,该响应数据消息的目的地址为接收到的请求数据消息的源地址,该响应数据消息的负载为接收到的请求数据消息的数据id,数据块id以及该数据id和数据块id标识的数据块c1,该响应数据消息通过互联网骨干网到达该响应数据消息的目的地址标识的目的路由器;

步骤410:目的接入路由器接收到响应数据消息后,创建一个缓存表项,该缓存表项的数据id,数据块id以及数据块域值分别等于接收到的响应数据消息中的数据id,数据块id以及数据块,生命周期域值设置为最大值;该接入路由器查看请求表,选择所有数据id域值和数据块id域值分别等于接收到的响应数据消息中的数据id和数据块id的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:创建一个响应消息,该响应消息的源地址为该请求表项的消息域值的目的地址,该响应消息的目的地址为该请求表项的消息域值的源地址,负载为接收到的响应数据消息的负载,从构建的响应消息目的地址的接入节点id所标识的下游接口发送该响应消息,并从请求表中删除该请求表项;

步骤411:如果接入节点接收到该响应消息,则执行步骤412,否则执行步骤413;

步骤412:接入节点通过上游接口接收到响应消息后,如果该接入节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤411;

步骤413:如果目的车辆节点接收到响应消息,则执行步骤415,否则执行步骤414;

步骤414:如果接收到响应消息的车辆节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤411;

步骤415:目的车辆节点接收到响应消息后,保存响应消息中的数据块;

步骤416:结束。

图5为本发明所述获取数据流程示意图。在车辆节点m1配置x个接口,数据d1由数据iddid1唯一标识,数据d1由u个数据块构成,每个数据块由数据块id标识的条件下,如果车辆节点m1需要获取数据d1的k个数据块,1<k≤u,则将k个数据块的数据块id构建成一个集合g并执行下述过程:

步骤501:开始;

步骤502:车辆节点m1设置一个变量k1和一个变量g1,变量k1的初始值为k,变量g1的初始值为集合g;

步骤503:如果变量k1大于车辆节点m1的接口表中的所有接口表项的总数,则执行步骤504,否则执行步骤505:

步骤504:车辆节点m1针对接口表中的每个接口表项执行下述操作:车辆节点m1从变量g1中随机选取一个数据块id,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址域值,目的地址为该接口表项的接入节点地址域值,负载为数据iddid1和选取的数据块id,车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息,从变量g1中删除选取的数据块id,将变量k1递减1;车辆节点m1针对接口表中的每个接口表项执行上述操作后,执行步骤503;

步骤505:如果变量k1小于车辆节点m1的接口表中的所有接口表项的总数且大于接口数x,则执行步骤506,否则执行步骤509;

步骤506:车辆节点m1设置一个变量k2,变量k2的初始值为1;

步骤507:车辆节点m1选择一个接口表项,该接口表项的接口id等于变量k2且接入节点地址域值的地理坐标距离车辆节点m最近,车辆节点m1从变量g1中随机选取一个数据块id,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址域值,目的地址为该接口表项的接入节点地址域值,负载为数据iddid1和选取的数据块id,车辆节点m1从该接口表项的接口id所标识的接口发送该请求消息,从变量g1中删除选取的数据块id,将变量k1递减1;将变量k2的值递增1;

步骤508:如果变量k2大于x,则执行步骤503,否则执行步骤507;

步骤509:车辆节点m1从变量g1中随机选取一个数据块id,并选择一个符合条件1的接口表项,构建一个请求消息,该请求消息的源地址为该接口表项的车辆节点地址,目的地址为该接口表项的接入节点地址,负载为数据iddid1和数据块idcid1,然后从该接口表项的接口id所标识的接口发送该请求消息;从变量g1中删除选取的数据块id,将变量k1递减1;如果变量g1为空,则执行步骤510,否则执行步骤503;

步骤510:如果车辆节点接收到一个请求消息,则执行步骤511,否则执行步骤512;

步骤511:如果接收到请求消息的车辆节点在该请求消息的目的地址的地理坐标的一跳范围内,则直接将该请求消息转发给目的地址所标识的目的接入节点,否则将该请求消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤510;

步骤512:目的接入节点通过下游接口接收到请求消息后,将该请求消息通过上游接口转发给连接的接入路由器,接入路由器接收到请求消息后,查看缓存表,如果存在一个缓存表项,该缓存表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤513,否则执行步骤514;

步骤513:接收到请求消息的接入路由器选择数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id的缓存表项,将该缓存表项的生命周期设置为最大值,并从接收到的请求消息的源地址的接入节点id所标识的下游接口发送响应消息,在响应消息中,源地址为接收到的请求消息的目的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息中的数据id和数据块id以及所选择的缓存表项的数据块域值,执行步骤518;

步骤514:接收到请求消息的接入路由器查看请求表,如果存在一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,则执行步骤515,否则执行步骤516;

步骤515:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息,执行步骤517;

步骤516:接收到请求消息的接入路由器创建一个请求表项,该请求表项的数据id域值和数据块id域值分别等于接收到的请求消息负载中的数据id和数据块id,消息域值为接收到的请求消息;该接入路由器查看服务器表,随机选取一个服务器表项,该服务器表项的数据id等于接收到的请求消息中的数据id,数据块id集合包含接收到的请求消息中的数据块id,该接入路由器构建一个请求数据消息,该请求数据消息的源地址为自己上游接口的地址,目的地址为选取的服务器表项的服务器地址域值,负载为接收到的请求消息的数据id和数据块id;接入路由器从上游接口发送该请求数据消息,该请求数据消息通过互联网骨干网到达目的服务器;目的服务器接收到请求数据消息后,发送一个响应数据消息,该响应数据消息的源地址为接收到的请求数据消息的目的地址,该响应数据消息的目的地址为接收到的请求数据消息的源地址,该响应数据消息的负载为接收到的请求数据消息负载中的数据id,数据块id以及该数据id和数据块id标识的数据块,该响应数据消息通过互联网骨干网到达该响应数据消息的目的地址标识的目的路由器;

步骤517:目的接入路由器接收到响应数据消息后,创建一个缓存表项,该缓存表项的数据id,数据块id以及数据块域值分别等于接收到的响应数据消息中的数据id,数据块id以及数据块,生命周期域值设置为最大值;该接入路由器查看请求表,选择所有数据id域值和数据块id域值分别等于接收到的响应数据消息中的数据id和数据块id的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:创建一个响应消息,该响应消息的源地址为该请求表项的消息域值的目的地址,该响应消息的目的地址为该请求表项的消息域值的源地址,负载为接收到的响应数据消息的负载,从构建的响应消息目的地址的接入节点id所标识的下游接口发送该响应消息,并从请求表中删除该请求表项;

步骤518:如果接入节点接收到该响应消息,则执行步骤519,否则执行步骤520;

步骤519:接入节点通过上游接口接收到响应消息后,如果该接入节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤518;

步骤520:如果目的车辆节点接收到响应消息,则执行步骤522,否则执行步骤521;

步骤521:如果接收到响应消息的车辆节点在该响应消息的目的地址的地理坐标的一跳范围内,则直接将该响应消息转发给目的地址所标识的目的车辆节点,否则将该响应消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤518;

步骤522:车辆节点m1接收到响应消息后,保存响应消息中的数据块;如果车辆节点m1接收到数据d1的k个数据块,则执行步骤523,否则执行步骤518;

步骤523:结束。

图6为本发明所述移动切换流程示意图。如果车辆节点检测到一个接口表项的生命周期衰减为0,则执行下述切换操作;

步骤601:开始;

步骤602:车辆节点查看接口表,如果除了生命周期衰减为0的接口表项之外任何一个接口表项的车辆节点地址域值的网络前缀都不等于生命周期衰减为0的接口表项的车辆节点地址域值的网络前缀,则执行步骤603,否则执行步骤607;

步骤603:车辆节点通过生命周期衰减为0的接口表项的接口id所标识的接口发送一个切换消息,该切换消息的源地址为生命周期衰减为0的接口表项的车辆节点地址域值,目的地址为生命周期衰减为0的接口表项的接入节点地址域值,负载为该切换消息的源地址的设备id;车辆节点从接口表中删除生命周期衰减为0的接口表项;

步骤604:如果车辆节点接收到该切换消息,则执行步骤605,否则执行步骤606;

步骤605:如果接收到切换消息的车辆节点在该切换消息的目的地址的地理坐标的一跳范围内,则直接将该切换消息转发给目的地址所标识的目的接入节点,否则将该切换消息转发给距离目的地址的地理坐标最近的邻居车辆节点;执行步骤604;

步骤606:目的接入节点接收到切换消息后,将该切换消息通过上游接口转发给连接的接入路由器,接入路由器接收到切换消息后,从自己的设备id集合中删除该切换消息负载中的设备id;

步骤607:结束。

实施例1

基于表1的仿真参数,本实施例模拟了本发明中的一种多跳车联网实现方法,性能分析如下:当车辆节点速度增加时,车辆节点获取数据的延迟随之增加,车辆节点获取数据的平均延迟为300ms.

表1仿真参数

本发明提供了一种多跳车联网实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

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