应用程序需要网络损伤仪模拟广域网进行测试

现代人们对无线技术的依赖程度随着服务器整合、虚拟化、云计算、远程工作的增加不断的加深。各种厂家通过云、广域网 (WAN)、(A)DSL、GPRS、3G/4G 、卫星网络部署的应用程序比以往任何时候都多。

然而,尽管互联网应用开发已经非常成熟,但在开发中仍然绕不开一个问题 — — 大多数的软件性能测试只在局域网上进行。

局域网与广域网之间存在着非常明显的差异。与局域网相比,广域网延迟高、可用带宽时常不足,还存在丢包、乱序、误码等损伤。这些差异导致了在局域网中通过测试的应用程序在广域网中的表现可能非常差。

如果我们想要开发一款稳健的,能够适应各种网络环境的应用程序,继续在局域网中进行性能测试显然是不合适的。我们需要寻找适合进行测试的网络环境。

接下来,我们来比较一下局域网与广域网的差异,找到影响应用程序性能的具体因素。进而了解,到底应用程序该如何正确地进行开发测试。

一、影响应用程序性能的主要因素

1、可用带宽

在局域网中,由于同时进行的程序较少,所以可用带宽是非常充足的。然而,在广域网中,汇聚着来自各个局域网的流量。这导致每个应用程序分得的可用带宽并不多。并且,随着广域网中应用程序的增加,特定应用程序可用的带宽量将迅速降低,这可能对应用程序的性能产生重大影响。

除了网络会影响应用程序的可用带宽之外,网络管理员也可以通过设置网络 QoS来限制程序的可用带宽。例如 IP 语音 (VoIP) 的可用带宽一般会比其他的应用程序要高。其中的原理是通过 QoS 提升了 IP语音程序的优先级。因此,当我们开发的程序与这些优先级高的程序同时在广域网中竞争带宽时,我们的程序的可用带宽会变得比较低。

所以,我们的产品需要在低带宽的环境下正常运行,我们在测试过程中就需要考虑带宽限制。

2、延迟

除了有限的带宽之外,网络中还存在着 延迟、丢包、抖动、误码等损伤。它们对应用程序的影响不像有限的带宽那样可以让我们直观的观测到。但是它们对产品性能有非常重要的影响。

大多数的广域网都使用基于 TCP 和 UDP 的连接传输数据。这两种连接方式对损伤有着不一样的反应。在不考虑带宽限制的情况下,随着延迟和丢包的增加,基于 TCP 连接的应用程序的传输速率会放缓,确保所有数据可以成功传输。而基于 UDP 的报文因为无连接的特性,依旧会保持高速的发送速率,但是报文可能会丢失或者无法按顺序到达接收端。

基于 TCP 的应用程序在传输数据之前,会先确认是否建立了 TCP 连接。HTTP(www)流量、FTP、 microsoft网络和大多数通用流量以及一些自定义应用协议都是基于 TCP 连接传输。它们对延迟和损伤非常敏感。

假设,我们在北京和广州之间运行一个基于 TCP 的应用程序。在发送数据时,数据不会一次全部发送,而是会被分成一个个的小包分批次发送。它会在确认包(ACK)从接收端返回之前发送尽可能多的数据(在确认包(ACK)从接收端返回之前可以发送的最大数据量由TCP Windows Size参数控制)。并且,它同时会确认数据是否成功到达接收端。在所有数据发送完之前,每一次传输小包,TCP 都会建立连接。所以,数据的传输是呈锯齿状的。


这就导致了一旦延迟变高,ACK到达所需的时间就会变长。广域网的时延通常在 40ms以上,相比之下,局域网内的时延则在 1ms左右。假设带宽都是 100Mbps,我们把一个 64 字节的文件从电脑的本级服务器上传到局域网大约需要10秒。但是将从广州传到北京,则需要大约200秒!

3、丢包、抖动、误码、乱序

如今,许多公司都在使用VoIP 和video over IP等实时流媒体应用程序。这些应用程序基于UDP协议。就像上文介绍的,UDP报文对延迟不敏感,但会受到抖动、丢包和误码的影响。这些损伤都会导致语音中断、图片传输受到阻塞等等。

这是因为,当数据包在网络上传输时,它们受到的时延不一样,这导致它们到达接收端的时间不一致,出现乱序。UDP 没有错误重传机制,即使数据包丢失或者乱序,它也不会重新传送。这就像上个世纪我们寄包裹。寄件人不知道它到达的时间,它能否顺利到达,也不知道它在途中有没有损坏。

在良好的局域网中,丢包、抖动、误码、乱序基本上是不存在的。然而,在无线网络、卫星网络和移动网络中,这些损伤则是时有发生。如果我们仅仅是在局域网上进行程序测试,毫无疑问是不够的。而且,随着人们对移动设备的依赖加深,大家会更多的使用WIFI、4G等无线网络来接收数据。这意味着应用程序需要应对这些潜在的丢包、抖动、乱序和误码等损伤。

二、如何正确地测试应用程序

我们已经知道,应用程序只在局域网中测试是不够的。那么,程序直接在广域网中测试不就行了嘛?答案是否定的。在广域网中测试,有着明显的缺陷。

首先,广域网带宽并不便宜。测试并非一两次就足够,成千上万次的测试消耗的成本是巨大的。最好的解决办法是使用网络损伤仪进行测试。使用网络损伤仪 HoloWAN ,可以无限次的模拟不同的网络环境并进行测试,大大节约了测试成本。

再有,我们测试必须是可控的。我们在广域网中测试时,时延、抖动、丢包、带宽限制、误码、乱序等数据我们都无法获取。并且这些损伤还是实时变化的,网络的环境几乎每一秒钟都不一样。所以,我们需要使用 HoloWAN 来进行测试。HoloWAN 上可以提供带宽限制、时延、抖动、丢包、误码率、乱序、报文重复等损伤参数的设置。让我们可以精确的控制每一种损伤的具体数值。只有可以控制的测试,才能够得到有价值的测试结果。

其中测试还有一个非常重要的就是我们需要不同的测试场景。像压力测试,我们必须构建一个极差的网络环境。这在真实的广域网中是无法实现的。我们必须借助网络仿真仪 HoloWAN 来模拟不同的网络环境。我们可以使用 HoloWAN 创建诸如 WIFI网络、2G、3G、4G、5G网络,甚至是卫星网络。并且测试时网损仪不会影响到应用程序。这确保了我们可以在产品或软件的开发阶段、测试阶段、部署阶段都能进行测试。

三、如果测试后发现程序性能不够理想,该怎么办?

假设我们发现限制程序性能的是带宽。那么我们只需要向运营商购买足够的带宽即可解决问题。

但是如果限制应用程序的是时延、丢包、抖动、误码等损伤。那么我们就只能改变应用程序使用网络的方式来应对这些问题。比如在网络变差时,视频软件提供了关闭弹幕、降低画质的选项以确保视频可以流畅播放。

如果我们不对应用程序做优化,那么在遇到这些问题时,只能通过加速软件来使程序正常运行。

为了更好的优化应用程序,我们还是应该拥有一台网络损伤仪 HoloWAN 来对应用程序进行测试。因为应用程序不像其他的硬件产品,打补丁,版本升级是非常常见且快速的。也就是说,即使产品已经正式发布了,但是后续还是有大量的更新维护工作。这些环节都需要用到网络损伤仪进行测试。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容