了解Mesh的体系结构有利于我们后期的理解!这里有些简单的知识点以及解释
WMN:WMN就是无线mesh网络,我们一般提到WMN其实特指就是Mesh网络的整个体系结构
STA:客户工作站,这个东西就是用户的设备端,我们使用的设备都可以称之为STA,通过AP访问网络。AP(无线访问接入点设备,它是我们用无线网络上网的接入点。)
MP:MP是Mesh节点,它表示加入一个Mesh网络中的设备。因为Mesh的多节点性,因此每个Mesh网络中的设备都能成为中心节点并和其它Mesh节点进行交流。当我们启动具备Mesh网络的设备时,Mesh节点会自动寻找其它Mesh节点。
MAP:它是具备AP功能的Mesh节点,也就是说,这种Mesh节点可以与我们的STA进行连接并提供接入的功能。
MPP:这种Mesh节点可以提供向外部网络设备转发数据的能力,它还具备一定的路由功能。一般的,它是WMN和有线设备的网关。当WMN需要与非Mesh网络设备或有线设备转发数据时,我们就需要用到它。
无线Mesh的拓扑分为三类:基于客户使用的拓扑结构、基于基础设备的拓扑结构和混合型结构,我认为我不用太多的解释,无非就是一种为客户服务,一种为基础设施提供服务,一种是多用途服务。这只是在使用功能上的一个分类。对于网络拓扑来说的话,Mesh网络支持多种拓扑,因为具有动态调节的能力。
在数据链路层,Mesh有相应的帧封装在内部,这些帧就是区别是否为支持Mesh的设备的特征。下面就来研究Mesh的帧格式,也就是它的结构。
Mesh技术要实现的是多跳(无线连接)网络。在基于802.11的协议上,802.11s的主要变化有扩展了Mesh头和引入多跳Action管理帧的概念。
Mesh头:通过引入了Mesh帧头以封装完成Mesh,如下图所示
前面都是各种已有的报头,他们控制着该报文的其他部分,可以看出,身为新技术的Mesh被放在了帧头的后方(我习惯从左往右数)。
多跳Action帧:Mesh支持的多跳Action帧格式包括Mesh帧头和Action类型以及最后一位Last所表示的一个或多个制定的信息单元。
他们有什么用呢?Mesh帧头的表达了我具备Mesh网络的性质了,而多跳Action帧自然是Mesh组网特有的多跳的性质了,它需要这个多跳Action帧作为可多跳的依据。
Mesh Profile:一个Mesh设备若要加入Mesh网络,至少应配置一个Mesh profile。Mesh Profile包括如下Mesh网络的基本组成元素:(Mesh标识、Mesh选路协议标识和Mesh路径开销标识)。这些信息通过携带在管理帧中的Mesh标识信元和Mesh配置信元进行传递和协商
上面这段话抽象起来了,我们来分析解读一下。假如我是一个依靠Mesh运作的设备,我需要有一个Mesh Profile(网络轮廓)所有设备通过这个网络轮廓才能识别出我是不是一台Mesh。它由Mesh标识、Mesh选路协议和Mesh路径开销组成。Mesh标识代表在一个网络区间中唯一标识一台网络设备,就好比我要有一个不跟大家重复的名字,这样大家才能认识我;除此之外,Mesh还要具备选路协议,Mesh可以根据当前环境的动态变化而及时进行拓扑变化,Mesh选路协议在这时具有了作用;再然后,拓扑变化后,通信时还要在其中选出最优的路径以多跳方式传输数据,那么Mesh用根路径开销来对比哪条路更优。
如果你学过OSPF等网络协议,你会对Mesh运作过程非常清晰。
Mesh发现是Mesh网络建立过程中的第一步,首先它们会启用probe request(探测请求)和probe reponse(探测回应)进行探测Mesh网络的存在,当发出的request收到回应时,证明周围存在Mesh设备节点。发出的request探测帧中包含着Mesh ID标识、Mesh配置等诸多信息。当对方收到你的Mesh ID标识及配置等信息后会用response回应你,其中里面包含了它的Mesh ID标识以及它的Mesh配置等信息。
Mesh也可以通过侦听Beacon(信标)帧来收集邻居信息,加强了Mesh邻居发现的能力。
注:我在Probe帧或Beacon帧中携带有Mesh ID标识、Mesh配置与安全认证等信息,但是我在邻居发现时候,先进行的是Mesh ID标识的识别,后续我是否要维护这个关系就要协商其他参数。(我先知道你的名字认识你这个人了,之后才会再和你对话并考虑要不要与你维持邻居关系)
紧接上面的邻居发现,当Mesh节点从接收到的Beacon或Probe Response帧中解析发送端Mesh节点的Mesh profile信息,与本端Mesh profile信息进行匹配。只有当扫描双方的Mesh profile匹配时,双方才可以建立邻居关系。
也就是说,虽然在上述探测帧和侦听帧的过程中我发现了Mesh帧的存在,但我仍然要进行详细的Mesh Profile来判断是否我要接受或匹配这个帧,以此判断我们是否有建立通信的能力。
Mesh连接管理包括Mesh连接建立和Mesh连接拆除两个过程,采用PeerLinkOpen/Confirm/Close三种Mesh连接管理Action帧交互实现,
PeerLinkOpen:对等链接打开
confirm:确认
Close:关闭
当Mesh节点发现邻居后,可以与之发起Mesh连接建立过程。协商Mesh连接的双方需要确保使用相同的Mesh节点。每个MP可以根据需要建立一条或多条Mesh连接,Mesh连接建立后,需要继续进行后续认证和安全协商,之后Mesh连接才可以参与Mesh数据转发。
Mesh连接双方中任一方,均可以主动向对方发送Peer Link Close消息,以关闭双方间的Mesh连接,收到Peer Link Close消息的Mesh节点,需要向对方MP回应一个Peer Link Close消息。
Mesh网络的任何一个源和目的地之间会存在多条可用的Mesh链路,并且这些Mesh链路的传输质量会随着周边环境实时变化。因此,非常有必要在Mesh网络支持选路协议,确保数据帧能始终通过最优的链路传输,这个没有什么好说的,之前我们都知道Mesh拥有根据网络现状动态调整拓扑的能力,不过选路协议是不一样的,各个厂家和设计者都可以按照自己的预想和方案调整选路规则。
Mesh网络中的所有MP对数据帧均在二层进行标准的桥转发,这句话简单来讲就是Mesh网络主要是依靠数据链路层进行数据帧转发,还需要依靠类似交换机的工作模式完成转发数据。对于目的MAC为单播地址的数据帧,首先查找转发表项。若查到匹配表项,则将数据帧由该表项对应的Mesh链路发送出去;若未匹配任何表项,则将该数据帧从所有非接收端的端口泛洪出去(也就是全部发一遍)。对于目的MAC为组播或广播地址的数据帧,Mesh节点也是用泛洪的方式发送。