一个被忽视的带宽问题

作者: hovey 分类: 技术 发布时间: 2015-07-24 16:58 ė3,038 浏览数 6没有评论

我们开发的远程访问系统软件(主要用于运维人员在局域网中通过WEB及命令行远程访问客户局域网中的IP设备),第一个软件版本在试用的时候,有用户反馈很少概率下页面有时打不开、打开慢的问题。

力争完美是我们的追求:我们将软件进行了大幅的优化,争取取得一个大家能满意的效果。

第二个版本,在实验室测试的时候,通过系统下载/上传的速度,最高可接近2MB/s,效果令人满意,访问体验明显优于第一个版本,即使在10%的丢包率下,用户使用体验也没有太明显的差异。

基于此,我们将系统架设到公网,进行了内部测试。

发现,系统一旦到了公网,迅捷的身影不灵验了。

如果只是访问非常简单的设备页面,速度杠杠的;但一旦访问复杂的,需要下载大量资源的WEB页面,就会经常出现打不开及打开慢的问题。

怪了,10%的丢包都扛得住,这个居然就挂了!而使用第一个版本,反而不出问题。

因为这次优化的代码,改动非常大,开始判断是不是修改的代码有问题,新设计的机制是不是有缺陷,头疼了好一阵子。后来经过分析,恍然大悟,问题原来出在局域网的出口带宽上。

因为这次大幅优化了速度及效率,系统的传输速度一开始设定的比较高,如果局域网的出口带宽太小,那么瞬间报文的冲击将导致大面积的丢包,大面积的丢包又导致系统的QoS重传机制生效,从而引发雪崩效应。

而我们系统的第一个版本,最开始的考虑是保证传输到达率,没有过多考虑传输效率问题,带宽占用小,反倒没有多大问题。

现在需要考虑的问题是,局域网的出口带宽,你永远无法确定,即使你知道用户使用的带宽是多大的,也无法预测局域网中的网络行为,比如,有人看网页,有人看视频,你无法确定系统最终能够占到多大的带宽用于通信。

找到问题就好办,速度设计带宽自适应算法,根据传输的效率及反馈,自动调整传输速率,既保证尽可能利用带宽,又保证传输质量。

2天内完成设计、编码到测试,效果非常明显。

开发中的一点小干货,分享出来,希望能够给技术人员带来一点启发。

hovey微信二维码

本文出自 跬步正酣,转载时请注明出处及相应链接。

本文永久链接: http://www.unccc.com/?p=255

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部