我们有一个 Apache 服务器,用于托管一些嵌入式设备的固件文件。这些文件不是很大,只有大约 160kb。嵌入式设备使用 EDGE 移动连接连接到此服务器并在需要时下载更新。我们遇到的问题是,其中一些设备存在软件错误,导致大量数据包丢失。如果网络连接非常好,设备将设法下载文件并进行更新。问题是大多数情况下不会发生这种情况。
我不认为数据包丢失是由网络引起的,因为下载总是一开始就很好。大约 4KB 之后,当设备开始将数据写入闪存时,连接速度就会变得非常缓慢,并且再也没有恢复。通常,这种减速应该是暂时的,一旦保存了数据,下载速度就会提高。
查看网络流量,双方仍在发送数据包,但存在丢失,并且服务器大部分时间都在等待确认。
我想知道是否有任何方法可以强制服务器更频繁地重新发送数据包。我尝试将 tcp 拥塞控制更改为 westwood,但没有帮助。Web 服务器(任何 Web 服务器)中是否有任何设置可以做到这一点?或者也许有一种方法可以为此目的编写我们自己的设置?这只是一个临时解决方案,直到我们更新有问题的设备。