1.一种车载传感网数据通信方法,其特征在于,所述传感网包括接入路由器、接入节点和车辆节点;车辆节点配置一个无线接口设备以及两个以上的传感设备和执行设备,无线接口设备用于与车辆节点或者接入节点进行通信,具有处理和保存数据的能力,传感设备用于采集数据,执行设备用于执行操作;在一个车辆节点中,无线接口设备、传感设备和执行设备构建成一个簇,簇首节点为无线接口设备;
接入路由器与互联网的路由骨干网相连;接入节点配置一个有线接口设备和一个无线接口设备,有线接口设备用于与接入路由器进行通信,无线接口设备用于与车辆节点进行通信;一个接入节点与两个以上的车辆节点构成一个超级簇,在所有接入节点中,所述车辆节点与该接入节点距离最近,超级簇的簇首节点为该接入节点;一个超级簇中,车辆节点通过超级簇的簇首节点与互联网或者其他超级簇进行通信;一个接入路由器、与该接入路由器相连的接入节点、以及该接入节点所在超级簇的所有车辆节点构建成一个子网;
一个车辆节点中,无线接口设备、传感设备以及执行设备由设备ID唯一标识;车辆节点中,无线接口设备的设备ID为该车辆节点的车牌号;一个车辆节点或者一个簇由该车辆节点的无线接口设备的设备ID唯一标识;一个簇由簇ID唯一标识,簇ID的值为该簇簇首节点的设备ID;如果一个接入路由器通过接口x与一个接入节点链路相连,那么x称为该接入节点所在超级簇的超级簇ID,一个超级簇由超级簇ID唯一标识;一种数据由一个数据ID唯一标识,一个传感设备能采集不同的数据,其设备ID为它能采集的数据的数据ID;一种操作由一个命令ID唯一标识,一个执行设备能执行不同的操作,其设备ID为它能执行的操作的命令ID;
一个接入路由器、无线接口设备、传感设备和执行设备配置一个全局地址;一个全局地址由网络前缀、超级簇ID、簇ID、设备ID以及数据类型构成,其中数据类型值为0;一个子网的网络前缀等于该子网内接入路由器的网络前缀,其值预先设置;一个接入路由器的全局地址的超级簇ID和簇ID为0,设备ID值为1;无线接口设备、传感设备和执行设备的全局地址的网络前缀为所在子网的网络前缀,超级簇ID为所在超级簇的超级簇ID,簇ID为所在簇的簇ID,设备ID为自己的设备ID;
一个无线接口设备、传感设备和执行设备配置一个本地地址;一个本地地址由地理坐标、超级簇ID、簇ID、设备ID以及数据类型构成,其中数据类型值为1;
一个接入路由器定期在一跳范围内发送一个信标消息,信标消息的源地址为该接入路由器的全局地址,与该接入路由器相连的接入节点收到信标消息后,保存该接入路由器的全局地址的网络前缀;
当一个车辆节点从一个系统获取车牌号后,该系统分配给该车辆节点一个家乡全局地址,该家乡全局地址中,网络前缀等于该车辆节点当前所在子网的网络前缀,超级簇ID等于该车辆节点当前所在超级簇的超级簇ID,与一个车辆节点的家乡地址具有相同网络前缀和超级簇ID的接入节点称为该车辆节点的家乡接入节点;当车辆节点进入一个新的超级簇后,如果该超级簇的超级簇簇首节点的网络前缀与超级簇ID与车辆节点自己的家乡全局地址的网络前缀和超级簇ID不同,则该超级簇的簇首节点称为该车辆节点的外部接入节点;
一个接入节点和车辆节点维护一个邻居表,每个邻居表项包含家乡地址域、地理坐标域和时间戳;车辆节点启动后,创建一个邻居表项,该邻居表项的家乡地址域为自己的家乡地址域,地理坐标域为自己当前的地理坐标域,时间戳为当前时间;一个车辆节点定期发送一个信标消息,该信标消息的源地址为车辆节点的本地地址,信标消息负载为邻居表;如果车辆节点的位置发生变化,则更新一个邻居表项,该邻居表项的家乡地址域值等于自己的家乡地址,即将该邻居表项的地理坐标设置为自己当前的地理坐标,时间戳设置为当前的时间;当位于超级簇SC1的接入节点或者车辆节点收到位于超级簇SC1的邻居车辆节点的信标消息后,针对该信标消息中的每个邻居表项E1进行如下操作:如果接收到信标消息的接入节点或者车辆节点的邻居表中的任何表项的家乡地址域值都不等于邻居表项E1中的家乡地址域值,该接入节点或者车辆节点将邻居表项E1加入到自己的邻居表中;如果接收到信标消息的接入节点或者车辆节点的邻居表中存在一项家乡地址域值等于邻居表项E1中的家乡地址域值的邻居表项E2且邻居表项E1的时间戳大于邻居表项E2的时间戳,该接入节点或者车辆节点则将邻居表项E2中的地理坐标域值和时间戳域值设置为邻居表项E1的地理坐标域值和时间戳域值;
位于超级簇SC1的车辆节点收到邻居接入节点的信标消息后,针对该信标消息中的每个邻居表项E1进行如下操作:如果接收到信标消息的车辆节点的邻居表中的任何表项的家乡地址域值都不等于邻居表项E1中的家乡地址域值,该车辆节点将邻居表项E1加入到自己的邻居表中;如果接收到信标消息的车辆节点的邻居表中存在一项家乡地址域值等于邻居表项E1中的家乡地址域值的邻居表项E2且邻居表项E1的时间戳大于邻居表项E2的时间戳,该车辆节点则将邻居表项E2中的地理坐标域值和时间戳域值设置为邻居表项E1的地理坐标域值和时间戳域值;
一个接入节点维护一个地址绑定表,每个地址绑定表项包含家乡地址域和转交地址域;一个接入节点维护一个切换表,每个切换表项包含家乡地址域和切换标识域;如果切换标识为1,则说明该表项标识的车辆节点无需进行切换操作;如果切换标识为0,则说明该表项标识的车辆节点需要进行切换操作;
在接入节点AP1发送前一个信标消息和下一个信标消息的时间间隔内,对于接收到的每一个信标消息执行下述操作:对于该信标消息中每个邻居表项E1,如果接入节点AP1的切换表中不存在家乡地址等于邻居表项E1中家乡地址的表项,接入节点AP1则创建一个切换表项,该切换表项的家乡地址为邻居表项E1的家乡地址,切换标识为0;接入节点AP1发送下一个信标消息后,执行下述操作:步骤101:开始;
步骤102:接入节点AP1将切换表中的所有切换表项划分为多个分组,每个分组中的所有切换表项的家乡地址的网络前缀和超级簇ID均相同;
步骤103:接入节点AP1判断每个分组是否满足条件1,如果是,执行步骤104,否则执行步骤105;
条件1:分组中的所有切换表项的家乡地址的网络前缀和超级簇ID等于接入节点AP1的全局地址的网络前缀和超级簇ID;
步骤104:对于满足条件1的分组执行下述操作:对于该分组中的每个切换表项,接入节点AP1查看家乡地址与该切换表项的家乡地址相同的地址绑定表项,将该地址绑定表项的转交地址更新为该地址绑定表项的家乡地址,将该切换表项的切换标识设置为1,执行步骤
108;
步骤105:对于不满足条件1的每一个分组执行下述操作:接入节点AP1构建一个全局地址,该全局地址的网络前缀和超级簇ID为该分组所有切换表项的家乡地址的网络前缀和超级簇ID,簇ID、设备ID和地址类型为0,接入节点AP1发送切换请求消息,该切换请求消息的源地址为自己的全局地址,目的地址为构建的全局地址,负载为该分组中所有切换表项的家乡地址集合,接入节点AP1将该分组中所有切换表项的切换标识设置为1;
步骤106:目的接入节点接收到切换请求消息后,对于该切换请求消息负载中的每个家乡地址进行如下操作:目的接入节点构建一个全局地址,该全局地址的网络前缀和超级簇ID为切换请求消息中的源地址的网络前缀和超级簇ID,簇ID为该家乡地址的簇ID,设备ID和地址类型为0;目的接入节点查找家乡地址域值等于该全局地址的地址绑定表项,然后将该全局地址绑定表项的转交地址域值设置为构建的全局地址,返回一个切换响应消息;
步骤107:接入节点AP1收到切换响应消息后,删除切换表所有切换表项;
步骤108:结束。
2.根据权利要求1所述的方法,其特征在于,在车辆节点V1位于超级簇SC1内,超级簇SC1的接入节点为AP1,车辆节点V2的家乡地址为A2的情况下,车辆节点V1执行下述过程获取车辆节点V2的转交地址:步骤201:开始;
步骤202:车辆节点V1发送转交地址请求消息,该转交地址请求消息的源地址为自己的全局地址,该全局地址的网络前缀为0,目的地址为A2;
步骤203:接入节点AP1收到该转交地址请求消息后,如果该转交地址请求消息的目的地址的网络前缀和超级簇ID与自己全局地址的网络前缀和超级簇ID相同,则执行步骤204,否则执行步骤205;
步骤204:接入节点AP1查看地址绑定表中家乡地址域值等于转交地址请求消息的目的地址的地址绑定表项,然后返回转交地址响应消息,该转交地址响应消息的源地址为转交地址请求消息的目的地址,该转交地址响应消息的目的地址为转交地址请求消息的源地址,负载为该地址绑定表项的转交地址域值,执行步骤206;
步骤205:接入节点AP1将转交地址请求消息的源地址的网络前缀更新为自己全局地址的网络前缀,然后发送该转交地址请求消息;与转交地址请求消息目的地址具有相同网络前缀和超级簇ID的接入节点收到转交地址请求消息后,查看地址绑定表中家乡地址域值等于转交地址请求消息的目的地址的地址绑定表项,然后返回转交地址响应消息,该转交地址响应消息的源地址为转交地址请求消息的目的地址,该转交地址响应消息的目的地址为转交地址请求消息的源地址,负载为该地址绑定表项的转交地址域值;
步骤206:车辆节点V1收到转交地址响应消息后,保存车辆节点V2的转交地址;
步骤207:结束。
3.根据权利要求1所述的方法,其特征在于,在车辆节点V1位于超级簇SC1内,超级簇SC1的接入节点为AP1,车辆节点V2位于超级簇SC2内,接入节点AP1和接入节点AP2位于子网S1内,子网S1的接入路由器为AR1的条件下,车辆节点V1通过下述过程实现与车辆节点V2的通信:步骤301:开始;
步骤302:车辆节点V1构建车辆节点V2的本地地址,该本地地址的地理坐标值等于0,超级簇ID为接入节点AP2的地理坐标,簇ID为车辆节点V2的簇ID,设备ID为车辆节点V1想获取的采集数据的数据ID或者请求车辆节点V2执行操作的命令ID;然后车辆节点V1发送请求消息,该请求消息的目的地址为构建的本地地址,源地址为自己的本地地址;
步骤303:接入节点AP1首先接收到该请求消息,然后将该请求消息转发给接入路由器AR1,接入路由器AR1将接收到的请求消息转发到接入节点AP2;接入节点AP2查看邻居表中家乡地址的簇ID等于请求消息目的地址的簇ID的邻居表项,然后将目的地址的地理坐标更新为该邻居表项的地理坐标值,发送请求消息;
步骤304:车辆节点V2的无线接口设备收到该请求消息后,将该请求消息转发到请求消息目的地址的设备ID所指定的设备,如果请求消息目的地址的设备ID为数据ID,则执行步骤305,否则执行步骤306;
步骤305:请求消息目的地址所标识的设备返回响应消息,该响应消息的目的地址为请求消息的源地址,该响应消息的源地址为请求消息的目的地址,响应消息负载为请求消息目的设备ID标识的数据;车辆节点V1收到响应消息后,保存响应消息负载中的数据;执行步骤307;
步骤306:请求消息目的地址标识的执行设备执行请求消息目的设备ID标识的操作;
步骤307:结束。
4.根据权利要求3所述的方法,其特征在于,在车辆节点V1位于超级簇SC1内,超级簇SC1的接入节点为AP1,接入节点AP1位于子网S1内,子网S1的接入路由器为AR1的情况下,车辆节点V1需要获取子网S1所有车辆节点采集的一种数据或者需要让子网S1所有车辆节点执行一种操作,则执行下述操作:步骤401:开始;
步骤402:车辆节点V1构建一个本地地址,该本地地址的地理坐标值等于0,超级簇ID以及簇ID为0,设备ID为车辆节点V1需要获取的采集数据的数据ID或者请求执行操作的命令ID;然后车辆节点V1发送请求消息,该请求消息的目的地址为构建的本地地址,源地址为自己的本地地址,负载为时间戳;
步骤403:接入节点AP1首先接收到该请求消息,然后将该请求消息转发给接入路由器AR1,接入路由器AR1针对子网S1中的每个接入节点执行下述操作:将请求消息的目的超级簇ID设置为该接入节点的地理坐标,然后将该请求消息转发给该接入节点;接入节点收到请求消息后,将该请求消息转发给所在超级簇SC的邻居车辆节点;
步骤404:如果位于超级簇SC1中的车辆节点第一次接收到该请求消息,则执行步骤
406,否则执行步骤405;
步骤405:车辆节点丢弃该请求消息,执行步骤409;
步骤406:车辆节点将接收到的请求消息转发给邻居节点;车辆节点将接收到的请求消息转发到请求消息目的地址的设备ID所指定的设备,如果请求消息目的地址的设备ID为数据ID,则执行步骤407,否则执行步骤408;
步骤407:请求消息的目的地址所标识的传感设备返回响应消息,该响应消息的目的地址为请求消息的源地址,该响应消息的源地址为请求消息的目的地址,响应消息负载为请求消息目的设备ID标识的数据;车辆节点V1收到响应消息后,保存响应消息负载中的数据;
执行步骤404;
步骤408:请求消息目的地址标识的执行设备执行请求消息目的设备ID标识的操作,执行步骤404;
步骤409:结束。
5.根据权利要求1所述的方法,其特征在于,在车辆节点V1位于超级簇SC1内,超级簇SC1的接入节点为AP1,车辆节点V3位于超级簇SC3内,超级簇SC3的接入节点为AP3,接入节点AP1位于子网S1中,子网S1的接入路由器为AR1,接入节点AP3位于子网S3内,子网S3的接入路由器为AR3的情况下,车辆节点V1通过下述过程实现与车辆节点V3的通信:步骤501:开始;
步骤502:车辆节点V1构建车辆节点V3的全局地址,该全局地址的网络前缀、超级簇ID、簇ID等于车辆节点V3的家乡地址的网络前缀、超级簇ID和簇ID,设备ID为车辆节点V1需要获取的采集数据的数据ID或者请求车辆节点V3执行操作的命令ID;然后车辆节点V1发送请求消息,该请求消息的目的地址为构建的全局地址,源地址为自己的本地地址;
步骤503:接入节点AP1首先接收到该请求消息,为车辆节点V1创建一个全局地址,该全局地址的网络前缀和超级簇ID为自己的网络前缀和超级簇ID,簇ID和设备ID为请求消息源地址的簇ID和设备ID,然后将该请求消息的源地址更新为创建的全局地址,发送该请求消息,最终该请求消息到达接入节点AP3;
步骤504:接入节点AP3查看地址绑定表中家乡地址等于该请求消息目的地址的地址绑定表项,如果该地址绑定表项的转交地址域值的网络前缀和超级簇ID等于接入节点AP3的全局地址的网络前缀和超级簇ID,则执行步骤506,否则执行步骤505;
步骤505:接入节点AP3构建一个全局地址,该全局地址的网络前缀和超级簇ID等于该地址绑定表项中的转交地址的网络前缀和超级簇ID,簇ID和设备ID等于接收到的请求消息目的地址的簇ID和设备ID,将请求消息的目的地址更新为该全局地址,然后发送请求消息;
与该请求消息的目的地址具有相同网络前缀和超级簇ID的接入节点AP5收到该请求消息后,查看邻居表中家乡地址的簇ID等于请求消息中目的地址的簇ID的邻居表项,然后构建本地地址,该本地地址的地理坐标值等于该邻居表项的地理坐标值,超级簇ID为0,簇ID和设备ID等于请求消息中目的地址的簇ID和设备ID值,然后将请求消息的目的地址更新为构建的本地地址,发送请求消息;目的车辆节点的无线接口设备收到该请求消息后,将该请求消息转发到请求消息目的地址的设备ID所指定的设备,执行步骤507;
步骤506:接入节点AP3查看邻居表中家乡地址的簇ID等于请求消息中目的地址的簇ID的邻居表项,然后构建本地地址,该本地地址的地理坐标值等于该邻居表项的地理坐标值,超级簇ID为0,簇ID和设备ID等于请求消息中目的地址的簇ID和设备ID值,然后将请求消息的目的地址更新为构建的本地地址,发送请求消息;目的车辆节点的无线接口设备收到该请求消息后,将该请求消息转发到请求消息目的地址的设备ID所指定的设备;
步骤507:车辆节点V3的无线接口设备收到该请求消息后,将该请求消息转发到请求消息目的地址的设备ID所指定的设备,如果请求消息目的地址的设备ID为数据ID,则执行步骤508,否则执行步骤509;
步骤508:请求消息目的地址所标识的设备返回响应消息,该响应消息的目的地址为请求消息的源地址,该响应消息的源地址为请求消息的目的地址,响应消息负载为请求消息目的设备ID标识的数据;该响应消息到达本地接入节点后,创建一个全局地址,该全局地址的网络前缀和超级簇ID为自己的网络前缀和超级簇ID,簇ID和设备ID为响应消息源地址的簇ID和设备ID,然后将响应消息的源地址更新为创建的全局地址,发送该响应消息;接入节点AP1收到该响应消息后,查看邻居表中家乡地址的簇ID等于响应消息中目的地址的簇ID的邻居表项,然后构建本地地址,该本地地址的地理坐标值等于该邻居表项的地理坐标值,超级簇ID为0,簇ID和设备ID等于响应消息中目的地址的簇ID和设备ID值,然后将响应消息的目的地址更新为构建的本地地址,发送响应消息;车辆节点V1收到响应消息后,保存响应消息负载中的数据;执行步骤510;
步骤509:请求消息目的地址标识的执行设备执行请求消息目的设备ID标识的操作;
步骤510:结束。
6.根据权利要求5所述的方法,其特征在于,在车辆节点V1位于超级簇SC1内,超级簇SC1的接入节点为AP1,接入节点AP1位于子网S1中,子网S1的接入路由器为AR1,子网S3的接入路由器为AR3的情况下,车辆节点V1需要获取子网S3所有车辆节点采集的一种数据或者需要让子网S3所有车辆节点执行一种操作,则执行下述操作:步骤601:开始;
步骤602:车辆节点V1构建一个全局地址,该全局地址的网络前缀为接入路由器AR3的网络前缀,超级簇ID以及簇ID为0,设备ID为车辆节点V1需要获取的采集数据的数据ID或者请求执行操作的命令ID;然后车辆节点V1发送请求消息,该请求消息的目的地址为构建的全局地址,源地址为自己的全局地址,自己的全局地址的网络前缀为0,负载为时间戳;
步骤603:接入节点AP1首先接收到该请求消息,然后将该请求消息的源地址的网络前缀更为自己的网络前缀,然后转发该请求消息,最终该请求消息到达接入路由器AR3,接入路由器AR3针对子网S3中的每个接入节点执行下述操作:将请求消息的目的超级簇ID设置为该接入节点的地理坐标,然后将该请求消息转发给该接入节点;接入节点收到请求消息后,将该请求消息转发给该接入节点的邻居车辆节点;
步骤604:如果位于超级簇SC中的车辆节点第一次接收到该请求消息,则执行步骤606,否则执行步骤605;
步骤605:车辆节点丢弃该请求消息,执行步骤609;
步骤606:车辆节点将接收到的请求消息转发给邻居节点;车辆节点将接收到的请求消息转发到请求消息目的地址的设备ID所指定的设备,如果请求消息目的地址的设备ID为数据ID,则执行步骤607,否则执行步骤608;
步骤607:请求消息的目的地址所标识的传感设备返回响应消息,该响应消息的目的地址为请求消息的源地址,该响应消息的源地址为请求消息的目的地址,响应消息负载为请求消息目的设备ID标识的数据;接入节点AP1收到该响应消息后,查看邻居表中家乡地址的簇ID等于响应消息中目的地址的簇ID的邻居表项,然后构建本地地址,该本地地址的地理坐标值等于该邻居表项的地理坐标值,超级簇ID为0,簇ID和设备ID等于响应消息中目的地址的簇ID和设备ID值,然后将响应消息的目的地址更新为构建的本地地址,发送响应消息;
车辆节点V1收到响应消息后,保存响应消息负载中的数据;执行步骤604;
步骤608:请求消息目的地址标识的执行设备执行请求消息目的设备ID标识的操作,执行步骤604;
步骤609:结束。