否定應答

否定應答

否定應答(稱為NAK;或稱為NACK;或稱為Negative-Acknowledgment)翻譯為否定應答或者非應答。這種協定訊息在數字通信中被使用。其作用是作為一種確認數據收到的應答,但表明有小錯誤存在的一種訊息信號。

基本概念

否定應答信號t(NAK)數據機接收到一個數據包後向傳送方返回的一種信號,表示此次接收不正確,請求對方重新傳送。當正確接收後,返回的信號應該是ACK。

有時候NAK信號也叫REJ(拒絕)。相似的另一個信號是ARQ(自動請求重發)。

NAK、REJ或者ARQ信號通常是接收端在收到不能確認的數據塊後反饋給傳送端的。當資源接收到了NAK或者REJ信號,資源就會重發數據直到目標站確認且用ACK信號回應,或者停止整個傳輸任務。當資源收到ARQ信號,資源就會重新傳輸數據塊。

NAK、REJ或者ARQ都是ASCII預留的特殊字元,這樣他們就不會與數據字元弄錯了。

滑動視窗自動重複請求

在幾種常見的連續傳輸錯誤控制機制中,有兩種協定是最常見的:回退n自動重複請求和選擇拒絕自動重複請求,兩者都是基於滑動視窗流量控制協定的。為擴展滑動視窗協定來解決丟失和損壞幀的重發問題,需要在基本的滑動視窗流量控制上增加以下3種特性。

1.在傳送出去的幀被應答訊息確認前保持它們所有的備份。如果0號幀到6號幀已經被傳輸出去,並且最近一次應答是針對2號幀的(期待3號幀),傳送方在沒有知道3號到6號幀正確抵達接收端之前保留這些幀的備份。

2.除應答幀(ACK)外,如果數據幀被破壞,接收方還可以選擇傳送否定應答幀(NAK)。NAK幀告訴傳送方重新傳送一個損壞的幀。因為滑動視窗協定是一個連續傳輸機制(與停等協定相反),應答幀(ACK)和否定應答頓(NAK)都必須編號以便於識別。回憶一下,ACK幀帶有期待的幀的編號。而另一方面,NAK幀則帶有損壞幀的編號。在兩種情況下,到達傳送方的訊息中攜帶的都是接收方期待接收的幀的編號。如果最後一次應答幀(ACK)有編號3,一個帶有編號6的應答幀(ACK6)同時確認了3、4、5號幀的接收。但是,每一個被破壞的數據幀必須進行應答。如果4號和5號數據幀接收時已經被破壞,必須同時傳送對4號幀的否定應答NAK4)和對5號頓的否定應答(NAK5)。但是,一個NAK4告訴傳送方在4號數據幀之前的所有數據幀都正確到達了。

3.和停等ARQ類似,在滑動視窗自動重複請求(滑動視窗ARQ協定中的傳送設備具有個定時器來使傳送方能夠處理應答訊息丟失的情況。在滑動視窗ARQ中,在必須接收一個應答幀之前可以傳送n-1幀(視窗大小)。如果n-1幀都在等待應答,傳送方啟動定時器並且在傳送任何數據前先進行等待。如果設定的時間過了而沒有應答訊息到來,傳送方就假定幀沒有被接收,因而根據採用的協定不同而重發一幀或所有幀。注意這裡和停等ARQ樣,傳送方無法知道是數據幀丟失了,還是應答頓(ACK)或否定應答幀(NAK)丟失了。如果丟失的幀是一個ACK幀,接收方就能夠通過幀的編號辨別出重複情況並將重複數據丟棄。

相關詞條

熱門詞條

聯絡我們