一种无线传感器网络数据通信方法

文档序号:10515368阅读:374来源:国知局
一种无线传感器网络数据通信方法
【专利摘要】本发明提供了一种无线传感器网络数据通信方法,所述无线传感器网络由X个接入节点和两个以上传感器节点构成,X≥2,接入节点为固定节点且分布于网络所覆盖的区域边缘;接入节点APx由一个具有网络唯一性的接入节点ID Ix标识,X≥x≥1;无线传感器网络内所有接入节点与一个接入路由器相连,无线传感器网络通过该接入路由器实现与互联网的数据通信。用户通过本发明所提供的无线传感器网络数据通信方法能够从距离最近的传感器节点以单播方式获取数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
【专利说明】
-种无线传感器网络数据通信方法
技术领域
[0001] 本发明设及一种通信方法,尤其设及的是一种无线传感器网络数据通信方法。
【背景技术】
[0002] 近年来,很多研究工作致力于无线传感器网络,W便通过无线传感器网络能够快 速获取网络服务。随着无线传感器网络技术的发展,无线传感器网络会成为未来提供服务 的一种模式。
[0003] 目前,无线传感器网络的实现模式是通过广播来实现,因此延迟和代价都比较大, 降低了网络服务性能。因此,如何降低无线传感器网络提供数据的延迟和代价成为近年来 研究的热点问题。

【发明内容】

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种无线传 感器网络数据通信方法。
[0005] 本发明通过单播取代广播的方式来实现无线传感器网络,从而降低无线传感器网 络提供数据的延迟和代价,从而有效提高网络服务性能。
[0006] 技术方案:本发明公开了 一种无线传感器网络数据通信方法,一个无线传感器网 络由X个接入节点和两个W上传感器节点构成,X含2,接入节点为固定节点且分布于网络所 覆盖的区域边缘;接入节点ΑΡχ由一个具有网络唯一性的接入节点ID Ιχ标识,X>x> 1;无线 传感器网络内所有接入节点与一个接入路由器相连,无线传感器网络通过该接入路由器实 现与互联网的数据通信;无线传感器网络内所有接入节点和传感器节点具有相同的网络前 缀,其值等于接入路由器的网络前缀;无线传感器网络中所有接入节点的接入节点ID Ix构 建成接入节点ID集合G,如公式(1)所示;
[0007]
[000引一种数据ID唯一标识一种类型的数据,例如某部电视剧,能够创建并提供该类型 数据的所有传感器节点构建成一个k-anycast组,anycast为任播通信,k-anycast是多个任 播组成员可W同时进行任播通信,该k-anycast组由k-anycast地址唯一标识;两个W上k- anycast组成员能够同时提供一种类型数据的不同部分;
[0009] k-anycast地址结构包括Ξ个部分,第一部分为i比特的网络前缀,其值为预先配 置;第二部分为j比特的数据ID,唯一标识一种类型的数据;第Ξ部分为(128-i-j)比特的保 留域,其值为0,其中i为小于64的整数,j为小于48的整数;
[0010] 无线传感器网络中每个接入节点和传感器节点具有一个单播地址,单播地址结构 包括Ξ个部分,第一部分为i比特的网络前缀,其值为预先配置;第二部分为jl比特的接入 节点ID,唯一标识一个接入节点,该部分由接入节点的地理横坐标和地理纵坐标构成,一个 无线传感器网络内所有接入节点具有不同的地理横坐标和地理纵坐标;第Ξ部分为(128- i-jl)比特的节点ID,用于标识一个传感器节点;接入节点的节点ID为0;接入节点ID与节点 ID构成链路地址,其中j和jl的值相同;
[0011] -种类型的数据C被划分为Z个部分,第Z个数据部分cz由值为dz的数据部分ID唯一 标识,Z > Z > 1,如公式(2)所示;
[0012]
[0013] 接入路由器定期广播路由器发布消息,接入节点ΑΡχ通过侦听接入路由器广播的 路由器发布消息来获取网络前缀,并利用自己的地理位置横坐标和地理位置纵坐标与网络 前缀相结合构建成自己的单播地址,其中节点ID为0;接入节点ΑΡχ获取单播地址后,向接入 路由器发送地址广播消息;接入路由器收到网络内X个接入节点的地址广播消息后,获取X 个接入节点的接入节点ID集合G;
[0014] 接入路由器将接入节点ID集合G中的X个接入节点ID进行优先级排序,广播一个接 入节点ID排序消息,消息负载为排序后的X个接入节点ID;接入节点ΑΡχ接收到接入节点ID 排序消息后,保存接入节点10集合6,如果接入节点4^^检测到自己的接入节点10的优先级 排序值为y,l<y<X,则根据公式(3)和(4)获取节点ID空间[L(y),U(y)];
[0017]接入节点ID 1x1和接入节点ID I。的优先级比较算法如下所示:
[001引情况1:如果接入节点ID 1x1的地理横坐标域值大于接入节点ID 1x2的地理横坐标 域值,则接入节点ID 1x1的优先级大于接入节点ID 1x2;
[0019] 情况2:如果接入节点ID 1x1的地理横坐标域值小于接入节点ID 1x2的地理横坐标 域值,则接入节点ID 1x1的优先级小于接入节点ID 1x2;
[0020] 情况3:如果接入节点ID 1x1的地理横坐标域值等于接入节点ID 1x2的地理横坐标 域值并且接入节点ID 1x1的地理纵坐标域值大于接入节点ID 1x2的地理纵坐标域值,则接 入节点ID 1x1的优先级大于接入节点ID 1x2;
[0021] 情况4:如果接入节点ID 1x1的地理横坐标域值等于接入节点ID 1x2的地理横坐标 域值并且接入节点ID 1x1的地理纵坐标域值小于接入节点ID 1x2的地理纵坐标域值,则接 入节点ID 1x1的优先级小于接入节点ID 1x2。
[0022] 通过上述过程,每个接入节点能够获取具有唯一性的接入节点ID,从而确保了通 信的正确性。
[0023] 本发明所述方法中,接入节点或者传感器节点配置单播地址后,开始广播信标帖, 帖负载为网络前缀;
[0024] 没有配置单播地址的传感器节点S收到信标帖后,如果该信标帖源地址的接入节 点ID与接入节点ΑΡχ的接入节点ID相同,那么传感器节点S通过下述过程从接入节点ΑΡχ获取 单播地址:
[00巧]步骤301:开始;
[0026] 步骤302:传感器节点S构建临时单播地址,该地址的网络前缀为信标帖负载中的 网络前缀,接入节点ID为0,节点ID为随机数;传感器节点S发送一条地址请求消息,消息源 地址为临时单播地址,目的地址为接入节点ΑΡχ的单播地址;
[0027] 步骤303:接入节点ΑΡχ收到地址请求消息后,从节点ID空间中选择一个未分配的 节点ID,向传感器节点S返回一条地址响应消息,消息负载为接入节点ID集合G和分配的节 点ID,同时,接入节点ΑΡχ将分配的节点ID标记为已分配状态;
[00%]步骤304:传感器节点别欠到地址响应消息后,保存接入节点ID集合G,同时将地址 响应消息中的节点ID与接入节点ΑΡχ的网络前缀和接入节点ID相结合构建成一个单播地 址,并开始广播信标帖,帖源地址为传感器节点S获取的新地址;
[00巧]步骤305:结束。
[0030] 通过上述过程,每个传感器节点能够获取具有唯一性的单播地址,从而确保了通 信的正确性。
[0031] 本发明所述方法中,每个接入节点保存一个最优k-anycast组成员列表和非最优 k-anycast列表,两个列表中的表项包括四个域:k-anycast地址域,组成员单播地址域,距 离域和生命周期域;其中,距离域指与k-anycast组成员的距离值;
[0032] k-anycast地址为K的k-anycast组成员身份预先设置;
[0033] k-anycast地址为K的k-anycast组成员通过单播地址配置过程获取所在无线传感 器网络的X个接入节点的接入节点ID集合G,然后执行下述操作:
[0034] 步骤401:开始;
[0035] 步骤402:k-anycast组成员通过网络前缀W及接入节点ID集合G构建本无线传感 器网络内每个接入节点的单播地址,然后向每个接入节点发送一个更新消息,消息源地址 为k-anycast组成员的单播地址,目的地址为接入节点的单播地址,消息负载为k-anycast 地址K和距离参数d,参数d的初始值为0;
[0036] 步骤403:更新消息在路由过程中每经过一个中间节点,距离参数d递增1,最终,更 新消息到达目的接入节点;
[0037] 步骤404:目的接入节点收到该更新消息后,根据下述Ξ种情况分别进行相应的操 作:
[0038] 情况1,目的接入节点的最优k-anycast组成员列表中没有k-anycast地址域等于K 的表项:目的接入节点在最优k-anycast组成员列表中增加一个表项,其中,k-anycast地址 域为K,组成员单播地址域为更新消息的源地址,距离域值为更新消息中的距离参数d值,生 命周期设置为最大值,例如60分钟;
[0039] 情况2,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的 表项且该表项的距离域大于或者等于更新消息中的参数d值:目的接入节点将该表项的组 成员单播地址域设置为更新消息的源地址,距离域值为更新消息中的距离参数d值,生命周 期设置为最大值,例如60分钟;
[0040] 情况3,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的 表项且该表项的距离域小于更新消息中的参数d值:目的接入节点在非最优k-anycast组成 员列表中增加一个表项,其中,k-anycast地址域为K,组成员单播地址域为更新消息的源地 址,距离域值为更新消息中的距离参数d值,生命周期设置为最大值,例如60分钟;
[0041] 步骤405:目的接入节点在收到所有k-anycast组成员的更新消息后,获取距离自 己最近的k-any cas t组成员的单播地址;
[0042] 步骤406:结束;
[0043] 如果k-anycast组成员的地理坐标发生变化,那么它向每个接入节点发送更新消 息从而确保接入节点能够保存距离最近的k-any cas t组成员的信息;
[0044] 如果接入节点的最优k-anycast组成员列表中和非最优k-anycast组成员列表中 表项的生命周期衰减为0,接入节点则删除该表项;
[0045] 如果接入节点的最优k-any cast组成员列表中表项为空,它则从非最优k-any cast 组成员列表中选取一个距离最近的k-anycast组成员来更新最优k-anycast组成员列表中 的表项。
[0046] 通过上述过程,接入节点能够获取距离最近的k-anycast组成员的信息,从而实现 数据通信。
[0047] 本发明所述方法中,一种类型的数据C由数据ID C定义,无线传感器网络内能够提 供数据C的所有传感器节点构成k-anycast组,无线传感器网络通过接入路由器AR1接入到 互联网,接入路由器AR1的网络前缀为GRP1;
[004引k-anycast组成员Αχ根据下述过程创建数据部分Cx,其中,参数h初始值设置为0,网 络直径最大值为Η:
[0049] 步骤101:开始;
[0050] 步骤102: k-anycast组成员Αχ在h跳范围内广播一个数据创建消息,该消息的负载 为参数h和数据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中 数据部分ID集合Px中任一个元素 dx-w定义了数据部分cx-w,l含W含|Px| ;
[0化1 ]
[0052]步骤103:判断收到数据创建消息的节点是否能创建并提供数据部分cx-w,如果能 提供,则进行步骤104,否则进行步骤105;
[0化3] 步骤104:收到数据创建消息的节点向k-anycast组成员Αχ发送一个数据创建响应 消息,该消息的负载为数据部分cx-w,进行步骤107;
[0054] 步骤105:收到数据创建消息的节点将参数h递减1,判断h是否大于0,如果是,进行 步骤106,否则进行步骤107;
[0055] 步骤106:收到数据创建消息的节点转发数据创建消息,执行步骤103;
[0056] 步骤107:k-anycast组成员Αχ判断所有返回的数据创新响应消息中的负载是否能 构建数据部分Cx,如果不能,进行步骤108,否则进行步骤110;
[0057] 步骤108: k-anycast组成员Αχ判断h是否等于H,如果是,进行步骤112,否则执行步 骤 109;
[005引步骤109:k-anycast组成员Αχ将h递增1,执行步骤102;
[0059] 步骤110: k-anycast组成员Αχ向其他所有k-anycast成员发送一条数据分享消息, 消息负载为数据部分Cx;
[0060] 步骤111:其他k-anycast组成员收到k-anycast组成员Αχ发送的数据分享消息后, 保存数据部分Cx;
[006U 步骤112:结束;
[0062] 通过上述过程,每个k-anycast组成员在收到其他k-anycast成员发送的数据分享 消息后,创建数据C并保存数据C。通过上述过程,,每个k-anycast组成员能够创建并保存数 据C。
[0063] 本发明所述方法中,互联网中的节点N通过下述过程取数据C:
[0064] 步骤201:开始;
[0(?日]步骤202:节点N构建一个k-anycast地址,该k-anycast地址的网络前缀为GRP1,数 据ID为C;节点N发送一个数据请求消息,该消息的目的地址为构建的k-anycast地址,源地 址为自己的单播地址,基于目的地址的网络前缀GRP1,该数据请求消息达到接入路由器 AR1;
[0066] 步骤203:接入路由器AR1利用节点ID集合G为每个连接的接入节点ΑΡχ构建一个单 播地址,该地址记做Ux,在地址Ux中,网络前缀为GRP1,接入节点ID为接入节点ΑΡχ的接入节 点ID;
[0067] 步骤204:接入路由器AR1发送数据部分请求消息,该消息记做Rx,在数据部分请求 消息Rx中,源地址为接入路由器AR1的单播地址U,目的地址为单播地址Ux,负载为数据ID C 和数据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中数据部分 ID集合Px中任一个元素 dx-w定义了数据部分cx-w,1 < W引Px I,数据部分Cx满足公式(4)和 (5),由此,数据部分请求消息Rx到达接入节点ΑΡχ;
[0070] 步骤205:接入节点ΑΡχ收到数据部分请求消息Rx后,查看最优k-anycast组成员列 表中k-anycast地址域值为K的表项,并获取该表项的组成员单播地址域值Τχ;将数据部分 请求消息Rx的目的地址更新为单播地址Τχ,源地址更新为自己的单播地址Ux,发送数据部分 请求消息Rx;由此数据部分请求消息Rx被路由到单播地址为Τχ的最优k-anycast成员Αχ;
[0071] 步骤206:判断最优k-anycast组成员Αχ能否提供数据部分Cx,如果能,则进行步骤 208,否则执行步骤207;
[0072] 步骤207:k-anycast组成员Αχ执行步骤101~步骤112创建数据部分Cx;
[0073] 步骤208:k-anycast组成员Αχ发送一个数据部分响应消息Ex,数据部分响应消息Ex 的负载为数据部分Cx,目的地址为单播地址Ux,源地址为单播地址Τχ;
[0074] 步骤209:接入节点41\收到数据部分响应消息Ex后,将数据部分响应消息Ex的目的 单播地址更新为单播地址U,发送数据部分响应消息Ex,数据部分响应消息Ex到达接入路由 器 AR1;
[0075] 步骤210:接入路由器AR1收到X个接入节点返回的数据部分响应消息后,利用数据 部分响应消息中的数据部分构建数据C,返回一个数据响应消息,该消息的负载为数据C,目 的地址为节点N的单播地址;
[0076] 步骤211:节点训欠到数据响应消息后,获取了数据C;
[0077] 步骤212:结束。
[0078] 通过上述过程,节点能够从距离最近的k-any cast组成员获取数据C。
[0079] 有益效果:本发明提供了 一种无线传感器网络数据通信方法,用户通过本发明所 提供的无线传感器网络数据通信方法能够从距离最近的传感器节点W单播方式获取数据, 缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆 管理等领域,具有广泛的应用前景。
【附图说明】
[0080] 下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述 和/或其他方面的优点将会变得更加清楚。
[0081 ]图1为本发明所述的无线传感器网络体系结构示意图。
[0082] 图2为本发明所述的k-anycast地址结构示意图。
[0083] 图3为本发明所述的单播地址结构示意图。
[0084] 图4为本发明所述的单播地址配置流程示意图。
[0085] 图5为本发明所述的k-anycast成员更新流程示意图。
[0086] 图6为本发明所述的数据创建流程示意图。
[0087] 图7为本发明所述的数据获取流程示意图。
【具体实施方式】:
[0088] 本发明提供了一种无线传感器网络数据通信方法,用户通过本发明所提供的无线 传感器网络数据通信方法能够从距离最近的传感器节点W单播方式获取数据,缩短了获取 服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领 域,具有广泛的应用前景。
[0089] 图1为本发明所述的无线传感器网络体系结构示意图。一个无线传感器网络1由X 个接入节点2和两个W上传感器节点3构成,X含2,接入节点2为固定节点且分布于网络所覆 盖的区域边缘;接入节点2APx由一个具有网络唯一性的接入节点ID Ix标识,X含X含1;无线 传感器网络1内所有接入节点2与一个接入路由器4相连,无线传感器网络1通过该接入路由 器4实现与互联网的数据通信;无线传感器网络1内所有接入节点2和传感器节点3具有相同 的网络前缀,其值等于接入路由器4的网络前缀;无线传感器网络1中所有接入节点2的接入 节点ID Ix构建成接入节点ID集合G,如公式(1)所示;
[0090]
[0091] -种数据ID唯一标识一种类型的数据,能够创建并提供该类型数据的所有传感器 节点3构建成一个k-any cast组,该k-any cast组由k-any cast地址唯一标识;两个W上k- anycast组成员能够同时提供一种类型数据的不同部分。
[0092] 图2为本发明所述的k-anycast地址结构示意图。k-anycast地址结构包括Ξ个部 分,第一部分为i比特的网络前缀,其值为预先配置;第二部分为j比特的数据ID,唯一标识 一种类型的数据;第Ξ部分为(128-i-j)比特的保留域,其值为0,其中i为小于64的整数,j 为小于48的整数。
[0093] 图3为本发明所述的单播地址结构示意图。无线传感器网络中每个接入节点和传 感器节点具有一个单播地址,单播地址结构包括=个部分,第一部分为i比特的网络前缀, 其值为预先配置;第二部分为j 1比特的接入节点ID,唯一标识一个接入节点,该部分由接 入节点的地理横坐标和地理纵坐标构成,一个无线传感器网络内所有接入节点具有不同的 地理横坐标和地理纵坐标;第Ξ部分为(128-i-jl)比特的节点ID,用于标识一个传感器节 点;接入节点的节点ID为0;接入节点ID与节点ID构成链路地址,其中j和j 1的值相同;
[0094] -种类型的数据C被划分为Z个部分,第Z个数据部分cz由值为dz的数据部分ID唯一 标识,Z > Z > 1,如公式(2)所示;
[0095]
[0096] 接入路由器定期广播路由器发布消息,接入节点ΑΡχ通过侦听接入路由器广播的 路由器发布消息来获取网络前缀,并利用自己的地理位置横坐标和地理位置纵坐标与网络 前缀相结合构建成自己的单播地址,其中节点ID为0;接入节点ΑΡχ获取单播地址后,向接入 路由器发送地址广播消息;接入路由器收到网络内X个接入节点的地址广播消息后,获取X 个接入节点的接入节点ID集合G;
[0097] 接入路由器将接入节点ID集合G中的X个接入节点ID进行优先级排序,广播一个接 入节点ID排序消息,消息负载为排序后的X个接入节点ID;接入节点ΑΡχ接收到接入节点ID 排序消息后,保存接入节点10集合6,如果接入节点4^^检测到自己的接入节点10的优先级 排序值为y,l<y<X,则根据公式(3)和(4)获取节点ID空间[L(y),U(y)];
[0100]接入节点ID 1x1和接入节点ID 1x2的优先级比较算法如下所示:
[0101]情况1:如果接入节点ID 1x1的地理横坐标域值大于接入节点ID 1x2的地理横坐标 域值,则接入节点ID 1x1的优先级大于接入节点ID 1x2;
[0102] 情况2:如果接入节点ID 1x1的地理横坐标域值小于接入节点ID 1x2的地理横坐标 域值,则接入节点ID 1x1的优先级小于接入节点ID 1x2;
[0103]情况3:如果接入节点ID 1x1的地理横坐标域值等于接入节点ID 1x2的地理横坐标 域值并且接入节点ID 1x1的地理纵坐标域值大于接入节点ID 1x2的地理纵坐标域值,则接 入节点ID 1x1的优先级大于接入节点ID 1x2;
[0104] 情况4:如果接入节点ID 1x1的地理横坐标域值等于接入节点ID 1x2的地理横坐标 域值并且接入节点ID 1x1的地理纵坐标域值小于接入节点ID 1x2的地理纵坐标域值,则接 入节点ID 1x1的优先级小于接入节点ID 1x2。
[0105] 图4为本发明所述的单播地址配置流程示意图。接入节点或者传感器节点配置单 播地址后,开始广播信标帖,帖负载为网络前缀;
[0106] 没有配置单播地址的传感器节点S收到信标帖后,如果该信标帖源地址的接入节 点ID与接入节点ΑΡχ的接入节点ID相同,那么传感器节点S通过下述过程从接入节点ΑΡχ获取 单播地址:
[0107] 步骤301:开始;
[0108] 步骤302:传感器节点S构建临时单播地址,该地址的网络前缀为信标帖负载中的 网络前缀,接入节点ID为0,节点ID为随机数;传感器节点S发送一条地址请求消息,消息源 地址为临时单播地址,目的地址为接入节点ΑΡχ的单播地址;
[0109] 步骤303:接入节点ΑΡχ收到地址请求消息后,从节点ID空间中选择一个未分配的 节点ID,向传感器节点S返回一条地址响应消息,消息负载为接入节点ID集合G和分配的节 点ID,同时,接入节点ΑΡχ将分配的节点ID标记为已分配状态;
[0110] 步骤304:传感器节点别欠到地址响应消息后,保存接入节点ID集合G,同时将地址 响应消息中的节点ID与接入节点ΑΡχ的网络前缀和接入节点ID相结合构建成一个单播地 址,并开始广播信标帖,帖源地址为传感器节点S获取的新地址;
[01川步骤305:结束。
[0112] 图5为本发明所述的k-anycast成员更新流程示意图。每个接入节点保存一个最优 k-anycast组成员列表和非最优k-anycast列表,两个列表中的表项包括四个域:k-anycast 地址域,组成员单播地址域,距离域和生命周期域;其中,距离域指与k-anycast组成员的距 离值;
[0113] k-anycast地址为K的k-anycast组成员身份预先设置;
[0114] k-anycast地址为K的k-anycast组成员通过单播地址配置过程获取所在无线传感 器网络的X个接入节点的接入节点ID集合G,然后执行下述操作:
[011引步骤401:开始;
[0116]步骤402:k-anycast组成员通过网络前缀W及接入节点ID集合G构建本无线传感 器网络内每个接入节点的单播地址,然后向每个接入节点发送一个更新消息,消息源地址 为k-anycast组成员的单播地址,目的地址为接入节点的单播地址,消息负载为k-anycast 地址K和距离参数d,参数d的初始值为0;
[0117] 步骤403:更新消息在路由过程中每经过一个中间节点,距离参数d递增1,最终,更 新消息到达目的接入节点;
[0118] 步骤404:目的接入节点收到该更新消息后,根据下述Ξ种情况分别进行相应的操 作:
[0119]情况1,目的接入节点的最优k-anycast组成员列表中没有k-anycast地址域等于K 的表项:目的接入节点在最优k-anycast组成员列表中增加一个表项,其中,k-anycast地址 域为K,组成员单播地址域为更新消息的源地址,距离域值为更新消息中的距离参数d值,生 命周期设置为最大值,例如60分钟;
[0120] 情况2,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的 表项且该表项的距离域大于或者等于更新消息中的参数d值:目的接入节点将该表项的组 成员单播地址域设置为更新消息的源地址,距离域值为更新消息中的距离参数d值,生命周 期设置为最大值,例如60分钟;
[0121] 情况3,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的 表项且该表项的距离域小于更新消息中的参数d值:目的接入节点在非最优k-anycast组成 员列表中增加一个表项,其中,k-anycast地址域为Κ,组成员单播地址域为更新消息的源地 址,距离域值为更新消息中的距离参数d值,生命周期设置为最大值,例如60分钟;
[0122] 步骤405:目的接入节点在收到所有k-anycast组成员的更新消息后,获取距离自 己最近的k-any cas t组成员的单播地址;
[0123] 步骤406:结束;
[0124] 如果k-anycast组成员的地理坐标发生变化,那么它向每个接入节点发送更新消 息从而确保接入节点能够保存距离最近的k-any cas t组成员的信息;
[0125] 如果接入节点的最优k-anycast组成员列表中和非最优k-anycast组成员列表中 表项的生命周期衰减为0,接入节点则删除该表项;
[01%]如果接入节点的最优k-any cast组成员列表中表项为空,它则从非最优k-any cast 组成员列表中选取一个距离最近的k-anycast组成员来更新最优k-anycast组成员列表中 的表项。
[0127]图6为本发明所述的数据创建流程示意图。一种类型的数据C由数据ID C定义,无 线传感器网络内能够提供数据C的所有传感器节点构成k-anycast组,无线传感器网络通过 接入路由器AR1接入到互联网,接入路由器AR1的网络前缀为GRP1;
[01%] k-anycast组成员Αχ根据下述过程创建数据部分Cx,其中,参数h初始值设置为0,网 络直径最大值为Η:
[0129] 步骤101:开始;
[0130] 步骤102: k-anycast组成员Αχ在h跳范围内广播一个数据创建消息,该消息的负载 为参数h和数据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中 数据部分ID集合Px中任一个元素 dx-w定义了数据部分cx-w,l含W含|Px| ;
[0131]
[0132] 步骤103:判断收到数据创建消息的节点是否能创建并提供数据部分cx-w,如果能 提供,则进行步骤104,否则进行步骤105;
[0133] 步骤104:收到数据创建消息的节点向k-anycast组成员Αχ发送一个数据创建响应 消息,该消息的负载为数据部分cx-w,进行步骤107;
[0134] 步骤105:收到数据创建消息的节点将参数h递减1,判断h是否大于0,如果是,进行 步骤106,否则进行步骤107;
[0135] 步骤106:收到数据创建消息的节点转发数据创建消息,执行步骤103;
[0136] 步骤107:k-anycast组成员Αχ判断所有返回的数据创新响应消息中的负载是否能 构建数据部分Cx,如果不能,进行步骤108,否则进行步骤110;
[0137] 步骤108: k-anycast组成员Αχ判断h是否等于Η,如果是,进行步骤112,否则执行步 骤 109;
[013引步骤109:k-anycast组成员Αχ将h递增1,执行步骤102;
[0139] 步骤110: k-anycast组成员Αχ向其他所有k-anycast成员发送一条数据分享消息, 消息负载为数据部分Cx;
[0140] 步骤111:其他k-anycast组成员收到k-anycast组成员Αχ发送的数据分享消息后, 保存数据部分Cx;
[0141] 步骤112:结束;
[0142] 通过上述过程,每个k-anycast组成员在收到其他k-anycast成员发送的数据分享 消息后,创建数据C并保存数据C。
[0143] 图7为本发明所述的数据获取流程示意图。互联网中的节点N通过下述过程取数据 C:
[0144] 步骤201:开始;
[0145] 步骤202:节点N构建一个k-anycast地址,该k-anycast地址的网络前缀为GRP1,数 据ID为C;节点N发送一个数据请求消息,该消息的目的地址为构建的k-anycast地址,源地 址为自己的单播地址,基于目的地址的网络前缀GRP1,该数据请求消息达到接入路由器 AR1;
[0146] 步骤203:接入路由器AR1利用节点ID集合G为每个连接的接入节点ΑΡχ构建一个单 播地址,该地址记做Ux,在地址Ux中,网络前缀为GRP1,接入节点ID为接入节点ΑΡχ的接入节 点ID;
[0147] 步骤204:接入路由器AR1发送数据部分请求消息,该消息记做Rx,在数据部分请求 消息Rx中,源地址为接入路由器AR1的单播地址U,目的地址为单播地址Ux,负载为数据ID C 和数据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中数据部分 ID集合Px中任一个元素 dx-w定义了数据部分cx-w,1 < W引Px I,数据部分Cx满足公式(4)和 (5),由此,数据部分请求消息Rx到达接入节点ΑΡχ;
[0150] 步骤205:接入节点ΑΡχ收到数据部分请求消息Rx后,查看最优k-anycast组成员列 表中k-anycast地址域值为K的表项,并获取该表项的组成员单播地址域值Τχ;将数据部分 请求消息Rx的目的地址更新为单播地址Τχ,源地址更新为自己的单播地址Ux,发送数据部分 请求消息Rx;由此数据部分请求消息Rx被路由到单播地址为Τχ的最优k-anycast成员Αχ;
[0151] 步骤206:判断最优k-anycast组成员Αχ能否提供数据部分Cx,如果能,则进行步骤 208,否则执行步骤207;
[0152] 步骤207:k-anycast组成员Αχ执行步骤101~步骤112创建数据部分Cx;
[0153] 步骤208: k-anycast组成员Αχ发送一个数据部分响应消息Ex,数据部分响应消息Ex 的负载为数据部分Cx,目的地址为单播地址Ux,源地址为单播地址Τχ;
[0154] 步骤209:接入节点41\收到数据部分响应消息Ex后,将数据部分响应消息Ex的目的 单播地址更新为单播地址U,发送数据部分响应消息Ex,数据部分响应消息Ex到达接入路由 器 AR1;
[0155] 步骤210:接入路由器AR1收到X个接入节点返回的数据部分响应消息后,利用数据 部分响应消息中的数据部分构建数据C,返回一个数据响应消息,该消息的负载为数据C,目 的地址为节点N的单播地址;
[0156] 步骤211:节点训欠到数据响应消息后,获取了数据C;
[0157] 步骤212:结束。
[015引实施例1
[0159] 基于表1的仿真参数,本实施例模拟了本发明中的无线传感器网络数据通信方法, 性能分析如下:当接入节点数量增加的情况下,数据通信延迟和能量消耗都随之降低。数据 获取的平均延迟为20s,能量消耗为180mJ。
[0160] 表1仿真参数
[0161]
[0163]本发明提供了一种无线传感器网络数据通信方法的思路,具体实现该技术方案的 方法和途径很多,W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润 饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加 W实 现。
【主权项】
1. 一种无线传感器网络数据通信方法,其特征在于,一个无线传感器网络由X个接入节 点和两个以上传感器节点构成,X2 2,接入节点为固定节点且分布于网络所覆盖的区域边 缘;接入节点APX由一个具有网络唯一性的接入节点ID Ix标识,X2 1;无线传感器网络内 所有接入节点与一个接入路由器相连,无线传感器网络通过该接入路由器实现与互联网的 数据通信;无线传感器网络内所有接入节点和传感器节点具有相同的网络前缀,其值等于 接入路由器的网络前缀;无线传感器网络中所有接入节点的接入节点ID Ix构建成接入节 点ID集合G,如公式(1)所示;一种数据ID唯一标识一种类型的数据,能够创建并提供该类型数据的所有传感器节点 构建成一个k-anycast组,该k-anycast组由k-anycast地址唯一标识;两个以上k-anycast 组成员能够同时提供一种类型数据的不同部分; k-anycast地址结构包括三个部分,第一部分为i比特的网络前缀,其值为预先配置;第 二部分为j比特的数据ID,唯一标识一种类型的数据;第三部分为(128-i-j)比特的保留域, 其值为〇,其中i为小于64的整数,j为小于48的整数; 无线传感器网络中每个接入节点和传感器节点具有一个单播地址,单播地址结构包括 三个部分,第一部分为i比特的网络前缀,其值为预先配置;第二部分为jl比特的接入节点 ID,唯一标识一个接入节点,该部分由接入节点的地理横坐标和地理纵坐标构成,一个无线 传感器网络内所有接入节点具有不同的地理横坐标和地理纵坐标;第三部分为(128-i-jl) 比特的节点ID,用于标识一个传感器节点;接入节点的节点ID为0;接入节点ID与节点ID构 成链路地址,其中j和j 1的值相同; 一种类型的数据C被划分为Z个部分,第z个数据部分cz由值为dz的数据部分ID唯一标 识,Z2z 2 1,如公式(2)所示;接入路由器定期广播路由器发布消息,接入节点APX通过侦听接入路由器广播的路由器 发布消息来获取网络前缀,并利用自己的地理位置横坐标和地理位置纵坐标与网络前缀相 结合构建成自己的单播地址,其中节点ID为0;接入节点ΑΡ Χ获取单播地址后,向接入路由器 发送地址广播消息;接入路由器收到网络内X个接入节点的地址广播消息后,获取X个接入 节点的接入节点ID集合G; 接入路由器将接入节点ID集合G中的X个接入节点ID进行优先级排序,广播一个接入节 点ID排序消息,消息负载为排序后的X个接入节点ID;接入节点APX接收到接入节点ID排序 消息后,保存接入节点ID集合G,如果接入节点AP X检测到自己的接入节点ID的优先级排序 值为y,1 < y < X,则根据公式(3)和(4)获取节点ID空间[L(y),U(y)];2. 根据权利要求1所述的一种无线传感器网络数据通信方法,其特征在于,接入节点ID Ixl和接入节点ID Ix2的优先级比较算法如下所示: 情况1:如果接入节点ID Ixi的地理横坐标域值大于接入节点ID IX2的地理横坐标域值, 则接入节点ID Ixi的优先级大于接入节点ID IX2; 情况2:如果接入节点ID Ixl的地理横坐标域值小于接入节点ID Ix2的地理横坐标域值, 则接入节点ID Ixi的优先级小于接入节点ID IX2; 情况3:如果接入节点ID Ixi的地理横坐标域值等于接入节点ID IX2的地理横坐标域值 并且接入节点ID Ixi的地理纵坐标域值大于接入节点ID IX2的地理纵坐标域值,则接入节 点ID。的优先级大于接入节点ID Ix2; 情况4:如果接入节点ID Ixi的地理横坐标域值等于接入节点ID IX2的地理横坐标域值 并且接入节点ID Ixi的地理纵坐标域值小于接入节点ID IX2的地理纵坐标域值,则接入节 点ID。的优先级小于接入节点ID Ix2。3. 根据权利要求2所述的一种无线传感器网络数据通信方法,其特征在于,接入节点或 者传感器节点配置单播地址后,开始广播信标帧,帧负载为网络前缀; 没有配置单播地址的传感器节点S收到信标帧后,如果该信标帧源地址的接入节点ID 与接入节点APX的接入节点ID相同,那么传感器节点S通过下述过程从接入节点APX获取单播 地址: 步骤301:开始; 步骤302:传感器节点S构建临时单播地址,该地址的网络前缀为信标帧负载中的网络 前缀,接入节点ID为0,节点ID为随机数;传感器节点S发送一条地址请求消息,消息源地址 为临时单播地址,目的地址为接入节点AP X的单播地址; 步骤303:接入节点APX收到地址请求消息后,从节点ID空间中选择一个未分配的节点 ID,向传感器节点S返回一条地址响应消息,消息负载为接入节点ID集合G和分配的节点ID, 同时,接入节点APX将分配的节点ID标记为已分配状态; 步骤304:传感器节点S收到地址响应消息后,保存接入节点ID集合G,同时将地址响应 消息中的节点ID与接入节点APX的网络前缀和接入节点ID相结合构建成一个单播地址,并 开始广播信标帧,帧源地址为传感器节点S获取的新地址; 步骤305:结束。4. 根据权利要求3所述的一种无线传感器网络数据通信方法,其特征在于,每个接入节 点保存一个最优k-anycast组成员列表和非最优k-anycast列表,两个列表中的表项包括四 个域:k-anycast地址域,组成员单播地址域,距离域和生命周期域;其中,距离域指与k-any cast组成员的距离值; k-anycast地址为K的k-anycast组成员身份预先设置; k-anycast地址为K的k-anycast组成员通过单播地址配置过程获取所在无线传感器网 络的X个接入节点的接入节点ID集合G,然后执行下述操作: 步骤401:开始; 步骤402: k-anycast组成员通过网络前缀以及接入节点ID集合G构建本无线传感器网 络内每个接入节点的单播地址,然后向每个接入节点发送一个更新消息,消息源地址为k-anycast组成员的单播地址,目的地址为接入节点的单播地址,消息负载为k-anycast地址K 和距离参数d,参数d的初始值为0; 步骤403:更新消息在路由过程中每经过一个中间节点,距离参数d递增1,最终,更新消 息到达目的接入节点; 步骤404:目的接入节点收到该更新消息后,根据下述三种情况分别进行相应的操作: 情况1,目的接入节点的最优k-anycast组成员列表中没有k-anycast地址域等于K的表 项:目的接入节点在最优k-anycast组成员列表中增加一个表项,其中,k-anycast地址域为 K,组成员单播地址域为更新消息的源地址,距离域值为更新消息中的距离参数d值,生命周 期设置为最大值; 情况2,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的表项 且该表项的距离域大于或者等于更新消息中的参数d值:目的接入节点将该表项的组成员 单播地址域设置为更新消息的源地址,距离域值为更新消息中的距离参数d值,生命周期设 置为最大值; 情况3,目的接入节点的最优k-anycast组成员列表中存在k-anycast地址域为K的表项 且该表项的距离域小于更新消息中的参数d值:目的接入节点在非最优k-anycast组成员列 表中增加一个表项,其中,k-anycas t地址域为K,组成员单播地址域为更新消息的源地址, 距离域值为更新消息中的距离参数d值,生命周期设置为最大值; 步骤405:目的接入节点在收到所有k-anycast组成员的更新消息后,获取距离自己最 近的k-any ca s t组成员的单播地址; 步骤406:结束; 如果k-anycast组成员的地理坐标发生变化,那么它向每个接入节点发送更新消息从 而确保接入节点能够保存距离最近的k-any cast组成员的信息; 如果接入节点的最优k-anycast组成员列表中和非最优k-anycast组成员列表中表项 的生命周期衰减为〇,接入节点则删除该表项; 如果接入节点的最优k-anycast组成员列表中表项为空,它则从非最优k-anycast组成 员列表中选取一个距离最近的k-anycast组成员来更新最优k-anycast组成员列表中的表 项。5.根据权利要求4所述的一种无线传感器网络数据通信方法,其特征在于,一种类型的 数据C由数据ID c定义,无线传感器网络内能够提供数据C的所有传感器节点构成k-anycast组,无线传感器网络通过接入路由器AR1接入到互联网,接入路由器AR1的网络前缀 为GRP1; k-anycast组成员Ax根据下述过程创建数据部分Cx,其中,参数h初始值设置为0,网络直 径最大值为Η: 步骤101:开始; 步骤10 2: k-any c a s t组成员六\在11跳范围内广播一个数据创建消息,该消息的负载为参 数h和数据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中数据 部分ID集合P x中任一个元素dx-w定义了数据部分cx-w,1 < w < | Px | ;步骤103:判断收到数据创建消息的节点是否能创建并提供数据部分Cxi,如果能提供, 则进行步骤104,否则进行步骤105; 步骤104:收到数据创建消息的节点向k-anycast组成员Ax发送一个数据创建响应消息, 该消息的负载为数据部分cXi,进行步骤107; 步骤105:收到数据创建消息的节点将参数h递减1,判断h是否大于0,如果是,进行步骤 106,否则进行步骤107; 步骤106:收到数据创建消息的节点转发数据创建消息,执行步骤103; 步骤10 7: k-an y c a s t组成员Ax判断所有返回的数据创新响应消息中的负载是否能构建 数据部分Cx,如果不能,进行步骤108,否则进行步骤110; 步骤108:k-anycast组成员Ax判断h是否等于H,如果是,进行步骤112,否则执行步骤 109; 步骤109: k-anycast组成员Αχ将h递增1,执行步骤102; 步骤110 :k_anycast组成员Ax向其他所有k-anycast成员发送一条数据分享消息,消息 负载为数据部分Cx; 步骤111:其他k-anycast组成员收到k-anycast组成员Ax发送的数据分享消息后,保存 数据部分Cx; 步骤112:结束; 通过上述过程,每个k-anycast组成员在收到其他k-anycast成员发送的数据分享消息 后,创建数据C并保存数据C。6.根据权利要求5所述的一种无线传感器网络数据通信方法,其特征在于,互联网中的 节点N通过下述过程取数据C: 步骤201:开始; 步骤202:节点N构建一个k-anycast地址,该k-anycast地址的网络前缀为GRP1,数据ID 为c;节点N发送一个数据请求消息,该消息的目的地址为构建的k-anycast地址,源地址为 自己的单播地址,基于目的地址的网络前缀GRP1,该数据请求消息达到接入路由器AR1; 步骤203:接入路由器AR1利用节点ID集合G为每个连接的接入节点APX构建一个单播地 址,该地址记做Ux,在地址Ux中,网络前缀为GRP 1,接入节点ID为接入节点APX的接入节点ID; 步骤204:接入路由器AR1发送数据部分请求消息,该消息记做Rx,在数据部分请求消息 Rx中,源地址为接入路由器AR1的单播地址U,目的地址为单播地址Ux,负载为数据ID c和数 据部分ID集合Px,数据部分ID集合Px定义了数据部分Cx,如公式(3)所示,其中数据部分ID集 合P x中任一个元素dx-w定义了数据部分Cxi, 1 < w < | Px |,数据部分Cx满足公式(4)和(5),由 此,数据部分请求消息Rx到达接入节点AP X;步骤205:接入节点APX收到数据部分请求消息Rx后,查看最优k-anycast组成员列表中 k-anycast地址域值为K的表项,并获取该表项的组成员单播地址域值Tx;将数据部分请求 消息Rx的目的地址更新为单播地址Τχ,源地址更新为自己的单播地址Ux,发送数据部分请求 消息R x;由此数据部分请求消息Rx被路由到单播地址为Tx的最优k-anycast成员A x; 步骤206:判断最优k-anycast组成员Ax能否提供数据部分Cx,如果能,则进行步骤208, 否则执行步骤207; 步骤207:k-anycast组成员Ax执行步骤101~步骤112创建数据部分Cx; 步骤208: k-anycast组成员Ax发送一个数据部分响应消息Ex,数据部分响应消息Ex的负 载为数据部分Cx,目的地址为单播地址Ux,源地址为单播地址Tx; 步骤209:接入节点APX收到数据部分响应消息Ex后,将数据部分响应消息Ex的目的单播 地址更新为单播地址U,发送数据部分响应消息Ex,数据部分响应消息Ex到达接入路由器 AR1; 步骤210:接入路由器AR1收到X个接入节点返回的数据部分响应消息后,利用数据部分 响应消息中的数据部分构建数据C,返回一个数据响应消息,该消息的负载为数据C,目的地 址为节点N的单播地址; 步骤211:节点N收到数据响应消息后,获取了数据C; 步骤212:结束。
【文档编号】H04W84/18GK105871713SQ201610403595
【公开日】2016年8月17日
【申请日】2016年6月8日
【发明人】王晓喃
【申请人】常熟理工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1