我在使用设置为 Wi-Fi 接入点的嵌入式 Wi-Fi 设备时遇到了问题。我发现 AP 温度升高时,尝试连接的设备(站点)可能会出现一些问题。我认为不是站点出现故障,而是 AP 出现某种损坏/故障。在通过循环连接和断开连接进行测试时,站点设备(我的 iPhone)突然再次要求输入 WPA 密码。然后,一旦连接并拥有其以前的 IP,大约 10 秒后,它会再次尝试获取 IP 地址。我看到 DHCP 发现并提供,但没有请求和确认。大约 2 分钟后,它确实使用了其以前的 IP 地址,但通过 mDNS 进行的名称解析不起作用,并且您无法 ping 站点,直到站点先 ping 网关。显然,此时网络在某种程度上有点混乱。
如果您关闭 AP 的电源,站点将成功连接,但后续连接尝试总是会尝试获取 IP 地址,如前所述。DHCP 更新无济于事。重新启动站点将允许成功进行首次连接,但后续连接再次失败。如果我在 AP 上禁用 WPA,一切都会正常。如果我返回并重新启用 WPA,即使使用新的不同密码,它仍会表现出相同的行为。让 AP 设备冷却到室温并不能解决问题,但让它在关机状态下放置一夜似乎可以解决问题。
另一个有趣的现象是,故障发生后,我可以将新设备连接到 AP,并且每次断开连接后它都能正常工作,而发生故障的 iPhone 仍然会出现问题。
我的假设是 WPA 身份验证出现了问题。我猜我正在寻找的是 WPA 身份验证和 DHCP 如何协同工作,以便我可以尝试弄清楚发生了什么。希望这里有人非常了解整个过程的工作原理。例如,DHCP 是在 WPA 身份验证之前完成的吗?新的 WPA 密钥是如何生成的,它们是如何存储在每个设备上的。电源循环会清除这些生成的密钥吗?
答案1
简而言之:WPA 身份验证和 DHCP 完全独立。在传输任何数据之前,必须完成 WLAN 关联和 WPA 身份验证,这里的数据包括 DHCP 数据包。
高温下出现故障表明存在硬件问题,因此几乎不可能进行调试和修复。
“无法 ping 该站,直到该站先 ping 网关。”听起来像是 ARP 问题。
如果 AP 因为温度原因随机丢弃重要数据包(ARP、DHCP),那么 AP 和站点的网络堆栈各个部分的状态都会不一致,这可能是您看到的症状的原因。