相信很多人,都有过这样的经历:
追热剧,即将出现转折,人物被按下暂停键,场面有点尴尬甚至好笑。
看球赛,关键球已出手,画面突然一片抖动,让人气到想直接扔手机。
玩游戏,就要闪现放大,网络信号突然变弱,结果被对方英雄成功反杀。
如果将整个网络看成一片汪洋大海,那我们能够顺利上网,就是一艘艘船不断出发和返航的结果。船从我们的手机出发,在海洋 / 湖泊 / 河道中穿梭后到目的地,再带着新的数据返航至我们的手机。
这个航行的过程并非一帆风顺,也会遇到航道堵塞、船只迷航的情况。一旦数据传送出现问题,就会造成网络卡顿,给我们带来不好的网络体验。
今天我们一起了解一下影响网络质量的 4 个要素:
01、带宽:航道宽度
一般用带宽(Throughput)来形容网络的速率,带宽越大,数据传输的速率就越大。带宽,代表了航道的宽度。航道越宽,可以通过船只数量就越多,数据传输的过程就越顺利。带宽从几 Kbits 到 1000 Mbps,就是一船独行和千帆竞发之间的天差地别。
02、时延:航行时间
一般用时延(Latency)来形容数据从远端到本地之间的传送时间,而且计算的是来回的时间之和。时延,代表了一艘船的航行总时长。时延越大,代表数据传输耗费的时间越多。一般时延超过 50 ms,网络质量就算是不好了。一旦超过 300 ms,网络的卡顿感就比较明显。
时延的大小,需要计算以下四种时延的总和:
处理时延:网络设备处理数据的时间。每艘船出发前,都需要调度中心(网络设备)进行一些必要的处理,比如:确定目的地、确定传送时要走的航线。
传输时延:船在数据海洋河流中的航行时间。哪怕装载满数据的船以光速(30 万公里每秒)航行,走过地球两端的 4 万公里,最低的时延也得 130 ms。
队列时延:不同航道拥有不同的宽度(带宽),成千上万的船要通过某一段航道时,还需要排队等候调度中心(网络设备)的处理。
串行化时延:满载数据的船,也是有一定的长度的。从船头(数据第一个 bit)出发到船尾(数据最后一个 bit)出发,这个时间也需要计算。
03、丢包:到不了终点的船
一般用丢包(Loss)来形容网络中数据的丢失情况。丢包,代表了哪些到达不了终点的船。丢包的原因有很多,可能是调度中心繁忙导致无法处理船只的请求、排队等候调度的船只数量过多、航路中的各个航道(链路)关闭导致船只绕路或者迷路。
在一次传送数据的过程中,有可能派出 100 艘船,经过层层磨难后只有 80 艘船顺利返航,可以计算出丢包率为 20%。
丢包率是衡量网络质量的一个关键指标,丢包率一般不能大于 2%,用户感觉不到太大的影响。一旦超过 10%,网络质量就会迅速劣化,网络卡顿的感觉就比较明显。
04、抖动:航行耗时的分布
一般用抖动(Jitter)来形容不同数据到达目的地时的最大时间差。抖动,代表了一个船队中每一艘船返航的时间差异。上网过程中的数据传送是持续不断的,一艘艘的船出发,就会一艘艘的船到达目的地。前一艘船的时延是 60 ms,后一艘船时延是 30 ms,抖动就是 60 ms-30 ms=30 ms。抖动一旦出现在语音会议 / 视频会议中,就可能导致声音无法听清楚,图像无法看清楚。
『 网络想稳住,抓住四要素 』
在不同的应用中,带宽、时延、丢包、抖动这 4 个因素对网络质量的影响大小,也不尽相同:
语音 / 视频会议,对 4 个因素都很敏感;
在线游戏,对带宽、时延、丢包比较敏感;
邮箱 / 新闻等 HTTP 应用,往往只对带宽、时延敏感。
为了保证网络质量,我们可以想尽办法保证带宽、降低时延、降低丢包率,常见的处理方式包括:
提供差异化的带宽
网络设备为不同的应用提供不同的带宽,比如:语音 / 视频会议、游戏这些应用,可以分配大一些的带宽;邮箱、新闻资讯这些应用,可以分配小一些的带宽。通过这种方式,带宽得到了高效利用,而且避免了不同应用的网络拥堵。
优先处理高优先级的应用
为不同的应用分配不同的优先级,网络设备优先处理高优先级的应用,可以降低这些应用的处理时延、队列时延等。而队列中优先级低的应用,则只能在没有高优先级应用的情况下,才可以得到处理。
保障网络质量的技术仍在不断的研究和改进,而具体的应用也在持续探索中。例如:运营商已经通过 QoS 技术为“王者荣耀”玩家提供带宽保障,保障次数达到 1100 万次 / 天。
期待在不久的将来,所有游戏、视频会议应用再也不用担心网络卡顿了。
本文来自微信公众号:中兴文档 (ID:ztedoc)
本文由LinkNemo爬虫[Echo]采集自[https://www.ithome.com/0/662/137.htm]