CN102572016B - 基于簇的分布式移动自组网络IPv6地址配置实现方法 - Google Patents

基于簇的分布式移动自组网络IPv6地址配置实现方法 Download PDF

Info

Publication number
CN102572016B
CN102572016B CN201210059297.XA CN201210059297A CN102572016B CN 102572016 B CN102572016 B CN 102572016B CN 201210059297 A CN201210059297 A CN 201210059297A CN 102572016 B CN102572016 B CN 102572016B
Authority
CN
China
Prior art keywords
node
bunch
cluster head
tree
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210059297.XA
Other languages
English (en)
Other versions
CN102572016A (zh
Inventor
王晓喃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JIANGSU TRIGIANT TECHNOLOGY Co.,Ltd.
Original Assignee
Changshu Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changshu Institute of Technology filed Critical Changshu Institute of Technology
Priority to CN201210059297.XA priority Critical patent/CN102572016B/zh
Publication of CN102572016A publication Critical patent/CN102572016A/zh
Application granted granted Critical
Publication of CN102572016B publication Critical patent/CN102572016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了基于簇的分布式移动自组网络IPv6地址配置实现方法,所述移动自组网络包括五种节点:根节点、簇首节点、簇内节点、簇网关节点以及新节点;将所述移动自组网络分成多个簇,每个簇包含一个簇首节点,所有簇首节点组成一个以上的树状结构:将移动自组网络中先启动的节点同时标识为簇首节点和根节点,根节点为所在树状结构内的其他簇首节点分配IPv6地址;所述簇首节点为本簇簇内节点分配IPv6地址,簇内节点不具有路由转发功能;所述新节点为未配置IPv6地址的节点;所述簇网关节点为位于不能直接通信的两个簇首节点的通信范围内的簇内节点,具有路由转发功能,两个不能直接通信的簇首节点通过簇网关节点通信。

Description

基于簇的分布式移动自组网络IPv6地址配置实现方法
技术领域
本发明涉及一种地址配置的实现方法,尤其涉及的是基于簇的分布式移动自组网络IPv6地址配置实现方法。
背景技术
移动自组网络中的节点之间通信通过中间节点的转发和路由来实现,因此,每个节点必须配有具有唯一性的地址来实现通信,因此,实现自动自组网络需要解决的关键技术之一就是地址自动配置问题。
目前的地址配置分为有状态地址配置和无状态地址配置两种形式,有状态地址配置方案采用服务器/客户端的通信方式分配地址,即节点向服务器提出申请地址的请求,然后由服务器统一为网络内的节点分配地址。由于移动自组网没有任何基础设施,例如服务器,因此,有状态地址配置方案无法应用到移动自组网中。在无状态地址配置方案中,每个被分配的地址都需要在整个网络中进行重复地址检测以确保它的唯一性,导致了大量的控制包开销,消耗了大量的网络资源,因此也不适用于移动自组网使用。
因此针对移动自组网络需要建立一种低开销的地址自动配置方案。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供基于簇的分布式移动自组网络IPv6地址配置实现方法。
技术方案:本发明公开了基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,所述移动自组网络包括五种节点:根节点、簇首节点、簇内节点、簇网关节点以及新节点;
将所述移动自组网络分成多个簇,每个簇包含一个簇首节点,所有簇首节点组成一个以上的树:将移动自组网络中先启动的节点同时标识为簇首节点和根节点,根节点为所在树状结构内的其他簇首节点分配IPv6地址;
所述簇首节点为本簇簇内节点分配IPv6地址,簇内节点不具有路由转发功能;
所述新节点为未配置IPv6地址的节点;
所述簇网关节点为位于不能直接通信的两个簇首节点的通信范围内的簇内节点,具有路由转发功能,两个不能直接通信的簇首节点通过簇网关节点通信;
所述根节点、簇网关节点、簇首节点和簇内节点的IPv6地址包括四部分:第一部分是网络ID,由根节点采用随机函数生成,长度为128-i-j-n比特,一个移动自组网络中所有节点的网络ID相同;第二部分为树ID,长度为i比特,由所在树的根节点采用随机函数生成,唯一标识一个树状结构,一个树中所有节点的树ID相同;第三部分为簇ID,长度为j比特,由根节点分配给本树内的簇首节点,唯一标识一个簇,一个簇的簇首节点的簇ID和本簇内所有簇内节点的簇ID相同;第四部分为节点ID,长度为n比特,由簇首节点分配给簇内节点;所述i,j以及n为小于128的正整数且i,j、n三者之和小于等于128,根节点的簇ID以及节点ID为0,簇首节点的节点ID为0;
初始状态时,网络ID设置区间为[1,2128-i-j-n-1],树ID设置区间为[1,2i-1],根节点为簇首节点的地址分配空间为[1,2j-1],簇首节点为簇内节点的地址分配空间为[1,2n-1];
所述根节点和簇首节点保存一个节点ID分配状态表,用于记录所分配节点ID的情况,它们在一跳范围内定期广播消息,消息负载为网络ID、树ID以及簇ID;
所述根节点保存一个簇ID分配状态表,用于记录所分配簇ID的情况;
所述新节点加入移动自组网络后,如果没有收到根节点或者簇首节点广播的消息,则在一跳范围内广播请求消息;一跳范围内的簇内节点收到请求消息后,向新节点返回响应消息;
如果新节点没有收到任何响应消息,则将自己标识为根节点,并采用随机函数产生网络ID和树ID形成自己的IPv6地址,其中簇ID和节点ID为0,然后在一跳范围内广播消息,消息负载为网络ID、树ID以及簇ID;
如果移动自组网络中同时有两个以上新节点标识为根节点并建立了树,两个以上的树之间执行合并操作使移动自组网络中所有节点的网络ID都相同。
本发明所述方法中,如果新节点在规定时间内收到根节点或者簇首节点的广播消息,它根据下述步骤获取IPv6地址:
步骤301:开始;
步骤302:新节点向根节点或者簇首节点发送节点ID请求消息;
步骤303:根节点或者簇首节点收到节点ID请求消息后,将最小未分配的节点ID封装到节点ID响应消息中,更新节点ID分配状态表中相应节点ID的状态,然后将节点ID响应消息返回给新节点;
步骤304:新节点收到节点ID响应消息后,将分配的节点ID与广播消息中的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤305:结束;
如果新节点没有收到根节点或者簇首节点的广播消息,但是从簇内节点收到了响应消息,则选择信号强度最大的簇内节点并根据下述步骤获取IPv6地址:
步骤401:开始;
步骤402:新节点向簇内节点发送节点ID请求消息;
步骤403:簇内节点收到节点ID请求消息后,向根节点发送簇ID请求消息;
步骤404:根节点收到簇ID请求消息后,将最小未分配的簇ID封装到簇ID响应消息中,同时更新簇ID分配状态表中相应簇ID的状态,将簇ID响应消息返回给簇内节点;
步骤405:簇内节点收到簇ID响应消息后,将自己标记为簇首节点,同时将原来的网络ID、树ID与分配的簇ID结合形成新的IPv6地址,其中,节点ID为0,并放弃原来的IPv6地址;
步骤406:新的簇首节点建立节点ID分配状态表,将最小未分配的节点ID封装到节点ID响应消息中,同时更新节点ID分配状态表中相应节点ID的状态,并将节点ID响应消息返回给新节点;
步骤407:新节点收到节点ID响应消息后,将分配的节点ID与新的簇首节点的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤408:结束。
上述过程中,簇的建立过程与簇首节点以及簇内节点的地址配置过程同时进行,同时,消息的传输控制在一跳范围内,降低了地址配置代价,缩短了地址配置延迟,增强了网络扩展性。
本发明所述方法中,簇首节点定期向根节点发送更新消息以表示处于正常工作状态;根节点收到簇首节点的更新消息后,向簇首节点返回响应消息以表示处于正常工作状态;如果根节点在规定时间内没有收到簇首节点的更新消息,则认为簇首节点失效或者脱离移动自组网络,并将簇首节点对应的簇ID设置为未配置状态;
如果簇首节点在规定时间内没有收到根节点的响应消息,它则认为根节点失效或者脱离移动自组网络,并根据下述步骤选举新的根节点:
步骤501:开始;
步骤502:簇首节点在移动自组网内中广播新根节点消息;
步骤503:与簇首节点在同一个树状结构中的邻居簇首节点收到新根节点消息后,比较它的簇首节点ID是否大于簇首节点的簇ID,如果大于,进行步骤505,否则进行步骤504;
步骤504:邻居簇首节点继续广播收到的新根节点消息,进行步骤506;
步骤505:邻居簇首节点放弃收到的新根节点消息同时重新产生并广播另一个新根节点消息;
步骤506:重复步骤503~步骤505,直到与簇首节点在同一个树状结构中的所有簇首节点都收到最大簇ID的簇首节点发送的新根节点消息为止;
步骤507:簇ID最大的簇首节点被选举为新的根节点;
步骤508:结束;
新的根节点选举成功后,将IPv6地址的簇ID设置为0,同时通知其簇内节点将簇ID设置为0,开始广播消息,同时建立簇ID分配状态表,并通过接收簇首节点发送的簇更新消息来维护簇ID资源分配状态。
上述过程不仅为了簇和树状结构的拓扑结构,同时也保证了地址的唯一性。
本发明所述方法中,簇内节点定期向本簇簇首节点发送节点更新消息以示其处于正常工作状态,簇首节点收到簇内节点的更新消息后,向其返回更新响应消息以示其处于正常工作状态;如果簇首节点在规定时间内没有收到簇内节点的更新消息,它则认为簇内节点失效或者脱离移动自组网,并将簇内节点对应的节点ID设置为未配置状态;
如果簇内节点在规定时间内没有收到本簇簇首节点发送的响应消息,它则认为簇首节点失效或者脱离移动自组网,并根据下述步骤选举新的簇首节点:
步骤601:开始;
步骤602:簇内节点在移动自组网内中广播新簇首节点消息;
步骤603:本簇内其他簇内节点收到新簇首节点消息后,比较它的节点ID是否大于簇内节点的节点ID,如果是,进行步骤605,否则,进行步骤604;
步骤604:其他簇内节点继续广播收到的新簇首节点消息,进行步骤606;
步骤605:其他簇内节点放弃收到的新簇首节点消息同时重新产生并广播一个新簇首节点消息;
步骤606:重复步骤603步骤605,直到本簇内所有簇内节点都收到本簇内具有最大节点ID的簇内节点发送的新簇首节点消息为止;
步骤607:节点ID最大的簇内节点被选举为新的簇首节点;
步骤608:结束。
上述过程为了簇的拓扑结构,同时确保了地址的唯一性。
本发明所述方法中,如果节点A检测到它与节点B具有不同的网络ID,则执行合并操作,如果节点A检测到它与节点B具有相同的IPv6地址,则执行合并操作。
本发明所述方法中,如果移动自组网络1中的节点A检测到它与移动自组网络2中的节点B具有不同的网络ID且节点A的网络ID大于节点B的网络ID,节点A则根据下述步骤执行合并操作以确保地址的唯一性:
步骤701:开始;
步骤702:节点A广播合并消息,消息负载为移动自组网络1的网络ID以及节点A所在树的树ID;
步骤703:收到合并消息的节点是否为簇内节点,如果是,进行步骤704,否则进行步骤705;
步骤704:放弃合并消息,进行步骤715;
步骤705:收到合并消息的节点是否为根节点且网络ID与合并消息中的网络ID不同,如果是,进行708,否则进行步骤706;
步骤706:收到合并消息的节点判断前一段时间内是否收到过来自节点A的合并消息,如果是,进行步骤704,否则进行步骤707;
步骤707:继续广播合并消息,进行步骤703;
步骤708:根节点在网络中广播其树ID;
步骤709:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤710,否则进行步骤712;
步骤710:其他根节点向根节点返回树ID冲突消息;
步骤711:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,进行步骤708;
步骤712:根节点将网络ID及树ID更新为移动自组网络1的网络ID以及具有唯一性的树ID;
步骤713:根节点向本树内所有簇首节点发送地址更新消息,通知它们将IPv6的网络ID及树ID更新为根节点的网络ID和树ID;
步骤714:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新网络ID及树ID;
步骤715:结束。
本发明所述方法中,如果移动自组网1中的节点A检测到它与移动自组网2中的节点B具有相同的IPv6地址,节点A则根据下述步骤进行合并操作:
步骤801:开始;
步骤802:节点A向根节点发送地址重复消息,根节点的网络ID和树ID与节点A的网络ID和树ID相同;
步骤803:根节点收到地址重复消息后,利用随机函数重新产生一个树ID根节点在网络中广播其树ID;
步骤804:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤805,否则进行步骤807;
步骤805:其他根节点向根节点返回树ID冲突消息;
步骤806:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,进行步骤803;
步骤807:根节点将树ID更新为具有唯一性的树ID;
步骤808:根节点向本树内所有簇首节点发送地址更新消息,通知它们将树ID更新为根节点的树ID;
步骤809:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新树ID;
步骤810:结束;
上述步骤中,传输层采用TCP协议,以保证信息交互的正确性,例如,根节点向簇首节点发送地址重复消息时,那么两个具有相同地址的簇首节点同时都会收到地址重复消息,这种情况下,根节点只与其中一个簇首节点建立连接关系,即只有一个簇首节点的IPv6地址进行更新,另外一个保持不变,这样就可以保证合并后的移动自组网络中的地址具有唯一性。
本发明所述方法中,如果一部分簇从移动自组网路***出来,则它们将簇ID最大的簇首节点选举为新的根节点,同时更新新根节点所在簇簇内节点的IPv6地址;
如果几个簇的部分簇内节点从移动自组网路***出来,则它们将各自簇中节点ID最大的簇内节点选举为新的簇首节点,然后再将簇ID最大的簇首节点选举为新的根节点,同时更新新根节点所在簇簇内节点的IPv6地址。
通过上述过程,***出来的节点组成新的移动自组网络,完成了地址配置过程同时确保了地址唯一性。
有益效果:本发明提供了基于簇的分布式移动自组网络IPv6地址配置实现方法,由于移动自组网节点同时具有主机和路由器两个身份,因此导致移动自组网体系结构和传统网络体系结构不同,所以目前传统网络中的IPv6地址配置方案无法应用到移动自组网络中,迫切需要一种适合移动自组网络使用的地址配置方案。在本发明中,簇建立的过程中同时实现了簇首节点和簇内节点的地址配置过程,且地址配置消息的传输控制在一跳范围内,无需进行地址重复检测即可确保地址的唯一性,提高了地址配置效率,增强了网络扩展性。由于簇首节点分布于整个移动自组网络,因此实现了负载均衡。所述移动自组网络中的节点通过本发明所提供的IPv6地址配置的实现方法,可拥有具有网络唯一性的IPv6地址,从而实现正确的通信。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的移动自组网络拓扑结构示意图。
图2为本发明所述IPv6地址结构示意图。
图3为本发明所述节点ID分配状态表项结构示意图。
图4为本发明所述簇ID分配状态表项结构示意图。
图5为本发明所述新节点从根节点或者簇首节点获取IPv6地址流程示意图。
图6为本发明所述新节点从簇内节点获取IPv6地址流程示意图。
图7为本发明所述选举新的根节点流程示意图。
图8为本发明所述选举新的簇首节点流程示意图。
图9为本发明所述合并情况1的流程示意图。
图10为本发明所述合并情况2的流程示意图。
具体实施方式:
本发明提供了基于簇的分布式移动自组网络IPv6地址配置实现方法,在所述方法中,移动自组网络中的每个节点可获取具有网络唯一性的IPv6地址,实现正确的通信。
图1为本发明所述的移动自组网络拓扑结构示意图。所述移动自组网络1包括五种节点:根节点2、簇首节点3、簇内节点4、簇网关节点5以及新节点6;将所述移动自组网络1分成多个簇7,每个簇7包含一个簇首节点3,所有簇首节点3组成一个以上的树状结构8:将移动自组网络1中先启动的节点同时标识为簇首节点3和根节点2,根节点2为所在树状结构8内的其他簇首节点3分配IPv6地址;所述簇首节点3为本簇7簇内节点4分配IPv6地址,簇内节点4不具有路由转发功能;所述新节点6为未配置IPv6地址的节点;所述簇网关节点5为位于不能直接通信的两个簇首节点3的通信范围内的簇内节点4,具有路由转发功能,两个不能直接通信的簇首节点3通过簇网关节点5通信;
所述新节点6加入移动自组网络1后,如果收到根节点2或者簇首节点3广播的消息,则在一跳范围内广播请求消息;一跳范围内的簇内节点4收到请求消息后,向新节点6返回响应消息;
如果新节点6没有收到任何响应消息,则将自己标识为根节点2,并采用随机函数产生网络ID和树ID形成自己的IPv6地址,其中簇ID和节点ID为0,然后在一跳范围内广播消息,消息负载为网络ID、树ID以及簇ID;
图2为本发明所述IPv6地址结构示意图。所述根节点、簇网关节点、簇首节点和簇内节点的IPv6地址包括四部分:第一部分是网络ID,由根节点采用随机函数生成,长度为128-i-j-n比特,一个移动自组网络中所有节点的网络ID相同;第二部分为树ID,长度为i比特,由所在树的根节点采用随机函数生成,唯一标识一个树状结构,一个树中所有节点的树ID相同;第三部分为簇ID,长度为j比特,由根节点分配给本树内的簇首节点,唯一标识一个簇,一个簇的簇首节点的簇ID和本簇内所有簇内节点的簇ID相同;第四部分为节点ID,长度为n比特,由簇首节点分配给簇内节点;所述i,j以及n为小于128的正整数且i,j、n三者之和小于等于128,根节点的簇ID以及节点ID为0,簇首节点的节点ID为0;
初始状态时,网络ID设置区间为[1,2128-i-j-n-1],树ID设置区间为[1,2i-1],根节点为簇首节点的地址分配空间为[1,2j-1],簇首节点为簇内节点的地址分配空间为[1,2n-1]。
图3为本发明所述节点ID分配状态表项结构示意图。所述根节点和簇首节点保存一个节点ID分配状态表,用于记录所分配节点ID的情况,节点ID分配状态表项包括两个域:节点ID及分配状态,其中分配状态包括已分配和未分配。
图4为本发明所述簇ID分配状态表项结构示意图。所述根节点保存一个簇ID分配状态表,用于记录所分配簇ID的情况,簇ID分配状态表项包括两个域:簇ID及分配状态,其中分配状态包括已分配和未分配。
图5为本发明所述新节点从根节点或者簇首节点获取IPv6地址流程示意图。
如果新节点在规定时间内收到根节点或者簇首节点的广播消息,它根据下述步骤获取IPv6地址:
步骤301:开始;
步骤302:新节点向根节点或者簇首节点发送节点ID请求消息;
步骤303:根节点或者簇首节点收到节点ID请求消息后,将最小未分配的节点ID封装到节点ID响应消息中,更新节点ID分配状态表中相应节点ID的状态,然后将节点ID响应消息返回给新节点;
步骤304:新节点收到节点ID响应消息后,将分配的节点ID与广播消息中的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤305:结束;
图6为本发明所述新节点从簇内节点获取IPv6地址流程示意图。如果新节点没有收到根节点或者簇首节点的广播消息,但是从簇内节点收到了响应消息,则选择信号强度最大的簇内节点并根据下述步骤获取IPv6地址:
步骤401:开始;
步骤402:新节点向簇内节点发送节点ID请求消息;
步骤403:簇内节点收到节点ID请求消息后,向根节点发送簇ID请求消息;
步骤404:根节点收到簇ID请求消息后,将最小未分配的簇ID封装到簇ID响应消息中,同时更新簇ID分配状态表中相应簇ID的状态,将簇ID响应消息返回给簇内节点;
步骤405:簇内节点收到簇ID响应消息后,将自己标记为簇首节点,同时将原来的网络ID、树ID与分配的簇ID结合形成新的IPv6地址,其中,节点ID为0,并放弃原来的IPv6地址;
步骤406:新的簇首节点建立节点ID分配状态表,将最小未分配的节点ID封装到节点ID响应消息中,同时更新节点ID分配状态表中相应节点ID的状态,并将节点ID响应消息返回给新节点;
步骤407:新节点收到节点ID响应消息后,将分配的节点ID与新的簇首节点的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤408:结束。
上述过程中,簇的建立过程与簇首节点以及簇内节点的地址配置过程同时进行,同时,消息的传输控制在一跳范围内,降低了地址配置代价,缩短了地址配置延迟,增强了网络扩展性。
图7为本发明所述选举新的根节点流程示意图。簇首节点定期向根节点发送更新消息以表示处于正常工作状态;根节点收到簇首节点的更新消息后,向簇首节点返回响应消息以表示处于正常工作状态;如果根节点在规定时间内没有收到簇首节点的更新消息,则认为簇首节点失效或者脱离移动自组网络,并将簇首节点对应的簇ID设置为未配置状态;
如果簇首节点在规定时间内没有收到根节点的响应消息,它则认为根节点失效或者脱离移动自组网络,并根据下述步骤选举新的根节点:
步骤501:开始;
步骤502:簇首节点在移动自组网内中广播新根节点消息;
步骤503:与簇首节点在同一个树状结构中的邻居簇首节点收到新根节点消息后,比较它的簇首节点ID是否大于簇首节点的簇ID,如果大于,进行步骤505,否则进行步骤504;
步骤504:邻居簇首节点继续广播收到的新根节点消息,进行步骤506;
步骤505:邻居簇首节点放弃收到的新根节点消息同时重新产生并广播另一个新根节点消息;
步骤506:重复步骤503~步骤505,直到与簇首节点在同一个树状结构中的所有簇首节点都收到最大簇ID的簇首节点发送的新根节点消息为止;
步骤507:簇ID最大的簇首节点被选举为新的根节点;
步骤508:结束;
新的根节点选举成功后,将IPv6地址的簇ID设置为0,同时通知其簇内节点将簇ID设置为0,开始广播消息,同时建立簇ID分配状态表,并通过接收簇首节点发送的簇更新消息来维护簇ID资源分配状态。
上述过程不仅为了簇和树状结构的拓扑结构,同时也保证了地址的唯一性。
图8为本发明所述选举新的簇首节点流程示意图。簇内节点定期向本簇簇首节点发送节点更新消息以示其处于正常工作状态,簇首节点收到簇内节点的更新消息后,向其返回更新响应消息以示其处于正常工作状态;如果簇首节点在规定时间内没有收到簇内节点的更新消息,它则认为簇内节点失效或者脱离移动自组网,并将簇内节点对应的节点ID设置为未配置状态;
如果簇内节点在规定时间内没有收到本簇簇首节点发送的响应消息,它则认为簇首节点失效或者脱离移动自组网,并根据下述步骤选举新的簇首节点:
步骤601:开始;
步骤602:簇内节点在移动自组网内中广播新簇首节点消息;
步骤603:本簇内其他簇内节点收到新簇首节点消息后,比较它的节点ID是否大于簇内节点的节点ID,如果是,进行步骤605,否则,进行步骤604;
步骤604:其他簇内节点继续广播收到的新簇首节点消息,进行步骤606;
步骤605:其他簇内节点放弃收到的新簇首节点消息同时重新产生并广播一个新簇首节点消息;
步骤606:重复步骤603步骤605,直到本簇内所有簇内节点都收到本簇内具有最大节点ID的簇内节点发送的新簇首节点消息为止;
步骤607:节点ID最大的簇内节点被选举为新的簇首节点;
步骤608:结束。
上述过程为了簇的拓扑结构,同时确保了地址的唯一性。
图9为本发明所述合并情况1的流程示意图。如果移动自组网络1中的节点A检测到它与移动自组网络2中的节点B具有不同的网络ID且节点A的网络ID大于节点B的网络ID,节点A则根据下述步骤执行合并操作以确保地址的唯一性:
步骤701:开始;
步骤702:节点A广播合并消息,消息负载为移动自组网络1的网络ID以及节点A所在树的树ID;
步骤703:收到合并消息的节点是否为簇内节点,如果是,进行步骤704,否则进行步骤705;
步骤704:放弃合并消息,进行步骤715;
步骤705:收到合并消息的节点是否为根节点且网络ID与合并消息中的网络ID不同,如果是,进行708,否则进行步骤706;
步骤706:收到合并消息的节点判断前一段时间内是否收到过来自节点A的合并消息,如果是,进行步骤704,否则进行步骤707;
步骤707:继续广播合并消息,进行步骤703;
步骤708:根节点在网络中广播其树ID;
步骤709:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤710,否则进行步骤712;
步骤710:其他根节点向根节点返回树ID冲突消息;
步骤711:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,进行步骤708;
步骤712:根节点将网络ID及树ID更新为移动自组网络1的网络ID以及具有唯一性的树ID;
步骤713:根节点向本树内所有簇首节点发送地址更新消息,通知它们将IPv6的网络ID及树ID更新为根节点的网络ID和树ID;
步骤714:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新网络ID及树ID;
步骤715:结束。
图10为本发明所述合并情况2的流程示意图。如果移动自组网1中的节点A检测到它与移动自组网2中的节点B具有相同的IPv6地址,节点A则根据下述步骤进行合并操作:
步骤801:开始;
步骤802:节点A向根节点发送地址重复消息,根节点的网络ID和树ID与节点A的网络ID和树ID相同;
步骤803:根节点收到地址重复消息后,利用随机函数重新产生一个树ID根节点在网络中广播其树ID;
步骤804:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤805,否则进行步骤807;
步骤805:其他根节点向根节点返回树ID冲突消息;
步骤806:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,进行步骤803;
步骤807:根节点将树ID更新为具有唯一性的树ID;
步骤808:根节点向本树内所有簇首节点发送地址更新消息,通知它们将树ID更新为根节点的树ID;
步骤809:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新树ID;
步骤810:结束;
上述步骤中,传输层采用TCP协议,以保证信息交互的正确性,例如,根节点向簇首节点发送地址重复消息时,那么两个具有相同地址的簇首节点同时都会收到地址重复消息,这种情况下,根节点只与其中一个簇首节点建立连接关系,即只有一个簇首节点的IPv6地址进行更新,另外一个保持不变,这样就可以保证合并后的移动自组网络中的地址具有唯一性。
综上所述,本发明提供了基于簇的分布式移动自组网络IPv6地址配置实现方法,此项技术可以应用于车载监控、医疗健康、军事国防等诸多领域,例如,在车载监控领域,可将基于簇的分布式移动自组网络IPv6地址配置的实现方法技术应用于道路拥塞监控,每台车辆里可安装多个节点,它们组成一个簇,在配置地址后,可以进行信息通信,传输道路交通情况,以有效避免道路拥塞,保持交通畅通,因此,本技术具有很高的推广价值。
本发明提供了基于簇的分布式移动自组网络IPv6地址配置实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

Claims (8)

1.基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,所述移动自组网络包括五种节点:根节点、簇首节点、簇内节点、簇网关节点以及新节点;
将所述移动自组网络分成多个簇,每个簇包含一个簇首节点,所有簇首节点组成一个以上的树状结构:将移动自组网络中先启动的节点同时标识为簇首节点和根节点,根节点为所在树状结构内的其他簇首节点分配IPv6地址;
所述簇首节点为本簇簇内节点分配IPv6地址,簇内节点不具有路由转发功能;
所述新节点为未配置IPv6地址的节点;
所述簇网关节点为位于不能直接通信的两个簇首节点的通信范围内的簇内节点,具有路由转发功能,两个不能直接通信的簇首节点通过簇网关节点通信;
所述根节点、簇网关节点、簇首节点和簇内节点的IPv6地址包括四部分:第一部分是网络ID,由根节点采用随机函数生成,长度为128-i-j-n比特,一个移动自组网络中所有节点的网络ID相同;第二部分为树ID,长度为i比特,由所在树的根节点采用随机函数生成,唯一标识一个树状结构,一个树中所有节点的树ID相同;第三部分为簇ID,长度为j比特,由根节点分配给本树内的簇首节点,唯一标识一个簇,一个簇的簇首节点的簇ID和本簇内所有簇内节点的簇ID相同;第四部分为节点ID,长度为n比特,由簇首节点分配给簇内节点;所述i、j以及n为小于128的正整数且i、j、n三者之和小于等于128,根节点的簇ID以及节点ID为0,簇首节点的节点ID为0;
初始状态时,网络ID设置区间为[1,2128-i-j-n-1],树ID设置区间为[1,2i-1],根节点为簇首节点的地址分配空间为[1,2j-1],簇首节点为簇内节点的地址分配空间为[1,2n-1];
所述根节点和簇首节点保存一个节点ID分配状态表,用于记录所分配节点ID的情况,根节点和簇首节点在一跳范围内定期广播消息,消息负载为网络ID、树ID以及簇ID;
所述根节点保存一个簇ID分配状态表,用于记录所分配簇ID的情况;
所述新节点加入移动自组网络后,如果没有收到根节点或者簇首节点广播的消息,则在一跳范围内广播请求消息;一跳范围内的簇内节点收到请求消息后,向新节点返回响应消息;
如果新节点没有收到任何响应消息,则将自己标识为根节点,并采用随机函数产生网络ID和树ID形成自己的IPv6地址,其中簇ID和节点ID为0,然后在一跳范围内广播消息,消息负载为网络ID、树ID以及簇ID;
如果移动自组网络中同时有两个以上新节点标识为根节点并建立了树,两个以上的树之间执行合并操作使移动自组网络中所有节点的网络ID都相同。
2.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,如果新节点在规定时间内收到根节点或者簇首节点的广播消息,它根据下述步骤获取IPv6地址:
步骤301:开始;
步骤302:新节点向根节点或者簇首节点发送节点ID请求消息;
步骤303:根节点或者簇首节点收到节点ID请求消息后,将最小未分配的节点ID封装到节点ID响应消息中,更新节点ID分配状态表中相应节点ID的状态,然后将节点ID响应消息返回给新节点;
步骤304:新节点收到节点ID响应消息后,将分配的节点ID与广播消息中的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤305:结束;
如果新节点没有收到根节点或者簇首节点的广播消息,但是从簇内节点收到了响应消息,则选择信号强度最大的簇内节点并根据下述步骤获取IPv6地址:
步骤401:开始;
步骤402:新节点向簇内节点发送节点ID请求消息;
步骤403:簇内节点收到节点ID请求消息后,向根节点发送簇ID请求消息;
步骤404:根节点收到簇ID请求消息后,将最小未分配的簇ID封装到簇ID响应消息中,同时更新簇ID分配状态表中相应簇ID的状态,将簇ID响应消息返回给簇内节点;
步骤405:簇内节点收到簇ID响应消息后,将自己标记为簇首节点,同时将原来的网络ID、树ID与分配的簇ID结合形成新的IPv6地址,其中,节点ID为0,并放弃原来的IPv6地址;
步骤406:新的簇首节点建立节点ID分配状态表,将最小未分配的节点ID封装到节点ID响应消息中,同时更新节点ID分配状态表中相应节点ID的状态,并将节点ID响应消息返回给新节点;
步骤407:新节点收到节点ID响应消息后,将分配的节点ID与新的簇首节点的网络ID、树ID以及簇ID相结合形成IPv6地址,并将自己标记为簇内节点;
步骤408:结束。
3.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,簇首节点定期向根节点发送更新消息以表示处于正常工作状态;根节点收到簇首节点的更新消息后,向簇首节点返回响应消息以表示处于正常工作状态;如果根节点在规定时间内没有收到簇首节点的更新消息,则认为簇首节点失效或者脱离移动自组网络,并将簇首节点对应的簇ID设置为未配置状态;
如果簇首节点在规定时间内没有收到根节点的响应消息,它则认为根节点失效或者脱离移动自组网络,并根据下述步骤选举新的根节点:
步骤501:开始;
步骤502:簇首节点在移动自组网内中广播新根节点消息;
步骤503:与新根节点消息的源簇首节点在同一个树状结构中的邻居簇首节点收到新根节点消息后,比较它的簇ID是否大于收到的新根节点消息的源簇首节点的簇ID,如果大于,进行步骤505,否则进行步骤504;
步骤504:邻居簇首节点继续广播收到的新根节点消息,进行步骤506;
步骤505:邻居簇首节点放弃收到的新根节点消息同时重新产生并广播另一个新根节点消息;
步骤506:重复步骤503~步骤505,直到与簇首节点在同一个树状结构中的所有簇首节点都收到最大簇ID的簇首节点发送的新根节点消息为止;
步骤507:簇ID最大的簇首节点被选举为新的根节点;
步骤508:结束;
新的根节点选举成功后,将IPv6地址的簇ID设置为0,同时通知其簇内节点将簇ID设置为0,开始广播消息,同时建立簇ID分配状态表,并通过接收簇首节点发送的簇更新消息来维护簇ID资源分配状态。
4.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,簇内节点定期向本簇簇首节点发送节点更新消息以示其处于正常工作状态,簇首节点收到簇内节点的更新消息后,向其返回更新响应消息以示其处于正常工作状态;如果簇首节点在规定时间内没有收到簇内节点的更新消息,它则认为簇内节点失效或者脱离移动自组网,并将簇内节点对应的节点ID设置为未配置状态;
如果簇内节点在规定时间内没有收到本簇簇首节点发送的响应消息,它则认为簇首节点失效或者脱离移动自组网,并根据下述步骤选举新的簇首节点:
步骤601:开始;
步骤602:簇内节点在移动自组网内中广播新簇首节点消息;
步骤603:本簇内其他簇内节点收到新簇首节点消息后,比较它的节点ID是否大于收到的新簇首节点消息的源簇内节点的节点ID,如果是,进行步骤605,否则,进行步骤604;
步骤604:其他簇内节点继续广播收到的新簇首节点消息,进行步骤606;
步骤605:其他簇内节点放弃收到的新簇首节点消息同时重新产生并广播一个新簇首节点消息;
步骤606:重复步骤603~步骤605,直到本簇内所有簇内节点都收到本簇内具有最大节点ID的簇内节点发送的新簇首节点消息为止;
步骤607:节点ID最大的簇内节点被选举为新的簇首节点;
步骤608:结束。
5.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,如果节点A检测到它与节点B具有不同的网络ID,则执行合并操作,如果节点A检测到它与节点B具有相同的IPv6地址,则执行合并操作。
6.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,如果移动自组网络1中的节点A检测到它与移动自组网络2中的节点B具有不同的网络ID且节点A的网络ID大于节点B的网络ID,节点A则根据下述步骤执行合并操作以确保地址的唯一性:
步骤701:开始;
步骤702:节点A广播合并消息,消息负载为移动自组网络1的网络ID以及节点A所在树的树ID;
步骤703:判断收到合并消息的节点是否为簇内节点,如果是,进行步骤704,否则进行步骤705;
步骤704:放弃合并消息,进行步骤715;
步骤705:判断收到合并消息的节点是否为根节点且网络ID与合并消息中的网络ID不同,如果是,进行708,否则进行步骤706;
步骤706:收到合并消息的节点判断前一段时间内是否收到过来自节点A的合并消息,如果是,进行步骤704,否则进行步骤707;
步骤707:继续广播合并消息,进行步骤703;
步骤708:根节点在网络中广播其树ID;
步骤709:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤710,否则进行步骤712;
步骤710:其他根节点向根节点返回树ID冲突消息;
步骤711:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,进行步骤708;
步骤712:根节点将网络ID及树ID更新为移动自组网络1的网络ID以及具有唯一性的树ID;
步骤713:根节点向本树内所有簇首节点发送地址更新消息,通知它们将IPv6的网络ID及树ID更新为根节点的网络ID和树ID;
步骤714:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新网络ID及树ID;
步骤715:结束。
7.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,如果移动自组网1中的节点A检测到它与移动自组网2中的节点B具有相同的IPv6地址,节点A则根据下述步骤进行合并操作:
步骤801:开始;
步骤802:节点A向根节点发送地址重复消息,根节点的网络ID和树ID与节点A的网络ID和树ID相同;
步骤803:根节点收到地址重复消息,利用随机函数重新产生一个树ID,且根节点在网络中广播其树ID;
步骤804:其他根节点判断自己的树ID与广播的树ID是否一致,如果是,进行步骤805,否则进行步骤807;
步骤805:其他根节点向根节点返回树ID冲突消息;
步骤806:根节点收到树ID冲突消息后,利用随机函数重新产生一个树ID,且根节点在网络中广播其树ID,进行步骤804;
步骤807:根节点将树ID更新为具有唯一性的树ID;
步骤808:根节点向本树内所有簇首节点发送地址更新消息,通知它们将树ID更新为根节点的树ID;
步骤809:簇首节点向本簇内所有簇内节点发送地址更新消息,通知它们更新树ID;
步骤810:结束;
上述步骤中,传输层采用TCP协议。
8.根据权利要求1所述的基于簇的分布式移动自组网络IPv6地址配置实现方法,其特征在于,如果一部分簇从移动自组网络***出来,则它们将簇ID最大的簇首节点选举为新的根节点,同时更新新根节点所在簇簇内节点的IPv6地址;
如果几个簇的部分簇内节点从移动自组网络***出来,则它们将各自簇中节点ID最大的簇内节点选举为新的簇首节点,然后再将簇ID最大的簇首节点选举为新的根节点,同时更新新根节点所在簇簇内节点的IPv6地址。
CN201210059297.XA 2012-03-08 2012-03-08 基于簇的分布式移动自组网络IPv6地址配置实现方法 Active CN102572016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210059297.XA CN102572016B (zh) 2012-03-08 2012-03-08 基于簇的分布式移动自组网络IPv6地址配置实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210059297.XA CN102572016B (zh) 2012-03-08 2012-03-08 基于簇的分布式移动自组网络IPv6地址配置实现方法

Publications (2)

Publication Number Publication Date
CN102572016A CN102572016A (zh) 2012-07-11
CN102572016B true CN102572016B (zh) 2014-03-26

Family

ID=46416472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210059297.XA Active CN102572016B (zh) 2012-03-08 2012-03-08 基于簇的分布式移动自组网络IPv6地址配置实现方法

Country Status (1)

Country Link
CN (1) CN102572016B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970393B (zh) * 2012-12-25 2015-03-18 常熟理工学院 一种基于IPv6的车载网地址配置方法
CN103152772B (zh) * 2013-04-07 2015-03-18 常熟理工学院 一种基于跨层的6LoWPAN无线传感器网络通信方法
CN103338274A (zh) * 2013-05-15 2013-10-02 中国科学技术大学苏州研究院 树形泛在网络中面向路由的地址分配方法
CN103476088B (zh) * 2013-09-26 2016-02-10 常熟理工学院 一种下一代无线传感器网络路由通信的实现方法
CN103945551B (zh) * 2014-05-06 2017-05-24 中国联合网络通信集团有限公司 一种无线网格网络中的信道分配方法及***
CN108616550B (zh) * 2016-12-13 2020-12-29 中国电信股份有限公司 基于群首的分布式主机配置方法和***
CN111586198B (zh) * 2020-04-28 2020-12-15 江苏科瑞德智控自动化科技有限公司 一种自组织的机器互联方法
CN111786785B (zh) * 2020-07-24 2023-11-24 国网冀北电力有限公司电力科学研究院 基于区块链的配电物联网节点切换方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1863109A (zh) * 2005-05-12 2006-11-15 中兴通讯股份有限公司 支持ip协议的无线传感器网络***
CN102014377A (zh) * 2011-01-06 2011-04-13 常熟理工学院 基于分布式的无线传感器网络IPv6地址配置实现方法
CN102056152A (zh) * 2011-01-06 2011-05-11 常熟理工学院 6LoWPAN无线传感器网络地址自动配置的实现方法
CN102158983A (zh) * 2011-05-04 2011-08-17 常熟理工学院 一种构建6LoWPAN无线传感器网络的实现方法
CN102333118A (zh) * 2011-10-08 2012-01-25 常熟理工学院 一种车载网络IPv6地址自动配置的实现方法
CN102364970A (zh) * 2011-11-29 2012-02-29 常熟理工学院 一种移动自组网络地址自动配置的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8942212B2 (en) * 2007-02-19 2015-01-27 Nec Corporation Autoconfiguration system for wireless sensor network and its method, and gateway apparatus for wireless sensor network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1863109A (zh) * 2005-05-12 2006-11-15 中兴通讯股份有限公司 支持ip协议的无线传感器网络***
CN102014377A (zh) * 2011-01-06 2011-04-13 常熟理工学院 基于分布式的无线传感器网络IPv6地址配置实现方法
CN102056152A (zh) * 2011-01-06 2011-05-11 常熟理工学院 6LoWPAN无线传感器网络地址自动配置的实现方法
CN102158983A (zh) * 2011-05-04 2011-08-17 常熟理工学院 一种构建6LoWPAN无线传感器网络的实现方法
CN102333118A (zh) * 2011-10-08 2012-01-25 常熟理工学院 一种车载网络IPv6地址自动配置的实现方法
CN102364970A (zh) * 2011-11-29 2012-02-29 常熟理工学院 一种移动自组网络地址自动配置的实现方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《无线传感器网络IPv6地址自动配置方案》;王晓喃等;《电子科技大学学报》;20110531;第40卷(第3期);全文 *
王晓喃等.《无线传感器网络IPv6地址自动配置方案》.《电子科技大学学报》.2011,第40卷(第3期),全文.
王晓喃等.《无线传感器网络IPv6地址自动配置方案的研究与设计》.《铁道学报》.2011,第33卷(第11期),全文. *
王晓喃等.《高效节能的无线传感器网络路由协议设计与实现》.《计算机应用研究》.2010,第27卷(第8期),全文. *

Also Published As

Publication number Publication date
CN102572016A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102572016B (zh) 基于簇的分布式移动自组网络IPv6地址配置实现方法
CN102572015B (zh) 一种动态移动自组网络IPv6地址配置的实现方法
CN102364970B (zh) 一种移动自组网络地址自动配置的实现方法
CN102395126B (zh) 一种基于树状结构的移动自组网地址配置实现方法
CN102883403B (zh) 一种移动自组网的构建方法
CN102333118B (zh) 一种车载网络IPv6地址自动配置的实现方法
CN100521660C (zh) 一种一体化网络移动切换管理的实现方法
CN101656763B (zh) 一种ip地址自动分配方法、客户端及服务器
CN102215158B (zh) 实现vrrp流量传输的方法和路由设备
CN102694884B (zh) 一种无线传感器网络IPv6地址配置及管理方法
CN109168150B (zh) 一种蓝牙快速组网方法
CN101600156A (zh) 一种移动自组织网络地址自动分配方法
CN103491590B (zh) 一种下一代无线传感器网络路由的实现方法
CN106604344B (zh) 一种基于rpl的用电信息***及其组网和通信方法
WO2015062479A1 (zh) 一种终端状态监测的方法、设备和***
CN105262855A (zh) 基于列车的ip地址分配方法和列车通信网络
CN103563313A (zh) Ip地址分配***
CN105119828A (zh) 一种快速的无线网络路由实现方法
CN102428690B (zh) 在分段网络中分配网络地址以用于通信的方法
CN103945415B (zh) 一种无线网络的通信实现方法
CN105188104A (zh) 一种无线网络通信的实现方法
CN104869601A (zh) 一种下一代车联网的通信实现方法
CN103167057B (zh) 一种基于定位信息的车载网地址配置方法
CN105723687A (zh) Ip网络的配置及管理方法、相对应设备及计算机程序
Chakraborty et al. An IPv6 based hierarchical address configuration scheme for smart grid

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170303

Address after: 214204 new street, Jiangsu, Yixing Nanyue Village

Patentee after: Jiangsu wisdom Industrial Co., Ltd.

Address before: 215500 School of computer science and engineering, Changshu Institute Of Technology, Suzhou, Jiangsu,

Patentee before: Changshu Science and Engineering College

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 214200 No. 3 Junzhi Road, Yixing Environmental Science and Technology Industrial Park, Wuxi City, Jiangsu Province

Patentee after: Jiangsu Junzhi Wisdom Network Co., Ltd.

Address before: 214204 Nanyue Village, Xinjie Street, Yixing, Jiangsu Province

Patentee before: Jiangsu wisdom Industrial Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210409

Address after: 214200 No.1 Junzhi Road, Yixing Environmental Protection Science and Technology Industrial Park, Wuxi City, Jiangsu Province

Patentee after: JIANGSU TRIGIANT TECHNOLOGY Co.,Ltd.

Address before: No.3 Junzhi Road, Yixing Environmental Protection Science and Technology Industrial Park, Wuxi City, Jiangsu Province, 214200

Patentee before: Jiangsu Junzhi Wisdom Network Co.,Ltd.