简单聊聊自动重传请求 ARQ-Automatic Repeat Request

自动重传请求 ARQ-Automatic Repeat Request

ARQ的起源

ARQ(Automatic Repeat-Request)即自动重传请求技术是差错控制技术中的一种,最早也许可以追溯到其在X.25系统的应用。ARQ技术发展至今,经历了停等ARQ、滑动窗口ARQ、混合ARQ等多次进化,SRT协议发明者声称其对ARQ技术的改进可以称得上ARQ技术的第三次飞跃。另外,由于ARQ技术的纠错能力来自于接收端的返回信号,有时候也可以把他理解成BEC(Backward Error Correction)后向纠错。

ARQ的核心思想

抛开具体的技术细节,笼统的来说ARQ技术主要有以下两个办法来应付网络差错:

  • 肯定应答ACK(收到信号你要说一声)
  • 否定应答重发NAK(收不到信号或者收到错误信号你也要说一声,我重发一遍)

在这里插入图片描述

SRT对ARQ机制的改进

SRT协议对ARQ技术的改进也许有重发过期ACK、定期重发NCK队列、新增ACKACK包和Keepalive包等方面。
根据SRT技术白皮书,他们模拟了一个有2%丢包率的网络环境,在不进行ARQ机制改进,仍采取UDT以前机制的情况下,即使解码器接受缓冲区耗尽,那些丢失的包仍然没有RT。
他们采取的第一个改动是更早的触发ARQ的自动重发,从而缩短ARQ中发送端等待的固有时间,但是这种方法导致占用的网络带宽激增,并不能解决问题。
第二个改动是重发所有的过期ACK(sent more than rtt ago),解决了模拟环境下的这个问题。为什么呢,可能是因为拥塞和随机丢包不能够同时影响不同的分组,相当于返回的ACK有备份。
总结起来,many RT解决了这个问题。当然带宽也会增加,但在这个阶段还没有进行发送速率控制。
以这个开端为基础,他们又进行了ARQ机制的更多改进。
列举一下SRT协议中的packet:
Handshake packet
Key message error response control packet
ACK packet
Keep-live packet
NAK control packet
Shutdown control packet
ACKACK control packet(为了计算变动的RTT)
Extended control message packet

另外还要提两个SRT的机制:
The periodic NAK report(为了怕返回的NAK包在网络中丢失,会定期重发NAK队列)
MakitoX解码器会在SRT Latency设定的解码缓冲区基础上再额外加缓冲区。

发布了35 篇原创文章 · 获赞 50 · 访问量 5839

猜你喜欢

转载自blog.csdn.net/PollyZBL/article/details/100026457