This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3301:WiFi 固件偶尔会丢弃数据包、导致 TCP 传输速度降至 0(R6 版本)

Guru**** 2466550 points
Other Parts Discussed in Thread: CC3301, CC3351

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1474943/cc3301-the-wifi-firmware-occasionally-drops-packets-causing-the-tcp-transmission-speed-to-drop-to-0-r6-version

器件型号:CC3301
Thread 中讨论的其他器件: CC3351

工具/软件:

我们看到 WiFi 传输在更大的下载 (FOTA) 时突然停止。 一个较简单的测试用例正在运行 iperf、测试通常在 10 秒结束前停止。 此处的测试用例只需在固件中启用 iperf3、连接到 wifi 并通过 wifi 链路运行 iperf。   我们的分析表明、WiFi 固件会在一段时间内丢失接收到的数据包、导致 TCP 传输中断、但这种情况可以恢复。   问题是如何防止这种情况发生?  

  

[08:30:36.213]# iperf3 -s
 ...[08:31:49.391]
服务器[192.168.5.94]侦听[5201]
[08:31:49.391]------------------------------------------ 
[08:31:55.115]接受来自 192.168.5.1 端口 46328
 [08:31:55.539][5]本地 192.168.5.94 端口 5201 连接到 192.168.5.1 端口 46330
 [08:31:56.553][ ID]间隔的连接 传输 带宽
[08:31:56.553][5] 0.00-1.00 秒 1.01MB 8.44 MB /秒 
[08:31:57.905][5] 1.00-2.36 秒 761 KB 4.60 MB/秒 
[08:31:58.549][5] 2.36-3.00 秒 1.56MB 20.3MB/秒 
[08:31:59.549][5] 3.00-4.00 秒 2.58 MB 21.7MB/秒 
[08:32:00.549][5] 4.00-5.00 秒 2.50 MB 21.0 MB/秒 
[08:32:01.549][5] 5.00-6.00 秒 2.08 MB 17.5 MB /秒 
[08:32:02.550][5] 6.00-7.00 秒 1.85MB 15.6MB/秒 
[08:32:03.545][5] 7.00-8.00 秒 1.60 MB 13.4 MB/秒 
[08:32:04.925][5] 8.00-9.38 秒 686 KB 4.08 MB/秒 
[08:32:05.550][5] 9.38-10.00 秒 115KB 1.51Mb/s 
[08:32:06.555][5] 10.00-11.01 秒 0.00 字节/秒 <<<
[08:32:07.555][5] 11.01-12.01 秒 0.00 字节/秒 
[08:32:08.555][5] 12.01-13.01 秒 0.00 字节/秒 
[08:32:09.555][5] 13.01-14.01 秒 0.00 字节/秒 
... 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yuan:

    我们认为、我们有一种理论来解释为什么吞吐量突然下降、但这取决于 IRQ 方案。 您是否知道您的 IRQ 是使用边沿中断还是电平中断? 我们认为您的主机缺少边沿中断、因此暂时失去了通信。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sabeeh

    这是中断丢失的问题。 我们已经确定了这个问题、并在主循环中添加了一个基于超时的轮询机制来检查中断状态、从而避免传输中断。 但是、超时持续时间设置为 1 秒、因此我相信我们之前遇到的频繁 1 秒传输暂停可能是由这种情况引起的。 我通过将超时减少到 100ms 进行了一项测试、问题得到了显著改善。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yuan:

    cc33xx 设计用于电平中断。 如果 MCU 主机支持、我建议使用电平中断以免错过中断。 如果此硬件中断正常工作、则可能会删除轮询机制。

    因此、我猜主机仅使用边沿类型中断、这就是为什么有时会错过来自 CC33xx 的中断、对吧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sabeeh

    我们在产品中使用了 SDIO 中断、而不使用 OOB 中断、因此需要轮询机制。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sabeeh

    下面是 tp LINK TL-WR886N 路由器的监听器日志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sabeeh

    下面是 tp LINK TL-WR886N 路由器的新监听器日志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将路由器移开进行测试(固件版本 1.7.5.310)。 RSSI 值为–45。 测试 iperf 24 小时后、结果表明 iperf 未中断、但仍有观察到速率降至 0 的情况。 与旧版本的 FW (1.7.0.301) 相比、此测试结果有所改进。 使用旧版本固件测试 iperf 时、iperf 将中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sabeeh

    我已将新固件的监听器文件 (tcpdrop_issue.7z) 上传到 tidrive.ext.ti.com/.../

    该问题在特定时间似乎很容易重现、但在更改通道后恢复正常。 它可能与网络干扰有关。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yuan:

    我不确定我是否遵循您所描述的内容。 “更改频道后恢复正常“是什么意思? 您是否连接到不同 WiFi 信道上的其他 AP? 您是否认为您看到的问题与 CC33x 无关?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    看一下监听器捕获、我想我看到了网络干扰的含义。 从大约 167 秒到大约 180 秒、有许多 TCP 重新传输。  

    您是否能够在消声室等更安静的环境中进行测试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    许多 TCP 重新传输、 是否假定无线接口繁忙、从而导致数据包丢失? 在后续测试中不会发生这种情况、因此没有相关的数据包捕获数据可用。