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

字號(hào):

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