标签:子网 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,节点增多延迟会增大
5 未来
尽管WiFi Mesh有很多缺陷,以及没有统一的标准,但WiFi mesh网络在IoT应用中仍然非常值得期待。
关注公众号
标签:子网 hgfs 客户 int 多个 双向 父节点 结果 jee
原文地址:https://www.cnblogs.com/someone-device/p/12488491.html