[0088] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0089] 图1为本发明所述的建立转发表流程示意图。
[0090] 图2为本发明所述的创建节点表流程示意图。
[0091] 图3为本发明所述的数据通信流程示意图。
[0092] 图4为本发明所述的获取数据流程示意图。具体实施方式:
[0093] 本发明提供了一种高效的大数据网络实现方法,移动设备通过本发明提供的方法能够快速获取大数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
[0094] 图1为本发明所述的建立转发表流程示意图。所述网络包括连个以上的移动节点,一种数据由一个名称唯一标识,一种数据由两个以上的数据分片构成;如果一种数据包含N个数据分片,N为大于2的自然数,则每个数据分片由一个数据分片ID n1唯一标识,n1取值范围1~N;
[0095] 每个移动节点维护一个转发表,一个转发表项包含名称域、横坐标区间域、纵坐标区间域和生命周期域;如果一个转发表项的生命周期衰减为0,则删除该转发表项;
[0096] 移动节点通过查询消息和查询响应消息来建立转发表项;一个查询消息包含名称域、消息类型域和广播范围域,查询消息的消息类型值为1;一个查询响应消息包含名称域、消息类型域、广播范围域、横坐标区间域、纵坐标区间域以及生命周期域,查询响应消息的消息类型值为2;
[0097] 数据C1由名称NA1唯一标识,如果移动节点M1的转发表中任何一个转发表项的名称域值都不等于名称NA1,那么移动节点M1执行下述过程建立转发表项:
[0098] 步骤101:开始;
[0099] 步骤102:移动节点M1发送一个查询消息,该查询消息的名称域值为名称NA1,消息类型为1,广播范围为0;
[0100] 步骤103:移动节点接收到该查询消息后,将该查询消息中的广播范围域值递增1;判断该移动节点能否提供数据C1,且该移动节点在未来时间T1范围内的移动区域为横坐标区间[x1,x2]和纵坐标区间[y1,y2]定义的长方形,区间下限x1和区间上限x2为正整数且x1105;
[0101] 步骤104:接收到查询消息的移动节点发送一个查询响应消息,该查询响应消息的名称域值等于该查询消息的名称域值,消息类型为2,广播范围域值等于该查询消息中的广播范围域值,横坐标区间为[x1,x2],纵坐标区间为[y1,y2],生命周期域值为T1,执行步骤107;
[0102] 步骤105:接收到查询消息的移动节点判断该查询消息中的广播范围域值是否大于预定值TS1,如果是,则执行步骤107,否则执行步骤106;
[0103] 步骤106:接收到查询消息的移动节点转发该查询消息,执行步骤103;
[0104] 步骤107:移动节点接收到查询响应消息后,将该查询响应消息中的广播范围域值递减1;该移动节点创建一个转发表项,该转发表项的名称域值等于该查询响应消息中的名称域值,该转发表项的横坐标区间域值等于该查询响应消息中的横坐标区间域值,该转发表项的纵坐标区间域值等于该查询响应消息中的纵坐标区间域值,该转发表项的生命周期域值等于该查询响应消息中的生命周期域值;
[0105] 步骤108:接收到查询响应消息的移动节点判断该查询响应消息的广播范围域值是否为0,如果是,则执行步骤110,否则执行步骤109;
[0106] 步骤109:接收到查询响应消息的移动节点转发该查询响应消息,执行步骤107;
[0107] 步骤110:如果移动节点M1在预定时间PT1内至少接收到一个查询响应消息,则执行步骤112,否则执行步骤111;
[0108] 步骤111:移动节点M1将预定值TS1递增h1,其中,h1为正整数,执行步骤102;
[0109] 步骤112:结束。
[0110] 图2为本发明所述的创建节点表流程示意图。每个移动节点具有唯一性的硬件ID,每个移动节点保存一个节点表,每个节点表项包含坐标域、硬件ID域和生命周期域;
[0111] 移动节点通过移动节点消息来建立节点表;
[0112] 一个移动节点消息包含消息类型域,硬件ID域和坐标域,移动节点消息类型值为3;
[0113] 一个移动节点通过下述过程创建节点表:
[0114] 步骤201:开始;
[0115] 步骤202:移动节点定期发送移动节点消息,该移动节点消息的消息类型为3,硬件ID域等于该移动节点的硬件ID,坐标域值等于该移动节点当前的坐标;
[0116] 步骤203:邻居移动节点接收到该移动节点消息后,查看节点表;判断是否存在一个节点表项,该节点表项的硬件ID域值等于该移动节点消息的硬件ID域值,如果是则执行步骤204,否则执行步骤205;
[0117] 步骤204:接收到移动节点消息的邻居移动节点选择一个节点表项,该节点表项的硬件ID域值等于该移动节点消息的硬件ID域值,将该节点表项的坐标域值更新为该移动节点消息的坐标域值,将生命周期设置为最大值,执行步骤206;
[0118] 步骤205:接收到移动节点消息的邻居移动节点创建一个节点表项,该节点表项的硬件ID域值等于该移动节点消息的硬件ID域值,该节点表项的坐标域值等于该移动节点消息的坐标域值,生命周期设置为最大值;
[0119] 步骤206:结束。
[0120] 图3为本发明所述的数据通信流程示意图。移动节点通过请求消息和响应消息来获取数据;
[0121] 一个请求消息包含名称域、消息类型域、目的硬件ID域、源硬件ID域、横坐标区间域、纵坐标区间域和生命周期域,请求消息的消息类型值为4;
[0122] 一个响应消息包含名称域、消息类型域、数据分片ID域、最后分片域、目的硬件ID域、数据值域、横坐标区间域、纵坐标区间域和生命周期域,响应消息消息类型值为5;
[0123] 长方形区域R1由横坐标区间[x1,x2]和纵坐标区间[y1,y2]定义,如果坐标(x3,y3)和坐标(x4,y4)满足公式(1),则坐标(x3,y3)与长方形区域R1的距离比坐标(x4,y4)与长方形区域R1的距离更短;
[0124]
[0125] 每个移动节点维护一个等待处理表,每个等待处理表项包含名称域,前一跳域和生命周期域;
[0126] 数据C1由名称NA1定义,包含N1个数据分片,每个数据分片由数据分片ID s1唯一标识,s1取值1~N1,如果请求数据C1的移动节点的数量不大于预定值TS3,则移动节点M1通过下述过程获取数据C1:
[0127] 步骤301:开始;
[0128] 步骤302:移动节点M1查看转发表,判断是否存在名称域值等于NA1的转发表项,如果是,则无需做任何操作,否则执行步骤101~112建立转发表;移动节点M1查看所有名称域值为NA1的转发表项,然后从所述转发表项中选取横坐标区间和纵坐标区间域值所定义的长方形面积最小的转发表项,移动节点M1选择一个节点表项,该节点表项的坐标与该转发表项的横坐标区间和纵坐标区间域值所定义的长方形距离最近,发送一个请求消息,该请求消息的名称为NA1,消息类型为4,目的硬件ID为该节点表项中的硬件ID,源硬件ID等于移动节点M1的硬件ID,横坐标区间域和纵坐标区间域分别等于该转发表项的横坐标区间和纵坐标区间域值,生命周期域等于预定值;
[0129] 步骤303:目的移动节点接收到该请求消息后,判断该请求消息的生命周期是否衰减为0,如果是,则执行步骤314,否则执行步骤304;
[0130] 步骤304:接收到请求消息的目的移动节点创建一个等待处理表项,该等待处理表项的名称域值和生命周期域值分别等于该请求消息的名称域值和生命周期域值,前一跳域值等于该请求消息的源硬件ID域值;
[0131] 步骤305:判断接收到请求消息的目的移动节点是否位于由该请求消息横坐标区域和纵坐标区域定义的长方形区域内,如果是,则执行步骤307,否则执行步骤306;
[0132] 步骤306:接收到请求消息的目的移动节点选择一个节点表项,该移动节点表项的坐标与该请求消息的横坐标区间和纵坐标区间域值所定义的长方形距离最近,将该请求消息的目的硬件ID更新为该节点表项的硬件ID,将该请求消息的源硬件ID更新为该目的移动节点的硬件ID,转发该请求消息,执行步骤303;
[0133] 步骤307:接收到请求消息的目的移动节点将该请求消息的目的硬件ID域设置为空,将该请求消息的源硬件ID设置为自己的硬件ID,转发该请求消息;
[0134] 步骤308:判断接收到请求消息的移动节点判断该请求消息的生命周期是否为0,如果是,则执行步骤314,否则执行步骤309;
[0135] 步骤309:判断接收到请求消息的移动节点是否能提供该请求消息名称域值定义的数据C1,如果能,则执行步骤311,否则执行步骤310;
[0136] 步骤310:接收到请求消息的移动节点创建一个等待处理表项,该等待处理表项的名称域值和生命周期域值分别等于该请求消息的名称域值和生命周期域值,前一跳域值等于该请求消息的源硬件ID域值,该移动节点将该请求消息的源硬件ID更新为自己的硬件ID,转发该请求消息,执行步骤307;
[0137] 步骤311:如果接收到该请求消息的移动节点在未来时间T5范围内的移动区域为横坐标区间[x5,x6]和纵坐标区间[y5,y6]定义的长方形,该移动节点设置一个参数s2,其值为0;
[0138] 步骤312:判断接收到该请求消息的移动节点将参数s2递增1,如果参数s2大于N1,则执行步骤314,否则执行步骤313;
[0139] 步骤313:接收到该请求消息的移动节点发送一个响应消息,该响应消息的名称域为该请求消息的名称域值,消息类型域值为5,数据分片ID域值为s2,目的硬件ID域等于该请求消息的源硬件ID,数据值域等于该请求消息的名称域值所标识的数据的第s2个分片,横坐标区间域值为[x5,x6],纵坐标区间域值为[y5,y6],生命周期域值为T5;如果参数s2等于N1,则最后分片域值为1,否则最后分片域值为0,执行步骤312;
[0140] 步骤314:判断移动节点M1是否接收到响应消息,是则执行步骤317,否则执行步骤315;
[0141] 步骤315:目的移动节点接收到响应消息后,查看转发表,如果存在一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,该目的移动节点则将该转发表项的生命周期域值更新为该响应消息的生命周期;否则该目的移动节点创建一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,生命周期域值为该响应消息的生命周期;
[0142] 步骤316:接收到响应消息的目的移动节点选取所有名称域值等于该响应消息的名称域值的等待处理表项,对于每个选取的等待处理表项,该目的移动节点将该响应消息的目的硬件ID更新为该等待处理表项的前一跳域值,如果该响应消息的最后分片域值为1,则删除该等待处理表项,该目的移动节点转发该响应消息,执行步骤314;
[0143] 步骤317:如果移动节点M1接收到最后分片为1的响应消息,则执行步骤319,否则执行步骤318;
[0144] 步骤318:移动节点M1保存接收到的响应消息的数据,执行步骤314;
[0145] 步骤319:移动节点M1保存接收到的响应消息中的数据,将所有接收到的数据消息中的分片构建成数据C1,保存数据C1;
[0146] 步骤320:结束。
[0147] 图4为本发明所述的获取数据流程示意图。数据C1由名称NA1定义,包含N1个数据分片;每个数据分片由数据分片ID s1唯一标识,s1取值1~N1;如果请求数据C1的移动节点的数量大于预定值TS3,则移动节点M1通过下述过程获取数据C1:
[0148] 步骤401:开始;
[0149] 步骤402:移动节点M1查看转发表,判断是否存在名称域值等于NA1的转发表项,如果存在,则不做任何操作,否则执行步骤101~112建立转发表;移动节点M1所有名称域值为NA1的转发表项,然后从这些转发表项中选取横坐标区间和纵坐标区间域值所定义的长方形面积最小的转发表项,选择一个节点表项,该节点表项的坐标与该转发表项的横坐标区间和纵坐标区间域值所定义的长方形距离最近,移动节点M1发送一个请求消息,该请求消息的名称为NA1,消息类型为4,目的硬件ID为该节点表项中的硬件ID,源硬件ID等于移动节点M1的硬件ID,横坐标区间域和纵坐标区间域分别等于该转发表项的横坐标区间和纵坐标区间域值,生命周期域等于预定值;
[0150] 步骤403:目的移动节点接收到该请求消息后,判断该请求消息的生命周期是否衰减为0,如果是,则执行步骤414,否则执行步骤404;
[0151] 步骤404:接收到请求消息的目的移动节点创建一个等待处理表项,该等待处理表项的名称域值和生命周期域值分别等于该请求消息的名称域值和生命周期域值,前一跳域值等于该请求消息的源硬件ID域值;
[0152] 步骤405:判断接收到请求消息的目的移动节点是否位于由该请求消息横坐标区域和纵坐标区域定义的长方形区域内,如果是,则执行步骤407,否则执行步骤406;
[0153] 步骤406:接收到请求消息的目的移动节点选择一个节点表项,该移动节点表项的坐标与该请求消息的横坐标区间和纵坐标区间域值所定义的长方形距离最近,将该请求消息的目的硬件ID更新为该节点表项的硬件ID,将该请求消息的源硬件ID更新为该目的移动节点的硬件ID,转发该请求消息,执行步骤403;
[0154] 步骤407:接收到请求消息的目的移动节点将该请求消息的目的硬件ID域设置为空,将该请求消息的源硬件ID设置为自己的硬件ID,转发该请求消息;
[0155] 步骤408:判断接收到请求消息的移动节点判断该请求消息的生命周期是否为0,如果是,则执行步骤414,否则执行步骤409;
[0156] 步骤409:判断接收到请求消息的移动节点是否能提供该请求消息名称域值定义的数据C1,如果能,则执行步骤411,否则执行步骤410;
[0157] 步骤410:接收到请求消息的移动节点创建一个等待处理表项,该等待处理表项的名称域值和生命周期域值分别等于该请求消息的名称域值和生命周期域值,前一跳域值等于该请求消息的源硬件ID域值,该移动节点将该请求消息的源硬件ID更新为自己的硬件ID,转发该请求消息,执行步骤407;
[0158] 步骤411:如果接收到该请求消息的移动节点在未来时间T7范围内的移动区域为横坐标区间[x7,x8]和纵坐标区间[y7,y8]定义的长方形,该移动节点设置一个参数s2,其值为0;
[0159] 步骤412:接收到该请求消息的移动节点将参数s2递增1,如果参数s2大于N1,则执行步骤414,否则执行步骤413;
[0160] 步骤413:接收到该请求消息的移动节点发送一个响应消息,该响应消息的名称域为该请求消息的名称域值,消息类型域值为5,数据分片ID域值为s2,目的硬件ID域等于该请求消息的源硬件ID,数据值域等于该请求消息的名称域值所标识的数据的第s2个分片,横坐标区间域值为[x5,x6],纵坐标区间域值为[y5,y6],生命周期域值为T5;如果参数s2等于N1,则最后分片域值为1,否则最后分片域值为0,执行步骤412;
[0161] 步骤414:如果移动节点M1接收到响应消息,则执行步骤421,否则执行步骤415;
[0162] 步骤415:判断移动节点接收到的响应消息的目的硬件ID是否为空,则执行步骤416,否则执行步骤417;
[0163] 步骤416:接收到响应消息的移动节点查看转发表,如果存在一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,该目的移动节点则将该转发表项的生命周期域值更新为该响应消息的生命周期;否则该目的移动节点创建一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,生命周期域值为该响应消息的生命周期,执行步骤418;
[0164] 步骤417:接收到响应消息的目的移动节点查看转发表,如果存在一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,该目的移动节点则将该转发表项的生命周期域值更新为该响应消息的生命周期;否则该目的移动节点创建一个转发表项,该转发表项的名称域值,横坐标区间和纵坐标区间域值分别等于该响应消息的名称域值,横坐标区间和纵坐标区间域值,生命周期域值为该响应消息的生命周期;
[0165] 步骤418:接收到响应消息的目的移动节点选取所有名称域值等于该响应消息的名称域值的等待处理表项,如果选中的等待处理表项的个数大于预定值TS3,则执行步骤420,否则执行步骤419;
[0166] 步骤419:接收到响应消息的目的移动节点选取所有名称域值等于该响应消息的名称域值的等待处理表项,对于每个选取的等待处理表项,该目的移动节点将该响应消息的目的硬件ID更新为该等待处理表项的前一跳域值,如果该响应消息的最后分片域值为1,则删除该等待处理表项,该目的移动节点转发该响应消息,执行步骤414;
[0167] 步骤420:接收到响应消息的目的移动节点选取所有名称域值等于该响应消息的名称域值的等待处理表项,该目的移动节点将该响应消息的目的硬件ID设置为空,如果该响应消息的最后分片为1,则删除所有选中的等待处理表项,转发该响应消息,执行步骤414;
[0168] 步骤421:如果移动节点M1接收到最后分片为1的响应消息,则执行步骤423,否则执行步骤422;
[0169] 步骤422:移动节点M1保存接收到的响应消息的数据,执行步骤414;
[0170] 步骤423:移动节点M1保存接收到的响应消息中的数据,将所有接收到的数据消息中的分片构建成数据C1,保存数据C1;
[0171] 步骤424:结束。
[0172] 实施例1
[0173] 基于表1的仿真参数,本实施例模拟了本发明中的一种高效的大数据网络实现方法,性能分析如下:当传输数据量增加时,网络性能下降,数据获取延迟有所增加,当传输数据量降低时,网络性能增强,数据获取延迟有所降低,数据获取的平均延迟为1.58s。
[0174] 表1仿真参数
[0175]
[0176] 本发明提供了一种高效的大数据网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。