大家好
我是#FujiNet项目的固件开发者之一,该项目为#Atari8bit电脑带来了网络适配器。
固件在这里,而且是免费软件。
https://github.com/FujiNetWIFI/fujinet-platformio
我们目前遇到的问题是固件中的Wi-Fi MODEM仿真(目前在这里实现:https://github.com/FujiNetWIFI/fujinet- ... /modem.cpp),如果主机发送了太多的一字节数据包(由于主机为了提高交互性能禁用了Nagle算法),那么ESP32对这些数据包的响应速度不够快,主机会重新发送数据包,最终导致重复确认(DUP ACK),因为ESP32最终确认了所有的数据包,如果晚了一点,最终导致主机认为数据包拥塞过多而拒绝发送更多数据。
我的问题是,如果程序的主线程运行过快,最终会不会饿死lwIP,无法进行基本的TCP内务管理,比如确认收到数据包?如果是这样,正确的解决方案是什么?
我们已经试过了
* vPortYield()在代码中处理接收数据包的所有部分。
* 调整SDK参数以调整静态和动态缓冲区的大小。
* 调整lwIP进程的进程亲和力。
* 明确地在处理收到的数据包的地方设置延迟(作为测试)
我们真的很头疼,任何帮助都会被感激。
托姆-切瑞家
TCP DUP ACK是否是lwIP进程被饿死造成的?
Jump to
- English Forum
- Explore
- News
- General Discussion
- FAQ
- Documentation
- Documentation
- Sample Code
- Discussion Forum
- Hardware
- ESP-IDF
- ESP-BOX
- ESP-ADF
- ESP-MDF
- ESP-WHO
- ESP-SkaiNet
- ESP32 Arduino
- IDEs for ESP-IDF
- ESP-AT
- ESP IoT Solution
- ESP RainMaker
- Rust
- ESP8266
- Report Bugs
- Showcase
- Chinese Forum 中文社区
- 活动区
- 乐鑫活动专区
- 讨论区
- 全国大学生物联网设计竞赛乐鑫答疑专区
- ESP-IDF 中文讨论版
- 《ESP32-C3 物联网工程开发实战》书籍讨论版
- ESP-AT 中文讨论版
- ESP-BOX 中文讨论版
- ESP IoT Solution 中文讨论版
- ESP-ADF 中文讨论版
- ESP Mesh 中文讨论版
- ESP Cloud 中文讨论版
- ESP-WHO 中文讨论版
- ESP-SkaiNet 中文讨论版
- ESP 生产支持讨论版
- 硬件问题讨论
- 项目展示
Who is online
Users browsing this forum: No registered users and 49 guests
- All times are UTC
- Top
- Delete cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. ESP8266EX and ESP32 are some of our products.