Skip to content

Instantly share code, notes, and snippets.

@TsaiRongFu
Created November 22, 2021 07:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TsaiRongFu/33759006b8514c503b978d1ea01da6fa to your computer and use it in GitHub Desktop.
Save TsaiRongFu/33759006b8514c503b978d1ea01da6fa to your computer and use it in GitHub Desktop.
(1101)通訊網路與多媒體應用(8329)_碩資管一A

HomeWork5

網路視訊串流中,ARQ與FEC兩種錯誤回覆機制哪種比較合適?

  • 必須使用FEC,因為當發現錯誤時,使用ARQ機制原始資料已不再可用。

請說明ARQ的運作方式

當Server與Client端要傳送資料的時候,如果訊息在傳輸的過程當中發生了錯誤,接收端會回覆傳送端,而常見的方法有以下三種: Stop-and-wait Automatic Repeat Request:

  • 發送端每傳送一筆資料封包就先暫時停下來,待其收到接收端(Receiver)傳回的ACK/NACK,或者在特定時間後尚未收到ACK/NACK時才決定傳新資料/重傳。

Go-back N Automatic Repeat Request:

  • 發送端持續不斷地傳送資料封包,若收到ACK時不改變其動作,但收到NACK時會跳回錯誤的資料封包再依序重傳一次。接收端在回傳NACK後便捨棄接下來收到的封包,待前一次傳錯的資料正確解碼(接收)後,才開始繼續依序儲存資料封包。

Select Repeat Automatic Repeat Request:

  • 做法與Go-back-N ARQ相似,但收到NACK時僅重傳錯誤的那份資料封包,而非重新依序重傳,另外,接收端在回傳NACK後並非捨棄接下來收到的封包而是存在緩衝器(Buffer),待資料全部接收(正確解碼)完成後再重新依序排列。

請說明FEC的運作方式?

基本的FEC傳送運作,Server欲傳送k bytes資料時,它會先經由FEC encoder進行編碼動作,產生(n-k)=h bytes連同原始資料k bytes一起傳送出去,並且允許發生h bytes的loss或error,當傳輸的過程中若發生錯誤時,client端可已經由FEC decoder利用所接收到的k bytes進行資料解碼,如果錯誤發生的範圍在h bytes錯誤內,就可將錯誤的資料修復回來,並重新建構原始的資料。

試著比較ARQ與FEC兩種錯誤回復機制的差異?

Automatic Repeat-reQuest 做法: 當資料遺失時,則要求重新傳送未收到的資料。 優點: 只需重送遺失的資料。 缺點: 時效性與大量遺失頻寬消耗。 Forward Error Correction 做法: 加上些許額外的資訊,當接收端接收的資料不完整時,可以透過額外的資訊來修復與還原。

優點: 不需要仰賴server重送即可逕行修復部分錯誤。

缺點: 耗費額外的頻寬與資源。

請解釋Packet-Leavel FEC與Byte Leavel FEC的差異?

Byte-level FEC為correcting codes,通常使用在physical layer,FEC(n, k)中n為block size,表示包含k個message symbols與n-k個parity symbols提供解碼端進行錯誤的修正,一個symbol對應一組bit sequence(如byte),因無法知道到底有哪些symbols發生了error,所以correcting codes最多只能修復(n-k)/2個symbol錯誤。一般的correcting codes無法抵抗大量error burst的發生,所以通常會搭配interleaving的方式傳送,為的就是要將錯誤分散而減少burst所造成的影響。 Packet-level FEC為erasure codes,通常使用在Transport或Application layer,FEC(n, k)中n為block size,包含k個data packets與n-k個parity packets,因為在IP層以上我們可以知道到底有哪些packets發生了error,所以我們採用erasure codes,也就是假設MH可以正確的接收到n個packets中的任何k個packets,任何遺失的data packets將可以正確的被重建回來。

@jiunjiun69
Copy link

期中考答案呢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment