专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种基于车载云的网络数据通信方法

一种基于车载云的网络数据通信方法

IPC分类号 : H04L29/08

申请号
CN201710196487.9
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2017-03-29
  • 公开号: CN107071010B
  • 公开日: 2017-08-18
  • 主分类号: H04L29/08
  • 专利权人: 常熟理工学院

专利摘要

本发明提供了一种基于车载云的网络数据通信方法,所述车载云建立在车载网之上,所述车载网包括接入节点和车辆节点两种节点;车辆节点通过距离自己最近的接入节点实现通信,一个接入节点以及通过该接入节点实现通信的所有车辆节点构成一个子网;一个车辆节点既能够作为数据的提供者,也能够作为数据的消费者。车辆节点通过本发明所提供的车载云实现方法能够从距离最近的云成员以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。

权利要求

1.一种基于车载云的网络数据通信方法,其特征在于,所述车载云建立在车载网之上,所述车载网包括接入节点和车辆节点两种节点;车辆节点通过距离自己最近的接入节点实现通信,一个接入节点以及通过该接入节点实现通信的所有车辆节点构成一个子网;一个车辆节点既能够作为数据的提供者,也能够作为数据的消费者;

一种类型的数据由一个数据名称来定义,一种数据类型的数据被划分为两个以上的数据块,每个数据块由一个数据块ID唯一标识;一个子网内能提供一种类型数据的所有车辆节点构建成一个簇,该簇由定义该类数据的数据名称唯一标识;

车辆节点使用数据地址获取数据,数据地址由数据名称和数据块ID集合构成;车辆节点或者接入节点由定位地址唯一标识,一个定位地址由定位横坐标,定位纵坐标和车辆节点ID构成,接入节点的定位地址的车辆节点ID为0;

车辆节点或者接入节点发送的消息格式由4个部分构成:源地址、目的地址、消息类型和负载;

消息类型如下表所示:

消息类型消息类型域值数据创建消息1数据创建响应消息2数据共享3注册消息4数据请求消息5数据响应消息6

在一个簇中,所有簇成员保存一个数据表,该数据表的表名称为该簇的簇名称;一个数据表表项由三个域构成,数据块ID域,数据块域和数据生命周期域;一个数据表中所有表项的数据生命周期都相同;如果一个数据表中的表项的数据生命周期衰减为0,则将该数据表项从该数据表中删除;如果数据表为空,则删除该数据表;

数据消费者采用数据索引表和数据请求表获取数据;数据索引表用于保存簇成员的信息,数据请求表用于实现数据请求的聚合;

数据索引表中,一个数据索引表项包括数据名称域、数据块ID集合域值、定位地址域值、数据生命周期和簇成员生命周期域;数据请求表中,一个数据请求表项包括数据地址域、定位地址域和接口域;

在数据C1由数据名称N1定义,数据C1由N个数据块构成,每个数据块由数据块ID ci标识,i取值1~N,接入节点AP1位于子网S1中的条件下;车辆节点V1的地理坐标为(x1,y1),车辆节点V1创建数据C1的过程包括如下步骤:

步骤101:开始;

步骤102:车辆节点V1创建一个数据地址和一个定位地址,数据地址中数据名称域值为N1,数据块ID集合有N个数据块ID ci构成;定位地址中的定位横坐标为x1,定位纵坐标为y1,车辆节点ID为车辆节点V1的车辆节点ID;车辆节点V1发送数据创建消息,该数据创建消息的源地址为构建的定位地址,目的地址为构建的数据地址,消息类型为1,负载为距离参数,其值为初始值;

步骤103:如果接收到数据创建消息的车辆节点位于子网S1中,则执行步骤105,否则执行步骤104;

步骤104:车辆节点丢弃该数据创建消息,执行步骤108;

步骤105:接收到数据创建消息的车辆节点将数据创建消息的距离参数递减1,如果距离参数值大于0,则转发该数据创建消息;

步骤106:如果接收到数据创建消息的车辆节点能够提供数据C1的部分数据块,则执行步骤107,否则执行步骤108;

步骤107:车辆节点构建数据创建响应消息,该数据创建响应消息的源地址为自己的定位地址,目的地址为数据创建消息中的源地址,消息类型域值为2,负载为能够提供的部分数据块,然后车辆节点将该数据创建响应消息发送到距离该消息的目的地址中的坐标距离最近的邻居节点;

步骤108:如果与车辆节点V1距离大于一跳的车辆节点接收到数据创建响应消息,则执行步骤109,否则执行步骤110;

步骤109:接收到数据创建响应消息的车辆节点将该数据创建响应消息转发给距离该数据创建响应消息的目的地址中的坐标距离最近的邻居节点,执行步骤108;

步骤110:如果与车辆节点V1距离一跳的车辆节点接收到数据创建响应消息,则执行步骤111,否则执行步骤112;

步骤111:接收到数据创建响应消息的车辆节点在一跳范围内广播该消息,执行步骤108;

步骤112:车辆节点V1判断所有接收到的数据创建响应消息中的数据块是否能构建成C1,如果能,则执行步骤114,否则执行步骤113;

步骤113:车辆节点V1将距离参数的初始值递增1,然后执行步骤102;

步骤114:车辆节点V1创建一个数据表,表名为N1,该数据表包括N个数据表项,每个数据表项中,数据块ID为ci,数据块域值为数据创建响应消息中的数据块域值,数据生命周期为预先设置的生命周期;N个数据表项的数据生命周期值都相同;车辆节点V1转换为簇首节点,对于每个返回数据创建响应消息的车辆节点,车辆节点V1发送一个数据共享消息,数据共享消息源地址为车辆节点V1的定位地址,目的地址为返回数据创建响应消息的车辆节点的定位地址,数据类型为3,负载为创建的数据表;

步骤115:车辆节点V1向接入节点AP1发送注册消息,该注册消息的源地址为车辆节点V1的定位地址,目的地址为接入节点AP1的定位地址,消息类型为4,负载为返回数据创建响应消息的所有车辆节点的定位地址,数据名称N1和数据生存时间;

步骤116:车辆节点收到数据共享消息后,变成簇成员同时保存数据共享消息中的数据表;接入节点AP1收到注册消息后,对于注册消息负载中的每个定位地址,接入节点AP1创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为ci,,定位地址域值为消息负载中的定位地址域值,数据生命周期域值为消息负载中数据生命周期域值,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔;

步骤117:接入节点AP1广播注册消息,该注册消息的源地址为接入节点AP1自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称N1,数据块ID集合ci数据生命周期值;

步骤118:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值为N1,数据块ID集合域值为注册消息负载中的数据块ID集合域值,数据生命周期域值为注册消息负载中的数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔;

步骤119:结束。

2.根据权利要求1所述的一种基于车载云的网络数据通信方法,其特征在于,在车辆节点V6是一个簇成员,车辆节点V6能提供数据C1中的部分数据块或者全部数据块,数据C1由名称地址N1定义的条件下,如果车辆节点V6从子网S1移动到子网S2,子网S2的接入节点为AP2,那么执行下述移动切换操作:

步骤201:开始;

步骤202:车辆节点V6向接入节点AP2发送注册消息,该注册消息的源地址为车辆节点V6的定位地址,目的地址为接入节点AP2的定位地址,消息类型为4,负载为数据名称N1、表名称为N1的数据表中所有表项的数据块ID域值集合以及数据生存时间;

步骤203:接入节点AP2收到注册消息后,创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为消息负载中的数据块ID集合域值,数据生命周期域值为消息负载中的数据生命周期域值,定位地址域值为注册消息的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔;

步骤204:判断接入节点AP2是否只有一个数据名称域值为N1的表项,如果是,执行步骤205,否则执行步骤207;

步骤205:接入节点AP2广播一个注册消息,该注册消息的源地址为自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称域值为N1的表项中的数据名称、数据块ID集合以及数据生命周期值,;

步骤206:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值、数据块ID集合域值和数据生命周期域值分别为注册消息负载中的数据名称域值、数据块ID集合域值和数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔;

步骤207:结束;

上述移动切换过程结束后,子网S2中的车辆节点能够直接从车辆节点V6获取数据C1的数据块;

车辆节点V6完成移动切换后,定期向接入节点AP2发送信标消息,该信标消息的源地址为车辆节点V6的定位地址,该定位地址中的地理横坐标和地理纵坐标为车辆节点V6当前的地理横坐标和地理纵坐标;接入节点AP2收到来自车辆节点V6的信标消息后,查找数据索引表中定位地址域值中的车辆节点ID等于信标消息中源地址的车辆节点ID的数据索引表项,然后接入节点AP2用信标消息中的源地址更新所述数据索引表项中的定位地址域值,同时将所述数据索引表项中的簇成员生命周期设置为最大值;如果车辆节点V6检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该数据索引表项,同时车辆节点V6不再向接入节点AP2定期发送信标消息;如果一个数据索引表项中数据生命周期域值或者簇成员生命周期域值过期,则将该数据索引表项从数据索引表中删除;

接入节点AP1广播负载为数据名称N1的注册消息后,定期向每个接入节点发送信标消息;其他接入节点收到来自接入节点AP1的信标消息后,查找数据索引表中定位地址域值等于信标消息中源地址的数据索引表项,然后其他接入节点将所述数据索引表项中的簇成员生命周期设置为最大值;如果接入节点AP1检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该表,同时不再向每个接入节点定期发送信标消息。

3.根据权利要求2所述的一种基于车载云的网络数据通信方法,其特征在于,车辆节点V6位于子网S1中,子网S1中的接入节点为AP1,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,该数据块的数据块ID集合为U,接入节点AP1查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的超集,那么车辆节点V6则根据下述过程获取数据:

步骤301:开始;

步骤302:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP1的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP1的定位地址中,横坐标和纵坐标为接入节点AP1的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP1的定位地址,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点;

步骤303:如果能提供数据C1的簇成员节点接收到数据请求消息,那么执行步骤304,否则执行步骤307;

步骤304:如果该簇成员节点能提供数据请求消息负载的数据地址中的数据块ID集合所定义的所有数据块,那么执行步骤305,否则执行步骤306;

步骤305:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为簇成员节点自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载的数据地址中的数据块ID集合中每一个元素的所有表项,然后执行步骤311;

步骤306:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址中的数据块ID集合中任一个元素的所有表项;从数据请求消息的数据地址的数据块ID集合中减去数据响应消息中所有数据表项中的数据块ID集合;将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤307:如果接入节点AP1接收到数据请求消息,那么执行步骤308,否则执行步骤310;

步骤308:接入节点AP1从数据索引表中选择满足下述两个条件的数据索引表项,对于每个选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点AP1发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该表项中的定位地址,负载为构建的数据地址;

条件1:数据名称域值为N1;

条件2:所述数据索引表项中的数据块ID集合的并集是数据块ID集合U的超集;

步骤309:目的簇成员节点收到数据请求消息后,返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址的数据块ID集合中每一个元素的所有表项,执行步骤311;

步骤310:车辆节点接收到数据请求消息后,将该数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤311:如果车辆节点V6收到数据响应消息,则执行步骤313,否则执行步骤312;

步骤312:如果车辆节点在距离数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤311,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤311;

步骤313:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1;车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤314:车辆节点V6执行步骤201~207实现移动切换;

步骤315:结束。

4.根据权利要求2所述的一种基于车载云的网络数据通信方法,其特征在于,车辆节点V6位于子网S3中,子网S3中的接入节点为AP3,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,所述数据块的数据块ID集合为U,接入节点AP3查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的子集,那么车辆节点V6则根据下述过程获取数据:

步骤401:开始;

步骤402:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP3的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP3的定位地址中,横坐标和纵坐标为接入节点AP3的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP3的定位自己,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离所在子网S3的接入节点AP3最近的邻居车辆节点;

步骤403:接入节点从自己的接口f接收到数据请求消息后,在数据请求表中创建一个数据请求表项,该数据请求表项的数据地址为数据请求消息负载中的数据地址,定位地址为数据请求消息的源地址,接口域值为f;

步骤404:如果接入节点在数据请求表中只有一项数据地址等于数据请求消息负载中的数据地址的数据请求表项,则执行步骤405,否则执行步骤409;

步骤405:如果接入节点在数据索引表中存在数据名称为N1且定位地址为车辆节点的定位地址,即定位地址的车辆节点ID不为0,那么执行步骤406,否则执行步骤408;

步骤406:接入节点从数据索引表中选择满足下述条件3和条件4的表项,对于选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该数据索引表项中的定位地址,负载为构建的数据地址;目的簇成员节点收到数据请求消息后,发送一个数据响应消息,该数据响应消息的源地址为数据请求消息中的数据地址,目的地址为接入节点的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中的数据地址中的数据块ID集合中每一个元素的表项,接入节点收到所有目的簇成员节点的数据响应消息后,构建一个数据响应消息,该数据响应消息的源地址为接收到的数据请求消息中的目的地址,负载为所接收到的数据响应消息中的所有负载的集合;

条件3:数据名称域值为N1且定位地址的车辆节点ID不为0;

条件4:所述数据索引表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的最大子集或者超集;

步骤407:如果接入节点选择的所有表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的超集,那么执行步骤409,否则执行步骤408;

步骤408:接入节点从数据请求消息负载中的数据地址的数据块ID集合中减去所选择的所有索引表项中的数据块ID集合的并集;接入节点从数据检索表中选择符合条件5和6的数据检索表项,将数据请求消息的目的地址更新为该数据检索表项的定位地址,然后转发数据请求消息,执行步骤403;

条件5:数据名称域值为N1且定位地址的车辆节点ID为0;

条件6:定位地址的横坐标和纵坐标距离最近;

步骤409:如果接入节点构建或者收到数据响应消息,则执行步骤410,否则执行步骤411;

步骤410:接入节点查看数据请求表,选择数据地址为数据响应消息源地址的数据请求表项,对于每个数据请求表项,进行如下操作:接入节点用该数据请求表项的定位地址更新数据响应消息的目的地址,从该数据请求表项的接口域转发该数据响应消息,如果数据响应消息负载中的数据块ID集合是数据响应消息的源地址中的数据块ID集合的超集,接入节点则删除该数据请求表项;返回执行步骤409;

步骤411:如果车辆节点收到数据响应消息且该车辆节点不位于子网S3内,那么执行步骤412,否则执行步骤413;

步骤412:车辆节点将该数据响应消息转发到与所在子网的接入节点距离最近的邻居车辆节点或者接入节点,执行步骤409;

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

步骤414:如果接收到数据响应消息的车辆节点在数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤409,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤409;

步骤415:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1,车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤416:车辆节点V6执行步骤201~207实现移动切换;

步骤417:结束。

说明书

技术领域

本发明涉及一种数据通信方法,尤其涉及的是一种基于车载云的网络数据通信方法。

背景技术

车载云是建立在车载网之上且能提供本地服务的一种服务模式。近年来,很多研究工作致力于车载云,以便使车辆驾驶人能够快速获取网络服务。随着车载网技术的发展,车载云会成为未来提供服务的一种模式。

目前,车载云的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低车载云提供服务的延迟和代价成为近年来研究的热点问题。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于车载云的网络数据通信方法。本发明通过单播取代广播的方式来实现车载云,从而降低车载云提供服务的延迟和代价,从而有效提高网络服务性能。

技术方案:本发明公开了一种基于车载云的数据通信方法,所述车载云建立在车载网之上,所述车载网包括接入节点和车辆节点两种节点;车辆节点通过距离自己最近的接入节点实现通信,一个接入节点以及通过该接入节点实现通信的所有车辆节点构成一个子网;一个车辆节点既能够作为数据的提供者,也能够作为数据的消费者;

一种类型的数据由一个数据名称来定义,一种数据类型的数据被划分为两个以上的数据块,每个数据块由一个数据块ID唯一标识;一个子网内能提供一种类型数据的所有车辆节点构建成一个簇,该簇由定义该类数据的数据名称唯一标识;

车辆节点使用数据地址获取数据,数据地址由数据名称和数据块ID集合构成;车辆节点或者接入节点由定位地址唯一标识,一个定位地址由定位横坐标,定位纵坐标和车辆节点ID构成,接入节点的定位地址的车辆节点ID为0,车辆节点的车辆节点ID可以是其硬件ID,例如MAC地址;

车辆节点或者接入节点发送的消息格式由4个部分构成:源地址、目的地址、消息类型和负载;

消息类型如下表所示:

消息类型消息类型域值数据创建消息1数据创建响应消息2数据共享3注册消息4数据请求消息5数据响应消息6

在一个簇中,所有簇成员保存一个数据表,该数据表的表名称为该簇的簇名称;一个数据表表项由三个域构成,数据块ID域,数据块域和数据生命周期域;一个数据表中所有表项的数据生命周期都相同;如果一个数据表中的表项的数据生命周期衰减为0,则将该数据表项从该数据表中删除;如果数据表为空,则删除该数据表;

数据消费者采用数据索引表和数据请求表获取数据;数据索引表用于保存簇成员的信息,数据请求表用于实现数据请求的聚合;

数据索引表中,一个数据索引表项包括数据名称域、数据块ID集合域值、定位地址域值、数据生命周期和簇成员生命周期域;数据请求表中,一个数据请求表项包括数据地址域、定位地址域和接口域;

在数据C1由数据名称N1定义,数据C1由N个数据块构成,每个数据块由数据块ID ci标识,i取值1~N,接入节点AP1位于子网S1中的条件下;车辆节点V1的地理坐标为(x1,y1),车辆节点V1创建数据C1的过程包括如下步骤:

步骤101:开始;

步骤102:车辆节点V1创建一个数据地址和一个定位地址,数据地址中数据名称域值为N1,数据块ID集合有N个数据块ID ci构成;定位地址中的定位横坐标为x1,定位纵坐标为y1,车辆节点ID为车辆节点V1的车辆节点ID;车辆节点V1发送数据创建消息,该数据创建消息的源地址为构建的定位地址,目的地址为构建的数据地址,消息类型为1,负载为距离参数,其值为初始值;

步骤103:如果接收到数据创建消息的车辆节点位于子网S1中,则执行步骤105,否则执行步骤104;

步骤104:车辆节点丢弃该数据创建消息,执行步骤108;

步骤105:接收到数据创建消息的车辆节点将数据创建消息的距离参数递减1,如果距离参数值大于0,则转发该数据创建消息;

步骤106:如果接收到数据创建消息的车辆节点能够提供数据C1的部分数据块,则执行步骤107,否则执行步骤108;

步骤107:车辆节点构建数据创建响应消息,该数据创建响应消息的源地址为自己的定位地址,目的地址为数据创建消息中的源地址,消息类型域值为2,负载为能够提供的部分数据块,然后车辆节点将该数据创建响应消息发送到距离该消息的目的地址中的坐标距离最近的邻居节点;

步骤108:如果与车辆节点V1距离大于一跳的车辆节点接收到数据创建响应消息,则执行步骤109,否则执行步骤110;

步骤109:接收到数据创建响应消息的车辆节点将该数据创建响应消息转发给距离该数据创建响应消息的目的地址中的坐标距离最近的邻居节点,执行步骤108;

步骤110:如果与车辆节点V1距离一跳的车辆节点接收到数据创建响应消息,则执行步骤111,否则执行步骤112;

步骤111:接收到数据创建响应消息的车辆节点在一跳范围内广播该消息,执行步骤108;

步骤112:车辆节点V1判断所有接收到的数据创建响应消息中的数据块是否能构建成C1,如果能,则执行步骤114,否则执行步骤113;

步骤113:车辆节点V1将距离参数的初始值递增1,然后执行步骤102;

步骤114:车辆节点V1创建一个数据表,表名为N1,该数据表包括N个数据表项,每个数据表项中,数据块ID为ci,数据块域值为数据创建响应消息中的数据块域值,数据生命周期为预先设置的生命周期,例如100min;N个数据表项的数据生命周期值都相同;车辆节点V1转换为簇首节点,对于每个返回数据创建响应消息的车辆节点,车辆节点V1发送一个数据共享消息,数据共享消息源地址为车辆节点V1的定位地址,目的地址为返回数据创建响应消息的车辆节点的定位地址,数据类型为3,负载为创建的数据表;

步骤115:车辆节点V1向接入节点AP1发送注册消息,该注册消息的源地址为车辆节点V1的定位地址,目的地址为接入节点AP1的定位地址,消息类型为4,负载为返回数据创建响应消息的所有车辆节点的定位地址,数据名称N1和数据生存时间;

步骤116:车辆节点收到数据共享消息后,变成簇成员同时保存数据共享消息中的数据表;接入节点AP1收到注册消息后,对于注册消息负载中的每个定位地址,接入节点AP1创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为ci,,定位地址域值为消息负载中的定位地址域值,数据生命周期域值为消息负载中数据生命周期域值,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤117:接入节点AP1广播注册消息,该注册消息的源地址为接入节点AP1自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称N1,数据块ID集合ci数据生命周期值;

步骤118:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值为N1,数据块ID集合域值为注册消息负载中的数据块ID集合域值,数据生命周期域值为注册消息负载中的数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤119:结束。

上述算法可以快速创建数据从而车辆节点能够快速获取所需数据。

本发明所述方法中,在车辆节点V6是一个簇成员,车辆节点V6能提供数据C1中的部分数据块或者全部数据块,数据C1由名称地址N1定义的条件下,如果车辆节点V6从子网S1移动到子网S2,子网S2的接入节点为AP2,那么执行下述移动切换操作:

步骤201:开始;

步骤202:车辆节点V6向接入节点AP2发送注册消息,该注册消息的源地址为车辆节点V6的定位地址,目的地址为接入节点AP2的定位地址,消息类型为4,负载为数据名称N1、表名称为N1的数据表中所有表项的数据块ID域值集合以及数据生存时间;

步骤203:接入节点AP2收到注册消息后,创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为消息负载中的数据块ID集合域值,数据生命周期域值为消息负载中的数据生命周期域值,定位地址域值为注册消息的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤204:判断接入节点AP2是否只有一个数据名称域值为N1的表项,如果是,执行步骤205,否则执行步骤207;

步骤205:接入节点AP2广播一个注册消息,该注册消息的源地址为自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称域值为N1的表项中的数据名称、数据块ID集合以及数据生命周期值,;

步骤206:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值、数据块ID集合域值和数据生命周期域值分别为注册消息负载中的数据名称域值、数据块ID集合域值和数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤207:结束;

上述移动切换过程结束后,子网S2中的车辆节点能够直接从车辆节点V6获取数据C1的数据块;

车辆节点V6完成移动切换后,定期向接入节点AP2发送信标消息,该信标消息的源地址为车辆节点V6的定位地址,该定位地址中的地理横坐标和地理纵坐标为车辆节点V6当前的地理横坐标和地理纵坐标;接入节点AP2收到来自车辆节点V6的信标消息后,查找数据索引表中定位地址域值中的车辆节点ID等于信标消息中源地址的车辆节点ID的数据索引表项,然后接入节点AP2用信标消息中的源地址更新所述数据索引表项中的定位地址域值,同时将所述数据索引表项中的簇成员生命周期设置为最大值;如果车辆节点V6检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该数据索引表项,同时车辆节点V6不再向接入节点AP2定期发送信标消息;如果一个数据索引表项中数据生命周期域值或者簇成员生命周期域值过期,则将该数据索引表项从数据索引表中删除;

接入节点AP1广播负载为数据名称N1的注册消息后,定期向每个接入节点发送信标消息;其他接入节点收到来自接入节点AP1的信标消息后,查找数据索引表中定位地址域值等于信标消息中源地址的数据索引表项,然后其他接入节点将所述数据索引表项中的簇成员生命周期设置为最大值;如果接入节点AP1检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该表,同时不再向每个接入节点定期发送信标消息。

上述算法可以快速实现移动切换从而确保车辆节点在移动过程中的通信正确性。

本发明所述方法中,车辆节点V6位于子网S1中,子网S1中的接入节点为AP1,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,该数据块的数据块ID集合为U,接入节点AP1查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的超集,那么车辆节点V6则根据下述过程获取数据:

步骤301:开始;

步骤302:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP1的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP1的定位地址中,横坐标和纵坐标为接入节点AP1的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP1的定位地址,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点;

步骤303:如果能提供数据C1的簇成员节点接收到数据请求消息,那么执行步骤304,否则执行步骤307;

步骤304:如果该簇成员节点能提供数据请求消息负载的数据地址中的数据块ID集合所定义的所有数据块,那么执行步骤305,否则执行步骤306;

步骤305:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为簇成员节点自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载的数据地址中的数据块ID集合中每一个元素的所有表项,然后执行步骤311;

步骤306:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址中的数据块ID集合中任一个元素的所有表项;从数据请求消息的数据地址的数据块ID集合中减去数据响应消息中所有数据表项中的数据块ID集合;将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤307:如果接入节点AP1接收到数据请求消息,那么执行步骤308,否则执行步骤310;

步骤308:接入节点AP1从数据索引表中选择满足下述两个条件的数据索引表项,对于每个选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点AP1发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该表项中的定位地址,负载为构建的数据地址;

条件1:数据名称域值为N1;

条件2:所述数据索引表项中的数据块ID集合的并集是数据块ID集合U的超集;

步骤309:目的簇成员节点收到数据请求消息后,返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址的数据块ID集合中每一个元素的所有表项,执行步骤311;

步骤310:车辆节点接收到数据请求消息后,将该数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤311:如果车辆节点V6收到数据响应消息,则执行步骤313,否则执行步骤312;

步骤312:如果车辆节点在距离数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤311,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤311;

步骤313:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1;车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤314:车辆节点V6执行步骤201~207实现移动切换;

步骤315:结束。

上述算法能够确保车辆节点快速获取所需数据,提高了数据服务质量。

本发明所述方法中,车辆节点V6位于子网S3中,子网S3中的接入节点为AP3,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,所述数据块的数据块ID集合为U,接入节点AP3查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的子集,那么车辆节点V6则根据下述过程获取数据:

步骤401:开始;

步骤402:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP3的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP3的定位地址中,横坐标和纵坐标为接入节点AP3的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP3的定位自己,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离所在子网S3的接入节点AP3最近的邻居车辆节点;

步骤403:接入节点从自己的接口f接收到数据请求消息后,在数据请求表中创建一个数据请求表项,该数据请求表项的数据地址为数据请求消息负载中的数据地址,定位地址为数据请求消息的源地址,接口域值为f;

步骤404:如果接入节点在数据请求表中只有一项数据地址等于数据请求消息负载中的数据地址的数据请求表项,则执行步骤405,否则执行步骤409;

步骤405:如果接入节点在数据索引表中存在数据名称为N1且定位地址为车辆节点的定位地址,即定位地址的车辆节点ID不为0,那么执行步骤406,否则执行步骤408;

步骤406:接入节点从数据索引表中选择满足下述条件3和条件4的表项,对于选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该数据索引表项中的定位地址,负载为构建的数据地址;目的簇成员节点收到数据请求消息后,发送一个数据响应消息,该数据响应消息的源地址为数据请求消息中的数据地址,目的地址为接入节点的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中的数据地址中的数据块ID集合中每一个元素的表项,接入节点收到所有目的簇成员节点的数据响应消息后,构建一个数据响应消息,该数据响应消息的源地址为接收到的数据请求消息中的目的地址,负载为所接收到的数据响应消息中的所有负载的集合;

条件3:数据名称域值为N1且定位地址的车辆节点ID不为0;

条件4:所述数据索引表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的最大子集或者超集;

步骤407:如果接入节点选择的所有表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的超集,那么执行步骤409,否则执行步骤408;

步骤408:接入节点从数据请求消息负载中的数据地址的数据块ID集合中减去所选择的所有索引表项中的数据块ID集合的并集;接入节点从数据检索表中选择符合条件5和6的数据检索表项,将数据请求消息的目的地址更新为该数据检索表项的定位地址,然后转发数据请求消息,执行步骤403;

条件5:数据名称域值为N1且定位地址的车辆节点ID为0;

条件6:定位地址的横坐标和纵坐标距离最近;

步骤409:如果接入节点构建或者收到数据响应消息,则执行步骤410,否则执行步骤411;

步骤410:接入节点查看数据请求表,选择数据地址为数据响应消息源地址的数据请求表项,对于每个数据请求表项,进行如下操作:接入节点用该数据请求表项的定位地址更新数据响应消息的目的地址,从该数据请求表项的接口域转发该数据响应消息,如果数据响应消息负载中的数据块ID集合是数据响应消息的源地址中的数据块ID集合的超集,接入节点则删除该数据请求表项;返回执行步骤409;

步骤411:如果车辆节点收到数据响应消息且该车辆节点不位于子网S3内,那么执行步骤412,否则执行步骤413;

步骤412:车辆节点将该数据响应消息转发到与所在子网的接入节点距离最近的邻居车辆节点或者接入节点,执行步骤409;

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

步骤414:如果接收到数据响应消息的车辆节点在数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤409,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤409;

步骤415:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1,车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤416:车辆节点V6执行步骤201~207实现移动切换;

步骤417:结束。

上述算法能够确保车辆节点快速获取所需数据,提高了数据服务质量。

有益效果:本发明提供了一种基于车载云的网络数据通信方法,车辆节点通过本发明所提供的车载云实现方法能够从距离最近的云成员以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。

附图说明

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

图1为本发明所述的数据创建流程示意图。

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

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

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

具体实施方式:

本发明提供了一种基于车载云的网络数据通信方法,车辆节点通过本发明所提供的车载云实现方法能够从距离最近的云成员以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。

图1为本发明所述的数据创建流程示意图。所述车载云建立在车载网之上,所述车载网包括接入节点和车辆节点两种节点;车辆节点通过距离自己最近的接入节点实现通信,一个接入节点以及通过该接入节点实现通信的所有车辆节点构成一个子网;一个车辆节点既能够作为数据的提供者,也能够作为数据的消费者;

一种类型的数据由一个数据名称来定义,一种数据类型的数据被划分为两个以上的数据块,每个数据块由一个数据块ID唯一标识;一个子网内能提供一种类型数据的所有车辆节点构建成一个簇,该簇由定义该类数据的数据名称唯一标识;

车辆节点使用数据地址获取数据,数据地址由数据名称和数据块ID集合构成;车辆节点或者接入节点由定位地址唯一标识,一个定位地址由定位横坐标,定位纵坐标和车辆节点ID构成,接入节点的定位地址的车辆节点ID为0,车辆节点的车辆节点ID可以是其硬件ID,例如MAC地址;

车辆节点或者接入节点发送的消息格式由4个部分构成:源地址、目的地址、消息类型和负载;

消息类型如下表所示:

在一个簇中,所有簇成员保存一个数据表,该数据表的表名称为该簇的簇名称;一个数据表表项由三个域构成,数据块ID域,数据块域和数据生命周期域;一个数据表中所有表项的数据生命周期都相同;如果一个数据表中的表项的数据生命周期衰减为0,则将该数据表项从该数据表中删除;如果数据表为空,则删除该数据表;

数据消费者采用数据索引表和数据请求表获取数据;数据索引表用于保存簇成员的信息,数据请求表用于实现数据请求的聚合;

数据索引表中,一个数据索引表项包括数据名称域、数据块ID集合域值、定位地址域值、数据生命周期和簇成员生命周期域;数据请求表中,一个数据请求表项包括数据地址域、定位地址域和接口域;

在数据C1由数据名称N1定义,数据C1由N个数据块构成,每个数据块由数据块ID ci标识,i取值1~N,接入节点AP1位于子网S1中的条件下;车辆节点V1的地理坐标为(x1,y1),车辆节点V1创建数据C1的过程包括如下步骤:

步骤101:开始;

步骤102:车辆节点V1创建一个数据地址和一个定位地址,数据地址中数据名称域值为N1,数据块ID集合有N个数据块ID ci构成;定位地址中的定位横坐标为x1,定位纵坐标为y1,车辆节点ID为车辆节点V1的车辆节点ID;车辆节点V1发送数据创建消息,该数据创建消息的源地址为构建的定位地址,目的地址为构建的数据地址,消息类型为1,负载为距离参数,其值为初始值;

步骤103:如果接收到数据创建消息的车辆节点位于子网S1中,则执行步骤105,否则执行步骤104;

步骤104:车辆节点丢弃该数据创建消息,执行步骤108;

步骤105:接收到数据创建消息的车辆节点将数据创建消息的距离参数递减1,如果距离参数值大于0,则转发该数据创建消息;

步骤106:如果接收到数据创建消息的车辆节点能够提供数据C1的部分数据块,则执行步骤107,否则执行步骤108;

步骤107:车辆节点构建数据创建响应消息,该数据创建响应消息的源地址为自己的定位地址,目的地址为数据创建消息中的源地址,消息类型域值为2,负载为能够提供的部分数据块,然后车辆节点将该数据创建响应消息发送到距离该消息的目的地址中的坐标距离最近的邻居节点;

步骤108:如果与车辆节点V1距离大于一跳的车辆节点接收到数据创建响应消息,则执行步骤109,否则执行步骤110;

步骤109:接收到数据创建响应消息的车辆节点将该数据创建响应消息转发给距离该数据创建响应消息的目的地址中的坐标距离最近的邻居节点,执行步骤108;

步骤110:如果与车辆节点V1距离一跳的车辆节点接收到数据创建响应消息,则执行步骤111,否则执行步骤112;

步骤111:接收到数据创建响应消息的车辆节点在一跳范围内广播该消息,执行步骤108;

步骤112:车辆节点V1判断所有接收到的数据创建响应消息中的数据块是否能构建成C1,如果能,则执行步骤114,否则执行步骤113;

步骤113:车辆节点V1将距离参数的初始值递增1,然后执行步骤102;

步骤114:车辆节点V1创建一个数据表,表名为N1,该数据表包括N个数据表项,每个数据表项中,数据块ID为ci,数据块域值为数据创建响应消息中的数据块域值,数据生命周期为预先设置的生命周期,例如100min;N个数据表项的数据生命周期值都相同;车辆节点V1转换为簇首节点,对于每个返回数据创建响应消息的车辆节点,车辆节点V1发送一个数据共享消息,数据共享消息源地址为车辆节点V1的定位地址,目的地址为返回数据创建响应消息的车辆节点的定位地址,数据类型为3,负载为创建的数据表;

步骤115:车辆节点V1向接入节点AP1发送注册消息,该注册消息的源地址为车辆节点V1的定位地址,目的地址为接入节点AP1的定位地址,消息类型为4,负载为返回数据创建响应消息的所有车辆节点的定位地址,数据名称N1和数据生存时间;

步骤116:车辆节点收到数据共享消息后,变成簇成员同时保存数据共享消息中的数据表;接入节点AP1收到注册消息后,对于注册消息负载中的每个定位地址,接入节点AP1创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为ci,,定位地址域值为消息负载中的定位地址域值,数据生命周期域值为消息负载中数据生命周期域值,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤117:接入节点AP1广播注册消息,该注册消息的源地址为接入节点AP1自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称N1,数据块ID集合ci数据生命周期值;

步骤118:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值为N1,数据块ID集合域值为注册消息负载中的数据块ID集合域值,数据生命周期域值为注册消息负载中的数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤119:结束。

上述算法可以快速创建数据从而车辆节点能够快速获取所需数据。

图2为本发明所述的移动切换流程示意图。在车辆节点V6是一个簇成员,车辆节点V6能提供数据C1中的部分数据块或者全部数据块,数据C1由名称地址N1定义的条件下,如果车辆节点V6从子网S1移动到子网S2,子网S2的接入节点为AP2,那么执行下述移动切换操作:

步骤201:开始;

步骤202:车辆节点V6向接入节点AP2发送注册消息,该注册消息的源地址为车辆节点V6的定位地址,目的地址为接入节点AP2的定位地址,消息类型为4,负载为数据名称N1、表名称为N1的数据表中所有表项的数据块ID域值集合以及数据生存时间;

步骤203:接入节点AP2收到注册消息后,创建一个数据索引表项,该数据索引表项的数据名称域值为N1,数据块ID集合为消息负载中的数据块ID集合域值,数据生命周期域值为消息负载中的数据生命周期域值,定位地址域值为注册消息的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤204:判断接入节点AP2是否只有一个数据名称域值为N1的表项,如果是,执行步骤205,否则执行步骤207;

步骤205:接入节点AP2广播一个注册消息,该注册消息的源地址为自己的定位地址,目的地址为广播地址,即定位地址中的横坐标、纵坐标和车辆节点ID的比特值均为1,消息类型为4,负载为数据名称域值为N1的表项中的数据名称、数据块ID集合以及数据生命周期值,;

步骤206:车辆节点收到注册消息后,丢弃该注册消息,接入节点收到该注册消息后,创建一个数据检索表项,该数据检索表项的数据名称域值、数据块ID集合域值和数据生命周期域值分别为注册消息负载中的数据名称域值、数据块ID集合域值和数据生命周期域值,定位地址域值为注册消息中的源地址,簇成员生命周期域值设置为最大初始值,该初始值大于两个信标帧的时间间隔,例如200ms;

步骤207:结束;

上述移动切换过程结束后,子网S2中的车辆节点能够直接从车辆节点V6获取数据C1的数据块;

车辆节点V6完成移动切换后,定期向接入节点AP2发送信标消息,该信标消息的源地址为车辆节点V6的定位地址,该定位地址中的地理横坐标和地理纵坐标为车辆节点V6当前的地理横坐标和地理纵坐标;接入节点AP2收到来自车辆节点V6的信标消息后,查找数据索引表中定位地址域值中的车辆节点ID等于信标消息中源地址的车辆节点ID的数据索引表项,然后接入节点AP2用信标消息中的源地址更新所述数据索引表项中的定位地址域值,同时将所述数据索引表项中的簇成员生命周期设置为最大值;如果车辆节点V6检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该数据索引表项,同时车辆节点V6不再向接入节点AP2定期发送信标消息;如果一个数据索引表项中数据生命周期域值或者簇成员生命周期域值过期,则将该数据索引表项从数据索引表中删除;

接入节点AP1广播负载为数据名称N1的注册消息后,定期向每个接入节点发送信标消息;其他接入节点收到来自接入节点AP1的信标消息后,查找数据索引表中定位地址域值等于信标消息中源地址的数据索引表项,然后其他接入节点将所述数据索引表项中的簇成员生命周期设置为最大值;如果接入节点AP1检测到表名称为N1的数据索引表项中的数据生命周期到期,则删除该表,同时不再向每个接入节点定期发送信标消息。

上述算法可以快速实现移动切换从而确保车辆节点在移动过程中的通信正确性。

图3为本发明所述的本地获取数据流程示意图。车辆节点V6位于子网S1中,子网S1中的接入节点为AP1,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,该数据块的数据块ID集合为U,接入节点AP1查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的超集,那么车辆节点V6则根据下述过程获取数据:

步骤301:开始;

步骤302:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP1的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP1的定位地址中,横坐标和纵坐标为接入节点AP1的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP1的定位地址,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点;

步骤303:如果能提供数据C1的簇成员节点接收到数据请求消息,那么执行步骤304,否则执行步骤307;

步骤304:如果该簇成员节点能提供数据请求消息负载的数据地址中的数据块ID集合所定义的所有数据块,那么执行步骤305,否则执行步骤306;

步骤305:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为簇成员节点自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载的数据地址中的数据块ID集合中每一个元素的所有表项,然后执行步骤311;

步骤306:簇成员节点返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,消息类型为6,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址中的数据块ID集合中任一个元素的所有表项;从数据请求消息的数据地址的数据块ID集合中减去数据响应消息中所有数据表项中的数据块ID集合;将数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤307:如果接入节点AP1接收到数据请求消息,那么执行步骤308,否则执行步骤310;

步骤308:接入节点AP1从数据索引表中选择满足下述两个条件的数据索引表项,对于每个选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点AP1发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该表项中的定位地址,负载为构建的数据地址;

条件1:数据名称域值为N1;

条件2:所述数据索引表项中的数据块ID集合的并集是数据块ID集合U的超集;

步骤309:目的簇成员节点收到数据请求消息后,返回一个数据响应消息,该数据响应消息的源地址为自己的定位地址,目的地址为车辆节点V6的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中数据地址的数据块ID集合中每一个元素的所有表项,执行步骤311;

步骤310:车辆节点接收到数据请求消息后,将该数据请求消息转发到距离接入节点AP1最近的邻居车辆节点或者接入节点,执行步骤303;

步骤311:如果车辆节点V6收到数据响应消息,则执行步骤313,否则执行步骤312;

步骤312:如果车辆节点在距离数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤311,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤311;

步骤313:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1;车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤314:车辆节点V6执行步骤201~207实现移动切换;

步骤315:结束。

上述算法能够确保车辆节点快速获取所需数据,提高了数据服务质量。

图4为本发明所述的远程获取数据流程示意图。车辆节点V6位于子网S3中,子网S3中的接入节点为AP3,数据C1由数据名称N1定义,车辆节点V6需要获取数据C1的数据块,所述数据块的数据块ID集合为U,接入节点AP3查看数据索引表中数据名称域值为N1的数据索引表项,如果所述数据索引表项的数据块ID集合域值的并集是数据块ID集合U的子集,那么车辆节点V6则根据下述过程获取数据:

步骤401:开始;

步骤402:车辆节点V6构建一个数据地址,同时构建自己的定位地址和接入节点AP3的定位地址,在数据地址中,数据名称域值为N1,数据块ID集合为U,在车辆节点V6自己的定位地址中,横坐标和纵坐标为车辆节点V6的地理横坐标和地理纵坐标,车辆节点ID为车辆节点V6的车辆节点ID,在接入节点AP3的定位地址中,横坐标和纵坐标为接入节点AP3的地理横坐标和地理纵坐标,车辆节点ID为0;车辆节点V6创建一个数据请求消息,该数据请求消息的源地址为车辆节点V6自己的定位地址,目的地址为接入节点AP3的定位自己,负载为构建的数据地址,消息类型为5;车辆节点V6将数据请求消息转发到距离所在子网S3的接入节点AP3最近的邻居车辆节点;

步骤403:接入节点从自己的接口f接收到数据请求消息后,在数据请求表中创建一个数据请求表项,该数据请求表项的数据地址为数据请求消息负载中的数据地址,定位地址为数据请求消息的源地址,接口域值为f;

步骤404:如果接入节点在数据请求表中只有一项数据地址等于数据请求消息负载中的数据地址的数据请求表项,则执行步骤405,否则执行步骤409;

步骤405:如果接入节点在数据索引表中存在数据名称为N1且定位地址为车辆节点的定位地址,即定位地址的车辆节点ID不为0,那么执行步骤406,否则执行步骤408;

步骤406:接入节点从数据索引表中选择满足下述条件3和条件4的表项,对于选择的每一个数据索引表项创建一个数据地址,该数据地址的数据名称域值为N1,数据块ID集合为该数据索引表项中的数据块ID集合;接入节点发送一个数据请求消息,该数据请求消息的源地址为车辆节点V6的定位地址,目的地址为该数据索引表项中的定位地址,负载为构建的数据地址;目的簇成员节点收到数据请求消息后,发送一个数据响应消息,该数据响应消息的源地址为数据请求消息中的数据地址,目的地址为接入节点的定位地址,负载为数据表中数据块ID域值等于数据请求消息负载中的数据地址中的数据块ID集合中每一个元素的表项,接入节点收到所有目的簇成员节点的数据响应消息后,构建一个数据响应消息,该数据响应消息的源地址为接收到的数据请求消息中的目的地址,负载为所接收到的数据响应消息中的所有负载的集合;

条件3:数据名称域值为N1且定位地址的车辆节点ID不为0;

条件4:所述数据索引表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的最大子集或者超集;

步骤407:如果接入节点选择的所有表项中的数据块ID集合的并集是数据请求消息的目的地址中的数据块ID集合的超集,那么执行步骤409,否则执行步骤408;

步骤408:接入节点从数据请求消息负载中的数据地址的数据块ID集合中减去所选择的所有索引表项中的数据块ID集合的并集;接入节点从数据检索表中选择符合条件5和6的数据检索表项,将数据请求消息的目的地址更新为该数据检索表项的定位地址,然后转发数据请求消息,执行步骤403;

条件5:数据名称域值为N1且定位地址的车辆节点ID为0;

条件6:定位地址的横坐标和纵坐标距离最近;

步骤409:如果接入节点构建或者收到数据响应消息,则执行步骤410,否则执行步骤411;

步骤410:接入节点查看数据请求表,选择数据地址为数据响应消息源地址的数据请求表项,对于每个数据请求表项,进行如下操作:接入节点用该数据请求表项的定位地址更新数据响应消息的目的地址,从该数据请求表项的接口域转发该数据响应消息,如果数据响应消息负载中的数据块ID集合是数据响应消息的源地址中的数据块ID集合的超集,接入节点则删除该数据请求表项;返回执行步骤409;

步骤411:如果车辆节点收到数据响应消息且该车辆节点不位于子网S3内,那么执行步骤412,否则执行步骤413;

步骤412:车辆节点将该数据响应消息转发到与所在子网的接入节点距离最近的邻居车辆节点或者接入节点,执行步骤409;

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

步骤414:如果接收到数据响应消息的车辆节点在数据响应消息的目的地址的横坐标和纵坐标所确定的位置的一跳范围内,则广播该数据响应消息,执行步骤409,否则将该数据响应消息转发到与数据响应消息目的地址中横坐标和纵坐标所确定的位置距离最近的邻居车辆节点,执行步骤409;

步骤415:车辆节点V6接收到所有数据响应消息后,创建一个数据表,该数据表的表名为N1,车辆节点V6将数据响应消息中的所有数据表项添加到数据表,同时自己转换为簇成员节点;

步骤416:车辆节点V6执行步骤201~207实现移动切换;

步骤417:结束。

上述算法能够确保车辆节点快速获取所需数据,提高了数据服务质量。

实施例1

基于表1的仿真参数,本实施例模拟了本发明中基于车载云的网络数据通信方法,性能分析如下:当车辆节点速度不变,随着车辆节点数量的增加,云成员的数量也随之增加,分布面积更广泛,因此获取服务数据的延迟和代价都随之下降。车辆节点获取服务数据的平均延迟为60ms,平均代价为8。

表1仿真参数

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

一种基于车载云的网络数据通信方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部