一种基于云的数据获取方法
【专利摘要】本发明提供了一种基于云的数据获取方法,包括一个由移动节点构成的网络,网络中一个数据ID定义一种类型的数据,网络中能够提供同一种类型数据的移动节点构建成一个k?anycast组,该k?anycast组由定义该种类型数据的数据ID唯一标识,一个k?anycast组里的移动节点称为骨干节点。移动节点通过本发明所提供的数据获取方法能够从同时从多个节点获取数据,从而有效降低了获取数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
【专利说明】
-种基于云的数据获取方法
技术领域
[0001] 本发明设及一种数据获取方法,尤其设及的是一种基于云的数据获取方法。
【背景技术】
[0002] 云是能够提供本地服务的一种服务模式。近年来,很多研究工作者致力于云的研 究,W便使用户能够快速获取网络服务。随着网络技术的发展,云会成为未来提供服务的一 种模式。
[0003] 目前,云的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服 务性能。因此,如何降低云提供服务的延迟和代价成为近年来研究的热点问题。
【发明内容】
[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于云 的数据获取方法。
[0005] 本发明通过单播取代广播的方式来实现云,从而降低云提供服务的延迟和代价, 从而有效提局网络服务性能。
[0006] 技术方案:本发明公开了 一种基于云的数据获取方法,包括一个由移动节点构成 的网络,网络中一个数据ID定义一种类型的数据,网络中能够提供同一种类型数据的移动 节点构建成一个k-anycast组,例如提供某部电视剧,该k-anycast组由定义该种类型数据 的数据ID唯一标识,一个k-any cast组里的移动节点称为骨干节点;anycast是任播通信,k- anycast通信允许一个k-anycast组中的多个成员进行任播通信;
[0007]在一个包含X个骨干节点且能提供数据C的k-anycast组中,X> 2,骨干节点Βχ由唯 一网络前缀Μχ标识,X含X含l;k-anycast组由网络前缀集合G定义,如公式(1)所示;数据巧旨 的是电视剧的内容,数据ID C指电视剧的名称或者代号;
[000引
[0009] 骨干节点或者移动节点的地址包括两个部分:i比特的网络前缀和j比特的节点 ID;网络前缀包括化k特的数据ID和(i-k)比特的骨干ID,节点ID包括化k特的数据ID和(j- k)比特的内部ID,i,j和k为小于64的正整数;
[0010] 骨干节点Βχ启动后,创建一个临时地址,该临时地址的网络前缀为i比特的随机 数,节点ID为j比特的随机数;骨干节点Βχ广播一个地址创建消息,消息源地址为临时地址, 负载为一个随机数和数据ID C;骨干节点Βχ等待一定时间,例如1分钟,在接收到同一个k- anycast组里的其他X-1个骨干节点广播的地址创建消息后,通过下述算法判断骨干节点Byi 和骨干节点By2的优先级,yl辛y2:
[00川步骤101:开始;
[001^ 步骤102:骨干节点Βχ判断骨干节点Byi的网络前缀是否等于骨干节点By2的网路前 缀,如果是,则执行步骤104,否则执行步骤103;
[OOU]步骤103:如果骨干节点Byl的网络前缀大于骨干节点By2的网络前缀,骨干节点Bx则 判断骨干节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的网络前缀小于骨干节点By2 的网络前缀,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2,执行步骤107;
[0014]步骤104:骨干节点Bx判断骨干节点Byl的节点ID是否等于骨干节点By2的节点ID,如 果是,则执行步骤106,否则执行步骤105;
[001引步骤105:如果骨干节点Byl的节点ID大于骨干节点By2的节点ID,骨干节点Bx则判断 骨干节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的节点ID小于骨干节点By2的节点 ID,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2,执行步骤107;
[0016]步骤106:如果骨干节点Byl广播的地址创建消息中的随机数大于骨干节点By2广播 的地址创建消息中的随机数,骨干节点Bx则判断骨干节点Byl的优先级大于骨干节点By2,如 果骨干节点Byl广播的地址创建消息中的随机数小于骨干节点By2广播的地址创建消息中的 随机数,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2;
[0017] 步骤107:结束;
[001引骨干节点Bx将同一个k-anycast组中的X个骨干节点按照优先级递增排序,如果骨 干节点Bx的优先级在X骨干节点中的排序值为Px,x ^ Px ^ 1,骨干节点Bx则将自己的骨干ID 设置为化,同时构建一个地址,该地址的网络前缀中的数据ID为C,节点ID为零,同时根据公 式(2)构建网络前缀集合G;
[0019]
[0020] 网络前缀为y的骨干节点根据公式(3-4)获取内部ID空间[L(y),U(y)],X>y>l:
[0023] 通过上述过程,骨干节点获取了具有唯一性的地址,从而确保了通信的正确性。
[0024] 本发明所述方法中,移动节点和骨干节点配置地址后在一跳范围内广播信标消 息,没有配置地址的移动节点Μ收到一个信标消息后,如果该信标消息的源地址的网络前缀 与骨干节点Βχ的网络前缀相同,那么移动节点Μ根据下述过程从骨干节点Βχ获取节点ID:
[00巧]步骤201:开始;
[0026] 步骤202:移动节点Μ构建一个临时地址,该临时地址的网络前缀为i比特的随机 数,节点ID为j比特的随机数,移动节点Μ发送一个地址请求消息,该消息的源地址为临时地 址,目的地址为骨干节点Βχ的地址;
[0027] 步骤203:骨干节点Βχ收到地址请求消息后,从内部ID空间中选择一个未分配的内 部ID,然后向移动节点Μ返回一个地址响应消息,地址响应消息负载为骨干节点Bx所在k- any cast组的网络前缀集合G和分配的内部ID,同时将分配的内部ID标记为已分配状态;
[002引步骤204:移动节点Μ将地址响应消息中的内部ID与骨干节点Bx的网络前缀中的数 据ID C相结合构建成具有唯一性的节点ID,同时保存网络前缀集合G;移动节点Μ将节点ID 与骨干节点Bx的网络前缀相结合构建成一个地址,并开始在一跳范围内广播信标消息,消 息的源地址为新获取的地址;
[00巧]步骤205:结束。
[0030] 通过上述过程,移动节点获取了具有唯一性的地址,从而确保了通信的正确性。
[0031] 本发明所述方法中,由数据ID C标识的k-anycast组由X个骨干节点构成,X个骨干 节点的网络前缀集合为G,X个骨干节点能够提供数据ID C定义的数据C;数据C被划分为Z个 部分,每个数据部分cz由数据部分ID dz唯一标识,Z含Z含1,如公式(4)所示;
[0032]
[0033] 移动节点通过数据地址获取数据,一个数据地址的长度为(i+j)比特,由四个部分 构成,第一个部分为化k特的数据ID,第二部分为(i-k)比特的保留域,其值为0,第Ξ部分为 k比特的数据部分ID集合域,第四部分为(i-k)比特的保留域,其值为0;其中第一部分的数 据ID表明移动节点请求数据的数据ID,第Ξ部分的数据部分ID集合域表明该数据的部分数 据;i,j和k为小于64的正整数;
[0034] 移动节点Μ通过下述过程获取数据C:
[0035] 步骤301:开始;
[0036] 步骤302:移动节点Μ利用网络前缀集合G构建X个骨干节点的地址,并通过定位功 能获取所有X个骨干节点的地理信息,例如手机的定位功能,然后选取g个距离最近的骨干 节点,|G|,g^Z,并利用运g个骨干节点的网络前缀和自己的节点ID构建g个地址,记 做Sx,l含X含g,然后构建g个数据地址,记做Dx.在数据地址Dx中,数据ID为C,数据部分ID集 合为Ρχ,其中数据部分ID集合Px定义了数据部分Cx,如公式(5)所示,其中数据部分ID集合Px 中任一个元素 dx-e定义了数据部分cx-e,1含e含I Px I,数据部分Cx满足公式巧)~(7);
[0040] 步骤303:移动节点Μ发送g个数据请求消息也,在数据请求消息也中,目的地址为数 据地址Dx,源地址为地址Sx;
[0041] 步骤304:根据地址Sx中的网络前缀,数据请求消息也向网络前缀与地址Sx的网络 前缀相同的骨干节点Bx进行路由;
[0042] 步骤305:骨干节点Bx收到数据请求消息也后判断自己是否能提供数据部分Cx,如 果能,执行步骤307,否则执行步骤306;
[0043] 步骤306:骨干节点Bx执行步骤401~414创建Cx;
[0044] 步骤307:骨干节点Bx向移动节点Μ返回数据响应消息Rx,数据响应消息Rx中的负载 为数据部分Cx,目的地址为地址Sx,源地址为数据地址Dx,
[0045] 步骤308:数据响应消息Rx向移动节点Μ进行路由,如果在路由过程中,中间节点也 需要数据部分Cx,则保存数据响应消息Rx从而获取数据部分Cx;
[0046] 步骤309:移动节点Μ在收到g个数据响应消息后,获取了数据C;
[0047] 步骤310:结束;
[0048] 移动节点通过上述过程能够快速获取数据C;
[0049] 骨干节点Bx如果不能提供数据部分Cx,则根据下述过程创建数据部分Cx,其中,参 数h初始值设置为0,网络直径最大值为Η:
[0化0] 步骤401:开始;
[0051] 步骤402:骨干节点Βχ在h跳范围内广播一个资源请求消息,该消息的负载为参数h 和W及能够创建数据部分Cx的资源列表,例如处理器,传感器等等;
[0052] 步骤403:判断收到资源请求消息的节点是否能提供资源请求消息中资源列表中 的资源,如果能提供,则进行步骤404,否则进行步骤405;
[0053] 步骤404:收到资源请求消息的节点向骨干节点Bx发送一个资源响应消息,该消息 的负载为自己能提供的资源列表;
[0054] 步骤405:收到资源请求消息的节点将h递减1,判断h是否大于0,如果是,进行步骤 406,否则进行步骤407;
[0055] 步骤406:收到资源请求消息的节点转发资源请求消息,执行步骤403;
[0056] 步骤407:骨干节点Bx判断所有返回的资源响应消息中的资源是否能构建数据部 分Cx,如果能,进行步骤410,否则进行步骤408;
[0057] 步骤408:骨干节点Bx判断参数h是否等于H,如果是,进行步骤414,否则执行步骤 409;
[0化引步骤409:骨干节点Bx将h递增1,执行步骤402;
[0059] 步骤410:骨干节点Bx向每个返回资源响应消息的节点发送一个数据创建消息,该 消息的负载为创建数据部分Cx的子任务列表;
[0060] 步骤411:骨干节点Bx收到数据创建消息后,执行消息中的子任务W获取数据,然 后向骨干节点Bx返回一个数据创建响应消息,消息负载为执行子任务获取的数据;
[0061] 步骤412:骨干节点Bx收到所有的数据创建响应消息后,构建数据部分Cx,同时向同 一个k-anycast组中的其他骨干节点发送一条数据分享消息,消息负载为数据部分Cx;
[0062] 步骤413:其他骨干节点收到骨干节点Bx发送的数据分享消息后,保存数据部分Cx;
[0063] 步骤414:结束;
[0064] 通过上述过程,与骨干节点Bx同一个k-anycast组的骨干成员在收到所有的数据 分享消息后,根据公式(6)创建数据C并保存数据C。
[0065] 通过上述过程,骨干节点能够快速创建数据C并保存数据C。
[0066] 有益效果:本发明提供了 一种基于云的数据获取方法,移动节点通过本发明所提 供的数据获取方法能够从同时从多个节点获取数据,从而有效降低了获取数据的延迟和代 价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前 景。
【附图说明】
[0067] 下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述 和/或其他方面的优点将会变得更加清楚。
[0068] 图1为本发明所述的网络体系结构示意图。
[0069] 图2为本发明所述的优先级判断流程示意图。
[0070] 图3为本发明所述的移动节点地址配置流程示意图。
[0071 ]图4为本发明所述的获取数据流程示意图。
[0072] 图5为本发明所述的创建数据流程示意图。
【具体实施方式】:
[0073] 本发明提供了一种基于云的数据获取方法,移动节点通过本发明所提供的数据获 取方法能够从同时从多个节点获取数据,从而有效降低了获取数据的延迟和代价,提高了 服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
[0074] 图1为本发明所述的网络体系结构示意图。包括一个由多个移动节点2构成的网络 1,网络1中一个数据ID定义一种类型的数据,网络1中能够提供同一种类型数据的移动节点 构建成一个k-anycast组,例如某部电视剧,该k-anycast组由定义该种类型数据的数据ID 唯一标识,一个k-anycast组里的移动节点称为骨干节点3,日117。日31:是任播通信,4-日]17。曰31 通信允许一个k-anycast组中的多个成员进行任播通信。
[0075] 图2为本发明所述的优先级判断流程示意图。在一个包含X个骨干节点且能提供数 据C的k-anycast组中,X > 2,骨干节点Bx由唯一网络前缀Mx标识,X > X Μ ;k-anycast组由网 络前缀集合G定义,如公式(1)所示;
[0076]
[0077] 骨干节点或者移动节点的地址包括两个部分:i比特的网络前缀和j比特的节点 ID;网络前缀包括化k特的数据ID和(i-k)比特的骨干ID,节点ID包括化k特的数据ID和(j- k)比特的内部ID,i,j和k为小于64的正整数;
[0078] 骨干节点Bx启动后,创建一个临时地址,该临时地址的网络前缀为i比特的随机 数,节点ID为j比特的随机数;骨干节点Bx广播一个地址创建消息,消息源地址为临时地址, 负载为一个随机数和数据ID C;骨干节点Bx等待一定时间,在接收到同一个k-anycast组里 的其他X-1个骨干节点广播的地址创建消息后,通过下述算法判断骨干节点Byl和骨干节点 By2的优先级,yl辛y2:
[0079] 步骤101:开始;
[0080] 步骤102:骨干节点Bx判断骨干节点Byl的网络前缀是否等于骨干节点By2的网路前 缀,如果是,则执行步骤104,否则执行步骤103;
[0081] 步骤103:如果骨干节点Byl的网络前缀大于骨干节点By2的网络前缀,骨干节点Bx则 判断骨干节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的网络前缀小于骨干节点By2 的网络前缀,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2,执行步骤107;
[0082] 步骤104:骨干节点Bx判断骨干节点Byl的节点ID是否等于骨干节点By2的节点ID,如 果是,则执行步骤106,否则执行步骤105;
[0083] 步骤105:如果骨干节点Byl的节点ID大于骨干节点By2的节点ID,骨干节点Bx则判断 骨干节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的节点ID小于骨干节点By2的节点 ID,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2,执行步骤107;
[0084]步骤106:如果骨干节点Byi广播的地址创建消息中的随机数大于骨干节点By2广播 的地址创建消息中的随机数,骨干节点Bx则判断骨干节点Byl的优先级大于骨干节点By2,如 果骨干节点Byl广播的地址创建消息中的随机数小于骨干节点By2广播的地址创建消息中的 随机数,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点By2;
[00化]步骤107:结束;
[0086] 骨干节点Bx将同一个k-anycast组中的X个骨干节点按照优先级递增排序,如果骨 干节点Bx的优先级在X骨干节点中的排序值为px,X ^ Px ^ 1,骨干节点Bx则将自己的骨干ID 设置为化,同时构建一个地址,该地址的网络前缀中的数据ID为C,节点ID为零,同时根据公 式(2)构建网络前缀集合G;
[0087]
[0088] 网络前缀为y的骨干节点根据公式(3-4)获取内部ID空间[L(y),U(y)],X>y>l:
[0091] 图3为本发明所述的移动节点地址配置流程示意图。移动节点和骨干节点配置地 址后在一跳范围内广播信标消息,没有配置地址的移动节点Μ收到一个信标消息后,如果该 信标消息的源地址的网络前缀与骨干节点Βχ的网络前缀相同,那么移动节点Μ根据下述过 程从骨干节点Βχ获取节点ID:
[0092] 步骤201:开始;
[0093] 步骤202:移动节点Μ构建一个临时地址,该临时地址的网络前缀为i比特的随机 数,节点ID为j比特的随机数,移动节点Μ发送一个地址请求消息,该消息的源地址为临时地 址,目的地址为骨干节点Βχ的地址;
[0094] 步骤203:骨干节点Βχ收到地址请求消息后,从内部ID空间中选择一个未分配的内 部ID,然后向移动节点Μ返回一个地址响应消息,地址响应消息负载为骨干节点Bx所在k- any cast组的网络前缀集合G和分配的内部ID,同时将分配的内部ID标记为已分配状态;
[0095] 步骤204:移动节点Μ将地址响应消息中的内部ID与骨干节点Bx的网络前缀中的数 据ID C相结合构建成具有唯一性的节点ID,同时保存网络前缀集合G;移动节点Μ将节点ID 与骨干节点Bx的网络前缀相结合构建成一个地址,并开始在一跳范围内广播信标消息,消 息的源地址为新获取的地址;
[0096] 步骤205:结束。
[0097] 图4为本发明所述的获取数据流程示意图。由数据ID C标识的k-anycast组由X个 骨干节点构成,X个骨干节点的网络前缀集合为G,X个骨干节点能够提供数据ID C定义的数 据C;数据C被划分为Z个部分,每个数据部分cz由数据部分ID dz唯一标识,Z含Z含1,如公式 (4)所示;
[009引
[0099] 移动节点通过数据地址获取数据,一个数据地址的长度为(i+j)比特,由四个部分 构成,第一个部分为化k特的数据ID,第二部分为(i-k)比特的保留域,其值为0,第Ξ部分为 k比特的数据部分ID集合域,第四部分为(i-k)比特的保留域,其值为0;其中第一部分的数 据ID表明移动节点请求数据的数据ID,第Ξ部分的数据部分ID集合域表明该数据的部分数 据;i,j和k为小于64的正整数;
[0100] 移动节点Μ通过下述过程获取数据C:
[0101] 步骤301:开始;
[0102] 步骤302:移动节点Μ利用网络前缀集合G构建X个骨干节点的地址,并通过定位功 能获取所有X个骨干节点的地理信息,然后选取g个距离最近的骨干节点,2含g含|G|,g<Z, 并利用运g个骨干节点的网络前缀和自己的节点ID构建g个地址,记做Sx,l<x<g,然后构 建g个数据地址,记做Dx.在数据地址Dx中,数据ID为C,数据部分ID集合为Px,其中数据部分 ID集合Px定义了数据部分Cx,如公式(5)所示,其中数据部分ID集合Px中任一个元素 dx-e定义 了数据部分Cx-e,l<e^Px|,数据部分Cx满足公式巧)~(7);
[0106] 步骤303:移动节点Μ发送g个数据请求消息也,在数据请求消息也中,目的地址为数 据地址Dx,源地址为地址Sx;
[0107] 步骤304:根据地址Sx中的网络前缀,数据请求消息也向网络前缀与地址Sx的网络 前缀相同的骨干节点Bx进行路由;
[0108] 步骤305:骨干节点Bx收到数据请求消息也后判断自己是否能提供数据部分Cx,如 果能,执行步骤307,否则执行步骤306;
[0109] 步骤306:骨干节点Bx执行步骤401~414创建Cx;然后执行步骤307;
[0110] 步骤307:骨干节点Bx向移动节点Μ返回数据响应消息Rx,数据响应消息Rx中的负载 为数据部分Cx,目的地址为地址Sx,源地址为数据地址Dx,
[0111] 步骤308:数据响应消息Rx向移动节点Μ进行路由,如果在路由过程中,中间节点也 需要数据部分Cx,则保存数据响应消息Rx从而获取数据部分Cx;
[0112] 步骤309:移动节点Μ在收到g个数据响应消息后,获取了数据C;
[0113] 步骤310:结束。
[0114] 图5为本发明所述的创建数据流程示意图。骨干节点Bx如果不能提供数据部分Cx, 则根据下述过程创建数据部分Cx,其中,参数h初始值设置为0,网络直径最大值为Η:
[011引步骤401:开始;
[0116]步骤402:骨干节点Βχ在h跳范围内广播一个资源请求消息,该消息的负载为参数h 和W及能够创建数据部分Cx的资源列表,例如处理器,传感器等等;
[0117] 步骤403:判断收到资源请求消息的节点是否能提供资源请求消息中资源列表中 的资源,如果能提供,则进行步骤404,否则进行步骤405;
[0118] 步骤404:收到资源请求消息的节点向骨干节点Bx发送一个资源响应消息,该消息 的负载为自己能提供的资源列表;
[0119] 步骤405:收到资源请求消息的节点将h递减1,判断h是否大于0,如果是,进行步骤 406,否则进行步骤407;
[0120] 步骤406:收到资源请求消息的节点转发资源请求消息,执行步骤403;
[0121] 步骤407:骨干节点Bx判断所有返回的资源响应消息中的资源是否能构建数据部 分Cx,如果能,进行步骤410,否则进行步骤408;
[0122] 步骤408:骨干节点Bx判断参数h是否等于H,如果是,进行步骤414,否则执行步骤 409;
[0123] 步骤409:骨干节点Bx将h递增1,执行步骤402;
[0124] 步骤410:骨干节点Bx向每个返回资源响应消息的节点发送一个数据创建消息,该 消息的负载为创建数据部分Cx的子任务列表,例如处理器某个数据,感知某个参数等等;
[0125] 步骤411:骨干节点Bx收到数据创建消息后,执行消息中的子任务W获取数据,然 后向骨干节点Bx返回一个数据创建响应消息,消息负载为执行子任务获取的数据;
[0126] 步骤412:骨干节点Bx收到所有的数据创建响应消息后,构建数据部分Cx,同时向同 一个k-anycast组中的其他骨干节点发送一条数据分享消息,消息负载为数据部分Cx;
[0127] 步骤413:其他骨干节点收到骨干节点Bx发送的数据分享消息后,保存数据部分Cx; [012引步骤414:结束;
[0129] 通过上述过程,与骨干节点Bx同一个k-anycast组的骨干成员在收到所有的数据 分享消息后,根据公式(6)创建数据C并保存数据C。
[0130] 实施例1
[0131] 基于表1的仿真参数,本实施例模拟了本发明中的基于云的数据获取方法,性能分 析如下:随着骨干节点的增加,获取服务数据的延迟随之下降,同时移动节点的地址配置代 价也随之降低;移动节点获取服务数据的平均延迟为300ms,移动节点地址配置的延迟为 lOmso
[0132] 表1仿真参数
[0133]
[0134]
[0135] 本发明提供了一种基于云的数据获取方法的思路,具体实现该技术方案的方法和 途径很多,W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润饰也应 视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加 W实现。
【主权项】
1. 一种基于云的数据获取方法,其特征在于,包括一个由移动节点构成的网络,网络中 一个数据ID定义一种类型的数据,网络中能够提供同一种类型数据的移动节点构建成一个 k-anycast组,该k-anycast组由定义该种类型数据的数据ID唯一标识,一个k-anycast组里 的移动节点称为骨干节点; 在一个包含X个骨干节点且能提供数据C的k-anycast组中,X 2 2,骨干节点Bx由唯一网 络前缀Mx标识,X2 l;k_anycast组由网络前缀集合G定义,如公式(1)所示;骨干节点或者移动节点的地址句J古陶个部分:ιΚ狩的网络前缀和j比特的节点ID;网 络前缀包括k比特的数据ID和(i-k)比特的骨干ID,节点ID包括k比特的数据ID和(j-k)比特 的内部ID,i,j和k为小于64的正整数; 骨干节点Bx启动后,创建一个临时地址,该临时地址的网络前缀为i比特的随机数,节点 ID为j比特的随机数;骨干节点Bx广播一个地址创建消息,消息源地址为临时地址,负载为 一个随机数和数据ID c;骨干节点Bx等待一定时间,在接收到同一个k-anycast组里的其他 X-1个骨干节点广播的地址创建消息后,通过下述算法判断骨干节点B yl和骨干节点By2的优 先级,yl关y2: 步骤101:开始; 步骤102:骨干节点Bx判断骨干节点Byl的网络前缀是否等于骨干节点By2的网路前缀,如 果是,则执行步骤104,否则执行步骤103; 步骤103:如果骨干节点Byl的网络前缀大于骨干节点By2的网络前缀,骨干节点Bx则判断 骨干节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的网络前缀小于骨干节点B y2的网 络前缀,骨干节点Bx则判断骨干节点Byl的优先级小于骨干节点B y2,执行步骤107; 步骤104:骨干节点Bx判断骨干节点Byl的节点ID是否等于骨干节点By2的节点ID,如果 是,则执行步骤106,否则执行步骤105; 步骤105:如果骨干节点Byl的节点ID大于骨干节点By2的节点ID,骨干节点Bx则判断骨干 节点Byl的优先级大于骨干节点By2,如果骨干节点Byl的节点ID小于骨干节点B y2的节点ID,骨 干节点Bx则判断骨干节点Byl的优先级小于骨干节点B y2,执行步骤107; 步骤106:如果骨干节点Byl广播的地址创建消息中的随机数大于骨干节点By2广播的地 址创建消息中的随机数,骨干节点Bx则判断骨干节点Byl的优先级大于骨干节点By2,如果骨 干节点B yl广播的地址创建消息中的随机数小于骨干节点By2广播的地址创建消息中的随机 数,骨干节点B x则判断骨干节点Byl的优先级小于骨干节点By2; 步骤107:结束; 骨干节点Bx将同一个k-anycast组中的X个骨干节点按照优先级递增排序,如果骨干节 点Bx的优先级在X骨干节点中的排序值为px,X 2 px 2 1,骨干节点仏则将自己的骨干ID设置 为px,同时构建一个地址,该地址的网络前缀中的数据ID为c,节点ID为零,同时根据公式 (2)构建网络前缀集合G;网络前缀为y的骨干节点根据公式(3-4)获取内部ID空间[L(y),U(y) ],X 2 y 2 1:2. 根据权利要求1所还的一柙Sts的数聒犾取万'/云,兵狩祉仕t,移动节点和骨干节 点配置地址后在一跳范围内广播信标消息,没有配置地址的移动节点Μ收到一个信标消息 后,如果该信标消息的源地址的网络前缀与骨干节点Βχ的网络前缀相同,那么移动节点Μ根 据下述过程从骨干节点Β χ获取节点ID: 步骤201:开始; 步骤202:移动节点Μ构建一个临时地址,该临时地址的网络前缀为i比特的随机数,节 点ID为j比特的随机数,移动节点Μ发送一个地址请求消息,该消息的源地址为临时地址,目 的地址为骨干节点Βχ的地址; 步骤203:骨干节点Βχ收到地址请求消息后,从内部ID空间中选择一个未分配的内部ID, 然后向移动节点Μ返回一个地址响应消息,地址响应消息负载为骨干节点Bx所在k-anycast 组的网络前缀集合G和分配的内部ID,同时将分配的内部ID标记为已分配状态; 步骤204:移动节点Μ将地址响应消息中的内部ID与骨干节点Bx的网络前缀中的数据ID c相结合构建成具有唯一性的节点ID,同时保存网络前缀集合G;移动节点Μ将节点ID与骨干 节点Bx的网络前缀相结合构建成一个地址,并开始在一跳范围内广播信标消息,消息的源 地址为新获取的地址; 步骤205:结束。3. 根据权利要求2所述的一种基于云的数据获取方法,其特征在于,由数据ID c标识的 k-anycast组由X个骨干节点构成,X个骨干节点的网络前缀集合为G,X个骨干节点能够提供 数据ID c定义的数据C;数据C被划分为Z个部分,每个数据部分(^由数据部分ID dz唯一标 识,Z2z 2 1,如公式(4)所示;移动节点通过数据地址获取数据,一个数据地址的长度为(i+j)比特,由四个部分构 成,第一个部分为k比特的数据ID,第二部分为(i-k)比特的保留域,其值为0,第三部分为k 比特的数据部分ID集合域,第四部分为(i-k)比特的保留域,其值为0;其中第一部分的数据 ID表明移动节点请求数据的数据ID,第三部分的数据部分ID集合域表明该数据的部分数 据;i,j和k为小于64的正整数; 移动节点Μ通过下述过程获取数据C: 步骤301:开始; 步骤302:移动节点Μ利用网络前缀集合G构建X个骨干节点的地址,并通过定位功能获 取所有X个骨干节点的地理信息,然后选取g个距离最近的骨干节点,2 < g G |,g < Ζ,并利 用这g个骨干节点的网络前缀和自己的节点ID构建g个地址,记做Sx,1 < X < g,然后构建g个 数据地址,记做Dx.在数据地址Dx中,数据ID为c,数据部分ID集合为P x,其中数据部分ID集合 px定义了数据部分Cx,如公式(5)所示,其中数据部分ID集合px中任一个元素du定义了数据 部分Cx-|PX|,数据部分Cx满足公式(5)~(7);步骤303:移动节点Μ发送g个数据请求消息Qx,在数据请求消息Qx中,目的地址为数据地 址Dx,源地址为地址Sx; 步骤304:根据地址Sx中的网络前缀,数据请求消息Qx向网络前缀与地址Sx的网络前缀 相同的骨干节点Bx进行路由; 步骤305:骨干节点Bx收到数据请求消息Qx后判断自己是否能提供数据部分Cx,如果能, 执行步骤307,否则执行步骤306; 步骤306:骨干节点Bx执行步骤401~414创建Cx; 步骤307:骨干节点Bx向移动节点Μ返回数据响应消息Rx,数据响应消息Rx中的负载为数 据部分Cx,目的地址为地址Sx,源地址为数据地址Dx, 步骤308:数据响应消息Rx向移动节点Μ进行路由,如果在路由过程中,中间节点也需要 数据部分Cx,则保存数据响应消息Rx从而获取数据部分Cx; 步骤309:移动节点Μ在收到g个数据响应消息后,获取了数据C; 步骤310:结束; 骨干节点Bx如果不能提供数据部分Cx,则根据下述过程创建数据部分Cx,其中,参数h初 始值设置为〇,网络直径最大值为Η: 步骤401:开始; 步骤402:骨干节点Βχ在h跳范围内广播一个资源请求消息,该消息的负载为参数h和以 及能够创建数据部分Cx的资源列表; 步骤403:判断收到资源请求消息的节点是否能提供资源请求消息中资源列表中的资 源,如果能提供,则进行步骤404,否则进行步骤405; 步骤404:收到资源请求消息的节点向骨干节点Bx发送一个资源响应消息,该消息的负 载为自己能提供的资源列表; 步骤405:收到资源请求消息的节点将h递减1,判断h是否大于0,如果是,进行步骤406, 否则进行步骤407; 步骤406:收到资源请求消息的节点转发资源请求消息,执行步骤403; 步骤407:骨干节点Bx判断所有返回的资源响应消息中的资源是否能构建数据部分Cx, 如果能,进行步骤410,否则进行步骤408; 步骤408:骨干节点Bx判断参数h是否等于H,如果是,进行步骤414,否则执行步骤409; 步骤409:骨干节点Bx将h递增1,执行步骤402; 步骤410:骨干节点Bx向每个返回资源响应消息的节点发送一个数据创建消息,该消息 的负载为创建数据部分Cx的子任务列表; 步骤411:骨干节点Bx收到数据创建消息后,执行消息中的子任务以获取数据,然后向骨 干节点Bx返回一个数据创建响应消息,消息负载为执行子任务获取的数据; 步骤412:骨干节点Bx收到所有的数据创建响应消息后,构建数据部分Cx,同时向同一个 k-any cast组中的其他骨干节点发送一条数据分享消息,消息负载为数据部分Cx; 步骤413:其他骨干节点收到骨干节点Bx发送的数据分享消息后,保存数据部分Cx; 步骤414:结束; 通过上述过程,与骨干节点Bx同一个k-anycast组的骨干成员在收到所有的数据分享消 息后,根据公式(6)创建数据C并保存数据C。
【文档编号】H04L29/08GK105871641SQ201610403666
【公开日】2016年8月17日
【申请日】2016年6月8日
【发明人】王晓喃
【申请人】常熟理工学院