广域网上的应用程序性能的祸害

丢包、延迟和“聊天”问题是需要解决的关键问题。

最后一次,我断言,wan特定的应用程序性能问题完全由三个因素驱动:延迟包丢失带宽

这一次,我们将讨论影响WAN应用程序性能的其他三个主要因素,这些因素本身受到延迟和丢包的巨大影响,还将讨论WAN上丢包和高延迟问题的主要原因。

影响应用程序性能的前两个额外因素与“如何”的性质有关传输控制协议工作原理:带宽延迟产品和TCP如何进行拥塞控制。另一个因素是应用程序“闲谈性”,它涉及如何编写构建在TCP之上的某些高级协议,甚至是应用程序本身。

相关的在WAN上真正影响应用程序性能的是什么

广域网路虚拟化是广域网路优化的下一代补充

在这个简短的(!)专栏中,我不会尝试做一个关于TCP如何工作的完整教程,但是为了理解WAN效果,这三句话来自在这里很好地总结道:“TCP使用‘拥塞窗口’来确定它一次可以发送多少数据包。拥塞窗口大小越大,吞吐量越高。TCP的‘慢启动’和‘拥塞避免’算法决定拥塞窗口的大小。”

带宽延迟产品指数据链路容量的乘积比特每秒端端延迟(以秒为单位)。结果,以比特(或字节)测量的数据量,等于网络电路在任何给定时间上的最大数据量,即已经传输但尚未接收的数据。带宽延迟产品,本质上对局域网性能没有实际影响,由于TCP窗口的大小,它是一个众所周知的限制,限制了在高延迟广域网上数据传输的速度。

在历史上,TCP窗口大小被限制为64KB (64kilobytes = 512kilobits)的数据。现代TCP和操作系统实现通常使用TCP窗口缩放选项,使窗口大小达到256KB或更大。这可以极大地提高跨WAN的TCP传输速率,只要有最小的包丢失。面对有意义的损失,更大的最大允许数据量对性能的实际影响很小,因为窗口大小(以下段落)通常被有效地限制在小于带宽延迟乘积。

一个密切相关的问题是TCP进行拥塞控制的方式:“TCP使用一个网络拥塞避免一种算法的各个方面additive-increase-multiplicative-decrease (AIMD)方案,与其他方案,如慢启动为了达到拥塞避免,特别是在检测到丢失的数据包后,允许“飞行中”的流量减少了50%。TCP的拥塞控制算法,尤其是AIMD,是互联网没有因每个使用它的人的权重而“崩溃”的主要原因,也是TCP的设计者想出的令人惊讶的优雅方法,以有效利用可用带宽,并提供“平均”的公平性。然而,对于单个应用程序来说,这意味着丢包会显著影响性能,对于交互式或实时应用程序来说,当丢包率超过~1%时,性能通常会特别差。

这些是影响几乎所有应用程序的主要TCP问题——甚至是那些本身不使用TCP的应用程序,但最终会受到网络包丢失和基于TCP的流竞争相同带宽导致的延迟增加的影响。除了这些基于tcp的一般性问题之外,还存在某些应用程序或协议的“闲谈性”问题。从本质上讲,闲聊指的是执行给定的应用程序功能需要多少次客户机和服务器之间的往返通信(如果不是全部序列化的话,也很大程度上是这样)。关于这个问题,10多年前首次发布的基于web的应用程序可以找到一个奇妙的解释在这里在这个NetForecast论文解释了互联网上的Web性能。

有两种常见的协议非常繁琐微软的CIFS协议对于文件服务,和HTTP,这是用于web应用程序的主要协议。XP和更早版本的CIFS在广域网上特别多话,而且有问题,有些人认为这是在广域网上快速增长的唯一最大原因广域网优化21世纪的商业。Windows 7和Windows Server 2008及更高版本中的SMB 2.0文件服务协议在广域网上更好,但一些“闲聊”性能问题仍然存在,特别是在任何有意义的包丢失情况下。

就像带宽延迟产品问题一样,“闲谈”在LAN上不会对性能造成太大影响,但在WAN上可能会造成严重后果,面临丢包和/或高延迟。对于公共互联网应用,包括但不限于web应用,大量的DNS(域名系统)请求是一种隐藏的应用程序聊天形式。

虽然还有其他无数特定于应用程序的因素,但最终得出的结论并不是过于简单化,它们的影响与上文提到的“闲聊”问题非常相似。交互式应用程序(如桌面虚拟化)就是一个很好的例子。

因此,如果所有特定于网络的性能问题最终都可以追溯到带宽、延迟和包丢失,那么让我们更深入地研究一下IP广域网中延迟和包丢失的原因。

[一些目光敏锐的读者现在可能会想:“为什么这个家伙还没有提到抖动?”我们知道抖动是实时应用程序性能的一个巨大问题。”事实上,抖动是一个衡量可变性随时间的包延迟跨网络-即一个组件的延迟!事实上,“应用特定因素通常是‘聊天’规则的变体”的唯一有意义的例外是实时应用,在这些应用中,终端用户直接体验到糟糕的声音和/或视频质量,要么是包丢失,要么是过度的抖动(抖动缓冲区提供了缓冲)温和的抖动的数量),偶尔的可怕的性能,甚至当视频关键帧丢失或丢包率太高时失去连接。

如果我们将WAN延迟分解成它的组成部分,我们可以看到“固定”组件和可变组件。WAN延迟的固定组件与包在源和目的之间必须旅行的路线英里数有关,因此受到光速的限制,较小的组件基于包必须经过的路由器的数量,固定的时间传输路由器,即使当链路负载很轻。在美国大陆,典型的单向延迟是40毫秒RTT整个国家和背部是~80毫秒。

广域网路延迟的可变部分——换句话说就是抖动——是由沿途任何地方的路由器(或其他IP转发设备)的排队拥塞引起的。当设备(路由器)试图从给定的链路输入的数据超过该链路的可用带宽时,就会导致队列拥塞。在典型的IP广域网路由器中,任何给定路由器的排队拥塞都可能增加100到200毫秒的延迟。超过这个延迟量,数据包通常会被丢弃—导致数据包丢失。

如前所述,转发设备中的队列溢出是丢包的主要原因。一些路由器使用一种叫做或者说是当队列开始填满时,降低数据包百分比(即小于100%),以避免过度的抖动,更好地促进流之间的“公平性”。最后,虽然比特错误不像过去那么常见,但它也可能是丢包的一个原因。如今在有线网络中相当少见(除了偶尔出现的脆弱的DSL连接),在无线网络中,比特错误有时会导致适度的包丢失。

高延迟会导致应用程序性能出现明显问题。丢包通常对广域网应用程序性能有更大的负面影响。这是为什么呢?考虑到TCP带宽延迟乘积,丢失率超过1%意味着应用程序只能在广域网上为其TCP流使用非常小的带宽,无论可用的最大链路大小如何。在更长的广域网距离上,吞吐量更低。由于TCP是一个窗口协议,从源转发额外的包将很快停止,直到丢失的包被重传和确认。

即使对于带宽延迟产品本身不是问题的应用程序,“闲聊”问题也有同样的——有时更糟的——影响。在丢包时,所有的数据传输都停止,直到数据包被重传和确认;面对高延迟(抖动),等待一个操作完成后再开始下一个操作的串行化影响,即使在没有丢包的情况下,也会大幅降低性能。

我意识到,这里有很多东西需要消化,而我们实际上只是触及了表面。关键的一点是,为了交付出色的、可预测的应用程序性能,我们知道我们希望尽可能地避免丢包和高延迟。

在下一篇文章中,我们将开始研究广域网服务历史对广域网技术发展的影响——包括下一代企业广域网(NEW)架构组件广域网优化WAN虚拟化,以及分布式复制/同步文件服务,并了解哪些技术可以解决这些因素中的哪些,从而直接或间接地消除丢失和延迟的负面影响。

安迪是一位有着25年数据网络经验的老手Talari网络他是广域网虚拟化技术的先驱,并担任其首位首席执行官。安迪是一本即将出版的关于下一代企业广域网的书的作者。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对自己最关心的话题发表评论。

版权©2012足球竞彩网下载

工资调查:结果在