发明名称 一种基于IPv6的移动自组网络移动切换实现方法
摘要 本发明提供了一种基于IPv6的移动自组网络移动切换实现方法,所述移动自组网络是IPv6互联网的末端网络,通过接入路由器连接到IPv6互联网,所述移动自组网络分成多个簇,每个簇由一个簇首节点与一个以上簇内节点构成,两个不能直接通信的簇首节点通过簇网关节点进行通信,所有簇首节点和簇网关节点构建成移动自组网络的路由骨干网络,簇内节点通过路由骨干网络与IPv6互联网进行通信。所述关联节点为与簇内节点直接通信的簇首节点,同一时刻,一个簇内节点只与一个关联节点直接通信,在移动过程中,簇内节点无需更改地址即可实现移动管理,保证了路由正确性和通信连续性。
申请公布号 CN102695220B 申请公布日期 2014.06.18
申请号 CN201210208863.9 申请日期 2012.06.25
申请人 常熟理工学院 发明人 王晓喃
分类号 H04W36/00(2009.01)I;H04L29/12(2006.01)I 主分类号 H04W36/00(2009.01)I
代理机构 江苏圣典律师事务所 32237 代理人 胡建华
主权项 一种基于IPv6的移动自组网络移动切换实现方法,所述移动自组网络是IPv6互联网的末端网络,通过接入路由器连接到IPv6互联网,其特征在于,所述移动自组网络包括五种类型节点:簇首节点、簇内节点、簇网关节点、关联节点以及新节点;将所述移动自组网络分成一个以上簇,每个簇由一个簇首节点与一个以上簇内节点构成,两个不能直接通信的簇首节点通过簇网关节点进行通信,所有簇首节点和簇网关节点构建成移动自组网络的路由骨干网络,簇内节点通过路由骨干网络与IPv6互联网进行通信;所述簇首节点具有路由转发功能并为本簇簇内节点分配地址;所述簇内节点不具有路由转发功能,不能为其它节点分配地址;所述簇网关节点为位于两个不能直接通信的簇首节点通信范围内的簇内节点,具有路由转发功能;所述新节点为未加入任何簇的节点;所述关联节点为与簇内节点直接通信的簇首节点,同一时刻,一个簇内节点只与一个关联节点直接通信;移动自组网络中的节点的IPv6地址包括三部分:第一部分是全局路由前缀,它唯一标识一个移动自组网络,长度为128‑i‑j比特,一个移动自组网络中所有节点的全局路由前缀都相同;第二部分为簇ID,长度为i比特,唯一标识一个簇,一个簇中所有簇内节点的簇ID都相同,其值等于簇首节点的簇ID;第三部分为节点ID,长度为j比特,它由簇首节点分配给簇内节点;所述i和j为小于128的正整数且i与j之和小于等于128,接入路由器的簇ID以及节点ID为0,簇首节点的节点ID为0;初始状态下,移动自组网络中的所有节点均为新节点且有一个ID值,此ID值具有网络唯一性;移动自组网络中的每个节点保存一个邻居节点记录表,邻居节点记录表的每个表项包括三个域:邻居节点ID值,邻居节点类型以及生存周期,其中,生存周期随着机器时钟自动衰减,当衰减到0,对应表项自动从邻居节点记录表中删除;所有节点在一跳范围内定期广播广告消息以示存在,广告消息负载为节点的类型以及邻居新节点的数量;所有节点通过接收邻居节点发送的广告消息建立邻居节点记录表;新节点X建立邻居节点记录表后,如果它的邻居节点包含簇首节点,则向该簇首节点请求IPv6地址;否则,如果新节点X的邻居新节点数量在所有邻居新节点中总数最大,或者新节点X的邻居新节点数量不小于所有邻居新节点的邻居新节点总数且其ID值小于其他拥有相同总数邻居新节点的节点ID值,则新节点X则根据下述过程建立簇:步骤301:开始;步骤302:新节点X向邻居节点记录表中所有邻居新节点发送加入簇的请求消息,消息的源地址为新节点X的ID值;步骤303:邻居新节点对比收到的加入簇请求消息的源地址,向源地址最小的新节点返回一个加入簇响应消息;步骤304:在规定时间内,判断新节点X收到的加入簇响应消息的数量是否等于邻居节点记录表中新节点的数量,如果是,进行步骤305,否则进行步骤308;步骤305:新节点X向所有邻居新节点返回一个加入簇确认消息,同时将自己标识为簇首节点X;步骤306:在规定时间内,判断邻居新节点是否收到新节点X返回的加入簇确认消息,如果是,进行步骤307,否则进行步骤308;步骤307:邻居新节点将自己标识为簇内节点同时记录下本簇簇首节点X的ID值;步骤308:结束;新节点转变为簇内节点后,如果它位于两个不能直接通信的簇首节点之间,则该新节点将自己标识为簇网关节点;新节点转变为簇首节点或者簇内节点或者簇网关节点后,其邻居节点通过接收它广播的广告消息更新邻居节点记录表中的对应表项;接入路由器定期广播移动自组网络前缀消息,消息负载为全局路由前缀,簇首节点收到接入路由器的前缀消息后,根据下述过程获取IPv6地址:步骤401:开始;步骤402:簇首节点向接入路由器发送簇ID请求消息,消息的源地址为簇首节点的临时IPv6地址,临时IPv6地址由全局路由前缀及簇首节点的ID值组成;步骤403:接入路由器收到簇ID请求消息后,将最小未分配簇ID封装到簇ID响应消息中,同时将最小未分配簇ID设置为已分配状态,然后将簇ID响应消息发送给簇首节点;步骤404:簇首节点收到簇ID响应消息后,将消息内的簇ID与全局路由前缀相结合形成自己的IPv6地址,其中簇首节点的节点ID为0;步骤405:结束;簇内节点在规定时间内收到本簇簇首节点广播的广告消息后,从本簇簇首节点获取IPv6地址,簇内节点M获取IPv6地址的过程为:步骤501:开始;步骤502:簇内节点M向簇首节点发送节点ID请求消息,节点ID请求消息的源地址为簇内节点M的临时IPv6地址,临时IPv6地址由全局路由前缀及簇内节点M的ID值组成;步骤503:簇首节点收到节点ID请求消息后,将最小未分配节点ID封装到节点ID响应消息中,同时将最小未分配节点ID设置为已分配状态,然后将节点ID响应消息发送给簇内节点M;步骤504:簇内节点M收到节点ID响应消息后,将节点ID响应消息内的节点ID与全局路由前缀以及簇ID相结合形成自己的IPv6地址,同时将簇首节点作为自己的关联节点;步骤505:结束;新节点在规定时间内收到邻居簇首节点广播的广告消息后,从邻居簇首节点获取IPv6地址,新节点收到邻居簇首节点广播的广告消息后,则从邻居簇首节点获取IPv6地址,新节点N获取IPv6地址的过程为:步骤201:开始;步骤202:新节点N向簇首节点发送节点ID请求消息,节点ID请求消息的源地址为新节点N的临时IPv6地址,临时IPv6地址由全局路由前缀及新节点N的ID值组成;步骤203:簇首节点收到节点ID请求消息后,将最小未分配节点ID封装到节点ID响应消息中,同时将最小未分配节点ID设置为已分配状态,然后将节点ID响应消息发送给新节点N;步骤204:新节点N收到节点ID响应消息后,将节点ID响应消息内的节点ID与全局路由前缀以及簇ID相结合形成自己的IPv6地址,同时将簇首节点作为自己的关联节点,将自己标记为簇内节点;步骤205:结束;接入路由器保存一个关联节点表,关联节点表中每个表项包括三个域:IP地址域,关联节点IP地址域以及生存周期,其中,生存周期随着机器时钟自动衰减,当衰减到0,对应表项自动从关联节点表中删除;簇首节点和关联节点保存一个关联簇内节点记录表,关联簇内节点记录表的每个表项包括两个域:IP地址域以及生存周期,其中,生存周期随着机器时钟自动衰减,当衰减到0时,对应表项自动从关联簇内节点记录表中删除;簇内节点M获取IPv6地址及关联节点H之后,根据下述过程向接入路由器R进行注册操作:步骤601:开始;步骤602:簇内节点M向关联节点H发送关联消息;步骤603:关联节点H收到关联消息后,将簇内节点M加入到关联簇内节点记录表中,同时向接入路由器R发送一个新关联消息,消息负载为簇内节点M的IPv6地址;步骤604:接入路由器R收到新关联消息后,将簇内节点M加入到关联节点表;步骤605:结束;当目的地址为簇内节点M的数据包到达接入路由器R时,接入路由器R查看关联节点表,将数据包发送到簇内节点M的关联节点H,然后由关联节点H将数据包转发给簇内节点M;如果关联节点H检测到簇内节点M脱离自己的通信范围,那么关联节点H保存目的地址为簇内节点M的数据包同时将簇内节点M从关联簇内节点记录表中删除。
地址 215500 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院