[0075] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0076] 图1为本发明所述的地址配置流程示意图。
[0077] 图2为本发明所述建立邻居表流程示意图。
[0078] 图3为本发明所述计算权值流程示意图。
[0079] 图4为本发明所述环境稳定情况下的数据通信流程示意图。
[0080] 图5为本发明所述环境不稳定情况下的数据通信流程示意图。具体实施方式:
[0081] 本发明提供了一种大数据网络实现方法,所述大数据网络中的每个节点通过本发明所提供的网络实现方法,能够快速获取数据,从而大幅度提高了服务性能。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
[0082] 图1为本发明所述的地址配置流程示意图。所述网络由节点构成,每个节点配置X个接口,X为大于1的正整数,每个接口由一个接口ID f唯一标识,f取值1~X,接口ID为f的接口简写为接口f;每个接口支持一种协议,例如IEEE 802.11或者IEEE 802.3,节点的每个接口与邻居节点支持相同协议的接口链路相连;
[0083] 一个节点的每个接口配置一个地址,该地址由i比特的横坐标,i比特的纵坐标和j比特的硬件ID构成,i和j为正整数,i和j为2的幂次,例如32;
[0084] 一个具有X个接口的节点启动后,执行下述过程为每个接口获取地址:
[0085] 步骤101:开始;
[0086] 步骤102:节点设置一个变量y1,初始值为1;
[0087] 步骤103:如果变量y1大于X,则执行步骤106,否则执行步骤104;
[0088] 步骤104:节点创建一个地址,该地址的横坐标为其当前所在地理位置的横坐标,纵坐标为当前所在地理位置的纵坐标,硬件ID为接口ID等于变量y1的接口的媒体接入控制地址,即MAC地址,然后将该地址标记为接口ID为变量y1的接口的地址;
[0089] 步骤105:节点将变量y1递增1,执行步骤103;
[0090] 步骤106:节点从每个接口定期广播一个信标消息,该信标消息的源地址为发送信标消息的接口的地址;
[0091] 步骤107:结束。
[0092] 图2为本发明所述建立邻居表流程示意图。每个节点保存一个邻居表,一个邻居表项包含接口ID域、地址域和生命周期域;每个节点配置X个接口,节点从接口ID等于f1的接口f1接收到信标消息后,f1取值1~X,执行下述过程建立邻居表:
[0093] 步骤201:开始;
[0094] 步骤202:节点查看邻居表,如果存在一个邻居表项,该邻居表项的地址域的硬件ID等于接收到的信标消息的源地址的硬件ID,则执行步骤204,否则执行步骤203;
[0095] 步骤203:节点创建一个邻居表项,该邻居表项的接口ID域值等于f1,地址域值等于接收到的信标消息的源地址,生命周期设置为最大生命周期,其值等于1.5T,T为接口f1连续发送两个信标消息的时间间隔,执行步骤205;
[0096] 步骤204:节点选择地址域的硬件ID等于接收到的信标消息的源地址的硬件ID的邻居表项,并将该邻居表项的地址域值更新为接收到的信标消息的源地址,将生命周期域值设置为最大生命周期;
[0097] 步骤205:结束;
[0098] 如果节点检测到一个邻居表项的生命周期衰减为0,该节点则删除该邻居表项。
[0099] 图3为本发明所述计算权值流程示意图。一个节点有X接口,对于每个接口,该节点维护一个转发队列用于保存等待转发的消息;
[0100] 一个节点创建或者接收到一个消息后,如果该消息的比特长度为sm,那么该节点通过下述过程计算每个接口的权值:
[0101] 步骤301:开始;
[0102] 步骤302:节点设置一个变量z,该变量z的初始值为1;
[0103] 步骤303:节点通过公式(1)计算接口z的权值wz,在公式(1)中,bz为接口z的带宽,Yz为接口z的转发队列中的所有消息的总数,s[z,q]为接口z的转发队列中的第q个消息的长度;
[0104]
[0105] 步骤304:节点将变量z递增1,如果变量z大于X,则执行步骤305,否则执行步骤303;
[0106] 步骤305:结束。
[0107] 图4为本发明所述环境稳定情况下的数据通信流程示意图。网络中任一节点都具有X接口,在网络物理环境比较稳定的情况下,例如丢包率小于5%,节点S通过下述过程实现与节点D的通信:
[0108] 步骤401:开始;
[0109] 步骤402:节点S查看邻居表,如果存在地址域的硬件ID等于节点D的地址的硬件ID的邻居表项,则执行步骤403,否则执行步骤404;
[0110] 步骤403:节点S则随机选取一个地址域的硬件ID等于节点D的地址的硬件ID的邻居表项,创建一个请求消息,该请求消息的源地址为选取的邻居表项的接口域的地址,目的地址为选取的邻居表项的地址域值,负载为节点D的地址;节点S通过选取的邻居表项的接口发送创建的请求消息,执行步骤408;
[0111] 步骤404:节点S创建一个请求消息,该请求消息的源地址是一个比特长度为2i+j的随机数,目的地址也是一个比特长度为2i+j的随机数,负载为一个比特长度为2i+j的随机数;节点S查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口f2;然后节点S查看邻居表,选择所有接口域值等于f2的邻居表项,节点S计算每个选择的邻居表项的地址域的坐标与节点D的地址的坐标的距离,选择距离最小的邻居表项,将创建的请求消息的源地址更新为接口f2的地址,目的地址更新为距离最小的邻居表项的地址域值,负载更新为节点D的地址,节点S通过接口f2发送更新的请求消息;
[0112] 步骤405:节点通过一个接口收到请求消息,记做接口f3,如果存在地址域的硬件ID等于接收到的请求消息负载中的地址的硬件ID的邻居表项,则执行步骤406,否则执行步骤407;
[0113] 步骤406:接收到请求消息的节点随机选取一个地址域的硬件ID等于接收到的请求消息负载中的地址的硬件ID的邻居表项,将接收到的请求消息的目的地址更新为该邻居表项的地址域值,通过该邻居表项的接口发送更新的请求消息,执行步骤408;
[0114] 步骤407:接收到请求消息的节点查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口f4;然后接收到请求消息的节点查看邻居表,选择所有接口域值等于f4的邻居表项,接收到请求消息的节点计算每个选择的邻居表项的地址域的坐标与接收到的请求消息负载中的地址的坐标的距离,选择距离最小的邻居表项,将接收到的请求消息的目的地址更新为距离最小的邻居表项的地址域值,通过接口f4发送更新的请求消息,执行步骤405;
[0115] 步骤408:节点D收到请求消息后查看邻居表;如果存在地址域的硬件ID等于接收到的请求消息的源地址的硬件ID的邻居表项,则执行步骤409,否则执行步骤410;
[0116] 步骤409:节点D随机选取一个地址域的硬件ID等于接收到的请求消息的源地址的硬件ID的邻居表项,创建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为选取的邻居表项的地址域值,负载为接收到的请求消息的源地址和响应数据;节点D通过选取的邻居表项的接口发送创建的响应消息,执行步骤414;
[0117] 步骤410:节点D创建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址是一个比特长度为2i+j的随机数,负载为接收到的请求消息的源地址和响应数据;节点D查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口f5;然后节点D查看邻居表,选择所有接口域值等于f5的邻居表项,节点D计算每个选择的邻居表项的地址域的坐标与接收到的请求消息的源地址的坐标的距离,选择距离最小的邻居表项,将创建的响应消息目的地址更新为距离最小的邻居表项的地址域值,节点D通过接口f5发送更新的响应消息;
[0118] 步骤411:节点通过一个接口收到响应消息,该接口记做f6,如果存在地址域的硬件ID等于接收到的响应消息负载中的地址的硬件ID的邻居表项,则执行步骤412,否则执行步骤413;
[0119] 步骤412:接收到响应消息的节点随机选取一个地址域的硬件ID等于接收到的响应消息负载中的地址的硬件ID的邻居表项,将接收到的响应消息的目的地址更新为该邻居表项的地址域值,通过该邻居表项的接口发送更新的响应消息,执行步骤414;
[0120] 步骤413:接收到响应消息的节点查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口f7;然后接收到响应消息的节点查看邻居表,选择所有接口域值等于f7的邻居表项,接收到响应消息的节点计算每个选择的邻居表项的地址域的坐标与接收到的响应消息负载中的地址的坐标的距离,选择距离最小的邻居表项,将接收到的响应消息的目的地址更新为距离最小的邻居表项的地址域值,通过接口f7发送更新的响应消息,执行步骤411;
[0121] 步骤414:节点S接收到响应消息后,保存响应消息中的响应数据;
[0122] 步骤415:结束。
[0123] 图5为本发明所述环境不稳定情况下的数据通信流程示意图。网络中任一节点都具有X接口,在网络物理环境不稳定的情况下,例如丢包率大于5%,节点S通过下述过程实现与节点D的通信:
[0124] 步骤501:开始;
[0125] 步骤502:节点S创建一个随机数r并查看邻居表,如果存在地址域的硬件ID等于节点D的地址的硬件ID的邻居表项,则执行步骤503,否则执行步骤504;
[0126] 步骤503:节点S选取所有地址域的硬件ID等于节点D的地址的硬件ID的邻居表项,对于每个选取的邻居表项,节点S执行下述操作:节点S创建一个请求消息,该请求消息的源地址为选取的邻居表项的接口域的地址,目的地址为选取的邻居表项的地址域值,负载为随机数r和节点D的地址,节点S通过该邻居表项的接口发送创建的请求消息,执行步骤510;
[0127] 步骤504:节点S创建一个请求消息,该请求消息的源地址是一个比特长度为2i+j的随机数,目的地址也是一个比特长度为2i+j的随机数,负载为随机数r和一个比特长度为2i+j的随机数;节点S查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口n2;然后节点S查看邻居表,选择所有接口域值等于n2的邻居表项,对于每个选择的邻居表项,节点S执行下述操作:节点S计算该邻居表项的地址域的坐标与节点D的地址的坐标的距离L,如果距离L小于节点S与节点D之间的距离,节点S则将创建的请求消息的源地址更新为接口n2的地址,目的地址更新该邻居表项的地址域值,负载更新为随机数r和节点D的地址,节点S通过接口n2发送更新的请求消息;
[0128] 步骤505:节点通过接口n3收到请求消息后,如果该节点已经收到一个请求消息,该请求消息的源地址、目的地址以及负载与接收到的请求消息的源地址、目的地址以及负载相同,则执行步骤506,否则执行步骤507;
[0129] 步骤506:接收到请求消息的节点丢弃该请求消息,执行步骤510;
[0130] 步骤507:接收到请求消息的节点判断是否存在地址域的硬件ID等于接收到的请求消息负载中的地址的硬件ID的邻居表项,则执行步骤508,否则执行步骤509;
[0131] 步骤508:接收到请求消息的节点选取所有地址域的硬件ID等于接收到的请求消息负载中的地址的硬件ID的邻居表项,对于每个选中的邻居表项,该节点执行下述操作:将接收到的请求消息的目的地址更新为该邻居表项的地址域值,通过该邻居表项的接口发送更新的请求消息,执行步骤510;
[0132] 步骤509:接收到请求消息的节点查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口n4;然后接收到请求消息的节点查看邻居表,选择所有接口域值等于n4的邻居表项,对于每个选择的邻居表项,接收到请求消息的节点执行下述操作:计算该邻居表项的地址域的坐标与接收到的请求消息负载中的地址的坐标的距离L1,如果距离L1小于接收到请求消息的节点与接收到的请求消息负载中的地址的坐标的距离,则将接收到的请求消息的目的地址更新为该邻居表项的地址域值,通过接口n4发送更新的请求消息,执行步骤505;
[0133] 步骤510:节点D收到请求消息后将请求消息负载中的随机数r的值递增1;如果节点D已经收到一个请求消息,该请求消息的源地址、目的地址以及负载与接收到的请求消息的源地址、目的地址以及负载相同,则执行步骤511,否则执行步骤512;
[0134] 步骤511:节点D丢弃接收到的请求消息,执行步骤520;
[0135] 步骤512:节点D查看邻居表判断是否存在地址域的硬件ID等于接收到的请求消息的源地址的硬件ID的邻居表项,如果存在,则执行步骤513,否则执行步骤514;
[0136] 步骤513:节点D选取所有地址域的硬件ID等于接收到的请求消息的源地址的硬件ID的邻居表项,对于每个选取的邻居表项,节点D执行下述操作:创建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为该邻居表项的地址域值,负载为随机数r,接收到的请求消息的源地址和响应数据,节点D通过该邻居表项的接口发送创建的响应消息,执行步骤520;
[0137] 步骤514:节点D创建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址是一个比特长度为2i+j的随机数,负载为随机数r,接收到的请求消息的源地址和响应数据;节点D查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口n5;然后节点D查看邻居表,选择所有接口域值等于n5的邻居表项,对于每个选择的邻居表项,节点D执行下述操作:计算该邻居表项的地址域的坐标与接收到的请求消息的源地址的坐标的距离L2,如果距离L2小于节点D与接收到的请求消息的源地址的坐标的距离,节点D则将创建的响应消息目的地址更新为该邻居表项的地址域值,节点D通过接口n5发送更新的响应消息;
[0138] 步骤515:节点通过一个接口收到响应消息,该接口记做n6,如果该节点已经收到一个响应消息,该响应消息的源地址,目的地址以及负载与接收到的响应消息的源地址,目的地址以及负载相同,则执行步骤516,否则执行步骤517;
[0139] 步骤516:接收到响应消息的节点丢弃该响应消息,执行步骤520;
[0140] 步骤517:接收到响应消息的节点查看邻居表,如果存在地址域的硬件ID等于接收到的响应消息负载中的地址的硬件ID的邻居表项,则执行步骤518,否则执行步骤519;
[0141] 步骤518:接收到响应消息的节点选取所有地址域的硬件ID等于接收到的响应消息负载中的地址的硬件ID的邻居表项,对于每个选择的邻居表项,该节点执行下述操作:将接收到的响应消息的目的地址更新为该邻居表项的地址域值,通过该邻居表项的接口发送更新的响应消息,执行步骤520;
[0142] 步骤519:接收到响应消息的节点查看自己的X接口并执行步骤301~305计算每个接口的权值,选择权值最小的接口,记为接口n7;然后接收到响应消息的节点查看邻居表,选择所有接口域值等于n7的邻居表项,针对每个选中的邻居表项,接收到响应消息的节点执行下述操作:计算该邻居表项的地址域的坐标与接收到的响应消息负载中的地址的坐标的距离L3,如果距离L3小于接收到响应消息的节点的坐标与接收到的响应消息负载中的地址的坐标的距离,接收到响应消息的节点则将接收到的响应消息的目的地址更新为该邻居表项的地址域值,通过接口n7发送更新的响应消息,执行步骤515;
[0143] 步骤520:节点S接收到响应消息,如果节点S已经收到一个响应消息,该响应消息的源地址,目的地址以及负载与接收到的响应消息的源地址,目的地址以及负载相同,则执行步骤521,否则执行步骤522;
[0144] 步骤521:节点S丢弃接收到的响应消息,执行步骤523;
[0145] 步骤522:节点S保存响应消息中的响应数据;
[0146] 步骤523:结束。
[0147] 实施例1
[0148] 基于表1的仿真参数,本实施例模拟了本发明中的大数据网络实现方法,性能分析如下:当接口数量增加时,数据传输的延迟下降,当接口数量降低时,数据传输的延迟增加,数据获取平均延迟为1.2s。
[0149] 表1仿真参数
[0150]
[0151] 本发明提供了一种大数据网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。