1.一种基于车载云的数据通信方法,其特征在于,所述车载云包括连接到IPv6互联网的车载网,车载网包含K个接入路由器和两个以上的车辆节点,每个接入路由器ARk由自己的地理坐标(xk,yk)唯一标识,1≤k≤K,每个接入路由器的地理坐标在所述车载网中具有唯一性;车辆节点具有路由转发功能,车辆节点通过距离最近的接入路由器实现与IPv6互联网的通信;一个接入路由器与通过它进行通信的所有车辆节点构建成一个子网;
车辆节点通过单播地址和数据地址进行通信,单播地址用于路由,数据地址用于寻找目标数据;一种类型的数据由一个数据ID唯一标识;
接入路由器的单播地址由两个部分构成,第一部分为全局网络前缀,第二部分为接口ID;接口ID由接入路由器的地理横坐标和地理纵坐标构成;
车辆节点的单播地址由两个部分构成,第一部分为全局网络前缀,第二部分为接口ID,接口ID由车辆节点ID和车辆节点的地理横坐标和地理纵坐标构成;车辆节点ID的地址空间
2i-2j
为[1,2 ],i,j为正整数,i大于j;车载网被K个接入路由器划分为K个子网,车辆节点ID空间被划分为K个部分,由接入路由器保存并维护,第k个子网的接入路由器ARk的车辆节点ID空间Ak如公式(1)所示;
车辆节点启动后,通过定位系统获取车载网内所有接入路由器的地理坐标,从而获取距离自己最近的接入路由器AR1的地理坐标(x1,y1),并构建接入路由器AR1的单播地址,其中全局网络前缀为0,接口ID中接入路由器的地理横坐标为x1,地理纵坐标为y1;车辆节点构建自己的单播地址,其中,全局网络前缀为0,接口ID中的车辆节点ID为一个随机数,地理横坐标为车辆节点当前的地理横坐标,地理纵坐标为车辆节点当前的地理纵坐标;车辆节点通过下述过程获取车辆节点ID:步骤101:开始;
步骤102:车辆节点向接入路由器发送地址请求消息,地址请求消息的目的地址为构建的接入路由器AR1的单播地址,源地址为车辆节点构建的自己的单播地址;
步骤103:根据地址请求消息的目的地址中接入路由器AR1的地理坐标,该地址请求消息最终到达接入路由器AR1;
步骤104:接入路由器AR1收到地址请求消息后,从自己的车辆节点ID空间中选择一个未分配的车辆节点ID,向车辆节点返回一个地址响应消息,该地址响应消息的源地址为自己的单播地址,目的地址为车辆节点的单播地址,负载为分配的车辆节点ID;接入路由器将分配给车辆节点的车辆节点ID设置为已分配状态;
步骤105:根据地址响应消息的目的地址中车辆节点的地理坐标,该地址响应消息最终到达车辆节点;
步骤106:车辆节点将地址响应消息负载中的车辆节点ID设置为自己的车辆节点ID;
步骤107:结束;
车辆节点获取车辆节点ID后,一直由该车辆节点ID所标识,在整个生命周期保持不变;
车辆节点的数据地址包括两个部分,第一部分为全局网络前缀,第二部分为接口ID,接口ID由数据ID以及数据地理横坐标和地理纵坐标构成;
接入路由器定期创建一个车载云提供与地理位置相关的数据信息,能提供该数据信息的车辆节点称为车载云成员;在一个车载云中,每个车载云成员保存一个数据表,该数据表记录车载云创建的数据,每个表项包括四个域:数据ID域,地理坐标域,数据域和生命周期域;
如果接入路由器的地理坐标为(x,y),接入路由器通过下述过程创建车载云:步骤201:开始;
步骤202:接入路由器构建自己的单播地址,其中,网络前缀为0,地理横坐标为x,地理纵坐标为y,接入路由器广播创建云消息,消息源地址为自己的单播地址,负载为需要创建的所有数据的数据ID集合;
步骤203:车辆节点收到创建云消息后,判断自己是否能产生创建云消息负载中数据ID集合中所标识的一项以上的数据,如果能进行步骤204,否则进行步骤205;
步骤204:车辆节点向接入路由器返回一个云响应消息,云响应消息的负载为创建的数据,源地址为自己的单播地址,其中,全局网络前缀为0,目的地址为接入路由器的单播地址;车辆节点将自己标记为车载云成员;
步骤205:车辆节点判断接入路由器是否为距离自己最近的接入路由器,如果是,进行步骤206,否则进行步骤207;
步骤206:车辆节点转发给创建云消息,执行步骤203;
步骤207:接入路由器查看所有返回的云响应消息,然后创建数据表,针对每一个云响应消息中的每种数据创建一个表项,该表项的数据ID域值为标识该种数据的数据ID,地理坐标域值为云响应消息的源车辆节点的地理横坐标和地理纵坐标,数据域值为该种数据,生存时间为最大值;
步骤208:接入路由器向每个车载云成员发送数据分享消息,数据分享消息的负载为构建的数据表;
步骤209:车载云成员收到数据分享消息后,保存该数据表;
步骤210:结束;
如果数据表中一个表项的生存时间衰减为0,则从数据表中删除该表项;接入路由器通过步骤201~210重新建立数据表。
2.根据权利要求1所述的一种基于车载云的数据通信方法,其特征在于,车辆节点启动后,通过定位系统获取车载网内每个接入路由器的地理坐标;
如果接入路由器AR1与地理坐标(xp,yp)距离最近,与车辆节点V距离最近的接入路由器也是接入路由器AR1,车辆节点V的地理坐标为(xV,yV),那么车辆节点V通过下述过程获取与地理坐标(xp,yp)相关联的数据:步骤301:开始;
步骤302:车辆节点V创建一个数据地址和一个单播地址,其中,数据地址的全局网络前缀为0,数据ID为标识所要获取数据的数据ID,数据地理横坐标为xp,数据地理纵坐标为yp;
单播地址的全局网络前缀为0,车辆节点ID为车辆节点V的车辆节点ID,地理横坐标为xV,地理纵坐标为yV;
步骤303:车辆节点V发送数据请求消息,数据请求消息的源地址为步骤302创建的单播地址,目的地址为步骤302创建的数据地址,根据源地址中车辆节点V的地理坐标,该数据请求消息到达距离接入路由器AR1最近的下一跳节点;
步骤304:下一跳节点判断是否能提供目的地址中的数据ID以及数据地理坐标所标识的数据,如果能进行步骤305,否则进行步骤306;
步骤305:下一跳节点停止转发该数据请求消息,并返回一个数据响应消息,该数据响应消息的目的地址为车辆节点V的单播地址,源地址为数据地址,负载为车辆节点V请求的数据,执行步骤309;
步骤306:判断下一跳节点是否为接入路由器AR1,如果是,进行步骤308,否则执行步骤
307;
步骤307:下一跳节点将接收到的数据请求消息转发到距离接入路由器AR1最近的下一跳节点,执行步骤304;
步骤308:接入路由器AR1接收到数据请求消息后,执行步骤201~210创建车载云以提供车辆节点V所请求的数据,然后返回一个数据响应消息,该数据响应消息的目的地址为车辆节点V的单播地址,源地址为数据地址,负载为车辆节点V请求的数据;
步骤309:车辆节点V收到数据响应消息后,将消息负载中的数据保存到数据表,同时将自己标识为该车载云成员;
步骤310:结束。
3.根据权利要求1所述的一种基于车载云的数据通信方法,其特征在于,所述车载网中包括一个映射服务器,映射服务器的单播地址为知名地址即公开地址,映射服务器保存一个映射表,用于保存车载网内K个接入路由器网络前缀与地理坐标的映射;映射表表项包括三个域:全局网络前缀域,地理横坐标域和地理纵坐标域;
接入路由器的网络前缀为预先设置,当其启动后,通过定位系统获取车载网内每个接入路由器的地理坐标,然后根据下述过程向映射服务器进行注册:步骤401:开始;
步骤402:接入路由器构建自己的单播地址,全局网络前缀为自己的网络前缀,地理横坐标和地理纵坐标为接入路由器的地理横坐标和地理纵坐标;
步骤403:接入路由器向映射服务器发送注册消息,注册消息目的地址为映射服务器的单播地址,源地址为自己的单播地址;
步骤404:映射服务器收到注册消息后,在映射表中增加一个表项,该表项的全局网络前缀域为注册消息源地址的全局网络前缀域,地理横坐标域为注册消息源地址的地理横坐标,地理纵坐标域为注册消息源地址的地理纵坐标;
步骤405:结束。
4.根据权利要求3所述的一种基于车载云的数据通信方法,其特征在于,如果接入路由器AR2与地理坐标(xp,yp)距离最近,与车辆节点V距离最近的接入路由器是接入路由器AR1,车辆节点V的地理坐标为(xV,yV),那么车辆节点V通过下述过程获取与地理坐标(xp,yp)相关联的数据:步骤501:开始;
步骤502:车辆节点V创建一个数据地址和一个单播地址,其中,数据地址的全局网络前缀为0,数据ID为标识所要获取数据的数据ID,数据地理横坐标为xp,数据地理纵坐标为yp,单播地址的全局网络前缀为0,车辆节点ID为车辆节点V的车辆节点ID,地理横坐标为xV,地理纵坐标为yV;
步骤503:车辆节点V发送数据请求消息,数据请求消息的源地址为步骤502创建的单播地址,目的地址为步骤502创建的数据地址,根据源地址中车辆节点V的地理坐标,该数据请求消息到达距离接入路由器AR1最近的下一跳节点;
步骤504:下一跳节点判断是否能提供目的地址中的数据ID以及数据地理坐标所标识的数据,如果能进行步骤505,否则进行步骤506;
步骤505:下一跳节点停止转发该数据请求消息,并返回一个数据响应消息,该数据响应消息的目的地址为车辆节点V的单播地址,源地址为数据地址,负载为车辆节点V请求的数据,执行步骤518;
步骤506:判断下一跳节点是否为接入路由器AR1,如果是,进行步骤508,否则执行步骤
507;
步骤507:下一跳节点将接收到的数据请求消息转发到距离接入路由器AR1最近的下一跳节点,执行步骤504;
步骤508:接入路由器AR1查看所有接入路由器的地理坐标,并找出距离地理坐标(xp,yp)最近的接入路由器AR2,接入路由器AR2的地理坐标为(x2,y2);
步骤509:接入路由器AR1构建自己的单播地址,全局网络前缀为自己的全局网络前缀,地理横坐标和地理纵坐标为接入路由器AR1的地理横坐标和地理纵坐标,接入路由器AR1发送一个网络前缀请求消息,网络前缀请求消息目的地址映射服务器的单播地址,源地址为自己单播地址,负载为接入路由器AR2的地理坐标(x2,y2);
步骤510:映射服务器收到网络前缀请求消息后,查看映射表中地理横坐标为x2且地理纵坐标为y2的表项,然后向接入路由器AR1返回网络前缀响应消息,网络前缀响应消息的负载为该表项中的全局网络前缀域值;
步骤511:接入路由器AR1收到网络前缀响应消息并保存该消息中接入路由器AR2的全局网络前缀,接入路由器AR1将数据请求消息中的源地址的全局网络前缀设置为自己的全局网络前缀,将数据请求消息中的目的地址的全局网络前缀设置为接入路由器AR2的全局网络前缀,将该数据请求消息转发到IPv6互联网中的下一跳路由器;
步骤512:下一跳路由器判断是否能提供目的地址中的数据ID以及数据地理坐标所标识的数据,如果能进行步骤513,否则进行步骤514;
步骤513:下一跳路由器停止转发该数据请求消息,并返回一个数据响应消息,该数据响应消息的目的地址为数据请求消息的源地址,源地址为数据请求消息的目的地址,负载为车辆节点V请求的数据,执行步骤517;
步骤514:判断下一跳路由器是否为接入路由器AR2,如果是,进行步骤516,否则执行步骤515;
步骤515:下一跳路由器将接收到的数据请求消息转发到下一跳路由器,执行步骤512;
步骤516:接入路由器AR2接收到数据请求消息后,执行步骤201~210创建车载云以提供车辆节点V所请求的数据;接入路由器AR2返回一个数据响应消息,该数据响应消息的目的地址为数据请求消息的源地址,源地址为数据请求消息的目的地址,负载为车辆节点V请求的数据;
步骤517:根据数据响应消息中目的地址的网络前缀,该数据响应消息到达接入路由器AR1,接入路由器AR1将消息负载中的数据保存到数据表并将自己标记为该车载云成员,然后转发该数据响应消息;
步骤518:车辆节点V收到数据响应消息后,将数据响应消息的负载中的数据保存到数据表,同时将自己标识为该车载云成员;
步骤519:结束。