我遇到了一些有错误的TCP堆栈的嵌入式移动设备的问题。我们正在尝试更新这些设备,但固件下载失败,除非移动连接非常好。由于它是EDGE连接,因此它通常很糟糕。
部分问题是设备需要相当多的时间将数据写入存储。这可能是导致数据包丢失的原因,但连接永远不会恢复。
我认为如果我可以在TCP级别控制连接,我可能能够解决这个问题。我们尝试改变拥塞控制并没有帮助,但我们仍在调查。
与此同时,我想研究这个选项。有没有办法做到这一点,没有编写我自己的TCP堆栈/内核模块?
答案 0 :(得分:0)
我没有找到任何方法这样做,所以最后我设置了一个新服务器,并使用修改后的TCP_RTO_MAX值(5s而不是120s)重新编译了linux内核。这似乎解决了我的问题。我的猜测是,网络不是实际问题,而是设备需要很长时间来存储数据。这是一个非常具体的案例,这种解决方案对于网络连接实际上很慢的任何情况都没有帮助。