直播软件开发过程中关于网络环境问题的解决方案
观看直播时经常会遇到各种各样的问题,在直播软件开发的过程中,网络状况对数据传输策略的选取具有十分重要的意义。作为网络性能的重要参考指标,很多在线网络应用都对延时和抖动提出了比较高的要求。虽然延时和网络抖动具备一定的关联性,但是它们之间还是有很大区别的。
1.什么是延时?延时和延迟有什么区别?
(1)延时即网络中的一项重要指标,可以衡量数据从一个端点移动到另一个端点所需的时间。网络延时通常在几秒钟的时间范围内,并且可以根据各种因素进行更改,包括端点的位置、数据包大小以及流量大小。
(2)延迟可以认为是数据包从一个端点传输到另一个端点所用的时间,这与单向延时是一样的。但更多情况下,延迟表示的是往返时间。往返时间包括发送数据包所需的时间再加上它返回所需的时间,其中并不包括在目的地处理数据包所需的时间。
2.延时由哪几部分组成?
延时可以理解为是四个关键部分的组合,分别为传输延时、传播延时、排队延时和处理延时。
(1)传输延时:将数据包的数据推入线路所需的时间,根据数据包的不同大小和带宽大小的不同,但是并不取决于传输线的距离,毕竟它只是包中数据推入传输线的时间,而不是沿着传输线到达接收端的时间。
(2)传播延时:即从发送端传输到接收端的数据包的第一个比特相关的时间,通常被称为距离延时,数据比特也会因此受到传播距离和传播速度的影响。
(3)排队延时:是数据包排队和发送之间的时间,取决于数据流量的大小、流量类型以及各种队列算法。当然,不同的算法可以调整系统偏好的延时,或者对所有流量要求相同的延时。
(4)处理延时:即系统分析数据包报头并确定数据包必须发送到何处的时间,其中很大程度上取决于路由表中的条目,系统中数据结构的执行以及硬件的实现。
3.延时会造成怎样的影响?
在直播软件开发的过程中,最需要注重的就是用户体验。相关实验报告显示,在严格的音频通话中150毫秒的延时是非常明显的,并且会影响用户。在严格的视频通话中,认为400毫秒是可辨识的。所以,对于直播来说,将网络延时保持在100毫秒以下还是非常重要的。
4.什么是网络抖动?
即在网络上连续传输的数据包即便使用相同的路径,也会出现不同的延时。在这里有两点比较关键的原因造成,一个是数据包被单独路由,另一个就是网络设备接受队列中的数据包,但是无法保证延时调度不变。每个数据包之间的延时不一致就可以称之为网络抖动。
5.抖动会造成怎样的情况?
(1)网络拥塞
网络设备无法发送相同数据的流量,所以他们的数据包缓冲区已满并开始丢弃数据包。如果端点上的网络没有干扰,那么每个数据包都会到达。但是如果端点缓冲区满了,数据包就会到达的越来越晚,从而导致网络抖动,可以成为初期拥塞。当网络设备开始丢弃数据包,端点也没有收到数据包,这时就会发生拥塞。终端可能会要求重发丢失的数据包,导致拥塞崩溃。这里有一点需要特殊注意的是,接收端并不会直接导致网络拥塞,也不会丢弃数据包。
(2)丢包
当数据包不是均匀的到达接收端时,接收端必须开始进行弥补并尝试更正。在某些情况下,接收端没有办法进行适当的更正。对于用户体验来说,可以呈现出多种形式。
6.怎样才能弥补网络抖动的情况?
可以在链接的接收端使用抖动缓冲区,抖动缓冲区收集并储存传入数据包,以确定通过相同的间隔进行发送。这里可以采取静态抖动缓冲和动态抖动缓冲两种方式进行弥补。前者是在系统的硬件中实现,制造商会自行配置。后者是在系统的软件中实现,是由管理员进行配置的。
在直播软件开发的过程中,无论是网络抖动还是延时都会直接影响用户体验。虽然网络抖动和延时之间有相似之处,但是网络抖动是基于延时产生的,并不完全相同,所以这两者之间的区别还是需要了解清楚的。
本文声明原创,转载请注明出处。(www.yunbaokj.com)