研究方向:无线MESH网络研究目的:了解MESH网络的概念,原理及主要应用情况,以得到一个比较直观的印象,从中得到一定的启发研究内容:一.MESH的概念和发展过程无线网络技术的发展日新月异,各种802.11x标准不断被更新,新的无线网络架构和技术也不断被提出。正当无线局域网(WLAN)的发展方兴未艾时,一种新的无线Mesh网络(无线网状网络)又出现了。无线Mesh网络的核心指导思想是让网络中的每个节点都可以发送和接收信号,传统的WLAN一直存在的可伸缩性低和健壮性差等诸多问题由此迎刃而解。无线Mesh技术的出现,代表着无线网络技术的又一大跨越,有极为广阔的应用前景。无线Mesh网络的核心指导思想是让网络中的每个节点都可以发送和接收信号,传统的WLAN一直存在的可伸缩性低和健壮性差等诸多问题由此迎刃而解。无线Mesh网络(无线网状网络)也称为“多跳(multi-hop)”网络,它是一种与传统无线网络完全不同的新型无线网络技术,是一种与传统的无线网络完全不同的网络。传统的无线网络必须首先访问集中的接入点(AP)才能进行无线连接。这样的话,即使两个IEEE802.116的节点实际上就是互相挨着,它们也必须通过接入点才能进行通信。而在无线Mesh网络中,每个节点都可以与一个或者多个对等节点进行直接通信。Mesh这个词原来的意思就是指所有的节点都互相连接,当然实际上绝大多数现代的Mesh网络只是通过部分节点相互连接。因特网的构架其实就己经是一个Mesh网络的结构。众所周知,接入因特网的用户位于网络的边缘,他们通过网络内部的路由器和节点相互连接,而这些路由器和节点的连接方式是这样的:当任意两个节点之间的一条链路失效后,路由器会经由一个或多个别的路由器找到一条替代路径。这就体现了Mesh网络的思想。通常认为,无线Mesh是点对点网络的一种,把它看成是移动Adhoc技术的一种简化版本。但两者有一定的区别,主要的不同在于网络结构的连接上,即无线Mesh中的接入点既可以作为MANET的一种对等的数据转发实体,又可作为一连接到其它有线网络的桥接器。无线Mesh网络是一种高容量高速率的多点对多点分布式网络。802.11宽带无线网络接入已经渐渐的普及开来。现在的802.11x技术很好地支持了单中心节点(比如单AP(AccessPoint))方式的部署(比如家庭使用,小型的公司和孤立的热点),但是还不能很好的支持多中心节点部署的情况(比如大型的企业,校园等)。传统的解决办法是把所有的AP直接连接到一个Internet的网关上去(每一个AP都用有线和主干网络相连),这样部署无线网络的花费将会随着网络规模的增加而大幅增加。一个直接可行的解决办法就是通过无线把各个AP连接成一个多跳的网中网(Meshnetwork),然后由一个核心AP接入有线网络(该AP称为SuperJoint)。这样一个AP-AP的Meshnetwork结构需要对现在的网络路由协议进行改进。WBDMR的设计借鉴了传统的Ad-Hoc网络路由协议,能够动态建立和维护Meshnetwork网络的路由,机制是每个AP根据本地状态信息按需计算路由,无线客户端节点通过AP进行数据的交换,该协议适用于十几个BSS基本服务集的中型Meshnetwork网络。在发展历程上,业界中有三种Wi-Fi方案:第一代集中式网络模式——是一种非智能的网络,相互独立的多个接入点(AP)连接到同一个有线局域网中。第二代集中式网络模式——是对已有交换机最简单的一种扩展方式,大多数有线交换机设备均支持。这种模式倾向于将智能功能从AP剥离出来放到交换机中。然而,这种方法产生了许多意想不到的后果(例如,单点故障、带宽瓶颈以及缺乏扩展性和灵活性)。此外,要是增加AP设备使得现有的WLAN交换机端口不够用时,就必须购买新的交换机。这两种Wi-Fi方案还存在着一个共性的问题——它们不是真正的无线,只是“更少的”有线。连接AP的以太网还是必要的。第三代Wi-Fimesh网络——是一种智能网络。由于网络节点间能够通过802.11无线链路相互连接,因此它们不需要通过有线连接到交换机上。Mesh网络架构可以扩展通信传输区域,也可以同时为无线用户和网络节点提供接入服务。如果设计的合理,mesh网络可以成为高性能、高可靠并具有冗余能力,并且能够扩展到包含成千上万个设备。这种类型的网络安装快捷,并且不要求精细的规划和位置选择即可获得可靠的通讯。简单地移动某个网络节点或者增加一个节点就可以立即完善一个信号较弱或无信号的区域。二.MESH的工作原理和结构1.网络结构无线Meshnetwork网络可以通过2维平面上的单位圆图(UDG,unitdiskgraph)来进行建模。UDG图的定义是:当且仅当图中的2个节点的距离小于单位圆半径时,2个节点通过边相连。图1是Meshnetwork网络拓扑图。在2000×2000的单位区域里面随机分布了9个节点(用圆圈表示),节点的传输距离约为130。节点间的距离小于传输距离,则可以相互通信,用实线进行连接。椭圆表示中心节点所在的BSS,在同一个BSS内的无线客户端通过中心节点进行通信。WBDMR的主要目的是在不同的BSS内的无线客户端通过中心节点间的无线链路中继进行通信。只有中心节点才保持路由信息,在不同BSS内的客户端若要通信需要把报文交给自己的中心节点进行路由计算。2.路由实现DSR(dynamicsourcerouting)和AODV(AdHocon-demanddistancevector)路由协议是AdHoc网络中2种经典的按需路由协议。特点是在需要的时候才创建路由,由路由发现和路由维护两个过程组成。当源节点想要向目的节点发送消息,并且没有有效路径可以到达该目的节点时,将启动路由发现过程来查找目的节点的路由。DSR路由的建立和维护由路由请求(RREQ)、路由回复(RREP)和路由错误(RERR)3种消息实现。采用源路由机制,数据包头携带路由信息,使用路由缓存技术来减少路由请求的数量。AODV路由的建立和维护由RREP、RREP消息和距离矢量表来实现,使用路由缓存技术减少路由请求的数量。每个路由都有用于防止路由环回的序列号,由目的节点生成。WBDMR在中心节点的路由保持了AODV和DSR按需路由的优点,并且引入Meshnetwork网络体系结构的特点,根据动态的网络拓扑来调整路由,并对路由表进行维护和更新。WBDMR路由协议框架结构如图2所示,路由协议的执行包含以下步骤:(1)定期接受邻居负载播报并用更新控制算法更新路由。(2)定期接受有线接入点(superjoint)的播报并用更新控制算法更新路由。(3)如果源发起节点为非中心节点,则该节点向与之相连的中心节点发送连接请求,如果客户是第一次接入该BSS,则中心节点广播路由发现报文,报告该客户端接入网络;如果源发起节点为中心节点,那么直接进入(4)。(4)查找路由缓存中的路由表,如果不存在满足条件的路由,则泛洪路由寻找报文。(5)找到满足要求的路由之后,使用更新控制算法更新路由缓存中的路由表。数据报通过第三步中建立的路由转发到目的中心节点,由中心节点将数据报转发给目的客户端,如果目的地就是中心节点,则直接接受数据包。2.1路由更新控制根据上述的Meshnetwork的网络特点,Meshnetwork的中心节点的路由结构很少发生改变。在设计WBDMR时,中心节点并不定期交换路由表信息。而是只向邻居节点定期播报自己的当前负载和自己的邻居节点列表。中心节点的当前负载可以通过任何策略进行计算(比如时延,噪声,吞吐量和流量等)。当邻居收到该播报信息后,把该节点的负载插入邻居负载列表NLL。如果几次接受到的负载的平均值与当前使用的路由表里该邻居的负载记录值之差超过负载抖动门限。那么重新启动路由选择算法寻找是否有一条更好的备用路由。例如,A和B互为邻居节点。每次当B发出播报的时候,A把收到的B的负载放入到一个循环的数组里面,长度为N并且第N+1个播报会替代第一个记录以保持N的长度。根据公式(1)计算新的负载NewLoad和与当前记录的差值Diff。如果DiffThreshold(负载抖动门限),那么把NewLoad作为B的负载值。如果A有路由把B作为下一跳,那么便对路由进行重新计算。具体是如果更新后的路由的负载与首选备用路由的负载的差DiffThresholdRoute(路由更新门限),那么便把备用路由作为主用路由,并发出路由播报。负载播报让每个节点计算自己的负载而不是链路负载来让邻居进行链路选择。使得可以采用很灵活的负载算法,实现了网络的动态路由选择并保持负载均衡。由于NLL和路由更新都有门限值,保持了路由和邻居状态的稳定。不会因为一时的抖动影响路由。由于不发送路由表信息,因此报文较小,而且泛洪限制在自己的邻居节点,减小了对网络性能的影响。2.2有线接入点状态播报有线接入点(superjoint)定期进行有线状态播报。在有线状态播报里面包含了该有线接入点的当前负载和对整个Meshnetwork中心节点网络的配置策略。中心节点在收到有线状态播报后启动路由更新算法来调整或者更新到有线接入点的路由,在泛洪距离内对播报进行转发并且更新路由损耗。通过播报中的策略来控制网络中中心节点的各种参数,以实现通过一个有线节点来管理整个Meshnetwork以方便对设备的管理。2.3路由发现和路由寻找由于只有中心节点才参与路由计算,无线客户不缓存任何的路由信息。因此,中心节点对客户端的路由建立采用了路由播报。具体是在路由报文里面加入APID域,该域用来广播无线客户端的接入并赋值为该客户所属的中心节点的地址。所有收到报文的节点将会把该客户端地址放入到中心节点路由对应的MAC地址链表里面。如果客户漫游,那么将会引起新的路由播报并导致邻居中心节点更新路由表。如果客户端在发送报文时找不到目的路由,那么就发送报文寻找报文。中间节点发现路由后便发送路由播报,并用自己的负载加上路由播报的负载值作为新的负载填充报文并重发。2.4路由环路的消除和路由备份由于路由播报采用泛洪,因此会出现环路路由,可能导致系统瘫痪。如图3,椭圆区域内的中心节点是邻居,能够相互收到对方的信号,C1和C2是以A为中心节点的客户端。如果C1接入A,C首先播报到C1的路由,对应的中心节点为A。B收到后更新路由表,也播报到C1的路由(C为下一跳),C接受到后认为从B到C1是一跳新的路径。因此加入到自己的备用路由。其实B是通过C到达C1的,因此是冗余的环路路由,需要去除。由于B通过C建立了到达A(C1)的路由。因此B播报的路由损耗肯定比C当前的要大。因此,在WBDMR中,只要收到到相同路径的更大损耗的路由播报就丢弃并不予转发。比如在图3中,C转发到C1的路由发现后,B又播报到C1的路由,不过由于这时候B播报的路由损耗比C现有的损耗大,C直接丢弃这个报文并不予转发。不过相同路径的定义是到相同的客户端,而不是中心节点。因此,在有多个客户接入的时候,如果中心节点收到了来自不同路径的客户端路由播报,便把这条新的路径加入到路由表中,实现了备份路由。比如对于D处而言,C2又接入了A,D播报了C2的路由。C收到了来自D的目的中心节点为A的C2的路由,C查看自己的路由表并没有到C2记录,因此把这条记录加入到目的节点为A的路由表项,并且把C2放入A的挂接客户端链表里面,并且判断A-D-C和A-C两条路由的损耗,选择小的作为主用路由(如果是更新损耗差值必须超过更新路由门限)。如果A-C的链路一直很好,D发出的报文总是后到,那么C不会建立D的备用路由。这样不仅能够产生备份路由,消除冗余路由,而且备份路由条数会随着网络接入客户端数目的增加和网络的负载情况动态建立。3.协议3.1概要由于无线Mesh网络的多跳性,所以每个节点都要有报文转发功能,这就要求节点实现合适的路由协议。无线Mesh网络中节点是可以自由移动的,网络拓扑结构会发生变化,这样传统的基于Intemet的路由选择协议,如距离矢量方法的RIP和链路连接状态方法的OSPF等不适合在无线Mes