我有个问题。当大家都在家并使用互联网时,我在控制智能家居设备时遇到了延迟。互联网并不慢(300Mbps),但我认为一个路由器无法很好地处理我们同时连接的 25 台设备。
我的想法是将它们分开在另一个子网中,使用另一个路由器。我正在连接 2 个路由器。路由器 A 是通过 WAN 端口连接到互联网的主路由器,另一个(较旧的)路由器 B 用于家庭自动化等的特定部分,其 WAN 端口连接到路由器 A 的 LAN 端口。每个路由器都有自己的 DHCP 地址范围。
现在,这很简单,只需连接、分配地址,一切就绪。路由器 B 上的设备具有互联网连接。问题是从路由器 A 网络中的设备访问路由器 B 网络中的设备。嗯,它有点工作正常,但不是 100%。路由器 A 和路由器 B 都具有无线功能。
所以我需要确认我是否做对了。
有点像这样:
主路由器-A:
192.168.2.1 /24
路由器 B:
192.168.1.1 /24
好的,然后我做了一个静态路由
Network/Host IP, Netmask, Gateway, Metric,Interface
192.168.1.0 255.255.255.0 192.168.2.200 2 LAN
192.168.1.1 255.255.255.255 192.168.2.200 1 LAN
我可以 ping 192.168.1.0 中的所有设备,但并非所有设备都能正常工作。也就是说,我无法 Telnet 到它?而且一些通常连接到这些设备的应用程序无法正常工作。
我还需要做点别的吗?
答案1
你可以通过这种方式连接,但由于它的设置与智能家居设备在NAT/防火墙,您必须为每个设备进行端口转发。例如,如果它们是同一型号的 LED WiFi 灯泡,它们将使用相同的端口进行管理/电话应用程序,并且会使管理这些变得一团糟。
另一种方法是在路由器的无线接口上启用服务质量,并使智能家居设备的管理端口优先传输流量。
我认为您的缓慢问题与无线机制有关。我将尝试解释我即将给出的建议的原因。
在网络早期,计算机网络是使用总线拓扑结构构建的。通常称为细网或粗网。(取决于使用的同轴电缆。)因为每个终端站共享同一根电线(总线)并且是半双工的,这意味着设备可以发送或者接收,但不能同时接收。由于这种网络设计,线路上可能会发生冲突。(当两个设备试图同时传输时。)
解决单线上多个设备的问题的方案是“带冲突检测的载波侦听多路访问”。(CSMA/CD)
CSMA/CD 的要点如下:终端站监控总线(或 10base-t 半双工以太网)以确定线路是否繁忙。希望发送数据的节点等待空闲状态,然后传输其消息。
如果两个节点同时传输:
- 节点检测到发生碰撞
- 节点发送干扰信号
- 每个节点在重新传输之前都会等待一段随机时间(退避时间)
此外,这个问题已通过全双工交换得到解决。在现代交换中,每个端口都是一个冲突域,能够同时在两个方向上发送和接收。除非出现无法正常协商的情况,否则不再使用 CSMA/CD。
快进到无线革命,请记住这些图示仅适用于 802.11-a/b/g/n。对于 Mimmo/Mu-Mimmo,这些图示和解释会变得更加复杂。
无线设备也使用共享介质(空中)作为通信主干。因此,它们遭受早期总线网络的相同问题,这些总线网络共享一条线路,但使用载波侦听多路访问和冲突避免。(CSMA/CA)
还要记住,即使客户端告诉您,例如其连接速度为每秒 54Mbits。实际上,路由器和无线客户端之间进行的所有活动对话都共享 54Mbps。通常,当这么多客户端连接到消费级路由器时,每个设备(取决于传输的流量和环境中的干扰程度)都将在下面所示的 CSMA/CA 流程图中的红色方框中花费大量时间。
更糟糕的是,它不仅仅是你的路由器依赖于环境,前面提到的总线实际上是你的路由器所在的通道,而且很可能你的邻居也占用了这些通道。此示例中的红线是一个通道,而位于不同通道上的其他房屋将拥有自己的总线,并且该通道上还有其他路由器(冲突域)。
我个人推荐以下设置:
这样,您的物联网或智能家居设备将处于自己的“碰撞域”中,并且拥有大量专用带宽。
将路由器 A 的 LAN 地址设置为子网中最低可用的地址。
例如:192.168.2.1 255.255.255.0
相应地设置 DHCP。
设置为通道 1
ssid 示例:“数据网”
有效的 DHCP 范围在 192.168.2.2 和 192.168.2.253 之间。
将路由器 B 的 LAN 地址设置为子网中的最高地址,
例如:192.168.2.254 255.255.255.0 并关闭此路由器上的 DHCP。
如果可以选择,请禁用防火墙。禁用 DHCP。设置为通道 11
ssid 示例:“IOT-Net”
如果可以选择,请将路由器设置为“接入点”或 AP 模式。
确保第二个路由器连接到第一个路由器的一个 LAN 端口。
您所有的设备现在都应该在同一个网络段中,理想情况下,您应该将数据密集型客户端远离路由器 B。这应该会使访问这些设备变得顺畅且响应迅速。