延时、丢包、抖动是什么?有什么危害?

互联网大概可以算是最近几十年人类最重要的发明之一。最早人们用互联网发送电子邮件,接着普及了网页浏览,后来又流行即时文字聊天,人们工作生活的方式在这写年里发生了巨大的变化。可是当人们想更进一步实现实时音视频通话时,却发现互联网有点不给力了。卡顿、掉线、延时太高等等,这些问题始终伴阻碍实时音视频通话的发展。而这根本上的原因是,互联网一开始并不是针对实时通信而设计的。

人们常把互联网比喻成“信息高速公路”,其实更确切的比喻应该是“信息公路网”。互联网就像现实中的路网一样交错复杂,有像连接两地的高速公路一样快速的骨干网,也有像是难走的崎岖山路一样糟糕的网络环境。而在互联网上传输数据就像是从一个地方开车到另一个地方一样。

现在我们就借这个比喻来解释一下互联网传输的三个非常重要的特点:延时、丢包、抖动。

假设我们现在有一百辆车从北京鸟巢开往上海东方明珠,并且每隔一分钟出发一辆。

延时

“延时”指的是每辆车从鸟巢开到东方明珠花的平均时间。显然,车队走高速公路肯定要比走各种小公路快很多,而且从鸟巢出发沿着怎样的路线开上高速公路也有很大影响,万一堵在了三环可就要多花好几个小时了。所以这个值和车队选择的行驶路线有关。互联网传输也是一样的道理,需要传输数据的两点之间经常是有很多可选路径的,而这些路径的延时往往相差很大。

丢包

“丢包”指的是有的车无法在有效时间内无法达到终点,甚至可能永远也到不了终点。有的车可能永远堵在北京的三环上了,有的车可能中途出了车祸。假如我们的一百辆车里有五辆车因为各种原因没能按时到达上海,我们这次车队传输的“丢包率”就是5%。是的,互联网传输也一样,它并不是百分百可靠的,总有数据无法按时传输到目的地。

抖动

“抖动”指的是车子到达的顺序、间隔和出发时的差异。虽然我们的一百辆车在北京是等间隔的一分钟一辆出发的,但是它们到达上海时却并不是按顺序一分钟一辆到达的,甚至可能有晚出发的车比早出发的车先到的情况。互联网传输也一样,如果简单地按照收到的音视频数据顺序直接播放出来,就会出现失真的现象。

延时、丢包、抖动是互联网这个信息公路网无法避免的三个特点。以前电子邮件、网页浏览、文字聊天的场景下,这三个特点并不是太大的问题,毕竟人们可以接受电子邮件晚几分钟到达对方的邮箱。但在实时音视频通信的场景下,不要说几分钟,就算只有几秒钟的延迟,音视频交流的体验就会大打折扣。

解决方案

就近接入

当车队从鸟巢出发的时候,调度中心首先给出一条从鸟巢通往高速公路入口的最优路径,让车队尽快离开拥挤的市区。

动态路由

当我们的车队上了高速公路后,理想情况下只要沿着最短路线向上海行驶就可以了。但现实情况是,在最短路线上可能会有路段在维修无法通行,会有路段车辆太多非常拥堵,会有路段收费站太多通行效率低下等等情况。调度中心会根据实时的全国路况,给车队规划高速公路上的行驶路径,保证车队以最快的速度到达上海的高速公路出口。同样的,骨干网络也会有线路暂时不可用,线路拥堵,跨运营商线路质量差等情况。

丢包重传

“延时”的问题解决了,“丢包”怎么办呢?假设正好遇到上下班高峰,北京的路况非常糟糕,即使调度中心规划了最优的离开北京的线路,100辆车里也只有80辆按时到达了高速公路入口,“丢包率”达到了20%。在这种情况下调度中心的办法是,通知鸟巢再补发20辆车出来!即使这20辆车仍然有20%(4辆)无法离开北京,最终也能有总共96辆车驶上高速公路,最终的丢包率从20%降到了4%。


丢包或者延时,能够带来哪些危害呢?

1、丢包:丢包最常见,在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传;这个时候,就需要去测试一下产品的处理机制,UI界面是否给出友好提示,服务端是否做了异常处理;

2、延时:由于出现了网络波动,导致数据包在传输的时候出现了抖动,导致请求出现超时现象;这个时候就需要去测试一下产品的处理机制,UI界面是否给出友好提示,服务端是否做了异常处理;

posted @ 2023-02-27 10:13  ll=ll  阅读(373)  评论(1编辑  收藏  举报