用HoloWAN测试网络应用

如何部署测试一个适合各种网络环境的应用

前言
随着数据中心、虚拟化、云计算、远程办公快速发展以及人们对无线技术的越发依赖,通过广域网、ADSL、GPRS、3G/4G、5G、光纤、云服务、无线电、卫星网络等网络环境部署的应用的趋势越发明显。尽管如此,主流应用程序开发中仍然存在一个明显的问题,软件开发、软件性能测试仍经常只在测试实验室中的快速可靠的局域网(Lan)中进行。

在完美的局域网条件下通过应用程序性能测试,并不能保证应用在非局域网环境下性能可靠,LAN和WAN(为了简洁,假设文中的WAN包括并不限于对WAN进一步引用如无线、卫星、无线电等类似网络)是差异巨大的网络,我们有理由相信在LAN条件下测试的能够给用户提供良好体验的应用部署在复杂的WAN环境中不能良好运行。

让我们一起探讨LAN与其他网络下应用程序运行有什么不同,为什么这些差异可能导致您当前的测试环境不适合稳健的产品开发以及使用HoloWAN能在测试网络应用时发挥什么作用。

可用宽带

在LAN环境中可用带宽很少会成为问题,然而广域网成本高可用带宽更少。随着越来越多的应用争夺带宽,个别应用的可用宽带会降低,这可能会对其性能产生巨大影响。除此之外,网络管理员可以(也如此做)设置他们的网络 QoS 来支持某些应用程序,例如 在“传统”应用上实现IP 语音 (VoIP)。这实际上降低了其他应用程序的优先级,由于其他应用程序具有更高的优先级,因此您正在测试的软件在部署在生产环境中时的可用带宽可能非常有限。但是,您的产品仍然需要并期望在较低的带宽上运行并达到使用可接受的水平。所以,您需要在开发测试中考虑带宽限制。而HoloWAN能在LAN环境下快速模拟带宽不足给您的应用带来的影响。

延迟
基于TCP协议应用传输前需要确认网络可以通过更多的数据

虽然有限的带宽对应用程序的影响对我们使用者来说是十分明显的,但其他网络条件(如延迟、抖动、丢失、错误、Qos)对产品的性能也不可忽视。但是这些问题和带宽不一样,您只去您的网络运营商交钱对网络进行升级,并不能直接了当的解决这些问题。

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。TCP/IP 是互联网相关的各类协议族的总称, TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。这两种协议在有限的带宽、延迟、抖动、丢包等情况时有不同表现。运用HoloWAN对链路进行带宽限制、增加延迟、丢包等设置,您能直观地发现基于TCP和UDP两种程序在不同网络环境之中的表现。

TCP连接负责处理Http/Https(www)流量、FTP、Microsoft网络和大多数其他的通用流量,包括自定义应用程序协议,上述都对更高的延迟和丢包敏感。下面给出一个延迟的示例:如上图所示,如果您在广东和新加坡之间的服务器与终端上运行一个基于TCP的应用程序,网络不会一次发送所有的数据。相反,它将数据分成数据包并在发送之前尽可能多地发送确认(ACK)数据包从接收端返回,以确认数据能成功到达,因此传输能够准确地开始或停止。显然这种模式会导致延迟,随着延迟越来越高,ACK到达所需的时间就越长。从广东到新加坡,90毫秒的往返延迟并不少见;和LAN中不到1ms对比,在一个64兆字节的文件上添加一些数字从文件服务器复制到LAN中的本地计算机可能需要大约10秒(在一个100Mbit的LAN),而从广东到新加坡(假设你有一个1001Mbit的WAN可供试用—)大约需要420秒(7分钟)。很明显同样带宽情况下,延迟的高低影响传输所需要的时间。

数据包丢失、抖动、错误和重新排序

我们还需要查看数据包的丢失、抖动、错误和重排来解释上图。

现今社会有许多实时流媒体应用程序,例如语音视频、直播、腾讯会议等等。这些应用程序都依赖于UDP协议。正如上面讨论的那样,UDP受延迟的敏感程度没这么高,但数据包丢失、抖动、错误这些因素明显影响UDP程序,导致语音断续、图像破损等等状况发生。导致这些情况发生的原因之一是当数据包通过网络进行传输时,UDP数据包可能会丢失或被重新排序,因此这些数据包会乱序到达甚至不能到达目标地址。UDP与TCP不同,他是一种不能保证交付的协议,通常情况下并不会重新发送丢失的数据包,就像托陌生人带信给远方的人,你并不能确保这封信能否到达或送错地点或者信件缺失损坏,所以它到达目的地时可能毫无用处。使用HoloWAN模拟高丢包环境,您会发现单纯使用UDP传输文件,文件大概率是损坏的。

在实验室网络中测试时想要重现这些条件几乎是不可能实现的。无线网络、卫星和手机移动网络(甚至是无线局域网)这些与单纯的有线网络相比会有更高的数据丢失错误的风险,这意味着测试时会遗漏更多的变量。在办公室、医院等场景中越来越多地使用无线网络,并作为一种允许员工在走动中随时随地接收数据的方式,这意味着需要开发应用程序来应对这种情况潜在的延迟、丢失、错误或数据包重新排序。

那么您该如何可靠地测试应用程序在WAN上地性能呢?

软件的测试网络该如何定义呢,应该表现得像真实的广域网和无线网络,无论是实验室、演示室还是办公室等地方中,您都可以部署您测试时相同的网络环境。它可以让你广泛地模拟构建一个在不同的WAN或者无线条件下的网络,使您能够可以在原型、开发、质量保证期测试软件或设备,甚至针对真实世界的部署进行前测试。软件定义传送网(SDTN)还能是您指哪打哪的伙伴,让您可以完全控制进行测试的条件,且能够一次或者多次重现这些条件。如果你在现实网络环境中进行测试,这意味着你很难或者不可能重现。

在实时网络中进行测试还存在额外的危险,您的测试可能会影响到当前生产网络上运行的关键业务应用程序,这意味着您并不受欢迎,更有甚者请参考刑法第二百八十六条。这可以使用HoloWAN这类网络损伤仪在局域网内进行模拟测试,这并不会冒犯其他网络管理员,把危害局限在实验室环境,意味着风险降低。

如果测试后发现性能不够好该如何做?

如果是宽带不足限制了应用,您可以通过HoloWAN在实验室网络增加带宽进行验证,若是验证结果确定了是带宽影响,直接从您的ISP供应商升级相应的线路,这是钱能解决的问题。但是如果HoloWAN网损仪模拟给出的结果并不是带宽带来的问题,那么请不要浪费您的钱在购买带宽上。

相反,如果你在开发应用程序时考虑到网络因素带来的影响,提高应用在各种网络上的鲁棒性,这能够节省后续补救的花费。如果应用的开发期已过,您则可以在使用HoloWAN进行网络损伤测试后,发现应用的短板,再针对发现的问题进行后期补救,例如使用cdn等等改善应用体验。尝试优化后,您使用HoloWAN对应用进行测试,能快速评估优化效果。
总结

在 LAN 环境中测试应用程序,数据包只会在局域网中传输。但如果您的应用程序是预计在其他类型的网络中工作,那么在模拟环境中测试是唯一合理且简单经济的解决方案。然而,模拟环境不一定是令人生畏的复杂程序,如HoloWAN的软件定义测试网络在设计中考虑到了易用性,合理的GUI界面、精准的图表,只需要有些网络知识或者仔细读下使用手册,用户能方便快速上手,使您能够快速低成本地复制任何网络进行测试分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值