IPC分类号 : H04W4/40,H04W4/48,H04W4/38,H04W40/02,H04W84/18,H04L12/733
专利摘要
本发明提供了一种车载传感网的实现方法,所述传感网包括传感节点和车辆节点;传感节点均匀分布于道路两侧,用于采集数据;车辆节点能够获取传感节点感知的数据并保存和提供所述数据;车辆节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于交通事故监测,路况监测等诸多领域,具有广泛的应用前景。
权利要求
1.一种车载传感网的实现方法,其特征在于,所述传感网包括传感节点和车辆节点;传感节点均匀分布于道路两侧,用于采集数据;车辆节点能够获取传感节点感知的数据并保存和提供所述数据;
一种类型的数据由名称和属性标识,属性包括时间戳和坐标,时间戳为数据产生的时间,坐标为数据产生的地理坐标;
每个车辆节点保存一个数据表,每个数据表项包含名称域、时间戳域、坐标域和数据域;
如果一个传感节点有N个邻居车辆节点,那么第j个邻居车辆节点使用公式(1)计算等待时间Bj,j取值1~N,公式(1)中,T2为预先设置的常量时间,R为通信半径,dj为第j个邻居车辆节点与该传感节点之间的距离;
Bj=T2·(1-dj/R)公式(1)
一个传感节点产生数据后,采用发布消息来发布该数据;
发布消息包含消息类型、名称域、时间戳域、坐标域、数据域、跳数域和负载域,发布消息的消息类型值为1;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果传感节点SN1产生数据C1,则执行下述操作发布该数据:
步骤101:开始;
步骤102:传感节点SN1发送一个发布消息,该发布消息的消息类型为1,名称域为NA1,时间戳域为T1,坐标域为(x1,y1),数据域值为数据C1,跳数域值为预先设置值H1,H1为正整数,负载域值为随机数和传感节点SN1的坐标;
步骤103:判断是否除传感节点SN1以外的其他传感节点接收到该发布消息,是则执行步骤104,否则执行步骤105;
步骤104:接收到该发布消息的传感节点丢弃该发布消息,执行步骤109;
步骤105:接收到该发布消息的车辆节点保存该发布消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该发布消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该发布消息的跳数域值递减1,判断该发布消息的跳数域值是否等于0,是则执行步骤109;否则执行步骤106;
步骤106:接收到该发布消息的车辆节点根据公式(1)计算自己的等待时间;如果在等待时间内,该车辆节点接收到一个发布消息,该发布消息与自己保存的一个发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时发布消息负载中的随机数也相同,则执行步骤108,否则执行步骤107;
步骤107:接收到该发布消息的车辆节点将接收到的发布消息负载中的坐标域值更新为自己的坐标,转发接收到的发布消息,其中,该发布消息为步骤105中接收到的发布消息,执行步骤103;
步骤108:接收到该发布消息的车辆节点选择保存的一个发布消息,该发布消息与在等待时间内接收到的发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的发布消息,执行步骤103;
步骤109:结束。
2.根据权利要求1所述的一种车载传感网的实现方法,其特征在于,能够提供一种数据的传感节点或者车辆节点称为提供者;
如果车辆节点需要获取数据C1且有N1个邻居传感节点和车辆节点能够提供数据C1,则第i个邻居提供者使用公式(2)计算等待时间Bi,i取值1~N1;公式(2)中,di为第i个提供者与该车辆节点之间的距离;
Bi=T2·di/R公式(2)
车辆节点使用请求消息和响应消息获取数据;请求消息包含消息类型域、名称域、时间戳域、坐标域、跳数域和负载域,请求消息的消息类型域值为2;
响应消息包含消息类型域、名称域、时间戳域、坐标域、跳数域、数据域和负载域,响应消息消息类型域值为3;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的一跳范围内,且车辆节点VN1至少有一个邻居车辆节点能够提供数据C1,则车辆节点VN1通过下述过程获取数据C1:
步骤201:开始;
步骤202:车辆节点VN1等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤211,否则执行步骤203;
步骤203:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN1的坐标;
步骤204:判断是否传感节点接收到该请求消息,是则执行步骤205,否则执行步骤206;
步骤205:接收到该请求消息的传感节点丢弃该请求消息,执行步骤211;
步骤206:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将等待时间设置为T2;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤207,否则执行步骤208;
步骤207:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤211;
步骤208:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤209,否则执行步骤211;
步骤209:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤211,否则执行步骤210;
步骤210:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤204;
步骤211:判断是否传感节点接收到该响应消息,是则执行步骤212,否则执行步骤213;
步骤212:接收到该响应消息的传感节点丢弃该响应消息,执行步骤217;
步骤213:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤217;否则执行步骤214;
步骤214:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤216,否则执行步骤215;
步骤215:接收到该响应消息的车辆节点将接收到的响应消息负载中的坐标域值更新为自己的坐标,转发接收到的响应消息,其中,该响应消息为步骤213中接收到的响应消息,执行步骤211;
步骤216:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤211;
步骤217:结束。
3.根据权利要求1所述的一种车载传感网的实现方法,其特征在于,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的一跳范围内,且车辆节点VN2的任何一个邻居车辆节点都不能提供数据C1,则车辆节点VN2通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点VN2等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN2接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤309,否则执行步骤303;
步骤303:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN2的坐标;
步骤304:判断是否车辆节点接收到该请求消息,是则执行步骤305,否则执行步骤306;
步骤305:接收到该请求消息的车辆节点丢弃该请求消息,执行步骤309;
步骤306:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤308,否则执行步骤307;
步骤307:接收到该请求消息的传感节点丢弃该请求消息,执行步骤309;
步骤308:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该传感节点产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值;
步骤309:判断是否传感节点接收到该响应消息,是则执行步骤310,否则执行步骤311;
步骤310:接收到该响应消息的传感节点丢弃该响应消息,执行步骤315;
步骤311:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤315;否则执行步骤312;
步骤312:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤314,否则执行步骤313;
步骤313:接收到该响应消息的车辆节点将接收到的响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,其中,该响应消息为步骤311中接收到的响应消息,执行步骤309;
步骤314:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤309;
步骤315:结束。
4.根据权利要求2所述的一种车载传感网的实现方法,其特征在于,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的H2跳范围内,车辆节点VN1没有任何一个邻居车辆节点能够提供数据C1,但是在H2跳范围内至少存在一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN1通过下述过程获取数据C1:
步骤401:开始;
步骤402:车辆节点VN1等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤411,否则执行步骤403;
步骤403:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN1的坐标;
步骤404:判断是否传感节点接收到该请求消息,是则执行步骤405,否则执行步骤406;
步骤405:接收到该请求消息的传感节点丢弃该请求消息,执行步骤411;
步骤406:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将根据公式(1)计算等待时间;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤407,否则执行步骤408;
步骤407:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤411;
步骤408:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的请求消息或者响应消息,则执行步骤409,否则执行步骤411;
步骤409:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤411,否则执行步骤410;
步骤410:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤404;
步骤411:判断是否传感节点接收到该响应消息,是则执行步骤412,否则执行步骤413;
步骤412:接收到该响应消息的传感节点丢弃该响应消息,执行步骤417;
步骤413:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤417;否则执行步骤414;
步骤414:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤416,否则执行步骤415;
步骤415:接收到该响应消息的车辆节点将接收到的响应消息负载中的坐标域值更新为自己的坐标,转发接收到的响应消息,其中,该响应消息为步骤413中接收到的响应消息,执行步骤411;
步骤416:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤411;
步骤417:结束。
5.根据权利要求1所述的一种车载传感网的实现方法,其特征在于,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的H2跳范围内,车辆节点VN2在H2跳范围内没有任何一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN2通过下述过程获取数据C1:
步骤501:开始;
步骤502:车辆节点VN2等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤511,否则执行步骤503;
步骤503:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN2的坐标;
步骤504:判断是否坐标为(x1,y1)的传感节点接收到该请求消息,是则执行步骤506,否则执行步骤505;
步骤505:接收到该请求消息的传感节点丢弃该请求消息,执行步骤511;
步骤506:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤507,否则执行步骤508;
步骤507:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该传感节点产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值,执行步骤511;
步骤508:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1,判断该请求消息的跳数域值是否等于0,是则执行步骤511,否则执行步骤509;
步骤509:接收到该请求消息的车辆节点保存该请求消息,并根据公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个请求消息,该请求消息与之前保存的请求消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值以及请求消息负载中的随机数也相同,则执行步骤504,否则执行步骤510;
步骤510:接收到该请求消息的车辆节点将该请求消息负载中的坐标更新为自己的坐标,转发该请求消息,执行步骤504;
步骤511:判断是否传感节点接收到该响应消息,是则执行步骤512,否则执行步骤513;
步骤512:接收到该响应消息的传感节点丢弃该响应消息,执行步骤517;
步骤513:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,判断该响应消息的跳数域值是否等于0,是则执行步骤517;否则执行步骤514;
步骤514:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤515,否则执行步骤516;
步骤515:接收到该响应消息的车辆节点将接收到的响应消息负载中的坐标域值更新为自己的坐标,转发接收到的响应消息,其中,该响应消息为步骤513中接收到的响应消息,执行步骤511;
步骤516:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤511;
步骤517:结束。
说明书
技术领域
本发明涉及一种实现方法,尤其涉及的是一种车载传感网的实现方法。
背景技术
车载网是提供本地服务的一种服务模式。近年来,很多研究工作致力于车载网,以便使车辆驾驶人能够快速获取网络服务。随着网络技术的发展,车载网会成为未来提供服务的一种模式。
目前,车载网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低车载网提供服务的延迟和代价成为近年来研究的热点问题。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种车载传感网的实现方法。本发明通过单播取代广播的方式来实现车载网,从而降低车载网提供服务的延迟和代价,从而有效提高网络服务性能。
技术方案:本发明公开了一种车载传感网的实现方法,所述传感网包括传感节点和车辆节点;传感节点均匀分布于道路两侧,用于采集数据,例如湿度;车辆节点能够获取传感节点感知的数据并保存和提供所述数据;
一种类型的数据由名称和属性标识,属性包括时间戳和坐标,时间戳为数据产生的时间,坐标为数据产生的地理坐标;
每个车辆节点保存一个数据表,每个数据表项包含名称域、时间戳域、坐标域和数据域;
如果一个传感节点有N个邻居车辆节点,那么第j个邻居车辆节点使用公式(1)计算等待时间Bj,j取值1~N,公式(1)中,T2为预先设置的常量时间,R为通信半径,dj为第j个邻居车辆节点与该传感节点之间的距离;T2可以取值为1s,T2越大,等待时间越长,距离传感节点越近的车辆节点转发发布消息的概率越小;
Bj=T2·(1-dj/R) 公式(1)
一个传感节点产生数据后,采用发布消息来发布该数据;
发布消息包含消息类型、名称域、时间戳域、坐标域、数据域、跳数域和负载域,发布消息的消息类型值为1;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果传感节点SN1产生数据C1,则执行下述操作发布该数据:
步骤101:开始;
步骤102:传感节点SN1发送一个发布消息,该发布消息的消息类型为1,名称域为NA1,时间戳域为T1,坐标域为(x1,y1),数据域值为数据C1,跳数域值为预先设置值H1,H1为正整数,负载域值为随机数和传感节点SN1的坐标;H1为转发发布消息的最大跳数,即H1越大,转发发布消息的次数越多,越多的车辆节点能够接收到该发布消息;
步骤103:判断是否除传感节点SN1以外的其他传感节点接收到该发布消息,是则执行步骤104,否则执行步骤105;
步骤104:接收到该发布消息的传感节点丢弃该发布消息,执行步骤109;
步骤105:接收到该发布消息的车辆节点保存该发布消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该发布消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该发布消息的跳数域值递减1,判断该发布消息的跳数域值是否等于0,是则执行步骤109;否则执行步骤106;
步骤106:接收到该发布消息的车辆节点根据公式(1)计算自己的等待时间;如果在等待时间内,该车辆节点接收到一个发布消息,该发布消息与自己保存的一个发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时发布消息负载中的随机数也相同,则执行步骤108,否则执行步骤107;
步骤107:接收到该发布消息的车辆节点将该发布消息负载中的坐标域值更新为自己的坐标,转发该发布消息,执行步骤103;
步骤108:接收到该发布消息的车辆节点选择保存的一个发布消息,该发布消息与在等待时间内接收到的发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的发布消息,执行步骤103;
步骤109:结束。
传感节点产生数据后,通过上述过程发布数据,车辆节点通过公式(1)计算自己的等待时间,在等待时间内车辆节点只转发一次发布消息,如果收到相同的发布消息,车辆节点则不再进行转发,因此大幅度降低了转发发布消息的代价。
本发明所述方法中,能够提供一种数据的传感节点或者车辆节点称为提供者;
如果车辆节点需要获取数据C1且有N1个邻居传感节点和车辆节点能够提供数据C1,则第i个邻居提供者使用公式(2)计算等待时间Bi,i取值1~N1;公式(2)中,di为第i个提供者与该车辆节点之间的距离;
Bi=T2·di/R 公式(2)
车辆节点使用请求消息和响应消息获取数据;请求消息包含消息类型域、名称域、时间戳域、坐标域、跳数域和负载域,请求消息的消息类型域值为2;
响应消息包含消息类型域、名称域、时间戳域、坐标域、跳数域、数据域和负载域,响应消息消息类型域值为3;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的一跳范围内,且车辆节点VN1至少有一个邻居车辆节点能够提供数据C1,则车辆节点VN1通过下述过程获取数据C1:
步骤201:开始;
步骤202:车辆节点VN1等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤211,否则执行步骤203;时间TS1可以设置为1s,TS1设置时间越大,等待时间越长,接收到请求消息的概率越大;
步骤203:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN1的坐标;
步骤204:判断是否传感节点接收到该请求消息,是则执行步骤205,否则执行步骤206;
步骤205:接收到该请求消息的传感节点丢弃该请求消息,执行步骤211;
步骤206:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将等待时间设置为T2;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤207,否则执行步骤208;
步骤207:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤211;
步骤208:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤209,否则执行步骤211;
步骤209:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤211,否则执行步骤210;
步骤210:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤204;
步骤211:判断是否传感节点接收到该响应消息,是则执行步骤212,否则执行步骤213;
步骤212:接收到该响应消息的传感节点丢弃该响应消息,执行步骤217;
步骤213:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤217;否则执行步骤214;
步骤214:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤216,否则执行步骤215;
步骤215:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤211;
步骤216:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤211;
步骤217:结束。
车辆节点通过上述过程从邻居车辆节点获取数据C1,在数据获取过程中,该邻居车辆节点通过公式(2)计算自己的等待时间,在等待时间内该车辆节点只发送一次响应消息,因此大幅度降低了数据通信代价和延迟。
本发明所述方法中,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的一跳范围内,且车辆节点VN2的任何一个邻居车辆节点都不能提供数据C1,则车辆节点VN2通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点VN2等待时间TS1,时间TS1为预先设置值,例如1s,如果在时间TS1内,车辆节点VN2接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤309,否则执行步骤303;
步骤303:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN2的坐标;
步骤304:判断是否车辆节点接收到该请求消息,是则执行步骤305,否则执行步骤306;
步骤305:接收到该请求消息的车辆节点丢弃该请求消息,执行步骤309;
步骤306:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤308,否则执行步骤307;
步骤307:接收到该请求消息的传感节点丢弃该请求消息,执行步骤309;
步骤308:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该传感节产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值;
步骤309:判断是否传感节点接收到该响应消息,是则执行步骤310,否则执行步骤311;
步骤310:接收到该响应消息的传感节点丢弃该响应消息,执行步骤315;
步骤311:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤315;否则执行步骤312;
步骤312:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤314,否则执行步骤313;
步骤313:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤309;
步骤314:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤309;
步骤315:结束。
车辆节点通过上述过程从远程车辆节点获取数据,在转发响应消息的过程中,车辆节点通过公式(1)计算自己的等待时间,在等待时间内该车辆节点只转发一次响应消息,因此大幅度降低了转发响应消息的代价和延迟。
本发明所述方法中,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的H2跳范围内,车辆节点VN1没有任何一个邻居车辆节点能够提供数据C1,但是在H2跳范围内至少存在一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN1通过下述过程获取数据C1:
步骤401:开始;
步骤402:车辆节点VN1等待时间TS1,时间TS1为预先设置值,例如1s,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤411,否则执行步骤403;
步骤403:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN1的坐标;
步骤404:判断是否传感节点接收到该请求消息,是则执行步骤405,否则执行步骤406;
步骤405:接收到该请求消息的传感节点丢弃该请求消息,执行步骤411;
步骤406:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将根据公式(1)计算等待时间;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤407,否则执行步骤408;
步骤407:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤411;
步骤408:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的请求消息或者响应消息,则执行步骤409,否则执行步骤411;
步骤409:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤411,否则执行步骤410;
步骤410:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤404;
步骤411:判断是否传感节点接收到该响应消息,是则执行步骤412,否则执行步骤413;
步骤412:接收到该响应消息的传感节点丢弃该响应消息,执行步骤417;
步骤413:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤417;否则执行步骤414;
步骤414:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤416,否则执行步骤415;
步骤415:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤411;
步骤416:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤411;
步骤417:结束。
车辆节点通过上述过程从在H2跳范围内的一个车辆节点获取数据,在数据通信的过程中,车辆节点利用公式(1)或者公式(2)计算自己的等待时间,在等待时间内该车辆节点不重复转发接收到的相同的响应消息,因此大幅度降低了数据通信的代价和延迟。
本发明所述方法中,数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的H2跳范围内,车辆节点VN2在H2跳范围内没有任何一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN2通过下述过程获取数据C1:
步骤501:开始;
步骤502:车辆节点VN2等待时间TS1,时间TS1为预先设置值,例如1s,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤511,否则执行步骤503;
步骤503:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN2的坐标;
步骤504:判断是否坐标为(x1,y1)的传感节点接收到该请求消息,是则执行步骤506,否则执行步骤505;
步骤505:接收到该请求消息的传感节点丢弃该请求消息,执行步骤511;
步骤506:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤507,否则执行步骤508;
步骤507:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该传感节产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值,执行步骤511;
步骤508:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1,判断该请求消息的跳数域值是否等于0,是则执行步骤511,否则执行步骤509;
步骤509:接收到该请求消息的车辆节点保存该请求消息,并根据公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个请求消息,该请求消息与之前保存的请求消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值以及请求消息负载中的随机数也相同,则执行步骤504,否则执行步骤510;
步骤510:接收到该请求消息的车辆节点将该请求消息负载中的坐标更新为自己的坐标,转发该请求消息,执行步骤504;
步骤511:判断是否传感节点接收到该响应消息,是则执行步骤512,否则执行步骤513;
步骤512:接收到该响应消息的传感节点丢弃该响应消息,执行步骤517;
步骤513:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,判断该响应消息的跳数域值是否等于0,是则执行步骤517;否则执行步骤514;
步骤514:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤515,否则执行步骤516;
步骤515:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤511;
步骤516:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤511;
步骤517:结束。
车辆节点通过上述过程从在H2跳范围之外的一个车辆节点获取数据,在数据通信的过程中,车辆节点利用公式(1)计算自己的等待时间,在等待时间内该车辆节点不重复转发接收到的相同的请求消息,因此大幅度降低了数据通信代价和延迟。此外,接收到响应消息的中间车辆节点可以直接获取响应消息负载中的数据,从而进一步降低了数据通信延迟和代价。
有益效果:本发明提供了一种车载传感网的实现方法,车辆节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于交通事故监测,路况监测等诸多领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的数据发布流程示意图。
图2为本发明所述的本地获取数据流程示意图。
图3为本发明所述的本地数据通信流程示意图。
图4为本发明所述的远程获取数据流程示意图。
图5为本发明所述的远程数据通信流程示意图。
具体实施方式:
本发明提供了一种车载传感网的实现方法,车辆节点通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于交通事故监测,路况监测等诸多领域,具有广泛的应用前景。
图1为本发明所述的数据发布流程示意图。所述传感网包括传感节点和车辆节点;传感节点均匀分布于道路两侧,用于采集数据;车辆节点能够获取传感节点感知的数据并保存和提供所述数据;
一种类型的数据由名称和属性标识,属性包括时间戳和坐标,时间戳为数据产生的时间,坐标为数据产生的地理坐标;
每个车辆节点保存一个数据表,每个数据表项包含名称域、时间戳域、坐标域和数据域;
如果一个传感节点有N个邻居车辆节点,那么第j个邻居车辆节点使用公式(1)计算等待时间Bj,j取值1~N,公式(1)中,T2为预先设置的常量时间,R为通信半径,dj为第j个邻居车辆节点与该传感节点之间的距离;
Bj=T2·(1-dj/R) 公式(1)
一个传感节点产生数据后,采用发布消息来发布该数据;
发布消息包含消息类型、名称域、时间戳域、坐标域、数据域、跳数域和负载域,发布消息的消息类型值为1;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果传感节点SN1产生数据C1,则执行下述操作发布该数据:
步骤101:开始;
步骤102:传感节点SN1发送一个发布消息,该发布消息的消息类型为1,名称域为NA1,时间戳域为T1,坐标域为(x1,y1),数据域值为数据C1,跳数域值为预先设置值H1,H1为正整数,负载域值为随机数和传感节点SN1的坐标;
步骤103:判断是否除传感节点SN1以外的其他传感节点接收到该发布消息,是则执行步骤104,否则执行步骤105;
步骤104:接收到该发布消息的传感节点丢弃该发布消息,执行步骤109;
步骤105:接收到该发布消息的车辆节点保存该发布消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该发布消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该发布消息的跳数域值递减1,判断该发布消息的跳数域值是否等于0,是则执行步骤109;否则执行步骤106;
步骤106:接收到该发布消息的车辆节点根据公式(1)计算自己的等待时间;如果在等待时间内,该车辆节点接收到一个发布消息,该发布消息与自己保存的一个发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时发布消息负载中的随机数也相同,则执行步骤108,否则执行步骤107;
步骤107:接收到该发布消息的车辆节点将该发布消息负载中的坐标域值更新为自己的坐标,转发该发布消息,执行步骤103;
步骤108:接收到该发布消息的车辆节点选择保存的一个发布消息,该发布消息与在等待时间内接收到的发布消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的发布消息,执行步骤103;
步骤109:结束。
图2为本发明所述的本地获取数据流程示意图。能够提供一种数据的传感节点或者车辆节点称为提供者;
如果车辆节点需要获取数据C1且有N1个邻居传感节点和车辆节点能够提供数据C1,则第i个邻居提供者使用公式(2)计算等待时间Bi,i取值1~N1;公式(2)中,di为第i个提供者与该车辆节点之间的距离;
Bi=T2·di/R 公式(2)
车辆节点使用请求消息和响应消息获取数据;请求消息包含消息类型域、名称域、时间戳域、坐标域、跳数域和负载域,请求消息的消息类型域值为2;
响应消息包含消息类型域、名称域、时间戳域、坐标域、跳数域、数据域和负载域,响应消息消息类型域值为3;
数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的一跳范围内,且车辆节点VN1至少有一个邻居车辆节点能够提供数据C1,则车辆节点VN1通过下述过程获取数据C1:
步骤201:开始;
步骤202:车辆节点VN1等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤211,否则执行步骤203;
步骤203:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN1的坐标;
步骤204:判断是否传感节点接收到该请求消息,是则执行步骤205,否则执行步骤206;
步骤205:接收到该请求消息的传感节点丢弃该请求消息,执行步骤211;
步骤206:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将等待时间设置为T2;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤207,否则执行步骤208;
步骤207:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤211;
步骤208:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤209,否则执行步骤211;
步骤209:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤211,否则执行步骤210;
步骤210:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤204;
步骤211:判断是否传感节点接收到该响应消息,是则执行步骤212,否则执行步骤213;
步骤212:接收到该响应消息的传感节点丢弃该响应消息,执行步骤217;
步骤213:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤217;否则执行步骤214;
步骤214:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤216,否则执行步骤215;
步骤215:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤211;
步骤216:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤211;
步骤217:结束。
图3为本发明所述的本地数据通信流程示意图。数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的一跳范围内,且车辆节点VN2的任何一个邻居车辆节点都不能提供数据C1,则车辆节点VN2通过下述过程获取数据C1:
步骤301:开始;
步骤302:车辆节点VN2等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN2接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤309,否则执行步骤303;
步骤303:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为1,负载为一个随机数和车辆节点VN2的坐标;
步骤304:判断是否车辆节点接收到该请求消息,是则执行步骤305,否则执行步骤306;
步骤305:接收到该请求消息的车辆节点丢弃该请求消息,执行步骤309;
步骤306:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤308,否则执行步骤307;
步骤307:接收到该请求消息的传感节点丢弃该请求消息,执行步骤309;
步骤308:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于1,数据域值等于该传感节产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值;
步骤309:判断是否传感节点接收到该响应消息,是则执行步骤310,否则执行步骤311;
步骤310:接收到该响应消息的传感节点丢弃该响应消息,执行步骤315;
步骤311:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤315;否则执行步骤312;
步骤312:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤314,否则执行步骤313;
步骤313:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤309;
步骤314:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤309;
步骤315:结束。
图4为本发明所述的远程获取数据流程示意图。数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN1需要获取数据C1,坐标(x1,y1)不在车辆节点VN1的H2跳范围内,车辆节点VN1没有任何一个邻居车辆节点能够提供数据C1,但是在H2跳范围内至少存在一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN1通过下述过程获取数据C1:
步骤401:开始;
步骤402:车辆节点VN1等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤411,否则执行步骤403;
步骤403:车辆节点VN1发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN1的坐标;
步骤404:判断是否传感节点接收到该请求消息,是则执行步骤405,否则执行步骤406;
步骤405:接收到该请求消息的传感节点丢弃该请求消息,执行步骤411;
步骤406:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据,则根据公式(2)计算等待时间,否则该车辆节点将根据公式(1)计算等待时间;如果该车辆节点能够提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的响应消息,则执行步骤407,否则执行步骤408;
步骤407:接收到该请求消息的车辆节点发送响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该请求消息中名称域值,时间戳域值和坐标域值所标识的数据,负载域值包括该请求消息负载中的随机数和该车辆节点的坐标值,执行步骤411;
步骤408:如果接收到该请求消息的车辆节点不能提供该请求消息的名称域值,时间戳域值和坐标域值标识的数据且在等待时间内没有接收到名称域值,时间戳域值和坐标域值等于该请求消息的名称域值,时间戳域值和坐标域值的请求消息或者响应消息,则执行步骤409,否则执行步骤411;
步骤409:接收到该请求消息的车辆节点查看该请求消息的跳数域值;判断该跳数域值是否等于0,是则执行步骤411,否则执行步骤410;
步骤410:接收到该请求消息的车辆节点将该请求消息中的坐标更新为自己的坐标,转发该请求消息,执行步骤404;
步骤411:判断是否传感节点接收到该响应消息,是则执行步骤412,否则执行步骤413;
步骤412:接收到该响应消息的传感节点丢弃该响应消息,执行步骤417;
步骤413:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,如果该响应消息的跳数域值等于0,则执行步骤417;否则执行步骤414;
步骤414:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤416,否则执行步骤415;
步骤415:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤411;
步骤416:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤411;
步骤417:结束。
图5为本发明所述的远程数据通信流程示意图。数据C1由名称NA1和属性A1标识,属性A1中的时间戳为T1,坐标为(x1,y1);如果车辆节点VN2需要获取数据C1,坐标(x1,y1)在车辆节点VN2的H2跳范围内,车辆节点VN2在H2跳范围内没有任何一个车辆节点能够提供数据C1,H2为大于1的正整数,则车辆节点VN2通过下述过程获取数据C1:
步骤501:开始;
步骤502:车辆节点VN2等待时间TS1,时间TS1为预先设置值,如果在时间TS1内,车辆节点VN1接收到一个请求消息,该请求消息的名称域值为NA1,时间戳为T1,坐标为(x1,y1),则执行步骤511,否则执行步骤503;
步骤503:车辆节点VN2发送请求消息,该请求消息的消息类型为2,名称域值为NA1,时间戳为T1,坐标为(x1,y1),跳数值为H2,负载为一个随机数和车辆节点VN2的坐标;
步骤504:判断是否坐标为(x1,y1)的传感节点接收到该请求消息,是则执行步骤506,否则执行步骤505;
步骤505:接收到该请求消息的传感节点丢弃该请求消息,执行步骤511;
步骤506:判断接收到该请求消息的传感节点的坐标是否等于(x1,y1),是则执行步骤507,否则执行步骤508;
步骤507:接收到该请求消息的传感节点创建由该请求消息的名称、时间戳和坐标所标识的数据,发送一个响应消息,该响应消息的消息类型为3,名称域值,时间戳域值和坐标域值分别等于该请求消息的名称域值,时间戳域值和坐标域值,跳数域值等于H2,数据域值等于该传感节产生的数据,负载域值包括该请求消息负载中的随机数和该传感节点的坐标值,执行步骤511;
步骤508:接收到该请求消息的车辆节点将该请求消息的跳数域值递减1,判断该请求消息的跳数域值是否等于0,是则执行步骤511,否则执行步骤509;
步骤509:接收到该请求消息的车辆节点保存该请求消息,并根据公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个请求消息,该请求消息与之前保存的请求消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值以及请求消息负载中的随机数也相同,则执行步骤504,否则执行步骤510;
步骤510:接收到该请求消息的车辆节点将该请求消息负载中的坐标更新为自己的坐标,转发该请求消息,执行步骤504;
步骤511:判断是否传感节点接收到该响应消息,是则执行步骤512,否则执行步骤513;
步骤512:接收到该响应消息的传感节点丢弃该响应消息,执行步骤517;
步骤513:接收到该响应消息的车辆节点保存该响应消息,创建一个数据表项,该数据表项的名称域值,时间戳域值,坐标域值和数据域值分别等于该响应消息的名称域值,时间戳域值,坐标域值和数据域值;该车辆节点将该响应消息的跳数域值递减1,判断该响应消息的跳数域值是否等于0,是则执行步骤517;否则执行步骤514;
步骤514:接收到该响应消息的车辆节点利用公式(1)计算等待时间,如果在等待时间内,该车辆节点接收到一个响应消息,该响应消息与自己保存的一个响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值同时响应消息负载中的随机数也相同,则执行步骤515,否则执行步骤516;
步骤515:接收到该响应消息的车辆节点将该响应消息负载中的坐标域值更新为自己的坐标,转发该响应消息,执行步骤511;
步骤516:接收到该响应消息的车辆节点选择保存的一个响应消息,该响应消息与在等待时间内接收到的响应消息具有相同的名称域值,时间戳域值,坐标域值,数据域值,跳数域值,且负载中的随机数也相同,删除该保存的响应消息,执行步骤511;
步骤517:结束。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种车载传感网的实现方法,性能分析如下:当车辆节点移动速度增加时,网络性能下降,数据通信延迟有所增加,当车辆节点移动速度降低时,网络性能增强,数据通信延迟降低,数据获取的平均延迟为0.53s。
表1仿真参数
本发明提供了一种车载传感网的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
一种车载传感网的实现方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0