SRT技术抗丢包原理 二维码
作者:KILOVIEW来源:SRT知识库 SRT技术是由Haivision和Wowza合作成立的,SRT是一种能够在复杂网络环境下实时、准确地传输数据流的网络传输技术。SRT工作原理先从其纠错机制说起。 下面描述了在数据包传输过程中,不使用数据纠错,使用FEC(Forward Error Correction)纠错,和使用ARQ(Automatic Repeat request)纠错三种链路传输方式的模式和结果。 如果没有数据纠错,结果自不必说,一旦发生丢包,得到的就是不完整的数据流,如下图。 数据包传输时没有纠错机制 图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》 如果使用FEC纠错,则会在传输的数据流中加入一定比例的前向纠错数据,当发生丢包时,接收端就可以根据前向纠错数据,恢复丢掉的数据包,如下图。 但是使用FEC就必须面对这样的问题:无论是否产生丢包,前向纠错数据都需要占用一定的传输带宽;而且当丢包率超过前向纠错数据能够恢复的阈值时,FEC将无法恢复丢失的数据包。 ![]() 数据包传输时使用FEC纠错 图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》 如果使用ARQ纠错,就需要在发送端和接收端之间建立双向连接。在接收端收到数据包后,会按照数据包的顺序进行排序(传输过程中数据包可能会发生乱序),如果发现其中有丢失的数据包,就会向发送端发出重传请求,由发送端将丢失的数据包重新发送到接收端,从而实现数据包的恢复,如下图。 数据包传输时使用ARQ纠错 图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》 而SRT技术,正是使用的ARQ纠错机制,这主要是因为在网络传输时,带宽抖动和丢包通常都是随机发生的,只有在网络出现问题的时候才需要纠错机制的介入,只需在发生丢包后让发送端重传丢失的数据包即可,这样既保证了传输的质量,同时又能减少无谓地消耗传输带宽;除此之外,SRT会为数据包提供更精准的时间戳,让接收端能够准确校准媒体流的包顺序,保证传输正常。 文章来自Cogent
文章分类:
SRT基础
|