SRT技术抗丢包原理

 二维码
作者:KILOVIEW来源:SRT知识库

‍   SRT技术是由Haivision和Wowza合作成立的,SRT是一种能够在复杂网络环境下实时、准确地传输数据流的网络传输技术。SRT工作原理先从其纠错机制说起。

下面描述了在数据包传输过程中,不使用数据纠错,使用FEC(Forward Error Correction)纠错,和使用ARQ(Automatic Repeat request)纠错三种链路传输方式的模式和结果。

如果没有数据纠错,结果自不必说,一旦发生丢包,得到的就是不完整的数据流,如下图。

数据包传输没有纠错机制-1.jpg

数据包传输时没有纠错机制

    图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》

如果使用FEC纠错,则会在传输的数据流中加入一定比例的前向纠错数据,当发生丢包时,接收端就可以根据前向纠错数据,恢复丢掉的数据包,如下图。

但是使用FEC就必须面对这样的问题:无论是否产生丢包,前向纠错数据都需要占用一定的传输带宽;而且当丢包率超过前向纠错数据能够恢复的阈值时,FEC将无法恢复丢失的数据包。

                    数据包传输时使用FEC纠错.jpg

数据包传输时使用FEC纠错

图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》

如果使用ARQ纠错,就需要在发送端和接收端之间建立双向连接。在接收端收到数据包后,会按照数据包的顺序进行排序(传输过程中数据包可能会发生乱序),如果发现其中有丢失的数据包,就会向发送端发出重传请求,由发送端将丢失的数据包重新发送到接收端,从而实现数据包的恢复,如下图。

数据包传输时使用ARQ纠错.jpg

数据包传输时使用ARQ纠错

图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》

而SRT技术,正是使用的ARQ纠错机制,这主要是因为在网络传输时,带宽抖动和丢包通常都是随机发生的,只有在网络出现问题的时候才需要纠错机制的介入,只需在发生丢包后让发送端重传丢失的数据包即可,这样既保证了传输的质量,同时又能减少无谓地消耗传输带宽;除此之外,SRT会为数据包提供更精准的时间戳,让接收端能够准确校准媒体流的包顺序,保证传输正常。

文章来自Cogent

咨询热线0731-82525732
关注微信公众号
关注官方微博
电话/微信:18573192787  QQ:2881094567
地址:长沙市雨花区新兴路268号国际企业中心13栋7楼  
咨询添加客服微信号
| 友情链接 LINKS