1.一种城市车载网的路由方法,其特征在于,所述城市车载网包括接入路由器、接入节点和位于道路上的车辆节点;接入路由器与互联网的骨干网相连,接入节点与一个以上的接入路由器连接;将与一个接入路由器相连的所有接入节点围成一个封闭区域作为车域;
将车辆节点分为骨干节点和普通节点两类:骨干节点执行路由转发功能,它保存到达所在车域距离最近的接入节点的路由信息,并通过距离最近的接入节点实现与互联网的通信;普通节点不执行路由转发功能,它通过一跳范围内的骨干节点实现与互联网的通信;
车辆节点的IPv6地址包括三个部分:第一部分是车域ID,它是全局路由前缀,唯一标识一个车域,一个车域中所有接入节点的车域ID都相同,从一个车域内获取的IPv6地址的车域ID都相同,其值等于相同车域中接入路由器的车域ID;第二部分为接入节点ID,它唯一标识车域内的一个接入节点,从一个接入节点获取的地址的接入节点ID都相同,其值等于该接入节点的接入节点ID;第三部分为车辆ID,它唯一标识一个车域中的车辆;接入路由器和接入节点的IPv6地址预先设置,接入路由器的接入节点ID和车辆ID为0,接入节点的车辆ID为0;
当车辆节点加入城市车载网时,它行驶到接入节点一跳范围内后,从该接入节点获取家乡地址;获取家乡地址后,车辆节点在车域内行驶时,它的家乡地址和转交地址保持不变;当车辆节点进入一个新车域时,它从同时属于新车域和原来车域的接入节点获取转交地址;
接入节点分别属于一个以上车域,在为车辆节点配置地址之前,接入节点首先判断车辆节点进入的下一个车域,然后为车辆节点分配下一个车域内中具有全球唯一性的IPv6地址;对于每个所属车域,接入节点保存一个车辆ID表,用于记录下已经分配的车辆ID;
车辆节点从接入节点获取IPv6地址的过程如下:
步骤201:开始;
步骤202:车辆节点向接入节点发送地址请求消息;
步骤203:接入节点收到地址请求消息后,向车辆节点发送刷新消息;
步骤204:车辆节点收到刷新消息后,定期向接入节点发送刷新响应消息;
步骤205:接入节点通过测量刷新响应消息来定位车辆节点的相对位置,并判断车辆节点进入的下一个车域;
步骤206:接入节点采用随机函数随机产生一个车辆ID;
步骤207:接入节点查询下一个车域对应的车辆ID表来判断生成的车辆ID是否已经分配,如果是,返回步骤206,否则进行步骤208;
步骤208:接入节点将自己的车域ID、接入节点ID与生成的车辆ID结合产生新的转交地址,并将其封装到地址响应消息中发送给车辆节点;
步骤209:车辆节点是否已经配置家乡地址,如果是,进行步骤211,否则进行步骤
210;
步骤210:车辆节点收到地址响应消息后,将消息中的地址作为自己的家乡地址,进行步骤212;
步骤211:车辆节点收到地址响应消息后,将消息中的地址作为自己的转交地址;
步骤212:结束;
如果接入节点属于K个车域且第k车域所定义的角度闭区间为[αk,αk+1],K≥k≥1,在时刻T1,车辆节点进入接入节点的通信范围内,接入节点通过测量车辆节点发送的刷新响应消息的强度判断出与车辆节点的距离;当距离小于道路宽度时,车辆节点即将进入下一个车域,接入节点用定位算法测量车辆节点发送的刷新响应消息判断与车辆节点的相对角度,接入节点通过相对角度以及每个车域所在的角度闭区间,判断车辆节点进入的下一个路域;
每个车辆节点都配有全球定位系统,用于获取自己的地址坐标,城市车载网内所有的时钟同步;令车辆节点Vi的地理坐标为(xi,yi),车辆节点Vj的地理坐标为(xj,yj),车辆节点Vi的速度vi,车辆节点Vj的速度为vj,车辆节点Vi的移动角度为θi,车辆节点Vj的移动角度为θj,车辆节点的传输半径为r,那么,车辆节点Vi和Vj的链路连接时间Tij为:其中,
a=vicosθi-vjcosθj,
b=xi-xj,
c=visinθi-vjsinθj,
d=yi-yj,
接入节点属于K个车域,在为第k车域的第j条道路建立路由时,1≤k≤K,接入节点选择的下一跳邻居车辆节点的移动角度θ符合下述条件:αk≤βj≤θ≤βj+1≤αk+1,
其中,第k车域的角度范围为[αk,αk+1],
第k车域的第j条道路的角度范围为[βj,βj+1];
车辆节点定期发送广播消息,消息负载包括地址位置坐标,移动速度和移动角度;车辆节点通过接收邻居车辆节点广播的消息获取与邻居车辆节点的链路连接时间;
在车域中,车辆节点建立到达最近接入节点AP1的路由过程如下:
步骤301:开始;
步骤302:接入节点AP1选择具有最大链路连接时间的邻居普通节点,并向其发送路由建立消息,消息负载为接入节点AP1的地址,值为0的跳数参数,以及设置为最大值的链路连接时间;
步骤303:邻居普通节点收到路由建立消息后,判断其一跳范围内是否有骨干节点,如果是,进行步骤305,否则进行步骤304;
步骤304:邻居普通节点将接入节点AP1作为距离最近的接入节点,保存到达接入节点AP1的跳数参数以及转发路由建立消息的骨干节点的地址,将自己标记为骨干节点,然后选择最大链路连接时间的下一跳邻居普通节点,向其转发路由建立消息,其中消息负载中的跳数递增1;链路连接时间为路由建立消息中的链路连接时间,与自己和下一跳邻居普通节点的链路连接时间之间的最小值,进行步骤303;
步骤305:邻居普通节点丢弃路由建立消息并向转发路由建立消息的骨干节点返回路由响应消息,消息负载为到达接入节点AP1路径的链路连接时间;
步骤306:骨干节点收到路由响应消息后,记录下到达接入节点AP1路径的链路连接时间,然后将路由响应消息发送给到达接入节点AP1的下一跳骨干节点,路由响应消息最终达到接入节点AP1;
步骤307:接入节点AP1收到路由响应消息后,记录下对应车域的路由链路连接时间;
步骤308:结束;
路由建立完成后,接入节点AP1在链路连接时间之后重新建立路由以维护路由的有效性;骨干节点的广播消息负载中增加如下数据:接入节点AP1的地址、到达接入节点AP1的路径长度以及到达接入节点AP1的路径的链路连接时间。
2.根据权利要求1所述的城市车载网的路由方法,其特征在于,骨干节点与互联网节点通信的时候,按照建立的路由路径将数据包发送到距离最近的接入节点,然后由接入节点发送到本车域的接入路由器,接入路由器记录骨干节点与距离最近的接入节点的关联关系,并将数据包发送到互联网节点;
互联网节点返回的数据包首先到达骨干节点所在车域的接入路由器,接入路由器根据记录的骨干节点与接入节点的关联关系将返回的数据包发送到与骨干节点关联的接入节点,接入节点根据数据包目的地址所在车域的路由路径将数据包发送到下一跳骨干节点,最终数据包到达目的骨干节点;
普通节点与互联网节点通信时,从邻居骨干节点中选择具有最大链路连接时间的骨干节点B,然后将数据包发送到骨干节点B,骨干节点B收到数据包后,记录普通节点与自己的关联关系,同时将数据包通过最近接入节点和所在车域的接入路由器发送给互联网节点;
互联网节点返回的数据包到达最近接入节点后,最近接入节点根据数据包目的地址所在车域的路由信息,将数据包发送到下一跳骨干节点,下一跳骨干节点检测自己是否与普通节点具有关联关系,如果没有,继续按照路由信息将数据包发送到下一跳骨干节点,最终到达与普通节点有关联关系的骨干节点B,然后骨干节点B将数据包发送到普通节点。
3.根据权利要求2所述的城市车载网的路由方法,其特征在于,普通节点与骨干节点设有关联关系,普通节点检测到即将离开骨干节点的通信范围,那么从邻居骨干节点中选择具有最大链路连接时间的骨干节点作为新的关联节点,并向新的关联节点发送关联消息,消息负载为原来关联节点距离最近的接入节点的地址,新的关联节点收到关联消息后,增加与普通节点的关联关系;
如果新的关联节点的最近接入节点与原来关联节点的最近接入节点不同但是属于一个车域,那么新的关联节点向所在车域的接入路由器发送更新消息,消息负载为普通节点的地址和新的关联节点的最近接入节点的地址;接入路由器收到更新消息后,将普通节点的最近接入节点的地址更新为更新消息中的新的关联节点的最近接入节点的地址;
路由信息更新之后,目的地址为普通节点的数据包到达所在车域的接入路由器后,接入路由器将其转发到新关联节点的最近接入节点,最近接入节点根据所在车域路径信息将数据包发送到最新骨干节点,然后由最新骨干节点将数据包发送到普通节点;
普通节点脱离原来关联节点的通信范围后,自动删除关联消息。
4.根据权利要求3所述的城市车载网的路由方法,其特征在于,接入节点的路径链路连接时间为0时,重新建立路由;
重新建立路由后,普通节点C1变为骨干节点C1,如果骨干节点C1原来最近的接入节点AP1与现在最近的接入节点AP2不同且接入节点AP1与接入节点AP2属于一个车域,那么骨干节点C1向所在车域的接入路由器AR1发送更新消息,消息负载为接入节点AP2的地址;接入路由器AR1收到更新消息后,将骨干节点C1的关联接入节点AP1的地址更新为接入节点AP2的地址;
目的地址为骨干节点C1的数据包到达接入路由器AR1后,接入路由器AR1将其转发到接入节点AP2,接入节点AP2根据所在车域路径将数据发送到骨干节点C1;
重新建立路由后,普通节点C2原来关联的骨干节点转变为普通节点,那么普通节点C2从邻居骨干节点中选择具有最大链路连接时间的骨干节点B2作为新的关联节点,并向骨干节点B2发送关联消息,消息负载为原来关联节点的距离最近的接入节点AP3的地址;骨干节点B2收到关联消息后,增加与普通节点C2的关联关系;如果骨干节点B2的最近接入节点AP4与接入节点AP3同属于一个车域,那么骨干节点B2向所在车域的接入路由器AR2发送更新消息,消息负载为普通节点C2和接入节点AP4的地址;接入路由器AR2收到更新消息后,将普通节点C2的关联接入节点的地址更新为接入节点AP4的地址;
目的地址为普通节点C2的数据到达接入路由器AR2后,接入路由器AR2将其转发到接入节点AP4,接入节点AP4根据所在车域路径将数据发送到骨干节点B2,骨干节点B2将数据转发给普通节点C2;
重新建立路由后,骨干节点B3转变为普通节点B3,普通节点B3从邻居骨干节点中选择具有最大链路连接时间的骨干节点B4作为关联节点,并向骨干节点B4发送关联节点消息,消息负载为原来距离最近的接入节点AP5的地址;骨干节点B4收到关联消息后,增加与普通节点B3的关联关系;如果骨干节点B4的最近接入节点是与接入节点AP5同属于一个车域的接入节点AP6,那么骨干节点B4向所在车域的接入路由器AR3发送更新消息,消息负载为普通节点B3和接入节点AP6的地址;接入路由器AR3收到更新消息后,将普通节点B3的关联接入节点的地址更新为接入节点AP6的地址;
目的地址为普通节点B3的数据到达接入路由器AR3后,接入路由器AR3将其转发到接入节点AP6,接入节点AP6根据所在车域路径将数据发送到骨干节点B4,最后骨干节点B4将数据转发给普通节点B3。
5.根据权利要求4所述的城市车载网的路由方法,其特征在于,车辆节点V通过接入节点AP从车域VD1进入车域VD2的过程中,首先从接入节点AP获取新的转交地址并进行新地址的绑定操作,同时将自己标记为普通节点;车辆节点V在车域VD2的邻居骨干节点中选择具有最大链路连接时间的骨干节点B5作为关联节点,并向骨干节点B5发送关联消息,消息负载为接入节点AP在车域VD1的地址;骨干节点B5收到关联消息后,增加与车辆V的关联关系,同时通过消息负载的地址值判断出车辆节点V为新进入车域VD2的普通节点,向车域VD2所在车域的接入路由器AR7发送更新消息,消息负载为车辆节点V新的转交地址和接入节点AP在车域VD2的地址;接入路由器AR7收到更新消息后,记录下车辆节点V与接入节点AP的关联关系;
新地址绑定后,目的地址为车辆节点V新关联地址的数据到达接入路由器AR7后,接入路由器AR7将其转发到接入节点AP,接入节点AP根据所在车域路径将数据发送到骨干节点B5,最后骨干节点B5将数据转发给车辆节点V;
车域VD1中的接入路由器AR8中的车辆节点V的关联关系在有效时间为0后自动删除。