[发明专利]一种高效的车载网路由方法有效
申请号: | 201810916256.5 | 申请日: | 2018-08-13 |
公开(公告)号: | CN109246596B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 王晓喃;程宏斌;闫海英 | 申请(专利权)人: | 常熟理工学院 |
主分类号: | H04W4/02 | 分类号: | H04W4/02;H04W4/06;H04W4/46;H04L29/08 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
地址: | 215500 江苏省苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 车载 网路 方法 | ||
1.一种高效的车载网路由方法,其特征在于,所述车载网路包括车辆节点,两个交叉路口之间的道路称为路段,该路段由坐标二元组源坐标,目的坐标唯一定义,源坐标和目的坐标分别为定义该路段的两个交叉路口的坐标;所述车载网路覆盖的道路划分为两个以上的路段;
一种类型的数据由一个数据地址唯一标识,一个数据地址由坐标二元组和数据ID构成,坐标二元组唯一定义一个路段,数据ID唯一定义一种数据;
一个交叉路口能够属于两个以上的路段;车辆节点具有定位功能,通过电子地图能够获取每个交叉路口的坐标;如果一个交叉路口属于n个路段,n为大于1的正整数,所述n个路段成为邻居路段;
一个车辆节点维护一个邻居路段表,一个邻居路段表项包含源坐标和目的坐标域;
在路段RS1由交叉路口I1和I2定义,交叉路口I1的坐标为(xI1,yI1),交叉路口I2的坐标为(xI2,yI2),交叉路口I1属于c1个路段,交叉路口I2属于c2个路段,c1和c2为正整数的条件下,位于路段RS1的车辆节点启动后,对于交叉路口I1所属于的每个路段,该车辆节点创建一个邻居路段表项,该邻居路段表项的源坐标为(xI1,yI1),目的坐标为定义该路段的另一个交叉路口的坐标,对于交叉路口I2所属于的每个路段,该车辆节点创建一个邻居路段表项,该邻居路段表项的源坐标为(xI2,yI2),目的坐标为定义该路段的另一个交叉路口的坐标;该车辆节点删除源坐标为(xI1,yI1)且目的坐标为(xI2,yI2)的邻居路段表项以及源坐标为(xI2,yI2)且目的坐标为(xI1,yI1)的邻居路段表项;
一个车辆节点由一个车辆地址唯一标识,一个车辆地址由地理坐标和硬件ID构成;
如果一个车辆节点位于一个圆形区域内,该圆形区域的中心坐标为(xI1,yI1)即交叉路口I1,半径为车辆节点的通信半径,则判定该车辆节点位于交叉路口I1;如果车辆节点的坐标为(x,y),如果满足下列条件之一则判定该车辆节点位于路段RS1:
条件1:xI1xI2且yI1yI2且xI1≥x≥xI2且yI1≥y≥yI2,
条件2:xI2xI1且yI1yI2且xI2≥x≥xI1且yI1≥y≥yI2,
条件3:xI1xI2且yI2yI1且xI1≥x≥xI2且yI2≥y≥yI1,
条件4:xI2xI1且yI2y1且xI2≥x≥xI1且yI2≥y≥yI1;
如果车辆节点V1的坐标为(xV1,yV1)且硬件ID为HV1,车辆节点V1位于路段RS1,车辆节点V1检测到数据D1,数据D1由数据地址DA1定义,数据地址DA1的坐标二元组为(xI1,yI1),(xI2,yI2),数据ID为CID1,车辆节点V1则执行下述过程发布数据D1:
步骤101:开始;
步骤102:车辆节点V1构建自己的车辆地址,该车辆节点的坐标为(xV1,yV1),硬件ID为HV1,然后车辆节点V1发送一个数据发布消息,该数据发布消息的源地址为车辆节点V1的车辆地址,目的地址为广播地址,广播地址为每个比特位均为1的地址,负载为数据D1和数据地址DA1;
步骤103:其他车辆节点接收到数据发布消息后,保存数据D1和数据地址DA1,如果接收到数据发布消息的其他车辆节点位于交叉路口I1或者交叉路口I2,则执行步骤105,否则执行步骤104;
步骤104:如果接收到数据发布消息的车辆节点位于交叉路口,即除了交叉路口I1或者交叉路口I2以外的交叉路口,则执行步骤106,否则执行步骤105;
步骤105:接收到数据发布消息的车辆节点转发该数据发布消息,执行步骤103;
步骤106:接收到数据发布消息的车辆节点丢弃该数据发布消息;
步骤107:结束;
车辆节点维护一个邻居车辆表,一个邻居车辆表项包含硬件ID域、坐标域和生命周期域;车辆节点V1的硬件ID为HV1,车辆节点V1启动后,定期执行下述过程建立邻居车辆表:
步骤201:开始;
步骤202:车辆节点构建一个车辆地址,该车辆地址的坐标为自己当前的坐标,硬件为HV1,发送一个信标消息,该信标消息的源地址为构建的车辆地址,目的地址为广播地址,负载为空;
步骤203:接收到信标消息的车辆节点查看邻居车辆表;如果存在一个邻居车辆表项,该邻居车辆表项的硬件ID等于该信标消息的源地址的硬件ID,该车辆节点则将该邻居车辆表项的坐标更新为该信标消息的源地址的坐标,将生命周期设置为最大值,否则,该车辆节点创建一个邻居车辆表项,该邻居车辆表项的硬件ID等于该信标消息的源地址的硬件ID,该邻居车辆表项的坐标等于该信标消息的源地址的坐标,将生命周期设置为最大值;
步骤204:结束;
在车辆节点V1的坐标为(xV1,yV1)且硬件ID为HV1,路段RS1由交叉路口I1和I2定义,交叉路口I1的坐标为(xI1,yI1),交叉路口I2的坐标为(xI2,yI2)的条件下,如果车辆节点V1位于路段RS1,则通过下述过程获取邻居路段的数据:
步骤301:开始;
步骤302:车辆节点V1构建一个车辆地址,该车辆地址的坐标为(xV1,yV1),硬件ID为HV1,车辆节点V1发送请求消息,该请求消息的源地址为该车辆地址,目的地址为广播地址,负载为空;
步骤303:其他车辆节点接收到请求消息后,如果该车辆节点检测到数据D2,数据D2由数据地址DA2标识,数据地址DA2的数据ID为CID2,坐标二元组为定义该车辆节点所在路段的坐标二元组,则执行步骤304,否则执行步骤305;
步骤304:接收到请求消息的车辆节点查看邻居车辆表,如果存在一个邻居车辆表项,该邻居车辆表项的硬件ID等于该请求消息的源地址的硬件ID,该车辆节点则发送一个响应消息,该响应消息的源地址和目的地址均为接收到的请求消息的源地址,负载为数据D2和数据地址DA2;否则,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与接收到的请求消息的源地址的坐标距离最近,该车辆节点构建一个车辆地址,该车辆地址的硬件ID和坐标分为等于该邻居车辆表项的硬件ID和坐标,然后车辆地址发送一个响应消息,该响应消息的源地址为构建的车辆地址,目的地址为接收到的请求消息的源地址,负载为数据D2和数据地址DA2;
步骤305:如果接收到请求消息的车辆节点位于交叉路口I1或者交叉路口I2,则执行步骤307,否则执行步骤306;
步骤306:如果接收到请求消息的车辆节点位于交叉路口,即除了交叉路口I1或者交叉路口I2以外的交叉路口,则执行步骤308,否则执行步骤307;
步骤307:接收到请求消息的车辆节点转发该请求消息,执行步骤303;
步骤308:接收到请求消息的车辆节点丢弃该请求消息;
步骤309:判断是否车辆节点V1接收到响应消息,如果是则执行步骤313,否则执行步骤310;
步骤310:判断接收到响应消息的车辆节点的硬件ID是否等于该响应消息的源地址的硬件ID,如果等于,则执行步骤312,否则执行步骤311;
步骤311:接收到响应消息的车辆节点丢弃该响应消息,执行步骤313;
步骤312:接收到响应消息的车辆节点查看邻居车辆表,如果存在一个邻居车辆表项,该邻居车辆表项的硬件ID等于该响应消息的目的地址的硬件ID,该车辆节点则构建一个车辆地址,该车辆节点的硬件ID和坐标分别等于该邻居车辆表项的硬件ID和坐标,将该响应消息的源地址和目的地址均更新为构建的车辆地址,转发该响应消息;否则,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与接收到的响应消息的目的地址的坐标距离最近,该车辆节点构建一个车辆地址,该车辆地址的硬件ID和坐标分为等于该邻居车辆表项的硬件ID和坐标,将该响应消息的源地址更新为构建的车辆地址,转发该响应消息;执行步骤309;
步骤313:车辆节点V1接收到响应消息后,保存该响应消息中的数据;
步骤314:结束;
在车辆节点V1的坐标为(xV1,yV1)且硬件ID为HV1,路段RS1由交叉路口I1和I2定义,交叉路口I1的坐标为(xI1,yI1),交叉路口I2的坐标为(xI2,yI2),车辆节点V1位于路段RS1,源坐标到目的坐标的路径由两个以上的路段构成,路径由坐标二元组集合定义,该坐标二元组集合中的每个坐标二元组定义该路径中所包含的一个路段的条件下,车辆节点V1通过下述过程发现从源坐标(xV1,yV1)途径(xI1,yI1)到目的坐标(xd,yd)的所有路径:
步骤401:开始;
步骤402:车辆节点V1选择一个邻居车辆表项,该邻居车辆表项的坐标距离(xI1,yI1)最近;车辆节点V1构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID;车辆节点V1发送路径消息,该路径消息的源地址为车辆节点V1的车辆地址,目的地址为构建的车辆地址,负载为坐标(xd,yd)以及坐标二元组集合{(xd,yd),(xI1,yI1)};
步骤403:判断是否位于坐标(xd,yd)的车辆节点接收到该路径消息,如果是则执行步骤409,否则执行步骤404;
步骤404:如果接收到路径消息的目的车辆节点位于交叉路口,且目的车辆节点的硬件ID与该路径消息的目的地址的硬件ID相同,则执行步骤406,否则执行步骤405;
步骤405:接收到路径消息的车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该路径消息负载中坐标二元组集合的最后一个坐标二元组的第二个元素的距离最近;接收到路径消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID;接收到路径消息的车辆节点将该路径消息的目的地址更新为构建的车辆地址,转发该路径消息,执行步骤403;
步骤406:接收到路径消息的车辆节点查看邻居路段表,判断是否存在一个邻居路段表项,坐标(xd,yd)位于该邻居路段表项的源坐标和目的坐标所标识的路段上,如果是则执行步骤407,否则执行步骤408;
步骤407:接收到路径消息的车辆节点将坐标二元组(xs,ys),(xd,yd)加入到该路径消息的坐标二元组集合中并作为该集合中的最后一个坐标二元组,坐标(xs,ys)为该车辆节点位于的交叉路口的坐标,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该路径消息负载中坐标二元组集合的最后一个坐标二元组的第二个元素的距离最近,该车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,该车辆节点将该路径消息的目的地址更新为构建的车辆地址,转发该路径消息,执行步骤403;
步骤408:接收到路径消息的车辆节点查看所有源坐标等于(xs,ys)的邻居路段表项,针对每个选中的邻居路段表项R1,该车辆节点执行下述操作:如果满足条件5,该车辆节点将坐标二元组(xs,ys),(xR1,yR1)加入到该路径消息的坐标二元组集合中并作为该集合的最后一个坐标二元组,(xR1,yR1)为邻居路段表项R1的目的坐标,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该路径消息负载中坐标二元组集合的最后一个坐标二元组的第二个元素距离最近,该车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,将该路径消息的目的地址更新为构建的车辆地址,转发该路径消息,执行步骤403;
条件5:
步骤409:位于坐标(xd,yd)的车辆节点接收到该路径消息后,设置一个坐标二元组集合变量T,变量T的初始值等于该路径消息负载中的坐标二元组集合,选择一个邻居车辆表项,该邻居车辆表项的坐标与变量T的最后一个坐标二元组的第一个元素距离最近,位于坐标(xd,yd)的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,位于坐标(xd,yd)的车辆节点发送一个确认消息,该确认消息的源地址为该车辆节点的车辆地址,目的地址为构建的车辆地址,负载为接收到的路径消息负载中的坐标二元组集合以及变量T;
步骤410:如果车辆节点V1接收到该确认消息,则执行步骤414,否则执行步骤411;
步骤411:如果接收到确认消息的目的车辆节点位于交叉路口,目的车辆节点的硬件ID与该确认消息的目的地址的硬件ID相同,则执行步骤413,否则执行步骤412;
步骤412:接收到确认消息的车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该确认消息负载中变量T中的最后一个坐标二元组的第一个元素的距离最近,接收到确认消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,将该确认消息的目的地址更新为构建的车辆地址,转发该确认消息,执行步骤410;
步骤413:接收到确认消息的车辆节点从该确认消息负载中的变量T中删除最后一个坐标二元组,选择一个邻居车辆表项,该邻居车辆表项的坐标与该确认消息负载中变量T中的最后一个坐标二元组的第一个元素的距离最近,接收到确认消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,将该确认消息的目的地址更新为构建的车辆地址,转发该确认消息,执行步骤410;
步骤414:车辆节点V1接收到确认消息后,保存该确认消息负载中的坐标二元组集合;
步骤415:结束;
在车辆节点V1的坐标为(xV1,yV1)且硬件ID为HV1,路径P1为源坐标为(xV1,yV1)到达目的坐标(xd,yd)的路径,路径P1由坐标二元组集合S1定义的条件下,车辆节点V1通过下述过程获取路径P1所产生的数据:
步骤501:开始;
步骤502:车辆节点V1设置坐标二元组集合参数TS和TD,参数TS的初始值为空集,参数TD的初始值等于坐标二元组集合S1;车辆节点V1将变量TD中的第一个坐标二元组加入到变量TS中,选择一个邻居车辆表项,该邻居车辆表项的坐标与参数TS中的最后一个坐标二元组的第二个元素的距离最近,然后车辆节点V1构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,车辆节点V1发送一个数据请求消息,该数据请求消息的源地址为车辆节点V1的车辆地址,目的地址为构建的车辆节点,负载为参数TS和参数TD;
步骤503:其他车辆节点接收到数据请求消息后,如果该车辆节点检测到数据D3,数据D3由数据地址DA3唯一标识,数据地址DA3的数据ID为CID3,坐标二元组等于参数TS中的最后一个坐标二元组,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与变量TS中的最后一个坐标二元组的第一个元素距离最近,然后该车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别等于该邻居车辆表项的坐标和硬件ID,然后一个数据响应消息,该数据响应消息的源地址为该车辆节点的车辆地址,目的地址为构建的车辆地址,负载为参数TS,数据D3和数据地址DA3;
步骤504:判断是否位于交叉路口的车辆节点接收到数据请求消息,如果是则执行步骤506,否则执行步骤505;
步骤505:接收到数据请求消息的车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该数据请求消息负载中的参数TD中的最后一个坐标二元组的第二个元素距离最近,接收到数据请求消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别为该邻居车辆表项的坐标和硬件ID,将该数据请求消息的目的地址更新为构建的车辆地址,转发该数据请求消息,执行步骤503;
步骤506:接收到数据请求消息的车辆节点从该数据请求消息的参数TD中删除最后一个坐标二元组,如果参数TD为空集,则执行步骤508,否则执行步骤507;
步骤507:接收到数据请求消息的车辆节点将该数据请求消息中的参数TD中的最后一个坐标二元组加到参数TS中并作为参数TS中的最后一个坐标二元组,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该数据请求消息负载中的参数TD中的最后一个坐标二元组的第二个元素距离最近,接收到数据请求消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别为该邻居车辆表项的坐标和硬件ID,将该数据请求消息的目的地址更新为构建的车辆地址,转发该数据请求消息,执行步骤503;
步骤508:如果车辆节点V1接收到数据响应消息,则执行步骤512,否则执行步骤509;
步骤509:如果位于交叉路口的车辆节点接收到数据响应消息,则执行步骤511,否则执行步骤510;
步骤510:接收到数据响应消息的车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该数据响应消息负载中的参数TS中的最后一个坐标二元组的第一个元素距离最近,接收到数据响应消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别为该邻居车辆表项的坐标和硬件ID,将该数据响应消息的目的地址更新为构建的车辆地址,转发该数据响应消息,执行步骤508;
步骤511:接收到数据响应消息的车辆节点删除该数据响应消息中的参数TS中的最后一个坐标二元组,该车辆节点选择一个邻居车辆表项,该邻居车辆表项的坐标与该数据响应消息负载中的参数TS中的最后一个坐标二元组的第一个元素距离最近,接收到数据响应消息的车辆节点构建一个车辆地址,该车辆地址的坐标和硬件ID分别为该邻居车辆表项的坐标和硬件ID,将该数据响应消息的目的地址更新为构建的车辆地址,转发该数据响应消息,执行步骤508;
步骤512:车辆节点V1接收到该数据响应消息后,保存该数据响应中的数据;
步骤513:结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常熟理工学院,未经常熟理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810916256.5/1.html,转载请声明来源钻瓜专利网。