[发明专利]一种基于簇的网络数据通信方法有效
申请号: | 201710196605.6 | 申请日: | 2017-03-29 |
公开(公告)号: | CN106993321B | 公开(公告)日: | 2020-03-24 |
发明(设计)人: | 王晓喃 | 申请(专利权)人: | 常熟理工学院 |
主分类号: | H04W40/10 | 分类号: | H04W40/10;H04W40/12;H04W40/20;H04W40/22;H04W40/24;H04W84/18 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 胡建华 |
地址: | 215500 江苏省苏州市常熟市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 网络 数据通信 方法 | ||
1.一种基于簇的网络数据通信方法,其特征在于,所述网络中包含三类节点:孤立节点、簇首节点及簇内节点;所述孤立节点为既没有标记为簇首节点也没有标记为簇内节点的节点;
所述簇内节点包括共享节点与普通簇内节点,所述共享节点是两个以上簇的簇内节点,位于两个以上簇首节点的通信范围内,能够同时接收两个以上簇首节点的信标帧,并与两个以上簇首节点实现通信,具有路由转发功能;普通簇内节点只位于一个簇首节点的通信范围内,不执行路由转发操作;所述簇首节点用于实现路由转发功能;
一个簇包括一个簇首节点和一个以上的簇内节点,簇内节点在簇首节点的一跳范围内,所述网络由一个以上的簇组成;簇由簇ID唯一标识,簇ID的值为该簇簇首节点所在的地理坐标;
孤立节点、簇首节点及簇内节点各自具有一个节点ID,该节点ID具有网络唯一性,在生命周期中保持不变;
初始状态下,所有节点均设为孤立节点且具有唯一性的节点ID,每个节点保存一个邻居表,邻居表项包括三个域:节点ID,节点的能量以及生命周期;
网络中的节点由单播地址唯一标识,节点的单播地址包括三个部分:地理坐标域、节点类型域和节点ID域;节点类型包括孤立节点、簇首节点和簇内节点三种,分别对应的节点类型域值为0、1和2;
网络中的节点在一跳范围内定期广播信标消息,消息源地址为节点的单播地址,消息负载为广播信标消息的网络中的节点当前的能量;共享节点广播的信标消息还包括它所属簇的簇ID;节点通过接收邻居节点的信标消息来建立邻居表;
孤立节点收到任意一个邻居节点N发送的信标消息后,如果孤立节点的邻居表中没有节点ID值为节点N的节点ID值的表项,那么孤立节点创建一个邻居表项,该邻居表项的节点ID为节点N的节点ID,节点的能量值为信标负载中的能量值,生命周期设置为最大值;否则,孤立节点用接收到的信标消息中的能量值更新该表项中的节点的能量值,同时将生命周期设置为最大值;
如果一个邻居表项的生命周期衰减为0,那么从邻居表中删除该邻居表项;
网络中的消息结构由四部分构成:目的地址、源地址、消息类型值和负载;
消息类型包括数据产生消息、数据产生响应消息、注册消息、数据请求消息、数据响应消息、请求数据产生消息、请求数据产生响应消息、加入簇请求消息、加入簇响应消息、加入簇确认消息和簇ID消息;分别对应的消息类型值为1、2、3、4、5、6、7、8、9、10和11;
孤立节点建立邻居表后,如果它的邻居节点包含簇首节点,则将节点ID值最小的邻居簇首节点作为自己的簇首节点,同时记录该簇的簇ID以及该簇首节点的节点ID;如果孤立节点的邻居节点不包含簇首节点,当孤立节点满足条件1或者条件2任意一个条件或者两个都满足时,则通过下述过程建立簇;
条件1:孤立节点的当前能量值大于其他邻居孤立节点的当前能量值;
条件2:孤立节点的当前能量值不小于其他邻居孤立节点的当前能量值,同时孤立节点的节点ID小于与孤立节点具有相同能量值的邻居节点的节点ID;
步骤101:开始;
步骤102:孤立节点在一跳范围内广播加入簇请求消息,簇请求消息源地址为孤立节点自己的单播地址,目的地址为广播地址,广播地址的所有比特值均为1,消息类型为8,消息负载为孤立节点自己的能量值;
步骤103:在规定时间内,判断邻居孤立节点是否收到两个以上孤立节点发送的加入簇请求消息,如果是,进行步骤104,否则进行步骤105;
步骤104:对于每个接收到的加入簇请求消息,邻居孤立节点判断自己的能量值是否为不大于消息负载中的能量值,如果是,则返回一个加入簇响应消息,加入簇响应消息的目的地址为接收到的加入簇请求消息的源地址,源地址为邻居孤立节点自己的单播地址,消息类型为9,消息负载为空,否则,丢弃接收到的加入簇请求消息,进行步骤106;
步骤105:邻居孤立节点判断自己的能量值是否为不大于接收到的加入簇请求消息负载中的能量值,如果是,则返回一个加入簇响应消息,加入簇响应消息的目的地址为接收到的加入簇请求消息的源地址,源地址为邻居孤立节点自己的单播地址,消息类型为9,消息负载为空,否则,丢弃接收到的加入簇请求消息;
步骤106:在规定时间内,孤立节点判断收到的加入簇响应消息的数量是否等于或者大于其邻居表中邻居孤立节点的总数量,如果是,进行步骤107,否则进行步骤111;
步骤107:孤立节点向所有返回加入簇响应消息的邻居孤立节点发送一个加入簇确认消息,该加入簇确认消息的目的地址为邻居孤立节点的单播地址,源地址为孤立节点的单播地址,消息类型为10,负载为簇ID,即孤立节点的地理坐标,同时将自己标识为簇首节点;
步骤108:在规定时间内,如果邻居孤立节点收到加入簇确认消息,则执行步骤109,否则执行步骤111;
步骤109:邻居孤立节点将自己标识为簇内节点,同时记录加入簇确认消息中的簇ID以及簇首节点的节点ID;
步骤110:孤立节点成功建立簇并转变为簇首节点;
步骤111:结束;
重复执行步骤101~111,直到没有孤立节点为止;然后,簇首节点在网络内广播簇ID消息,该簇ID消息的负载为簇首节点所在簇的簇ID;簇首节点和簇内节点收到簇ID消息后,保存簇ID消息中的簇ID值,网络中所有簇的簇ID值保持不变;
如果一个簇首节点的能量值低于预先设定的阈值,或者离开簇ID所标识的位置,那么符合条件3和条件4的簇内节点转换为簇首节点,原来的簇首节点则变成簇内节点;
条件3:该簇内节点位于簇ID所标识的位置;
条件4:在所有簇ID所标识的位置中的簇内节点中,该簇内节点的当前能量值最大且大于簇首节点;
步骤103,106和108中,规定时间值设置为α·d·t;其中,α为调节系数,α≥1,d为网络的直径,t为两个邻居节点之间传输一条消息的延迟;
一种与地理位置相关的数据由一个地理坐标和数据ID唯一标识,地理坐标定义该数据产生的地理位置,数据ID定义一种类型的数据;一种类型的数据划分为两个以上数据块,每个数据块由一个数据块ID唯一标识;
簇内节点通过名字地址获取数据,名字地址包括地理坐标、数据ID以及数据块ID集合;
簇内节点CM1的地理坐标为(x1,y1),节点ID为NID1,数据C1的数据ID为CID1,如果CM1需要产生地理位置为(x1,y1)的数据C1的数据块,所述数据块的数据块ID集合为S1,则执行下述过程:
步骤201:开始;
步骤202:簇内节点CM1构建一个名字地址、一个单播地址和一个数据产生消息;在名字地址中,地理坐标为(x1,y1),数据ID为CID1,数据块ID集合为S1;在单播地址中,地理坐标为(x1,y1),节点类型为2,节点ID为NID1;在数据产生消息中,目的地址为名字地址,源地址为单播地址,消息类型为1,负载为空;簇内节点CM1发送该数据产生消息;
步骤203:位于地理坐标(x1,y1)的簇内节点收到该数据产生消息后,产生数据C1中的部分数据块,然后构建名字地址和数据产生响应消息;在名字地址中,地理坐标为(x1,y1),数据ID为CID1,数据块ID集合为位于地理坐标(x1,y1)的簇内节点自己产生的数据块的数据块ID集合;在数据产生响应消息中,目的地址为数据产生消息中的源地址,源地址为构建的名字地址,消息类型为2,负载为产生的数据块;然后位于地理坐标(x1,y1)的簇内节点发送该数据产生响应消息;
步骤204:簇内节点CM1接收到所有的数据产生响应消息后,保存这些数据块;
步骤205:结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常熟理工学院,未经常熟理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710196605.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种锂氧电池
- 下一篇:超宽频低频电调腔体移相器及基站天线