簡單聊聊自動重傳請求 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設定的解碼緩衝區基礎上再額外加緩衝區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章