CN101594658A - 802.11多接口宽带无线mesh网络路由方法 - Google Patents
802.11多接口宽带无线mesh网络路由方法 Download PDFInfo
- Publication number
- CN101594658A CN101594658A CNA2009101003909A CN200910100390A CN101594658A CN 101594658 A CN101594658 A CN 101594658A CN A2009101003909 A CNA2009101003909 A CN A2009101003909A CN 200910100390 A CN200910100390 A CN 200910100390A CN 101594658 A CN101594658 A CN 101594658A
- Authority
- CN
- China
- Prior art keywords
- router
- path
- routing
- bag
- route
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000011084 recovery Methods 0.000 claims abstract description 5
- 230000009191 jumping Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 description 1
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种802.11多接口宽带无线mesh网络路由方法,属于宽带无线mesh接入网技术领域。本发明的路由方法包括以下部分:每个路由器预先分配一个固定的ID,并维护一张IP与ID对应的列表;路由器基于源路由器ID和目的路由器ID为数据包进行路由查找;若路由查找失败,则基于源路由器ID和目的路由器ID进行路由发现;若发现链路失效,则基于源路由器ID和目的路由器ID进行错误恢复。本发明的路由方法简单方便、快速,开销小,非常易于实现,且能够有效提高端到端速率。
Description
技术领域
本发明属于宽带无线mesh接入网技术领域,特别涉及802.11多接口无线mesh网络中的路由技术。
背景技术
近年来,一种新型的宽带无线接入技术:mesh网络技术成为通信领域的一个重要话题,当前被广泛议论的mesh网络大多是采用802.11技术的多接口无线mesh网络。路由技术是这种网络的关键技术之一。
路由的目的是为端到端数据流选择最佳的路径使得数据流在该路径上传输可以达到的速率最高,而无线网络的路由可以有表驱动和源路由两种方式,如果采用表驱动,那么无法为每个端到端数据流单独选择路径,这样端到端数据流通过表驱动获得的路径就无法保证是最佳的,因此无线网络最好采用源路由,但是普通的源路由也有缺点:源路由器需要为各数据包添加源路由路径,从而增加包长,如果原始数据包长度已经为协议规定的最大包长,那么必须为数据包进行分片,对那些不允许分片的数据包就只能丢弃,这就会导致某些端到端数据流无法进行传输。
传统的基于最小跳数的路由简单而且快速,但是对于无线mesh网络来说,路由器之间的无线链路的质量受环境影响很大、不稳定,而且链路两端距离越大,链路的质量越差,速率就越低,特别是802.11g中规定了从1mbps到54mbps不等的速率,所以路径的跳数越小就意味着路径上各链路两端的距离越大从而使得链路的速率可能很低,整个路径的端到端速率就会因此变得很低,因此为了提高路径端到端速率,不应该使用基于最小跳数的路由。目前学术界都研究基于链路质量的路由,但是目前学术界已经提出的各种基于链路质量的路由方法都需要通过多个参数来衡量链路质量,但是获取这些参数需要很大的开销,而且它们大多是物理层的一些参数,难于获取并可能不被当前商用无线网卡的驱动所支持。
发明内容
本发明所要解决的技术问题是提供一种简单方便且能够提高端到端速率的802.11多接口宽带无线mesh网络路由方法。
所述的802.11多接口无线mesh网络由多个无线路由器组成,这些路由器都有多个802.11无线接口,可以分别使用三个正交信道,按照功能不同这些路由器可以分为三类:1)普通路由器,这种路由器只用于路由数据包,其无线接口都使用ad-hoc模式,用于和周围路由器进行无线互连;2)带AP功能的路由器,这种路由器除了用于路由数据包,还用于为用户提供宽带接入,所以要有一个接口使用AP模式供用户接入,其余接口使用ad-hoc模式;3)网关路由器,这种路由器通过光缆或其他网络连接设备接入有线骨干网,为整个mesh网络提供到有线骨干网的宽带数据接入,它们的无线接口也都使用ad-hoc模式;为了进行无线互连,使用相同信道且使用ad-hoc模式的无线接口使用同一个网段的IP。
本发明的技术方案的总体结构是:1)当路由器为数据包查找路由失败,或者带AP功能的路由器设定的到网关路由发现定时器的定时时间到,则进行路由发现;2)当路由器发现链路失效,则进行错误恢复。
本发明的技术方案具体包括以下部分:1)每个路由器预先分配一个固定的节点号(ID),并维护一张IP与ID对应的列表,该列表称为“IP-ID”列表;2)路由器基于源路由器ID和目的路由器ID为数据包进行路由查找;3)若路由查找失败,或者带AP功能的路由器设定的到网关路由发现定时器的定时时间到则基于源路由器ID和目的路由器ID进行路由发现;4)若发现链路失效,则基于源路由器ID和目的路由器ID进行错误恢复。由此本发明提供了一种简单方便且能够提高端到端速率的802.11多接口宽带无线mesh网络路由方法。
本发明中,所说的“IP-ID”列表是预先为各路由器设置的一张列表,该表由一系列表项构成,除了一个默认的表项以外,其余每个表项都表示一个IP地址或IP网段及与其对应的路由器ID;这里,“对应”的意思是指该表项中的每个IP地址或网段由节点号为该表项中的ID的路由器管理。该列表中,默认的表项代表不属于本mesh网络的IP地址或IP网段对应的ID为0。由于国际标准规定240.0.0.0/8网段的IP地址不能被用来分配给任何网络接口,这样240.0.0.0对应的ID将肯定为0。
本发明中,所说的路由器基于源、目的路由器ID为数据包进行路由查找的步骤为:1)通过查找“IP-ID”表确定数据包源IP、目的IP对应的源路由器ID s_id、目的路由器ID d_id;2)如果d_id为本路由器ID,或者d_id为0且本路由器为网关路由器,那么直接使用数据包目的IP查找路由表,否则使用240.0.目的路由器ID.源路由器ID,即240.0.d_id.s_id作为目的IP地址查找路由表。
本发明中,所说的基于源路由器ID、目的路由器ID进行路由发现,目的是建立发起请求的路由器到目的路由器之间的正向和反向路径,包括以下a)至d)四个步骤:
a)源路由器发起路由请求。
在两种情况下路由器会发起路由请求:1)为某个数据包查找路由失败,立即发起到目的地址的路由请求;2)网关路由请求定时器定时时间到,立即发起到网关的路由请求。其中网关路由请求定时器是带AP功能的路由器设定的一个周期定时器,定时时长可以设为10min,设定该定时器的目的是周期性的主动发起到网关的路由请求。
每次发起的路由请求都有一个唯一的路由请求标识:{发起请求路由器ID(s_id),目的路由器ID(d_id),序列号(sequence)},表示由s_id路由器发起的到d_id路由器的第sequence个路由请求。每个路由器都把sequence值初始化为1,每发起一次请求后都要将该值加1。
路由器一旦发起路由请求,需要在各ad-hoc接口上广播路由请求(rreq)包。一个rreq包包括固定和可变两个部分。发起请求的路由器发送的rreq包只包括固定部分,它包括:1)type,其值设为1,代表该路由包是rreq包;2)length,代笔该包长度,单位是字节;3)sequence,表示该路由请求序列号;4)src_if_ip,代表发起路由请求的路由器发送该rreq包时用的接口的IP;5)src_if_load,代表IP为src_if_ip的接口的数据包流量;6)dst_ip,代表路由请求的目的地址,发起到网关的请求时将该地址设为240.0.0.0;7)hop,代表当前该rreq包被转发的次数,发起请求的路由器需要将其设为0;8)rssi,代表该rreq包被接收时的RSSI值,发送rreq包的路由器并不为其赋值,其值留给收到该包的路由器在网卡驱动层赋值。可变部分由转发rreq包的路由器添加,一旦路由器在各接口上转发rreq包,都需要在包尾添加以下内容:1)rssi,填入包固定部分中rssi字段的值;2)recv_if_ip,代表收到该rreq包的接口的IP;3)recv_if_load,代表IP为recv_if_ip的接口上的数据包流量;4)send_if_ip,代表路由器转发该rreq包时用的接口的IP;5)send_if_load,代表IP为send_if_ip的接口上的数据包流量。除了在可变部分中添加内容,路由器转发rreq包时还需要修改固定部分中length和hop的值:length+=17(添加部分内容长度)、hop++。
b)收到从不同路径上转发过来的路由请求(rreq包)的路由器处理该请求,路由器在处理该请求的过程中使用路径比较函数来选择最优路径。
每个rreq包都代表了一个路由请求,而且代表了一条路径,即包含了从发起请求的路由器到收到该rreq包的路由器的路径信息,路径信息包括:该路径的跳数、路径上各接口的IP及数据包流量、路径中每条链路上接收该rreq包时的RSSI。根据这些信息可以计算:1)路径中每条链路上接收该rreq包的RSSI中的最小值RSSImin;2)路径的信道差异指数CDI:
其中N为路径跳数,N1,N2,N3分别为使用3个正交信道的链路数目;3)路径的剩余容量指数LRCI:
式中,N为路径跳数,Lk 1,Lk 2为路径上第k条链路的两个接口上的流量,单位为mbps。
路由器收到别的路由器广播的rreq包,先通过包中src_if_ip、dst_ip和sequence判断该请求是否已经过期,方法为:首先查找“IP-ID”列表,确定src_if_ip和dst_ip对应的ID:s_id、d_id;然后查找“路由请求列表”,找到源、目的ID分别为s_id、d_id对应的路由请求表项,如果rreq包中sequence的值小于查找到的路由请求表项的sequence的值,表示该请求已经过期。如果请求已经过期那么路由器将不对该包进行处理,否则该请求没有过期,那么执行以下步骤:1)如果d_id不为0,或者d_id为0但本路由器不是网关路由器,那么执行步骤2),否则执行步骤4);2)如果该请求是一个新的请求,那么直接把该rreq包代表的路径记为该请求对应的最优路径,并执行步骤3),否则使用路径比较函数判断该rreq包代表的路径是否优于当前记录的对应该请求的最优路径,如果是则更新该最优路径并执行步骤3),否则丢弃该包并不再执行下面的步骤;3)如果d_id为本路由器ID,那么路由器需要对该请求进行路由回复,否则在各接口上转发rreq包。路由器不再执行下面的步骤。4)如果该请求是一个新的请求则记录该rreq包的路径信息并为该请求开启一个时长为500ms的路由回复定时器,否则执行步骤5);5)如果该rreq包的收包时间已经超过了该rreq包对应的请求的定时时间则丢弃该包不进行处理,否则用路径比较函数判断该rreq包代表的路径是否优于当前记录的最优路径,如果是则更新当前记录的最优路径信息。
本发明所述的“路由请求列表”也由一些列表项构成,每一条表项都是一个路由请求标识:{s_id,d_id,sequence},记录由s_id路由器发起的d_id路由器的“最新”的路由请求,“最新”指的是该表项中sequence的值为路由器当前收到的由s_id发起的到d_id的rreq包中的sequence的最大值。
本发明所述的综合考虑跳数、RSSI、CDI、LRCI进行路径选择,关键在于采用的路径比较函数,该函数用来根据两条路径上的跳数、RSSImin、CDI、LRCI,判断两条路径的优劣,步骤为:1)如果两条路径的跳数差大于1,那么直接判定跳数小的路径优否则执行步骤2;2)如果其中一条路径的RSSImin或者两条路径上的RSSImin均小于一个预先设定的门限γ,而且两条路径的RSSImin的差值大于另一个预先设定的门限δ,那么直接判定RSSImin大的路径优,否则执行步骤3;3)如果两条路径CDI不等则直接判定CDI大的路径优否则执行步骤4;4)如果两条路径跳数不等则判定跳数小的路径优,否则判定LRCI大的路径优。
c)目的路由器在所选择的最优路径上发起路由回复。
路由回复过程在两种情况下会被发起:1)收到目的ID为本路由器ID的rreq包;2)路由器为某到网关的路由请求开启的路由回复定时器的定时时间到。
发起路由回复的步骤为:1)选定回复的路径为路由器记录的对应该请求的最优路径;2)构建路由回复(rrep)包并单播发送该rrep包至选定的路径中的上一跳;3)根据rrep包信息添加路由表项。
rrep包的内容包括:1)type,其值设为2,代表该包是rrep包;2)length,代表该包长度;3)s_id、d_id、sequence,代表所回复的请求的标识;4)hop,代表路由器在选定的路径上距源路由器的跳数;5)RSSImin、CDI、LRCI,代表选定的路径的各项统计信息;6)link_ip[1]~link_ip[k],代表路径上各链路两端的IP,k为该路径跳数,link_ip[i]是选定的路径上第i跳(从源路由器开始)的链路两端各接口的IP,其中用link_ip[i].forward表示该链路上离源路由器远的那个接口的IP,用link_ip[i].reverse表示该链路上离源路由器近的那个接口的IP。
根据rrep包的信息添加路由表项的步骤为:1)添加正向路径路由表项,目的地址为240.0.d_id.s_id,下一跳为link_ip[m].forward,m为rrep包中hop的值;2)添加反向路径路由表项,目的地址为240.0.s_id.d_id,下一跳为link_ip[m].reverse。如果路由器是发起回复的路由器,只需要添加反向路径路由表项,如果路由器是源路由器,只需要添加正向路径路由表项。目的地址为240.0.ID1.ID2的路由表项代表从ID2路由器发往ID1路由器的数据包查找路由使用的路由表项,每条这样的路由表项都对应了一条路径。
d)收到路由回复(rrep包)的路由器处理该回复,处理该路由回复的过程中需要添加路由表项。
收到路由回复路由器一旦收到rrep包,需要执行以下步骤:1)根据s_id判断本路由器是否是源路由器,如果不是则执行步骤2,否则直接执行步骤4;2)先根据该rrep包的信息添加路由表项,然后根据d_id是否为0判断该rrep包对应的路由请求是否是到网关的路由请求,如果是则需要记录路径信息;3)修改该rrep包内容:hop--,然后转发该包至路径中该路由器的上一跳,不再执行下面的步骤;4)本路由器为源路由器,根据d_id是否为0判断该rrep包对应的路由请求是否是到网关的路由请求,如果不是则根据该rrep包的信息添加路由表项即可,不必再执行下面的步骤,否则继续执行下面的步骤;5)该rrep包对应的请求是本路由器到网关的路由请求,如果该rrep包是路由器收到的第一个相应请求的回复包,那么记录该包的收包时间作为相应请求第一次回复时间、记录该rrep包的路径作为本路由器到网关的最优路径、添加路由表项,如果该rrep包不是路由器收到的相应请求的第一个回复包,则继续执行步骤6;6)如果该rrep包收包时间距路由器第一次收到对应请求的回复时间已经超过500ms,则不处理该包,否则使用路径比较函数判断该rrep包代表的路径是否优于当前记录的本路由器到网关的最优路径,如果不是则不再进行处理,否则需要更新最优路径信息与相应路由表项。
本发明中,所说的错误恢复过程是指当某路径上一条链路发生断路时,所有使用该链路的路径上的路由器删除这些失效路径及它们对应的路由表项,并触发新的路由发现的过程,步骤为:
a)一旦路由器R发现到下一跳路由器上某个接口(记该接口IP为X)的链路断路,路由器R需要在其所有记录的路径中找到那些下一跳IP是X的路径,把这些路径记为失效路径,然后在各失效路径上发送路由错误(rerr)包至路径上该路由器的上一跳,rerr包内容是:1)type,其值设为3表示该路由包是rerr包;2)length,代表包长;3)s_id、d_id,代表失效路径的源路由器ID与目的路由器ID;
b)路由器R删除失效路径的记录以及这些失效路径对应的路由表项。
c)rerr包将沿失效路径朝着源路由器转发,路径上的路由器一旦收到rerr包,需要在其记录的路径中找出源、目的路由器ID分别为s_id、d_id的那条路径,如果rerr包中s_id的值不是本路由器ID,那么将该rerr包转发至该路径上该路由器的前一跳;
d)收到rerr包的路由器还要删除查找出的路径以及该路径对应的路由表项。
由于源路由器最终会删除失效路径对应的路由表项,所以如果再有数据包需要经该路径传输则会触发路由守护程序发起一个新的路由请求以建立新的路径。
相对于现有技术,本发明的优点是:(1)通过本发明设计的基于源路由器ID和目的路由器ID的路由查找方式和添加路由表项的方式,可以用表驱动来实现源路由,每个mesh网络内路由器之间的端到端数据流都有各自的传输路径,但不用为每个数据包增加源路由数据头,这样就可以不用改变数据包长度。(2)本发明通过综合使用跳数、RSSI、CDI、LRCI来选择最优路径,克服了基于最小跳数路由的不足,可以适合无线网络环境的动态变化,并进一步有效提高端到端数据流的传输速率;(3)本发明还根据宽带无线mesh接入网内端到端流量大多数是介于网关路由器和带AP功能路由器之间的特点,每个带AP功能的路由器都周期性地主动发起到网关的路由发现过程,从而主动及时的更新路径。(4)本发明的路由方法还可以支持多网关,路由器可以为发往mesh网络以外的数据包寻找到任一网关的最优路径。(5)本发明不需要修改当前商用无线网卡的驱动,路由发现过程简单,快速,开销小,非常易于实现。
附图说明
图1是本发明适用的一种宽带无线mesh接入网的结构示意图;
图2是本发明的总体结构示意图;
图3是本发明rreq、rrep、rerr三种包格式的示意图;
图4是本发明路由器收到rreq包后的处理流程图;
图5是本发明路由器收到rrep包后的处理流程图;
图6是本发明路由器收到rerr包后的处理流程图;
图7是本发明路径比较函数的执行流程图;
图8是本发明路由查找的流程图;
图中,R1、R6、R7、R9为带AP功能的路由器,R2、R3为网关路由器,R4、R5、R8为普通路由器,T1~T6代表通过不同路由器接入该mesh网络的用户终端,I1、I2代表有线骨干网路由器。
具体实施方式
下面,结合附图和具体实施例对本发明作进一步说明。
图2示出了本发明的路由方法的总体结构:1)如果路由器收到数据包后基于源路由器ID、目的路由器ID为该数据包查找路由失败或者带AP功能的路由器设定的到网关路由请求定时器的定时时间到,那么路由器将基于源路由器ID、目的路由器ID发起路由发现;2)如果路由器发现链路失效,则需要基于源路由器ID、目的路由器ID进行错误恢复。其中路由发现过程的步骤是:1)源路由器发起路由请求;2)收到路由请求的路由器处理该请求;3)目的路由器发起对该请求的路由回复;4)收到路由回复的路由器处理该回复。
图1示出了本发明适用的其中一种宽带无线mesh接入网的结构,该mesh网络由9台路由器构成,它们的ID为1~9,分别记为R1、R2……R9。其中R1、R6、R7、R9为带AP功能的路由器,R2、R3为网关路由器,R4、R5、R8为普通路由器。该实施例中,每个路由器都配有3个无线接口,分别工作在802.11规定的3个正交信道上,它们的IP配置为:1)使用ad-hoc模式且工作在信道i(i=1~3)上的接口配置192.168.25i.ID;2)使用AP模式的接口配置192.168.ID.1。如R4上三个接口IP为192.168.251.4、192.168.252.4、192.168.253.4,R1上三个接口IP为192.168.251.1、192.168.1.1、192.168.253.1。如果两个网关路由器R2、R3的WAN口分别配置的IP为:100.100.100.1、100.100.100.2,这样,各路由器上保存的IP与ID对应的列表,即“IP-ID”列表可以表示如下:
192.168.1.0/24——1 | 192.168.252.5——5 |
192.168.251.1——1 | 192.168.253.5——5 |
192.168.253.1——1 | 192.168.6.0/24——6 |
100.100.100.1——2 | 192.168.252.6——6 |
192.168.251.2——2 | 192.168.253.6——6 |
192.168.252.2——2 | 192.168.7.0/24——7 |
192.168.253.2——2 | 192.168.252.7——7 |
100.100.100.2——3 | 192.168.253.7——7 |
192.168.251.3——3 | 192.168.251.8——8 |
192.168.252.3——3 | 192.168.252.8——8 |
192.168.253.3——3 | 192.168.253.8——8 |
192.168.251.4——4 | 192.168.9.0/24——9 |
192.168.252.4——4 | 192.168.251.9——9 |
192.168.253.4——4 | 192.168.252.9——9 |
192.168.251.5——5 | default——0 |
图8是路由器基于源、目的路由器ID为数据包进行路由查找的流程,其步骤为:1)通过查找“IP-ID”表确定数据包源IP、目的IP对应的源路由器ID s_id、目的路由器ID d_id;2)如果d_id为本路由器ID,或者d_id为0且本路由器为网关路由器,那么直接使用数据包目的IP查找路由表,否则使用240.0.目的路由器ID.源路由器ID,即240.0.d_id.s_id作为目的IP地址查找路由表。
举例说明:如果某一时刻路由器R7收到一个用户数据包,其IP头中源地址为192.168.7.5,目的地址为192.168.6.8,那么根据图8所示流程,R7为该数据包查找路由的步骤为:1)查找“IP-ID”表确定192.168.7.5、192.168.6.8对应的ID分别为7、6;2)由于路由器ID为7,而目的ID为6,两者不等,因此将使用240.0.6.7作为目的地址查找路由表项。如果R7此时没有目的地址为240.0.6.7的路由表项,那么R7就马上发起到R6的路由请求,构建rreq包并在它的两个ad-hoc接口向全网广播。
图3示出了rreq包的格式,一个rreq包包括固定和可变两个部分。发起请求的路由器发送的rreq包只包括固定部分,它包括:1)type,其值设为1,代表该路由包是rreq包;2)length,代笔该包长度,单位是字节;3)sequence,表示该路由请求序列号;4)src_if_ip,代表发起路由请求的路由器发送该rreq包时用的接口的IP;5)src_if_load,代表IP为src_if_ip的接口的数据包流量;6)dst_ip,代表路由请求的目的地址,发起到网关的请求时将该地址设为240.0.0.0;7)hop,代表当前该rreq包被转发的次数,发起请求的路由器需要将其设为0;8)rssi,代表该rreq包被接收时的RSSI值,发送rreq包的路由器并不为其赋值,其值留给收到该包的路由器在网卡驱动层赋值。可变部分由转发rreq包的路由器添加,一旦路由器在各接口上转发rreq包,都需要在包尾添加以下内容:1)rssi,填入包固定部分中rssi字段的值;2)recv_if_ip,代表收到该rreq包的接口的IP;3)recv_if_load,代表IP为recv_if_ip的接口上的数据包流量;4)send_if_ip,代表路由器转发该rreq包时用的接口的IP;5)send_if_load,代表IP为send_if_ip的接口上的数据包流量。
网络中的路由器最后都可能不止一次的收到此请求的rreq包,只是各包对应的路径各不相同。以R6为例,如果R6在R7发出请求后的某个时刻第一次收到该请求的rreq包,该rreq包代表的路径信息有:1)路径上的各链路两端的接口IP:192.168.252.7、192.168.252.4,192.168.253.4、192.168.253.5,192.168.252.5、192.168.252.6;2)该rreq包在各链路上被接收时的RSSI:38,62、47;3)各链路两端各接口上的流量(单位为mbps):0.8、1.5,1.6、1.2,2.1、0.9。通过这些信息可以计算出:1)路径跳数为3;2)RSSImin为38;3)各链路分别使用信道2、信道3、信道2,所以计算出CDI为0;4)LRCI为0.33。
图4是路由器对rreq包的处理流程,其步骤为:1)先通过包中src_if_ip、dst_ip和sequence判断该请求是否已经过期,如果请求已经过期那么路由器将不对该包进行处理,否则该请求没有过期,那么继续执行下面的步骤;2)如果d_id不为0,或者d_id为0但本路由器不是网关路由器,那么执行步骤3),否则执行步骤5);3)如果该请求是一个新的请求,那么直接把该rreq包代表的路径记为该请求对应的最优路径,并执行步骤4),否则使用路径比较函数判断该rreq包代表的路径是否优于当前记录的对应该请求的最优路径,如果是则更新该最优路径并执行步骤4),否则丢弃该包并不再执行下面的步骤;4)如果d_id为本路由器ID,那么路由器需要对该请求进行路由回复,否则在各接口上转发rreq包。路由器不再执行下面的步骤。5)如果该请求是一个新的请求则记录该rreq包的路径信息并为该请求开启一个时长为500ms的路由回复定时器,否则执行步骤6);6)如果该rreq包的收包时间已经超过了该rreq包对应的请求的定时时间则丢弃该包不进行处理,否则用路径比较函数判断该rreq包代表的路径是否优于当前记录的最优路径,如果是则更新当前记录的最优路径信息。根据该流程,由于R6第一次收到该请求的rreq包,因此该请求没有过期而且是一个新的请求,又因为该请求的目的路由器ID不是0,所以R6将记录该路径信息作为该请求的最优路径,由于R6是目的路由器,因此它还将对该请求进行回复。
R6对该请求进行回复的步骤为:1)根据最优路径信息构建rrep包;2)添加一条反向路径路由表项,即目的地址为240.0.7.6,下一跳为192.168.252.5。3)单播发送该rrep包至192.168.252.5,即R5。图3示出了rrep包的格式,该包包括以下部分:1)type,其值设为2,代表该包是rrep包;2)length,代表该包长度;3)s_id、d_id、sequence,代表所回复的请求的标识;4)hop,代表路由器在选定的路径上距源路由器的跳数;5)RSSImin、CDI、LRCI,代表选定的路径的各项统计信息;6)link_ip[1]~link_ip[k],代表路径上各链路两端的IP,k为该路径跳数,link_ip[i]是选定的路径上第i跳(从源路由器开始)的链路两端各接口的IP,其中用link_ip[i].forward表示该链路上离源路由器远的那个接口的IP,用link_ip[i].reverse表示该链路上离源路由器近的那个接口的IP。
这样R5将收到该rrep包。图5是路由器对rrep包的处理流程,步骤为:1)根据s_id判断本路由器是否是源路由器,如果不是则执行步骤2,否则直接执行步骤4;2)先根据该rrep包的信息添加路由表项,然后根据d_id是否为0判断该rrep包对应的路由请求是否是到网关的路由请求,如果是则需要记录路径信息;3)修改该rrep包内容:hop--,然后转发该包至路径中该路由器的上一跳,不再执行下面的步骤;4)本路由器为源路由器,根据d_id是否为0判断该rrep包对应的路由请求是否是到网关的路由请求,如果不是则根据该rrep包的信息添加路由表项即可,不必再执行下面的步骤,否则继续执行下面的步骤;5)该rrep包对应的请求是本路由器到网关的路由请求,如果该rrep包是路由器收到的第一个相应请求的回复包,那么记录该包的收包时间作为相应请求第一次回复时间、记录该rrep包的路径作为本路由器到网关的最优路径、添加路由表项,如果该rrep包不是路由器收到的相应请求的第一个回复包,则继续执行步骤6;6)如果该rrep包收包时间距路由器第一次收到对应请求的回复时间已经超过500ms,则不处理该包,否则使用路径比较函数判断该rrep包代表的路径是否优于当前记录的本路由器到网关的最优路径,如果不是则不再进行处理,否则需要更新最优路径信息与相应路由表项。根据该流程,R5在收到该rrep包后:1)添加正向路径路由表项,即目的地址为240.0.0.6.7,下一跳为192.168.252.6;2)添加反向路径路由表项,即目的地址为240.0.7.6,下一跳为192.168.253.4;3)将该rrep包中的hop字段的值减1即赋值为2;4)转发该rrep包至192.168.253.4即R4。这样R4也会收到该rrep包并进行类似处理,最后源路由器R7将收到该包,由于R7是目的路由器,所以只需要添加一条正向路由表项,即目的地址为240.0.6.7,下一跳为192.168.252.4。
这样,就建立了一条源路由器R7到目的路由器R6的正向路径以及一条从R6到R7的反向路径,之后如果R7收到源、目的IP分别对应源、目的ID为7、6的数据包,就可以查找到目的地址为240.0.6.7的路由表项,其下一跳为192.168.252.4,数据包将被转发到R4,R4收到该数据包,同样将查找目的地址为240.0.6.7的路由表项,下一跳为192.168.253.5,最后数据包将转发到R6的IP为192.168.252.6的接口,根据图8所示流程,R6路由器对该数据包查找路由的步骤为:1)查找“IP-ID”表确定192.168.7.5、192.168.6.8对应的ID分别为7、6;2)由于路由器ID为6,是目的ID,因此直接使用数据包目的IP192.168.6.8查找路由表项。这样数据包将直接被转发到IP为192.168.6.8的用户终端。
如果R6在第一次收到该请求的rreq包之后不久又收到了从另一条路径上发来的该请求的rreq包,假设该rreq包代表的新的路径的信息是:1)路径上的各链路两端的接口IP:192.168.253.7、192.168.253.8,192.168.252.8、192.168.252.9,192.168.252.9、192.168.252.6;2)该rreq包在各链路上被接收时的RSSI:36,55、48;3)各链路两端各接口上的流量(单位为mbps):1.1、1.6,0.6、1.8,1.4、0.9。通过这些信息可以计算出:1)路径跳数为3;2)RSSImin为36;3)各链路分别使用信道3、信道2、信道2,所以计算出CDI为0;4)LRCI为0.36。
图7是路径比较函数的流程,步骤为:1)如果两条路径的跳数差大于1,那么直接判定跳数小的路径优否则执行步骤2;2)如果其中一条路径的RSSImin或者两条路径上的RSSImin均小于一个预先设定的门限γ,而且两条路径的RSSImin的差值大于另一个预先设定的门限δ,那么直接判定RSSImin大的路径优,否则执行步骤3;3)如果两条路径CDI不等则直接判定CDI大的路径优否则执行步骤4;4)如果两条路径跳数不等则判定跳数小的路径优,否则判定LRCI大的路径优。由于R6不是第一次收到该请求的rreq包,因此R6将使用该路径比较函数对新的路径和之前记录的该请求的最优路径进行比较,步骤为:首先比较跳数,新路径和当前最优路径跳数相等都是3跳,因此比较RSSImin,假设预先设定的RSSImin比较门限为30,那么由于两条路径上RSSImin均大于30,因此比较两路径的CDI,由于两条路径CDI相等,所以再次比较路径跳数,因为路径跳数相等,所以比较LRCI,显然新路径的LRCI比当前最优路径的LRCI大,因此判断新路径优于当前最优路径。这样,R6将更新当前记录的该请求的最优路径为新的路径,然后构建rrep包,添加(更新)目的地址为240.0.7.6的路由表项,其下一跳为192.168.252.9,发送rrep包至192.168.252.9。和第一次的路由回复过程一样,新路径上的各路由器R9、R8以及源路由器R7都将收到该rrep包,他们将更新路径信息以及相应的路由表项,这样R7和R6之间就建立了新的路径,之后R7和R6之间的数据包将沿着新路径传输。
如果某时刻R9发现其和R6间的两端接口IP分别为192.168.252.9、192.168.252.6的链路发生断路,那么R9就会发起错误恢复过程,R9首先搜索其本地记录的各路径,找到所有使用该链路的路径,如果只有之前记录的R7到R6的路径使用该链路,那么R9将构建rerr包,图3示出了该包格式:1)type,其值设为3表示该路由包是rerr包;2)length,代表包长;3)s_id、d_id,代表失效路径的源路由器ID与目的路由器ID。因此R9发送的rerr包的s_id、d_id分别为7、6,R9将该包发送至该路径的上一跳即192.168.252.8,然后删除该路径及对应的路由表项,即目的地址为240.0.6.7,下一跳为192.168.252.6的路由表项,以及目的地址为240.0.7.6,下一跳为192.168.252.8的路由表项。
路由器R8将收到该rerr包。图6是路由器对rerr包的处理流程,步骤为:首先在其记录的路径中找出源、目的路由器ID分别为s_id、d_id的那条路径,如果rerr包中s_id的值不是本路由器ID,那么将该rerr包转发至该路径上该路由器的前一跳,最后路由器需要删除查找出的路径的记录以及该路径对应的路由表项。根据该流程,R8对收到的该rerr包的处理步骤是:1)rerr包指明了失效路径的源、目的路由器ID分别为7、6,所以R8首先查找出该路径的记录信息;2)通过记录的路径信息,将该rerr包转发至路径中的上一跳即192.168.253.7;3)删除该失效路径的记录信息;4)删除该失效路径对应的路由表项。同样,R7也将收到该rerr包,R7也将删除该失效路径的记录信息以及对应路由表项。这样,如果R7再收到源、目的IP分别对应源、目的ID为7、6的数据包,将因为无法找到对应路由表项而触发R7发起一个新的路由请求。
Claims (7)
1.一种802.11多接口宽带无线mesh网络路由方法,其特征在于它包括以下部分:
1)每个路由器预先分配一个固定的ID,并维护一张IP与ID对应的列表;
2)路由器基于源路由器ID和目的路由器ID为数据包进行路由查找;
3)若路由查找失败,则基于源路由器ID和目的路由器ID进行路由发现;
4)若发现链路失效,则基于源路由器ID和目的路由器ID进行错误恢复。
2.根据权利要求1所述的802.11多接口宽带无线mesh网络路由方法,其特征在于:在所述的IP与ID对应的列表中,有一个默认的表项表示不属于所述mesh网络的IP地址或IP网段所对应的ID是0,其余每个表项表示属于所述mesh网络的每个IP地址或IP网段由节点号为该表项中的ID的路由器对应管理。
3.根据权利要求1所述的802.11多接口宽带无线mesh网络路由方法,其特征在于所述的基于源路由器ID和目的路由器ID的路由查找步骤包括:
1)通过查找IP与ID对应的列表确定与数据包的源IP和目的IP分别对应的源路由器ID和目的路由器ID;
2)如果目的路由器ID为本路由器ID,或者目的路由器ID为0且本路由器为网关路由器,那么直接使用数据包目的IP查找路由表,否则使用“240.0.目的路由器ID.源路由器ID”作为目的IP查找路由表。
4.根据权利要求1所述的802.11多接口宽带无线mesh网络路由方法,其特征在于基于源路由器ID和目的路由器ID进行路由发现的步骤包括:
1)源路由器发起路由请求;
2)收到从不同路径上转发过来的路由请求的路由器处理该请求,路由器在处理该请求的过程中使用路径比较函数来选择最优路径;
3)目的路由器在所选择的最优路径上进行路由回复;
4)收到路由回复的路由器处理该回复,处理该路由回复的过程中需要添加路由表项。
5.根据权利要求1所述的802.11多接口宽带无线mesh网络路由方法,其特征在于所述的基于源路由器ID和目的路由器ID的错误恢复的步骤包括:
1)发现链路失效的路由器在该路由器记录的所有路径中查找出使用该失效链路的路径,并在每条失效路径上发送路由错误包,所述路由错误包包含了失效路径的源路由器ID和目的路由器ID;
2)发现链路失效的路由器删除各失效路径的记录以及这些失效路径对应的路由表项;
3)收到路由错误包的路由器根据该路由错误包中的源路由器ID和目的路由器ID在路由器记录的路径中查找出对应路径,如果路由器ID不是源路由器ID,那么根据查找出的对应路径转发该路由错误包;
4)收到路由错误包的路由器删除查找出的对应路径的记录以及对应的路由表项。
6.根据权利要求4所述的802.11多接口宽带无线mesh网络路由方法,其特征在于所述的路径比较函数采用跳数、接收信号强度指示、路径信道差异指数、路径剩余容量指数来比较两条路径的优劣,所述路径比较的步骤包括:
1)判断两条路径的跳数差是否大于1,如果是,则直接判定跳数小的路径优于跳数大的路径并不再执行后面的步骤;如果不是,则执行后一步骤;
2)计算两条路径各自的接收信号强度指示的最小值RSSImin,如果两条路径的RSSImin均大于一个预先设定的门限值γ,或者两条路径的RSSImin的差值不大于另一个预先设定的门限值δ,则执行后一步骤;否则直接判定RSSImin的值大的那条路径优于另一条路径并不再执行后面的步骤;
3)计算两条路径各自的路径的信道差异指数,如果两条路径的路径的信道差异指数相等则进入后一步骤;否则直接判定路径的信道差异指数值大的路径优于另一条路径并不再执行后面的步骤;其中,所述路径的信道差异指数的计算公式为:
式中,N为路径跳数,N1,N2,N3分别为使用802.11中3个正交信道的链路数目;
4)如果两条路径跳数不等,那么直接判定跳数小的路径优于跳数大的路径;否则计算两条路径各自的路径剩余容量指示并判定路径剩余容量指数值大的路径优于路径剩余容量指数值小的路径,所述路径剩余容量指数值的计算公式为
式中,N为路径跳数,Lk 1,Lk 2为路径上第k条链路的两个接口上的流量。
7.根据权利要求4所述的802.11多接口宽带无线mesh网络路由方法,其特征在于:所述的在处理路由回复过程中添加的路由表项使用的目的地址为“240.0.目的路由器ID.源路由器ID”,该地址是路由器为从源路由器发往目的路由器的数据包在查找路由时使用的目的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101003909A CN101594658B (zh) | 2009-07-10 | 2009-07-10 | 802.11多接口宽带无线mesh网络路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101003909A CN101594658B (zh) | 2009-07-10 | 2009-07-10 | 802.11多接口宽带无线mesh网络路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101594658A true CN101594658A (zh) | 2009-12-02 |
CN101594658B CN101594658B (zh) | 2011-06-01 |
Family
ID=41409027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101003909A Expired - Fee Related CN101594658B (zh) | 2009-07-10 | 2009-07-10 | 802.11多接口宽带无线mesh网络路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101594658B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883160A (zh) * | 2010-07-09 | 2010-11-10 | 杭州华三通信技术有限公司 | 多接口网络设备和多接口网络设备的报文发送方法 |
CN102170651A (zh) * | 2011-05-31 | 2011-08-31 | 电子科技大学 | 可信802.11dsr邻节点探测及维护方法 |
CN102412926A (zh) * | 2010-09-22 | 2012-04-11 | 富士施乐株式会社 | 通信系统 |
CN104244359A (zh) * | 2013-06-09 | 2014-12-24 | 浙江瑞瀛网络科技有限公司 | 一种用于无线网络路由路径优化的方法 |
CN104811379A (zh) * | 2015-04-29 | 2015-07-29 | 北京北信源软件股份有限公司 | 用于即时通信服务器互联互通的路由器寻址方法 |
CN104836734A (zh) * | 2015-05-11 | 2015-08-12 | 北京北信源软件股份有限公司 | 一种全新的即时通信路由方法和路由器 |
CN107071791A (zh) * | 2017-03-31 | 2017-08-18 | 深圳市亿道数码技术有限公司 | 一种基于LoRa的组网方法及系统 |
CN107393069A (zh) * | 2017-07-17 | 2017-11-24 | 曹迪 | 基于蓝牙mesh组网核心技术的门禁管理方法及系统 |
CN107995323A (zh) * | 2017-11-29 | 2018-05-04 | 重庆金美通信有限责任公司 | 一种AdHoc网络非隧道技术转发路由器IP数据的系统 |
CN109327881A (zh) * | 2018-10-24 | 2019-02-12 | 常熟理工学院 | 一种基于预切换机制的移动网络数据通信实现方法 |
CN109996309A (zh) * | 2018-01-02 | 2019-07-09 | 中国移动通信有限公司研究院 | 一种路由流量引流系统、方法、装置和介质 |
CN110391986A (zh) * | 2019-09-03 | 2019-10-29 | 北京百佑科技有限公司 | 智能门锁的路由通信方法以及系统 |
CN113765782A (zh) * | 2020-06-04 | 2021-12-07 | 瞻博网络公司 | 使用前缀独立收敛的针对底层故障的局部修复 |
US11870677B2 (en) | 2020-06-04 | 2024-01-09 | Juniper Networks, Inc. | Liveness detection and route convergence in software-defined networking distributed system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7668173B2 (en) * | 2005-12-01 | 2010-02-23 | Azalea Networks | Method and system for an adaptive wireless routing protocol in a mesh network |
CN101155134B (zh) * | 2006-09-28 | 2011-08-10 | 华为技术有限公司 | 路径计算及网络拓扑方法、构架和系统 |
CN101051972A (zh) * | 2007-05-24 | 2007-10-10 | 武汉理工大学 | 一种网格资源路由选择方法 |
-
2009
- 2009-07-10 CN CN2009101003909A patent/CN101594658B/zh not_active Expired - Fee Related
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883160A (zh) * | 2010-07-09 | 2010-11-10 | 杭州华三通信技术有限公司 | 多接口网络设备和多接口网络设备的报文发送方法 |
CN101883160B (zh) * | 2010-07-09 | 2013-03-20 | 杭州华三通信技术有限公司 | 多接口网络设备和多接口网络设备的报文发送方法 |
CN102412926A (zh) * | 2010-09-22 | 2012-04-11 | 富士施乐株式会社 | 通信系统 |
CN102170651A (zh) * | 2011-05-31 | 2011-08-31 | 电子科技大学 | 可信802.11dsr邻节点探测及维护方法 |
CN102170651B (zh) * | 2011-05-31 | 2014-01-08 | 电子科技大学 | 可信802.11dsr邻节点探测及维护方法 |
CN104244359A (zh) * | 2013-06-09 | 2014-12-24 | 浙江瑞瀛网络科技有限公司 | 一种用于无线网络路由路径优化的方法 |
CN104811379B (zh) * | 2015-04-29 | 2017-12-08 | 北京北信源软件股份有限公司 | 用于即时通信服务器互联互通的路由器寻址方法 |
CN104811379A (zh) * | 2015-04-29 | 2015-07-29 | 北京北信源软件股份有限公司 | 用于即时通信服务器互联互通的路由器寻址方法 |
CN104836734A (zh) * | 2015-05-11 | 2015-08-12 | 北京北信源软件股份有限公司 | 一种全新的即时通信路由方法和路由器 |
CN104836734B (zh) * | 2015-05-11 | 2018-04-03 | 北京北信源软件股份有限公司 | 一种全新的即时通信路由方法和路由器 |
CN107071791A (zh) * | 2017-03-31 | 2017-08-18 | 深圳市亿道数码技术有限公司 | 一种基于LoRa的组网方法及系统 |
CN107393069A (zh) * | 2017-07-17 | 2017-11-24 | 曹迪 | 基于蓝牙mesh组网核心技术的门禁管理方法及系统 |
CN107393069B (zh) * | 2017-07-17 | 2020-12-18 | 曹迪 | 基于蓝牙mesh组网核心技术的门禁管理方法及系统 |
CN107995323A (zh) * | 2017-11-29 | 2018-05-04 | 重庆金美通信有限责任公司 | 一种AdHoc网络非隧道技术转发路由器IP数据的系统 |
CN109996309B (zh) * | 2018-01-02 | 2020-10-02 | 中国移动通信有限公司研究院 | 一种路由流量引流系统、方法、装置和介质 |
CN109996309A (zh) * | 2018-01-02 | 2019-07-09 | 中国移动通信有限公司研究院 | 一种路由流量引流系统、方法、装置和介质 |
CN109327881A (zh) * | 2018-10-24 | 2019-02-12 | 常熟理工学院 | 一种基于预切换机制的移动网络数据通信实现方法 |
CN110391986A (zh) * | 2019-09-03 | 2019-10-29 | 北京百佑科技有限公司 | 智能门锁的路由通信方法以及系统 |
CN110391986B (zh) * | 2019-09-03 | 2021-04-20 | 北京百佑科技有限公司 | 智能门锁的路由通信方法以及系统 |
CN113765782A (zh) * | 2020-06-04 | 2021-12-07 | 瞻博网络公司 | 使用前缀独立收敛的针对底层故障的局部修复 |
US11870677B2 (en) | 2020-06-04 | 2024-01-09 | Juniper Networks, Inc. | Liveness detection and route convergence in software-defined networking distributed system |
Also Published As
Publication number | Publication date |
---|---|
CN101594658B (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101594658B (zh) | 802.11多接口宽带无线mesh网络路由方法 | |
KR100957920B1 (ko) | 무선 통신 네트워크의 용량 증가를 위해 다수의 라디오를이용하는 시스템 및 방법 | |
US6990075B2 (en) | Scalable unidirectional routing with zone routing protocol extensions for mobile AD-HOC networks | |
CN101568164B (zh) | 一种Ad hoc网络机会路由的实现方法 | |
KR101588043B1 (ko) | 무선 메쉬 네트워크들에서 고 처리율 라우트들을 발견하기 위한 방법 | |
US8213352B2 (en) | Wireless communication system, wireless communication device, wireless communication method, and program | |
CN102769885B (zh) | 一种在传感器网络中实现路由的方法和传感器网络 | |
CN101102283A (zh) | 一种在无线接入点上优化未知单播转发的方法及设备 | |
Robinson et al. | FPSOEE: Fuzzy-enabled particle swarm optimization-based energy-efficient algorithm in mobile ad-hoc networks | |
CN104010343A (zh) | 智能抄表系统无线网络优化方法 | |
CN103118413A (zh) | 一种基于确定性调度的IPv6工业无线传感器网络路由方法 | |
US7734278B2 (en) | Method and system for providing credit for participation in an ad hoc network | |
CN101431810A (zh) | Ad Hoc网络中可支持多速率传输的跨层协同路由方法 | |
CN101371531B (zh) | 用于网络的改进的路由确定方法 | |
CN101355506B (zh) | 一种Ad Hoc网络多路径路由的实现方法 | |
CN104053208A (zh) | 无线自组网中基于信道分配的路由方法、装置 | |
CN102573000B (zh) | 基于直接/间接矩阵的无线自组织网络保护路由生成方法 | |
Jain et al. | A study of congestion aware adaptive routing protocols in MANET | |
Chen et al. | Two hops backup routing protocol in mobile ad hoc networks | |
CN103581838B (zh) | 一种Ad Hoc网络信息共享方法 | |
CN103702370A (zh) | ZigBee网状拓扑路由方法 | |
JP4913208B2 (ja) | アドレス解決方法 | |
Hui et al. | Analysis and research on OLSR protocol for multi-channel assignment of wireless mesh network | |
CN104869605A (zh) | 一种基于应急通信的aodv路由稳定度算法改进方法 | |
CN109362114A (zh) | 一种基于标签的动态源路由的路径表达方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110601 Termination date: 20180710 |
|
CF01 | Termination of patent right due to non-payment of annual fee |