一种无线网络路由的实现方法_4

文档序号:9474928阅读:来源:国知局
从接入路由器获取超级节点ID的流程示意图。开始节点SN1 从接入路由器AR1获取超级节点ID的过程包括以下步骤:
[0153] 步骤401:开始;
[0154] 步骤402 :开始节点SN1向接入路由器AR1发送超级节点请求命令帧,超级节点请 求命令帧的源链路地址为临时链路地址;
[0155] 步骤403 :接入路由器AR1从超级节点ID分配表中选取最小未分配的值X,将该值 X标记为半分配状态,然后构建一个有效长度为c+L3的超级节点ID,其中L3为接入路由器 AR1的超级节点ID的有效长度,c的比特值设置为x,L3比特值设置为接入路由器AR1的超 级节点ID,接入路由器AR1向开始节点SN1返回一个超级节点响应命令帧,超级节点响应命 令帧的负载为构建的超级节点ID ;
[0156] 步骤404 :开始节点SN1收到超级节点响应命令帧后,在超级节点内广播节点ID 确认帧,节点ID确认命令帧的负载为全局网络前缀和接入路由器AR1分配给开始节点SN1 的超级节点ID ;
[0157] 步骤405 :如果收到节点ID确认命令帧的节点为普通节点,则进行步骤406,否则 进行步骤411 ;
[0158] 步骤406 :如果普通节点第一次收到节点ID确认命令帧,则进行步骤407,否则进 行步骤408 ;
[0159] 步骤407 :第一次收到节点ID确认命令帧的普通节点转发该节点ID确认命令帧 并且记录节点ID确认命令帧中的全局网络前缀、超级节点ID以及自己到达该节点ID确 认命令帧的源节点的跳数,执行步骤405 ;源节点即为节点ID确认命令帧源地址指定的节 占 .
[0160] 步骤408 :如果满足条件四,则进行步骤409,否则进行步骤410 ;
[0161] 条件四的三个输入参数分别为普通节点第二次收到的节点ID确认帧,第二次收 到节点ID确认帧的普通节点,普通节点第一次收到的节点ID确认帧;
[0162] 条件四:普通节点第二次收到的节点ID确认命令帧中的超级节点ID的有效长度 小于普通节点记录的超级节点ID的有效长度,或者普通节点第二次收到的节点ID确认命 令帧中的超级节点ID的有效长度等于普通节点记录的超级节点ID的有效长度且普通节点 第二次收到的节点ID确认命令帧的源链路地址小于普通节点第一次收到的节点ID确认命 令帧的源链路地址;
[0163] 步骤409 :第二次收到节点ID确认命令帧的普通节点丢弃原来记录的数据,并记 录第二次收到的节点ID确认命令帧中的全局网络前缀,超级节点ID以及到达第二次收到 的节点ID确认命令帧源节点的跳数,同时转发第二次收到的节点ID确认命令帧,执行步骤 405 ;
[0164] 步骤410 :第二次收到节点ID确认命令帧的普通节点丢弃第二次收到的节点ID 确认命令帧,进彳丁步骤414 ;
[0165] 步骤411 :如果收到节点ID确认命令帧的开始节点发送了超级节点请求命令帧并 收到了超级节点响应命令帧且满足条件五,则进行步骤412,否则进行步骤413 ;
[0166] 条件五的三个输入参数分别为:收到节点ID确认命令帧的开始节点收到的超级 节点响应命令帧,收到节点ID确认命令帧的开始节点,开始节点收到的节点ID确认命令 帧;
[0167] 条件五:超级节点响应命令帧中的超级节点ID的有效长度小于开始节点收到的 节点ID确认命令帧中的超级节点ID的有效长度,或者超级节点响应命令帧中的超级节点 ID的有效长度等于开始节点收到的节点ID确认命令帧中的超级节点ID的有效长度且开始 节点的临时链路地址小于开始节点收到的节点ID确认命令帧的源地址;
[0168] 步骤412 :收到节点ID确认命令帧的开始节点在超级节点内部广播一个新的节点 ID确认命令帧,该新的节点ID确认命令帧负载为全局网络前缀和获取的超级节点ID,进行 步骤405 ;
[0169] 步骤413 :收到节点ID确认命令帧的开始节点将自己标记为结束节点,记录收到 的节点ID确认命令帧中的全局网络前缀和超级节点ID,以及自己到达节点ID确认命令帧 的源节点的跳数;
[0170] 步骤414 :如果开始节点SN1没收到节点ID确认命令帧或者满足条件六,则进行 步骤415,否则进行步骤417;
[0171] 条件六的三个输入参数分别为:开始节点SN1收到的超级节点响应帧,开始节点 SN1,开始节点SN1收到的节点ID确认命令帧;
[0172] 条件六:开始节点SN1收到的超级节点响应命令帧中的超级节点ID的有效长度小 于开始节点SN1收到的节点ID确认命令帧中的超级节点ID的有效长度,或者开始节点SN1 收到的超级节点响应命令帧中的超级节点ID的有效长度等于开始节点SN1收到的节点ID 确认命令帧中的超级节点ID的有效长度且开始节点SN1的临时链路地址小于开始节点SN1 收到的节点ID确认命令帧的源地址;
[0173] 步骤415 :开始节点SN1向接入路由器AR1发送一条超级节点确认命令帧,该超级 节点确认命令帧的负载为分配的超级节点ID ;
[0174] 步骤416 :接入路由器AR1收到超级节点确认命令帧后,将分配给开始节点SN1的 值X的状态修改为已分配,执行步骤418 ;
[0175] 步骤417 :开始节点SN1将自己标记为结束节点并且记录下自己收到的节点ID确 认命令帧中的全局网络前缀,超级节点ID以及自己到达节点ID确认命令帧的源节点的跳 数;如果接入路由器AR1在规定时间内没有收到超级节点确认命令帧,将分配给开始节点 SN1的值X的状态修改为未分配;
[0176] 步骤418:结束;
[0177] -个超级节点获取超级节点ID之后,该超级节点中的每个开始节点、普通节点和 结束节点都获取了到达开始节点的距离参数h,它们将自己的节点ID设置为距离参数值h 加1,并与超级节点ID以及全局网络前缀相结合获得了具有全球唯一性的IPv6地址。
[0178] 通过上述过程,无线网络中的每个节点可以获取地址,并进行正确通信从而提高 网络服务。由于本发明以超级节点为单位进行地址配置,因此大大缩短了地址配置延迟和 通信延迟。
[0179] 图5为本发明所述的子网内通信流程示意图。超级节点中的每个节点保存一个邻 居表,每个表项包括两个域:超级节点ID域和开始节点域;超级节点ID域记录邻居超级节 点的超级节点ID,开始节点域记录该邻居节点是否为开始节点的邻居节点,开始节点域有 两个值,真和假,如果开始节点域值为假,那么该邻居节点为结束节点的邻居节点;
[0180] 超级节点中的开始节点和结束节点通过接收邻居节点的信标帧建立邻居表;开始 节点和结束节点建立邻居表之后,在超级节点内广播信标帧,信标帧负载为建立的邻居表; 由此,超级节点中所有的开始节点,普通节点和结束节点都能获取开始节点和结束节点建 立的邻居表,即开始节点和结束节点的邻居表的并集;超级节点建立邻居表后,向接入路由 器发送注册消息,注册消息负载为邻居表;由此接入路由器保存了所在超级树里的所有超 级节点的邻居表;
[0181] 如果超级节点SP4是超级节点SP1的祖先节点,超级节点SP1的超级节点ID的有 效长度为L2,超级节点SP4的超级节点ID的有效长度为L4,那么超级节点SP1到达超级节 点SP4的距离H1如公式⑵所示,即两个超级节点的距离为跨越超级节点的个数:
[0182] HI = (L2-L4) /c 公式(2);
[0183] 在普通节点CN1和普通节点CN2的全局网络前缀相同,普通节点CN1隶属于超级 节点SP1,普通节点CN2隶属于超级节点SP2,超级节点SP1中的结束节点为EN1,开始节点 为SN1,超级节点SP2中的结束节点为EN2,开始节点为SN2,超级节点SP1和超级节点SP2 隶属于一个子网,数据帧所在的超级节点为当前超级节点的情况下,普通节点CN1与普通 节点CN2的通信过程包括如下步骤:
[0184] 步骤201:开始;
[0185] 步骤202 :普通节点CN1构建一个数据帧,数据帧的目的地址为普通节点的链路地 址;
[0186] 步骤203 :普通节点CN1或者收到该数据帧的节点查看自己的邻居表,如果超级节 点SP2为当前超级节点的邻居节点,即普通节点CN1或者收到该数据帧的节点所在的超级 节点的邻居节点,执行步骤204,否则执行步骤205 ;
[0187] 步骤204 :普通节点CN1或者收到该数据帧的节点将数据帧路由到超级节点SP2, 进行步骤206 ;
[0188] 步骤205 :如果当前超级节点的邻居表L中存在η个表项,每个表项所标识的邻居 超级节点为SPk,1 < k < η,超级节点SPk与超级节点SP2的共同祖先为超级节点A k,超级 节点SPk到达超级节点A k的距离与超级节点SP2到达超级节点A k的距离之和为hk,则当前 超级节点将数据帧转发给满足公式(3)的邻居节点SP",1 < m < n,邻居节点5?"与超级节 点SP2的共同祖先为超级节点,执行步骤203 ;
[0189] Vk,l<k<n
[0190] 公式⑶;
[0191] hn^hk
[0192] 公式⑶中的h"为邻居节点SPjlj达祖先节点AJ]距离与超级节点SP2到达祖 先节点A"的距离之和,
[0193] 步骤206 :超级节点SP2中的开始节点SN2或者开始节点EN2收到数据帧后,将该 数据帧转发给普通节点CN2 ;
[0194] 步骤207:结束。
[0195] 通过上述过程可实现两个节点之间的通信,由于两个节点之间采用最短路径进行 通信,因此大幅度降低了通信延迟和代价,提高了通信质量。
[0196] 图6为本发明所述的子网间通信流程示意图。如果一个超级节点的邻居节点的全 局网络前缀与自己的全局网络前缀不同,那么该超级节点称为边界超级节点;每个开始节 点、普通节点或者结束节点保存一个边界超级节点表,每个表项包括四个域:超级节点ID 域,距离域,邻居全局网络前缀域以及邻居超级节点ID域;其中,超级节点ID域值为边界超 级节点的超级节点ID,距离域为到达该边界超级节点的距离,邻居全局网络前缀和邻居超 级节点ID分别为该边界超级节点的邻居节点中隶属于不同子网的邻居超级节点的全局网 络如缀和超级节点ID ;
[0197] 边界超级节点中的开始节点和结束节点通过接收邻居无线节点的信标帧建立边 界超级节点表;边界超级节点中的开始节点和结束节点建立边界超级节点表之后,广播信 标帧,信标帧负载为边界超级节点表;超级节点收到边界超级节点表后,将收到的边界超级 节点表与自己的边界超级节点表做并操作,保存并操作之后的边界超级节点表,然后广播 信标帧,信标帧负载为边界超级节点表,由此边界超级节点所在超级节点树中的每个超级 节点都能获取边界超级节点表。
[0198] 本发明所述方法中,在普通节点CN1和普通节点CN7的全局网络前缀不同,普通节 点CN1所在的超级节点SP1位于子网S1中,普通节点CN7所在的超级节点SP7位于子网S2 中,子网S2中的接入路由器为AR2,超级节点SP7到达接入路由器AR2的距离为h2的情况 下,普通节点CN1与普通节点CN7的通信过程包括如下步骤:
[0199] 步骤301:开始;
[0200] 步骤302 :普通节点CN1构建一个数据消息,数据消息的目的地址为CN7的IPv6地 址;
[0201] 步骤303 :普通节点CN1或者收到该数据消息的节点查看边界超级节点表,如果超 级节点SP7为当前超级节点的邻居节点,则执行步骤304,否则执行步骤305 ;
[0202] 步骤304 :普通节点CN1或者收到该数据消息的节点将该数据消息转发到超节点 SP7,进行步骤312 ;
[0203] 步骤305 :在当前超级节点存在一个
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1