以下摘自筆者編著的
《網路工程師必讀——網路工程基礎》
圖書: 7.4.6
連續arq
協議 連續重發請求
arq方案是指傳送方可以連續傳送一系列資訊幀,即不用等前一幀被確認便可繼續傳送下一幀,
效率大大提高。但在這種重發請求方案中,需要在傳送方設定乙個較大的緩衝儲存空間(稱作重發表),用以存放若干待確認的資訊幀。當傳送方到對某資訊幀的確認幀後,便可從重發表中將該資訊幀刪除。所以,連續
重發請求arq
方案的鏈路傳輸效率大大提高,但相應地需要更大的緩衝儲存空間。
在這一協議中,當傳送站點傳送完乙個資料幀後,不是停下來等待應答幀,而是可以連續在傳送若干個資料幀。如果在此過程中又收到了接收端發來的應答幀,那麼還可以接著傳送資料
幀。由於減少了等待時間,整個通訊的吞吐量就提高了。
如結點a向結點
b傳送資料幀,當結點a發完
0號幀時,並不等待,而是繼續傳送後續的
1號幀、
2號幀等。由於連續傳送了許多幀,所以應答幀不僅要說明是對哪一幀進行確認或否認,而且應答幀本身也必須編號。假設
2號幀出了差錯,於是結點
b傳送否認幀
nak2
。當否認幀
nak2
到達結點
a時,結點
a正在傳送
5號資料幀。當5號
幀傳送完畢後,結點
a才能進行
2號幀的重發。
這裡要注意兩點:
l接受端只能按序接收資料幀。對於
2號幀,結點
b應答了
nak2
,雖然接著又收到了三個正確的資料幀,但都必須將他們丟棄,因為這些幀的傳送序號都不是順序號。l結點
a在重傳
2號資料幀時,雖然已經發完了
5號幀,但仍必須向回走,從
2 號幀起進行重傳。正因如此,連續
arq又稱為
go-back-n arq
,意思是當出現差錯必須重傳時,要向回走
n個幀,然後再開始重傳。
go-dack-n
策略的基本原理是,當接收方檢測出失序的資訊幀後,要求傳送方重發最後乙個正確接收的資訊幀之後的所有未被確認的幀;或者當傳送方傳送了
n個幀後,若發現該
n幀的前乙個幀在計時器超時後仍未返回其確認資訊,則該幀被判為出錯或丟失,此時傳送方就不得不重新傳送出錯幀及其後的
n幀。這就是
go-dack-n
(退回n
)法名稱的由來。因為對接收方來說,由於這一幀出錯,就不能以正常的序號向它的高層遞交資料,對其後傳送來的
n幀也可能都不能接收而丟棄。
go-dack-n
法操作過程如圖
7-7所示。圖中假定傳送完
8號幀後,發現
2號幀的確認返回訊號在計時器超時後還未收到,則傳送方只能退回到從
2號幀開始重發以後所有已發的資料。 圖
7-7go-back-n
法工作原理示例
還有另一種情況。
2號資料幀丟失,3號至
5號資料幀雖然正確傳送
到結點b
,但也不得不被丟棄。當結點a傳送
5號資料幀的過程中,超時定時器設定的超
時時間到。因此,在
5號資料幀傳送完畢後,就回到
2號資料幀進行重傳。
在使用連續
arq協議時,如果傳送端一直沒有受到對方的確認資訊,那麼實際上傳送端並不能無限制的傳送其資料。這是因為:當未被確認的資料幀的數目太多時,只要有一幀出了差錯,就要有很多的
資料幀需要重傳,這必然浪費很多時間。另外為了對所傳送的大量資料幀進行編號,每個資料幀的傳送序號也要占用較
多的位元數,這樣又增加了一些不必要的開銷。因此,在連續
arq協議中必須將已傳送出去、但未被確認的資料幀的數目加以限制,
這是本章後面將要
要的滑動視窗協議所要討論的內容。
從原理不難看出,連續
arq協議一方面因連續傳送資料幀而提高了效率,但另一方
面,在重傳時又必須把原來已正確傳送過的資料幀進行重傳(但僅因這些資料幀之前有
乙個資料幀出了錯),這樣又使傳送速率降低。由此可見,若傳輸通道的傳輸質量很差
而誤位元速率較大時,連續
arq協議不一定優於停止等待協議。
綜上所述,連續重發請求
arq方案的特點如下:(1
)傳送方連續傳送資訊幀,而不必等待確認幀的返回;(2
)在重發表中儲存所傳送的每個幀的備份;(3
)重發表按先進先出(
fifo
)佇列規則操作;(4
)接收方對每乙個正確收到的資訊幀返回乙個確認幀,每乙個確認幀包含乙個惟一的序號,隨相應的確認幀返回;(5
)接收方儲存乙個接收次序表,包含最後正確收到的資訊幀的序號。當傳送方收到相應資訊幀的確認後,從重發表中刪除該資訊幀的備份;(6
)當傳送方檢測出失序的確認幀(即第
n號資訊幀和第
n+2號資訊幀的確認幀已返回,而
n+1號的確認幀未返回)後,便重發未被確認的資訊幀。
停止等待協議和連續ARQ協議
停止等待協議就是傳送乙個資料報之後,要等待對方的確認之後在傳送第二個資料報 超時重傳機制 傳送端傳送了m1這個資料報之後,啟動乙個定時器,如果在一定的時間內如果a沒有收到b的ack回應,重新傳遞m1這個資料報,a每次傳送乙個資料報都會啟動乙個定時器。如果b收到了m1資料,但是發生m1的資料在傳遞過程...
停止等待協議與連續 ARQ 協議
一 停止等待協議 停止等待 就是每傳送完乙個分組就停止傳送,等待對方的確認。在收到確認後再傳送下乙個分組。全雙工通訊的雙方既是傳送方也是接收方。為了討論問題的方便,我們僅考慮 a 傳送資料,而 b 接收資料並傳送確認。因此 a 叫做傳送方,而 b 叫做接 收方。1.無差錯情況問題1 a如何知道 b ...
TCP連續ARQ協議和滑動視窗協議
tcp協議通過使用連續arq協議和滑動視窗協議,來保證資料傳輸的正確性,從而提供可靠的傳輸。一 arq協議 arq協議,即自動重傳請求 automatic repeat request 是osi模型中資料鏈路層和傳輸層的錯誤糾正協議之一。它通過使用確認和超時這兩個機制,在不可靠服務的基礎上實現可靠的...