码迷,mamicode.com
首页 > 其他好文 > 详细

IoT中的WiFi Mesh 网络

时间:2020-03-13 20:42:56      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:子网   hgfs   客户   int   多个   双向   父节点   结果   jee   

https://mp.weixin.qq.com/s/3LtD0u2HlJieL-KLwVXrbQ

技术图片

 

 

4 针对IoT应用的WiFi mesh网络

 

4.1 通过多路由器扩展出的mesh网络

 

技术图片

 

这种网络架构刚刚已经列出,也可以部署给IoT节点来使用,有三部分组成,gateway(由其中一个wifi  mesh路由器充当),mesh 路由器(即WiFi mesh路由器),以及 IoT节点(client)。

也有人使用这种方式做过实验,结果如下:

  • 硬件:TP-LINKMR3020

  • WiFi 客户端使用的模块:ESP8266

  • 测试:将采集到的数据通过MQTT发送到internet以及通过手机访问Web来产生流量。

 

测试10次,连续发送数据4分钟,结果如下:

 传输速率测试(gateway附近以及较原距离)

技术图片

技术图片

 

延时以及丢包统计

技术图片

 

 4.2  乐鑫 WiFi Mesh方案

 ESP-Mesh方案

技术图片

 

技术图片

技术图片

 

 网络由根节点,中间节点和叶子节点组成:

 

技术图片

 

  • 根节点:根节点是网络中的最高节点,并且是ESP-MESH网络和外部IP网络之间的唯一接口。根节点连接到常规Wi-Fi路由器,并将去往/来自外部IP网络的数据包中继到ESP-MESH网络内的节点。ESP-MESH网络中只能有一个根节点,并且根节点的上游连接只能与路由器建立。参考上图,节点A是网络的根节点。

  • 叶子节点:叶子节点是不允许具有任何子节点(无下游连接)的节点。因此,叶节点只能发送或接收自己的数据包,而不能转发其他节点的数据包。如果一个节点位于网络的最大允许层上,则将其分配为叶节点。这样可以防止节点形成任何下游连接,从而确保网络不会增加额外的层。由于任何下游连接都需要softAP接口,因此某些没有softAP接口的节点(仅工作站)也将被分配为叶节点。参考上面的图,节点L / M / N位于网络最大允许层上,因此已经被分配为叶节点。

  • 中间父节点:既不是根节点也不是叶节点的连接节点是中间父节点。中间父节点必须具有单个上游连接(单个父节点),但可以具有零个到多个下游连接(零个到多个子节点)。因此,中间父节点可以发送和接收数据包,但也可以转发从其上游和下游连接发送的数据包。参考上图,节点B到J是中间父节点。没有下游连接的中间父节点(例如节点E / F / G / I / J)不等同于叶节点,因为将来仍允许它们形成下游连接。

  • 空闲节点:尚未加入网络的节点被分配为空闲节点。空闲节点将尝试在适当的情况下与中间父节点形成上游连接,或尝试成为根节点(请参阅自动根节点选择)。参考上图,节点K和O是空闲节点。

 

路由表

ESP-MESH网络中的每个节点都将维护其单独的路由表,该表用于将ESP-MESH数据包(请参阅ESP-MESH Packet)正确路由到正确的目标节点。特定节点的路由表将由特定节点的子网内所有节点的MAC地址(包括特定节点本身的MAC地址)组成。每个路由表在内部被划分为多个子表,每个子表对应于每个子节点的子网。

 

技术图片

 

ESP-MESH路由表示例

以上面的图为例,节点B的路由表将由节点B到I的MAC地址组成(即相当于节点B的子网)。节点B的路由表在内部分为两个子表,两个子表包含节点C到F和节点G到I(即分别相当于节点C和G的子网)。

 

ESP-MESH根据以下规则利用路由表确定是应向上游还是向下游转发ESP-MESH数据包。

1.如果数据包的目标MAC地址在当前节点的路由表中,而不是当前节点,则选择包含目标MAC地址的子表,并将数据包向下游转发到与该子表相对应的子节点。

2.如果目标MAC地址不在当前节点的路由表之内,则将数据包向上游转发到当前节点的父节点。重复这样做将导致数据包到达根节点,路由表应包含网络内的所有节点。

 

双向数据流

下图说明了ESP-MESH双向数据流中涉及的各个网络层。

技术图片

 

由于使用路由表,ESP-MESH能够完全在网状层上处理数据包转发。

 

ESP-Mesh性能:

测试条件:

  • 测试节点个数: 100

  • 最大下行可连接数6

  • 最大级联层数: 6

 

技术图片

 

以上性能是乐鑫官网的数据,也有人测试了使用10个和16个节点组成的ESP8266 mesh网络的性能:

网络拓扑结构如下:

 

技术图片

传输速率结果如下:

技术图片

 

表1列出了平均数据速率测量结果。

例如,在有效载荷为1500字节时,发送方程序设定为每秒发送200条消息。实际上,它只能每秒发送149.6条消息。这是因为载荷太大,ESP8266资源受限,无法处理应有的任务。

 

最后结论:

  • 只要两个节点的网络,1跳的延迟是2.49ms,节点增多延迟会增大

  •    在16个节点的网络中,当有效数据分别是10和4400字节时,接收端最大传输速率461字节/秒和58字节/秒
  •    当payload大于4400字节时,数据会损坏和不完整。
  • ESP8266可以应用于IoT。

 

5 未来

尽管WiFi Mesh有很多缺陷,以及没有统一的标准,但WiFi mesh网络在IoT应用中仍然非常值得期待。

 

关注公众号

技术图片

IoT中的WiFi Mesh 网络

标签:子网   hgfs   客户   int   多个   双向   父节点   结果   jee   

原文地址:https://www.cnblogs.com/someone-device/p/12488491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!