什么是Mesh网络

网络间的通信原理

假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。

但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话:

小不点:李大爷,我想找班主任查一下小明的电话号码行吗?

李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99

小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。

李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大爷把电话给转到小明家)

就这样你和小明取得了联系。

设置完IP地址与子网掩码后,计算机只能与处于同一网络内的其他计算机互相传递数据。这是因为设置了这两项参数后,计算机有了自己的地址,与其他计算机进行数据交换时,数据包有源地址与目标地址,即有明确的来源与去处,就像信封上写清了发信人与收信人地址,因此可以顺利地投递一样。但是此时计算机还不能与本局域网以外的计算机进行数据交换,因为我们还没有告诉计算机通过什么途径将数据送到本局域网以外的计算机中。要想与本局域网以外的计算机进行通信,还需要设置网关。

网关(Gateway)是将两个使用不同协议的网络段连接在一起的设备。它的作用就是对两个网络段中使用不同传输协议的数据进行互相的翻译转换。网关可以是硬件,如路由器、服务器等,也可以是软件。
给网关分配一个IP地址,这个地址就可以被局域网中的多台计算机所共享,这种地址共享有点类似于日常生活中的信件分发。邮局先把属于同一单位的信件送到该单位的收发室,再由收发室分发到各个不同的部门或个人,这就要求单位中的每个部门或个人都有一个唯一的内部信箱号,就像每台计算机有一个自己的私有IP地址一样。邮局只关心该单位的地址而不必清楚该单位的内部机构;同样,位于局域网外部的网关只考虑局域网中的多台计算机所共享的IP(网关)地址,而不考虑它们各自的私有IP 地址。借助网关可以使多个网络用户用一个IP地址访问因特网,比动态配置法更加节省IP地址资源。另外,它的安全性得到了进一步的提高,因为它内部的计算机根本就没有公有IP地址,外部用户无法直接访问这些计算机。

  • 集线器:工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。

  • 交换机:工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。

  • 路由器:工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。

1. 什么是Mesh网络

无线Mesh技术是一种与传统无线网络完全不同的新型无线网络技术。在传统的WLAN中,每个客户端均通过一条与接入点(AP)相连的无线链路访问网络,用户若要进行相互通信,必须首先访问一个固定的AP,这种网络结构称为单跳网络。而在无线Mesh网络中,任何无线设备节点都可同时作为路由器,网络中的每个节点都能发送和接收信号,每个节点都能与一个或多个对等节点进行直接通信。
mesh

这种结构的最大好处在于:如果最近的AP由于流量过大而导致拥塞的话,数据可以自动重新路由到一个通信流量较小的邻近节点进行传输。依此类推,数据包还可以根据网络的情况,继续路由到与之最近的下一个节点进行传输,直到到达最终目的地为止。这样的访问方式就是多跳访问

2. Mesh网络的由来

传统的单一无线IP接入点覆盖如图一
图一

单一无线IP接入点覆盖的缺陷:
1.要实现全部覆盖,相应的用户终端的发射信号功率将会很大,这往往是做不到的
2.没有对给定频段进行复用,支持的终端数少,多用户能力不高

如果使用的无线移动频段的带宽为B,每个用户终端的传送数据需要带宽b,则整个区域同时支持的最大多用户数为B / b

为了解决这一难题,20世纪80年代提出了如下两种有效的解决方案:
多个终端接力覆盖的网络如图二
图二
这种解决方案为了保持用较小信号发射功率都能应用到所有终端,并使在覆盖边缘或远端的用户终端能接入网关(WGW),采用通过具有路由功能的邻近终端作中继接力,经过多跳,接入到WGW,实现微小功率下的Internet接入。这种形成微小功率区域覆盖的解决方案的综合,构成Ad Hoc网络。这种网络可实现微小信号功率接入,同时接入最大用户数不会增加,但是用户终端间中继接力通信需要增加额外开销。这对具有路由功能的终端依赖较大,在终端移动情况下路由选择和网络拓扑不能固定,变动大。不过,Ad Hoc网络不需要增添另外的无线路由器来实现微小区覆盖,通过终端的中继接力接入Internet,对构建终端不需移动、位置分布比较随机的无线传感器网络非常方便、实用和有效。

  • 中继:是网络物理层上面的连接,适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。

多个无线路由覆盖的网络如图三
图三
将一个WGW支持的相关区域内划分成不同的多个微小区域,可彼此重叠,各微小区设立一个无线路由器(WR),形成众多无线路由器的网络覆盖。每个用户终端就近接入相应的WR,WR或直接接到GW,或通过邻近WR中继接力接到GW,实现整个区域的Internet接入。

无线Mesh网络如图四
图四
如果每个WGW都是引入众多WR的区域覆盖,多个GW覆盖区域的综合,就构成一种新型无线网络:无线Mesh网络,众多WR相互合作和协同,成网状分布,对整个城市或任意区域无线覆盖,实现无线移动通信。

3. Mesh网络的特性

  • 自组织
    网络节点和授权最终用户可即时加入网络,扩展网络覆盖范围,并可连接至所有其他节点。

  • 自愈
    如果网络中的某台设备发生故障或从其拓扑位置上拆卸,网络会自动适应这种改变。既使发端与对端之间的连接涉及多台中继设备,网络也会找到从发端到对端的新的路由。

  • 多跳式
    每个网络节点和用户端设备(无线通信单元)均能转发和路由发送至另一个对端的数据包,能选择并确定一个从发端到对端的最佳路由。

  • 点对点网络
    自组织网络通常由平等的网元构成,只要发端和对端的距离足够近,就能直接连接发端和对端。而不必通过中央管理节点。

  • 多信道协商 提高带宽的利用率
    无线Mesh网络进行多信道接入时一种协调机制,保证通信的两个节点都工作在相同的信道上。将时间轴被划分为信标间隔,在每一个信标间隔的开始,建立一个叫做ATIM的时间窗口,在相同的ATIM窗口内,有数据需要发送的节点使用控制消息和接收端使用相同的信道。这种多信道协商方法的目的是要选择业务负载小的信道,尽可能地平衡信道负载,减小竞争和退避所浪费的带宽。

4. Mesh的工作原理

1. Mesh邻居发现

Mesh发现是Mesh网络建立过程中的第一步,类似于接入服务中STA扫描网络。
图5

  • Mesh网络扫描
    Mesh节点(MP)通过主动发送Probe Request探测帧,或侦听Beacon帧,来收集邻居信息。Beacon或Probe帧中包含Mesh ID、Mesh Configuration以及安全能力等相关信息。
  • 邻居关系维护
    MP从接收到的Beacon或Probe Response帧中解析发端MP的Mesh profile信息,与本端Mesh profile信息进行匹配。只有当扫描双方的Mesh profile匹配时,双方才可以建立邻居关系。

2. Mesh连接管理

Mesh连接管理包括Mesh连接建立和Mesh连接拆除两个过程,采用Peer Link Open/Confirm/Close三种Mesh连接管理Action帧交互实现。
在这里插入图片描述

  • Mesh连接建立
    MP在选出候选Peer后,可以与之发起Mesh连接建立过程。协商Mesh连接的双方需要确保使用相同的Mesh profile。
    每个MP根据需要可以建立一条或多条Mesh连接,Mesh连接建立后,需要继续进行后续的认证和安全协商,之后Mesh连接才可以参与Mesh数据转发。
  • Mesh连接拆除
    Mesh连接双方中任一方,均可以主动向对方发送Peer Link Close消息,以关闭双方间的Mesh连接,收到Peer Link Close消息的MP,需要向对方MP回应一个Peer Link Close消息。
  • Mesh安全机制
    由于传输媒质的开放性,无线网络很容易遭受非法攻击,802.11i标准的推出解决了传统WLAN网络的安全问题,但Mesh网络的多跳性带来了新的安全挑战。在认证方式上,Mesh安全同样支持802.1x认证和PSK认证方式,802.1x认证通过Supplicant MP与AAA server交互产生后续密钥协商用的种子密钥MSK,PSK认证方式则直接使用PSK作为密钥协商的种子密钥。
  • Mesh选路
    Mesh网络是全连接的WLAN网络,任何一个源和目的地之间会存在多条可用的Mesh链路,并且这些Mesh链路的传输质量会随着周边环境实时变化。因此,非常有必要在Mesh网络支持选路协议,以确保数据帧能始终通过最优的链路传输。
  • Mesh转发
    对于目的MAC为单播地址的数据帧,首先查找转发表项。若查到匹配表项,则将数据帧由该表项对应的Mesh链路发送出去;若未匹配任何表项,则将该数据帧从所有处于活跃状态的Mesh链路发送出去。
    对于目的MAC为组播或广播地址的数据帧,MP将数据帧从所有处于活跃状态的Mesh链路发送出去。

作者:guiqiang107
链接:https://www.jianshu.com/p/ce56f75284b8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言按下列公式计算 求A20的值,2011年全国计算机二级C语言模拟试题及答案(10)...

一、 单项选择题(共30分,每题1分)1. 下列不正确的转义字符是( )A.\\B.\’C.074D.\02. 不是C语言提供的合法关键字是( )A.switchB.cherC.caseD.default3.正确的…

根据谁创建资源授权资源

我的一位同事向我提出了一个关于StackOverflow的有趣问题,并由于我在Spring方面的经验,建议我回答一个很好的问题。 问题是:“ 如何基于使用注释在REST中创建资源的用户来授权特定资源 。” 要点是: 我想做的是创建一个名为Aut…

组播详解

本文转自:http://liuqz926.blog.163.com/blog/static/13448936220091121104233491/ 组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机,是一种一对多的通讯方式。 IP组播的好处、优势 组播协议与现在广泛使用的单播…

ccf2017除法C语言,CCF考试——201709-5除法

概要问题描述小葱喜欢除法,所以他给了你N个数a1, a2, ⋯, aN,并且希望你执行M次操作,每次操作可能有以下两种:给你三个数l, r, v,你需要将al, al1, ⋯, ar之间所有v的倍数除以v。给你两个数l, r,你需要回答…

c语言中系统函数设定像素,在imag中对每个像素应用自定义函数的快速方法

我正在寻找一种更快的方法来应用一个自定义函数到一个图像,我用来删除蓝色背景。我有一个函数可以计算出每个像素与背景中蓝色的距离。带有循环的原始代码如下所示:def dist_to_blue(pix):rdist 76 - pix[0]gdist 150 - pix[1]bdist 240 - pix[2]retu…

netbeans7.4_NetBeans 7.4的本机Java打包

netbeans7.4成为“ NetBeans 74 NewAndNoteworthy ”页面的NetBeans 7.4的新功能之一是“本机打包 ”,在该页面上被描述为“ JavaSE项目现在支持使用JavaFX提供的本机打包技术来创建本机包。 ” 我将使用一个非常简单的示例来演示NetBeans 7.4中的本机打包功能。 下…

斯坦纳点/树、泰森多边形

斯坦纳点 斯坦纳点别名正等角中心、费尔马点、斯坦纳点 在三角形的三边各向其外侧作等边三角形,这三个等边三角形的外接圆交于一点T,该点T即称为托里拆利点(Torricelli’s point ),而三个等边三角形的外接圆称为托里拆…

c语言如何将程序保存在文件,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

FXRibbon 1.2版发布

这次,有所不同。 Microsoft对FXRibbon的更新,就像Java的功能区控件(JavaFX)一样 。 在发出使FXRibbon做好更好的准备以将其更新到Java 9以及更高版本的要求之后,我借此机会还添加了一些功能,进行了一些美学…

路由和交换

路由和交换 网络的工作方式是使用两种设备:交换机和路由器,来将计算机与外围设备连接起来。这两种工具使连接到网络上的设备之间以及其它网络相互通信。 虽然路由器和交换机看起来很像,但是它们在网络中的功能却截然不同: 交换机…

c语言链表写贪吃蛇思路,C语言构建的链表贪吃蛇

用C语言链表写的贪吃蛇(程序设计时做的,做的不好大佬勿喷)借助游戏内容分析贪吃蛇所需的功能主要包括这几块:移动光标模块打印地图模块和基本规则信息读取最高分文件打印初始蛇模块打印时给予蛇的初始移动方向产生食物模块1)、保证食物在地图内产生2)、保…

用普罗米修斯和格拉法纳乐器来刺豪猪

Adam Bien的Porcupine库使配置用作应用程序隔板的专用执行程序服务变得容易。 我创建了一个扩展,通过MicroProfile Metrics公开了豪猪统计信息。 我们还可以通过Prometheus和Grafana仪表板使仪器可见。 进行此扩展的原因是我们希望对Porcupine线程池的检测进行简单…

三层网络架构

三层网络架构 数据中心网络是连接数据中心大规模服务器进行大型分布式计算的桥梁。 传统数据中心网络普遍采用树型拓扑方案. 典型的拓扑由三层交换机互联构成,分别是接入层交换机、汇聚层交换机和核心层交换机。Cisco称之为:分级的互连网络模…

c语言调用labview方法,LabVIEW与C语言接口的方法

摘要介绍了一种LabVIEW与C 语言接口的方法,由实例证明,该方法高效、易行,是增强LabVIEW整体功能的一条有效的途径。关键词虚拟仪器LabVIEW 动态链接库LabVIEW是一种方便灵活的虚拟仪器开发环境。当前,虚拟仪器技术已广泛应用到各种…

SDN

直接理解 SDN是在2009年左右出现的一种新型网络结构,它将数据层面与控制层面分离,使用中央控制器完成网络的操作和管理,并通常采用OpenFlow协议作为其核心通信协议,拥有着集中式控制、可编程、部署灵活性和数据层面与控制层面相互…

gradle插件 java_简单的Gradle Java插件自定义

gradle插件 java正如我在“ 用Gradle构建Java的初步了解”一文中所展示的那样,当Gradle使用Java插件并将文件和目录放置在该插件期望的位置时, Gradle尤其适用于构建Java应用程序的基础知识(约定-基于项目的布局 )。 但是&#xf…

android 检测过程,Android 系统对permision的检测过程

Android 系统对permision的检测过程RK3288 5.1 中以太网设置静态IP 对permission的检测简略的调用过程如下:frameworks\opt\net\ethernet\java\com\android\server\ethernet\EthernetServiceImpl.javapublic void setConfiguration(IpConfiguration config) {if (!m…

IP地址分类(A类 B类 C类 D类 E类)

IP地址类型 公有地址 公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。 私有地址 私有地址&am…

Java:将JDBC ResultSet作为JSON流式传输

这篇文章展示了如何将java.sql.ResultSet转换为JSON并将其流回调用方。 如果要将大型数据集从JDBC数据源以JSON格式发送到Web应用程序,此功能很有用。 流式传输使您可以一点一点地传输数据,而不必将所有数据都加载到服务器的内存中。 例如,考…