我有一个使用HTTP进行通信的客户端/服务器应用程序。 服务器在一些客户端的地球另一端。 服务器和客户端通信的stream量是非常低的带宽。
到了晚上,这个星球上的任何地方的连接工作都不是很好,但白天海外的连接工作效果不佳。 只有居住在国内的用户可以连接,其他人都可以得到TCP超时,重传等。我认为这是因为高峰时段的networkingstream量增加导致延迟。
重新定位服务器是一个昂贵的select。 我想为运行客户端的用户提供一个方便的解决scheme,而不需要他们重新configurationWindows超时等。我认为一种解决scheme可能是在可以接受TCP连接的用户附近有一个代理,连接到服务器。 或者也许切换到UDP。 (然而,UDP将是一个痛苦。)
也许我错了吗? 什么可能导致HTTP连接从0:00UTC到9-11 UTC之间变好,然后在今天的其他时间会变得很糟糕? 在Wireshark中,我看到许多重复的ACK,TCP重新传输,丢失的段等。与服务器在同一国家的客户端不会抱怨。 我已经testing了连接到我的服务器本地和通过一些在线的web代理(hidemyass.com)和前者总是工作,而后者取决于一天的时间。
编辑 :我从端口8080切换到端口80的HTTPstream量,它似乎有所帮助! 沿途的路由器是否有可能将端口80的stream量与端口8080不同? 我也试过端口81,它也连接不好。 有没有人听说过这样的事情?
如果服务器的带宽利用率在最差的连接时间没有达到峰值,
问题可能不在你的服务器本身,很可能在path上; 如你所build议。
你有关于这方面的ISP检查吗?
如果您的共享连接在共享区域出现峰值,则可能会丢失可用带宽,并且在服务器测量中仍未显示峰值利用率。
由于您在白天发现连接不好,所以我希望您的上行链路附近有其他人窒息,听起来就像是您的邻居正在使用的共享链路。
更新:在评论中回答你的问题,
你需要更多的信息。
作为一个故障排除步骤,我build议将一个连续的tracert转储到一个文件中。 运行它到几个目的地(城市,大陆)隔离主要的互联网path。 如果您有可用的远程networking资源,那么您可以运行或安排吞吐量testing,以查看来自世界各地的不同时间的性能。 iPerf是这种testing的好工具。
然后第二天查看/绘制结果,看看是否有模式指出问题可能发生的地方。 当然,由于跟踪路由是低优先级的stream量,并被许多防火墙阻止,所以在某些跳跃期间会期望一些丢失或丢失。 如果可能的话,也从相反方向运行相同的testing。 您可能会遇到不对称的path或其他奇怪的路由条件。 有了这些信息,您可以在与您的ISP的对话中更具体。
这可能是因为你使用的ISP不具有国际连接,也可能是其他ISP正在产生问题。 将互联网服务提供商切换到拥有通往主要国家/大陆的全部path的ISP可能是适当的。
尼尔