1.一种基于软件定义的车载网实现方法,其特征在于,所述车载网络包括基站和车辆节点;每个基站具有唯一的坐标,每个基站和车辆节点各自分别具有一个唯一的硬件ID;一个基站和所有符合条件1的车辆节点构成子网;
条件1:在所有基站中,该车辆节点与该基站距离最近;
车载网传输的数据由数据ID唯一标识,每个数据包含两个以上的数据分片,每个数据分片由分片ID唯一标识,分片ID对应为每个数据分片的顺序编号;
车载网传输的消息由消息类型定义,消息名称和消息类型的对应关系如下表所示:消息名称 消息类型
注册消息 1
更新消息 2
请求消息 3
分片请求消息 4
分片响应消息 5
响应消息 6
一个基站保存一个索引表,索引表的一个索引表项包含硬件ID、数据ID和分片ID集合;
注册消息由消息类型、硬件ID、源坐标、目的坐标、数据ID和分片ID集合构成;
在数据DA1由数据ID DID1定义,数据DA1包含N1个数据分片,车辆节点V1能提供数据DA1中的数据分片,所述数据分片的分片ID构成分片ID集合S1的条件下,车辆节点V1启动后,通过电子地图获取所有基站的坐标,选择距离车辆节点V1自己最近的基站BS1,并执行下述注册操作:步骤101:开始;
步骤102:车辆节点V1发送注册消息,该注册消息的消息类型为1,硬件ID为车辆节点V1的硬件ID,源坐标为车辆节点V1的坐标,目的坐标为基站BS1的坐标,数据ID为DID1,分片ID集合为S1;
步骤103:基站BS1如果接收到到注册消息,则执行步骤107,否则执行步骤104;
步骤104:接收到注册消息的车辆节点查看该注册消息的目的坐标与自己坐标的距离,判断该距离是否小于该注册消息目的坐标与源坐标之间的距离,如果是,则执行步骤106,否则执行步骤105;
步骤105:接收到注册消息的车辆节点丢弃该注册消息,执行步骤107;
步骤106:接收到注册消息的车辆节点将该注册消息的源坐标更新为自己的坐标,转发该注册消息,执行步骤103;
步骤107:基站BS1接收到注册消息后查看索引表,如果存在一个索引表项,该索引表项的硬件ID等于该注册消息的硬件ID,则执行步骤108,否则执行步骤109;
步骤108:基站BS1丢弃接收到的注册消息,执行步骤110;
步骤109:接收到注册消息的基站BS1创建一个索引表项,该索引表项的硬件ID、数据ID和分片ID集合分别等于该注册消息的硬件ID、数据ID和分片ID集合;
步骤110:结束;
车辆节点V1进入一个新子网后,向该新子网的基站执行步骤101-步骤110的注册过程。
2.根据权利要求1所述的一种基于软件定义的车载网实现方法,其特征在于,基站保存一个车辆表,车辆表的一个车辆表项包含坐标域、硬件ID和生命周期;
更新消息包含消息类型、硬件ID、源坐标、目的坐标和负载;
如果车辆节点V1所在子网的基站为BS1,车辆节点V1执行注册操作后,执行下述操作建立车辆表:步骤201:开始;
步骤202:车辆节点V1发送更新消息,该更新消息的消息类型为2,硬件ID为车辆节点V1的硬件ID,源坐标为车辆节点V1的坐标,目的坐标为基站BS1的坐标,负载为车辆节点V1的坐标;
步骤203:基站BS1如果接收到更新消息,则执行步骤207,否则执行步骤204;
步骤204:接收到更新消息的车辆节点查看该更新消息目的坐标与自己坐标的距离,判断该距离是否小于该更新消息目的坐标与源坐标之间的距离,如果是,则执行步骤206,否则执行步骤205;
步骤205:接收到更新消息的车辆节点丢弃该更新消息,执行步骤207;
步骤206:接收到更新消息的车辆节点将该更新消息的源坐标更新为自己的坐标,转发该更新消息,执行步骤203;
步骤207:基站BS1接收到更新消息后查看车辆表,如果存在一个车辆表项,该车辆表项的硬件ID等于该更新消息的硬件ID,则执行步骤208,否则执行步骤209;
步骤208:接收到更新消息的基站BS1选择一个车辆表项,该车辆表项的硬件ID等于该更新消息的硬件ID,将该车辆表项的坐标更新为该更新消息负载中的坐标,将生命周期设置为最大值,执行步骤220;
步骤209:接收到更新消息的基站BS1创建一个车辆表项,该车辆表项的硬件ID等于该更新消息的硬件ID,坐标域等于该更新消息负载中的坐标,将生命周期设置为最大值;
步骤220:结束;
如果基站BS1检测到一个车辆表项的生命周期等于0,生命周期随着机器时钟自动衰减,则选择一个索引表项,该索引表项的硬件ID等于该车辆表项的硬件ID,并删除该车辆表项和索引表项。
3.根据权利要求1所述的一种基于软件定义的车载网实现方法,其特征在于,在车辆节点V1的硬件ID为HID1,所在子网的基站为基站BS1,从基站BS1到车辆节点V1的路由路径由硬件ID集合表示,该硬件ID集合由该路由路径所包含的车辆节点的硬件ID构成的条件下,基站BS1执行下述操作获取该硬件ID集合:步骤301:开始;
步骤302:基站BS1设置一个硬件ID集合参数hs1,参数hs1的初始值为空集;基站BS1选择一个车辆表项E1,车辆表项E1的硬件ID等于HID1;如果基站BS1的坐标与车辆表项E1的坐标之间的距离不大于传输半径R,则执行步骤306,否则执行步骤303;
步骤303:基站BS1选择一个车辆表项E2,车辆表项E2的坐标域值与基站BS1的坐标域值之间的距离小于传输半径R,且车辆表项E2的坐标域值与车辆表项E1的坐标域值之间的距离最小,基站BS1将车辆表项E2的硬件ID加入到参数hs1并作为最后一个元素;
步骤304:基站BS1选择车辆表项E3,车辆表项E3的硬件ID等于参数hs1的最后一个元素,如果车辆表项E3的坐标与车辆表项E1的坐标之间的距离不大于传输半径R,则执行步骤
306,否则执行步骤305;
步骤305:基站BS1选择一个车辆表项E4,车辆表项E4的坐标与车辆表项E3的坐标之间的距离小于传输半径R,且车辆表项E4的坐标与车辆表项E1的坐标之间的距离最小,基站BS1将车辆表项E4的硬件ID加入到参数hs1中并作为最后一个元素,执行步骤304;
步骤306:基站BS1将硬件ID HID1加入到参数hs1中并作为最后一个元素;
步骤307:结束。
4.根据权利要求3所述的一种基于软件定义的车载网实现方法,其特征在于,请求消息由消息类型、硬件ID、源坐标、目的坐标和数据ID构成;
分片请求消息由消息类型、硬件ID、硬件ID集合、数据ID和负载构成;
分片响应消息由消息类型、硬件ID、硬件ID集合、数据ID和负载构成;
响应消息由消息类型、硬件ID集合、数据ID和负载构成;
在车辆节点V2所在子网的基站为BS1,数据DA1由数据ID DID1定义,由N1个数据分片构成的条件下,车辆节点V2通过下述过程获取数据DA1:步骤401:开始;
步骤402:车辆节点V1发送一个请求消息,该请求消息的消息类型为4,硬件ID为车辆节点V1的硬件ID,源坐标为车辆节点V1的坐标,目的坐标为基站BS1的坐标,数据ID为DID1;
步骤403:基站BS1如果接收到请求消息,则执行步骤407,否则执行步骤404;
步骤404:接收到请求消息的车辆节点查看该请求消息的目的坐标与自己的坐标之间的距离,判断该距离是否小于该请求消息的目的坐标与源坐标之间的距离,如果是,则执行步骤406,否则执行步骤405;
步骤405:接收到请求消息的车辆节点丢弃该请求消息,执行步骤407;
步骤406:接收到请求消息的车辆节点将该请求消息的源坐标更新为自己的坐标,发送该请求消息,执行步骤403;
步骤407:基站BS1接收到请求消息后,选择符合条件2的所有索引表项,针对每个选中的索引表项,基站BS1执行步骤301-307获取基站BS1到达硬件ID等于该索引表项的硬件ID的车辆节点的路由路径的参数hs1,基站BS1发送一个分片请求消息,该分片请求消息的消息类型为5,硬件ID等于该请求消息的硬件ID,硬件ID集合等于参数hs1,数据ID等于该请求消息的数据ID,负载为参数hs1;
条件2:这些索引表项的数据ID等于该请求消息的数据ID且这些索引表项的分片ID集合的并集等于 x为分片ID;
步骤408:车辆节点接收到分片请求消息,如果该车辆节点的硬件ID等于该分片请求消息的硬件ID集合中的第一个元素,则执行步骤410,否则执行步骤409;
步骤409:接收到分片请求消息的车辆节点丢弃该分片请求消息,执行步骤412;
步骤410:接收到分片请求消息的车辆节点从该分片请求消息的硬件ID集合中删除第一个元素;如果该分片请求消息的硬件ID集合为空,则执行步骤412,否则执行步骤411;
步骤411:接收到分片请求消息的车辆节点转发该分片请求消息,执行步骤408;
步骤412:接收到分片请求消息的车辆节点构建一个分片响应消息,该分片响应消息的消息类型为6,硬件ID等于该分片请求消息中的硬件ID,硬件ID集合等于该分片请求消息中负载中的参数hs1,数据ID等于该分片请求消息中的数据ID,负载等于该车辆节点所能提供的所有该分片请求消息数据ID所标识的数据的数据分片,其中一个数据分片由二元组<分片ID,数据分片值>表示,二元组的第一个元素为分片ID,第二个元素为该分片请求消息的数据ID以及该分片ID所标识的数据分片值,其中,数据ID标识一种数据,分片ID标识该数据中的一个数据分片;该车辆节点从该分片响应消息的硬件ID集合中删除最后一个元素,将基站BS1的硬件ID计入到该分片响应消息的硬件ID集合中并作为第一个元素,发送该分片响应消息;
步骤413:基站BS1如果接收到分片响应消息,则执行步骤417,否则执行步骤414;
步骤414:接收到分片响应消息的车辆节点查看自己的硬件ID是否等于该分片响应消息的硬件ID集合中的最后一个元素,如果是,则执行步骤416,否则执行步骤415;
步骤415:接收到分片响应消息的车辆节点丢弃该分片响应消息,执行步骤417;
步骤416:接收到分片响应消息的车辆节点从该分片响应消息的硬件ID集合中删除最后一个元素,发送该分片响应消息,执行步骤413;
步骤417:基站BS1接收到所有的分片响应消息后,根据这些分片响应消息中的负载构建由该分片响应消息中的数据ID所标识的数据;基站BS1执行步骤301-307获取基站BS1到达硬件ID等于该分片响应消息中的硬件ID的车辆节点的路由路径的参数hs1,发送一个响应消息,该响应消息的消息类型为7,硬件ID集合为hs1,数据ID等于该分片响应消息中的数据ID,负载为构建的数据;
步骤418:车辆节点接收到响应消息;如果该车辆节点的硬件ID等于该响应消息的硬件ID集合中的第一个元素,则执行步骤420,否则执行步骤419;
步骤419:接收到响应消息的车辆节点丢弃该响应消息,执行步骤422;
步骤420:接收到响应消息的车辆节点从该响应消息的硬件ID集合中删除第一个元素,如果该响应消息的硬件ID集合为空,则执行步骤422,否则执行步骤421;
步骤421:接收到响应消息的车辆节点转发该响应消息,执行步骤418;
步骤422:接收到响应消息的车辆节点V2接收到该响应消息,保存该响应消息负载中的数据;
步骤423:结束。