网络性能评价

这里并不是要系统说明网络性能评测,而是闲聊一些体会。


系统观


从考察网络的性能角度上来看网络,总是难以捉摸,其中涉及的因素很多。各种网络参数和各类概率事件相互作用,最终表现出一个不断变化的系统环境。作为一个运用网络的开发者,不能仅将网络视为一个黑盒,反而是要尝试着深入了解它,更有效的利用它的特性。 好在自从网络诞生之日起就不断的有人进行研究,试图加以系统分析。


先从系统认识的角度上看,网络非常接近一个线性系统(Jacobson, Congestion Avoidance and Control, 1988)。线性系统理论认为一个稳定系统的稳定性是指数式的。对于像网络这样不稳定的系统(比如受到随机的网络负载以及不当的RTO引起的阻塞的影响),可以通过在其因变量上添加指数补偿(exponential timer backoff)的方式使其变得稳定。单就衡量网络特性而言,也就是一个不稳定的输出,可以通过指数的形式加以平滑,达到一个相对稳定的输出,也即运用了指数平滑算法。



网络衡量指标


网络特性中两个最基本的指标是带宽(bandwidth)和延迟(latency)。带宽代表了网络的理想情况下的吞吐量,一个网络的好环更加表现在延迟的大小上。所以研究RTT计算的论文也是连篇累牍,比如(Phil Karn, Improving Round-Trip Time Estimates in Reliable Transport Protocols)。其它的指标则可以视为因延迟而来,比如丢包可以视为延迟大于某个阈值的情况。


两个基本参数如何相互作用呢? 从理论上来说,<<Computer Network, Andrew>>提到(Chapter 6)一个指标带宽-延迟乘积(bandwidth-delay product),此值是从发送方至接收方之间的管道的往返容量。即在收到数据响应前,发送方仍然可以发送多少数据。为了更好的性能,接收方的窗口必须至少与带宽-延迟之乘积一样大,最好略大一点,因为接收方可能并不立刻就做出响应。


再有一个,在实际测量过程也能发现,在带宽和延迟两者有不同的作用域。在低速网络下延迟的作用明显,而高速网络下带宽作用明显。而在上面同一本书中提到了一张图表,显示传输速度到1Gbps以上时,延迟时间则决定了网络的性能。



评估方法


上面的分析主要基于TCP层的实现,但从应用层上来看(无法确定具体的网络重传、窗口等),网络中存在着很多的不确定性,就像是一个个的概率事件。在某个时间段内网络交互的延迟的分布是符合某种分布(比如正态分布)。基于这个假设,运用统计方法来衡量网络的特性就是可行的方案。


这一点也可以回溯到RTT的计算上,比如(Phil Karn, Improving Round-Trip Time Estimates in Reliable Transport Protocols)提到的方法,在一个低速的网络环境下,得到的RTT可能出现如下的分布:

     

  其中数据收敛程度取决于指数平滑系数选择。


低速网络下,延迟的抖动较大,网络更显地不稳定。而在高速网络下,数据非常理想:

     


移动网络

 

移动网络相对于固网网络而言,有一些特性,比如波动性更大,非阻塞导致的错误重传情况占比较大等。 除了一些标准的延迟和下行/上行的带宽定义外,信号强度也是网络性能的一个重要指标。但这个指标正在越来越高速的网络下失效了。同时再考虑到运营商平衡负载的策略也会让这一指标的应用受限。


当然相较于单纯从延迟的一元分析,引入其它的条件进行多元分析,或许能得出更为精准的网络评价。


转载请注明出处: http://blog.csdn.net/horkychen

《待续》


©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值