計算機網(wǎng)絡(luò)體系結(jié)構(gòu)及協(xié)議之差錯控制

字號:

3.3.2差錯控制
    用以使發(fā)送方確認(rèn)接收方是否正確收到了由它發(fā)送的數(shù)據(jù)信息的方法稱為反饋差錯控,制。通常采用反饋檢測和自動重發(fā)請求(ARQ)兩種基本方法來實現(xiàn)。
    1.反饋檢測法
    反饋檢測法也稱回送校驗法或"回聲"法,主要用于面向字符的異步傳輸中,如終端與遠(yuǎn)程計算機間的通信。這是一種元須使用任何特殊代碼的差錯檢測法。雙方進(jìn)行數(shù)據(jù)傳輸時,接收方將接收到的數(shù)據(jù)(可以是一個字符,也可以是一幀)重新發(fā)回發(fā)送方,由發(fā)送方檢查是否與原始數(shù)據(jù)完全相符。若不相符,則發(fā)送方發(fā)送一個控制字符(如DEL)通知接收方刪去出錯的數(shù)據(jù),并重新發(fā)送該數(shù)據(jù);若相符,則發(fā)送下一個數(shù)據(jù)。反饋檢測法原理簡單,實現(xiàn)容易,也有較高的可靠性。但每個數(shù)據(jù)均被傳輸兩次,信道利用率很低。這種差錯控制方法一般用于面向字符的異步傳輸中,因為這種場合下信道效率并不是主要矛盾。
    2.自動重發(fā)請求法(ARQ法)
    實用的差錯控制方法,既要傳輸可靠性高,又要信道利用率高。為此可使發(fā)送方將要發(fā)送的數(shù)據(jù)幀附加一定的冗余檢錯碼一并發(fā)送,接收方則根據(jù)檢錯碼對數(shù)據(jù)幀進(jìn)行差錯檢測,若發(fā)現(xiàn)錯誤,就返回請求重發(fā)的應(yīng)答,發(fā)送方收到請求重發(fā)的應(yīng)答后,便重新傳送該數(shù)據(jù)幀。這種差錯控制方法就稱為自動重發(fā)請求法(Automatic Repeat reQuest),簡稱ARQ法。ARQ法僅需返回少量控制信息,便可有效地確認(rèn)所發(fā)數(shù)據(jù)幀是否被正確接收。ARQ法有幾種實現(xiàn)方案,空閑重發(fā)請求(Idle RQ)和連續(xù)重發(fā)請求是其中最基本的兩種方案。
    (1)空閑重發(fā)請求(Idle RQ)。空閑重發(fā)請求方案也稱停等(Stop and Wait)法,該方案規(guī)定發(fā)送方每發(fā)送一幀后就要停下來等待接收方的確認(rèn)返回,僅當(dāng)接收方確認(rèn)正確接收后再繼續(xù)發(fā)送下一幀??臻e重發(fā)請求方案的實現(xiàn)過程如下:
    ①發(fā)送方每次僅將當(dāng)前信息幀作為待確認(rèn)幀保留在緩沖存儲器中:
    ②當(dāng)發(fā)送方開始發(fā)送信息幀時,隨即啟動計時器;
    ③當(dāng)接收方收到無差錯的信息幀后,即向發(fā)送方返回一個確認(rèn)幀;
    ④當(dāng)接收方檢測到一個含有差錯的信息幀時,便舍棄該幀;
    ⑤若發(fā)送方在規(guī)定時間內(nèi)收到確認(rèn)幀,即將計時器清零,繼而開始下一幀的發(fā)送;
    ⑥若發(fā)送方在規(guī)定時間內(nèi)未收到確認(rèn)幀(即計時器超時),則應(yīng)重發(fā)存于緩沖器中的待確認(rèn)信息幀。
    從以上過程可以看出,空閑RQ方案的收、發(fā)送方僅需設(shè)置一個幀的緩沖存儲空間,便可有效地實現(xiàn)數(shù)據(jù)重發(fā)并確保接收方接收的數(shù)據(jù)不會重份。空閑RQ方案最主要的優(yōu)點就是所需的緩沖存儲空間最小,因此在鏈路端使用簡單終端的環(huán)境中被廣泛采用。
    (2)連續(xù)重發(fā)請求(Continuous RQ)。連續(xù)重發(fā)請求方案是指發(fā)送方可以連續(xù)發(fā)送一系列信息幀,即不用等前一幀被確認(rèn)便可發(fā)送下一幀。這就需要在發(fā)送方設(shè)置一個較大的緩沖存儲空間(稱作重發(fā)表),用以存放若干待確認(rèn)的信息幀。當(dāng)發(fā)送方收到對某信息幀的確認(rèn)幀后,便可從重發(fā)表中將該信息幀刪除。所以,連續(xù)RQ方案的鏈路傳輸效率大大提高,但相應(yīng)地需要更大的緩沖存儲空間。連續(xù)RQ方案的實現(xiàn)過程如下:
    ①發(fā)送方連續(xù)發(fā)送信息幀而不必等待確認(rèn)幀的返回;
    ②發(fā)送方在重發(fā)表中保存所發(fā)送的每個幀的備份;
    ③重發(fā)表按先進(jìn)先出(FIFO)隊列規(guī)則操作;
    ④接收方對每一個正確收到的信息幀返回一個確認(rèn)幀;
    ⑤每一個確認(rèn)幀包含一個惟一的序號,隨相應(yīng)的確認(rèn)幀返回;
    ⑥接收方保存一個接收次序表,它包含最后正確收到的信息幀的序號;
    ⑦當(dāng)發(fā)送方收到相應(yīng)信息幀的確認(rèn)幀后,從重發(fā)表中刪除該信息幀的備份;
    ⑧當(dāng)發(fā)送方檢測出失序的確認(rèn)幀(即第n號信息幀和第n+2號信息幀的確認(rèn)幀已返回,而n+1號的確認(rèn)幀未返回)后,便重發(fā)未被確認(rèn)的信息幀。