❶ 求高手解答一個關於2011年計算機網路中選擇重傳的考研真題題目
這個啊 其實是考試的文字游戲 題目已經說了 已知0到3號四個幀 1號幀確認收到 0、2依次超時 那麼此時需要重傳(注意是需要) 而不是現在讓你當機器 就得重傳;故而選0和2重傳 因為根本沒說3怎麼回事。。。。當然啦 如果是做學問深究的話 這題目沒意義。。。首先一個IP數據包封裝到數據鏈路層 分幀 發送。。。這其實是有一個窗口的 在發送方 接收方都有個緩沖的窗口。。。我們知道一個IP數據包你必須收全 但是數據鏈路層往往是不保持狀態的載波偵聽協議 他就是能發就發 不發就等 故而在接受和發送方都有窗口緩沖。。。在接收方 其實也不是要求就得按序收到 他可以緩沖一下 在有限時間內收全即可。。。所以啊 要深究起來 指不定重傳多少幀 因為你在有限時間內可能是重傳未收到幀 而在整個IP包超時後可能得全部重來 另外 又比如你是1號確認收到 0 2依次超時 那麼它超時後是重新滾入待發送序列的 當然這里有演算法 有不同演算法把這些或而放最後 或而按照優先順序插入隊列等等 但是這個時候又可能0的收回來了 這個時候還有可能把0從二次待發送列中移除 所以說啊 網路協議知識的學習 就是要實打實的考慮復雜網路狀況下網路協議的運行情況 可不是簡簡單單就這么回事 要是真是這么簡單的情況 網路協議就不會那麼多 也不會有那麼多優先順序啊、重傳、排序啊等等演算法
❷ 數據鏈路層中選擇重傳為何接收窗口小於等於發送窗口
問題提問比較久遠了,但是搜索的網友看到應該能給予一些幫助 . 剛要考計算機網路,這一塊回答了也相當於總結了.
我們假設幀序號採用3bit表示,那麼幀序號為 0, 1, 2, 3, 4, 5, 6, 7在採用SR(選擇重傳)協議時,發送窗口時理論上滿足的原則是
發送窗口大小等於接收窗口(默認情況下,除非特殊說明)
發送窗口大小 + 接收窗口大小 <= 2^n = 8
問題一 : 那麼發送窗口為5 接收窗口為3 (即發送窗口大於接收窗口)會發生什麼情況?
首先發送方一次性連續發送了 0,1,2,3,4 幀序號的比特流 , 因為接收方的接收窗口為3 , 那麼在0,1,2號幀正確無誤的被接收方接收後,接收方向上交付0,1,2號幀 . 3,4號幀雖然被正確接收,但接收方現在還未將接收到的0,1,2號幀向上交付,並發回ack(n)的確認收到信息 ,多餘的3,4號幀將被拋棄,只有在接收方發回確認信息後,接收窗口才會向後移動, 接收方下一個窗口便才會期待3,4,5 號幀 .因此早到的幀會被拋棄. 那麼發送方遲遲收不到3,4號幀的ack3,ack4 .只收到ack0,ack1,ack2 , 因此發送方的計時器超時後接收方才會再次發送3,4號幀,這時候接收方才能正確接收. 這樣的配合方式使得每個周期都會有數據超時重傳,因此傳輸效率是低下的,也是沒必要的.
問題二: 如果發送窗口大小為5,接收窗口大小為5 (即發送窗口+接收窗口>2^n)會發生什麼情況?
我們來分析,發送方一次性發送0,1,2,3,4號幀的比特流, 接收方接收窗口為5
情況1: 在沒有差錯發生的情況下(此處差錯考慮幀差錯的幀丟失) : 發送方發送的所有數據都被正確接收了 , 並且接收方所有確認數據都正常接收到了.那麼這種情況將一個周期一個周期的循環下去.
情況2: 發送方發送了0-4號幀,接收方正確接收,但是接收方的回復的所有確認收到信息全部丟失 , 發送方以為自己的數據發送失敗,即沒有到達接收方,因為如果到達了接收方即使發生了幀差錯,接收方也會返回NAK(n)的回復信息 , 那麼在計時器超時後發送方再次發送在緩存中的0-4號舊幀,那麼接收方因為正確之前已經正確接收到0-4號幀後,它的接收窗口已經向後移動,此時接收窗口期望的是5,6,7,0號幀 . 當接收方再次接收到0-4號幀時,他並不能區別此時的0號幀是舊幀還是新幀,實際上是我們知道是舊幀,但是接收方接收到此0號幀了,它只能以為是新幀.那麼此時就造成了幀重復的差錯了.
問題2是我回復其他問題的答案 , 如果覺得有幫助請點贊支持.
❸ 後退N幀協議和選擇重傳協議的原理是什麼分別有哪些優缺點
後退N幀策略的基本原理
當接收方檢測出失序的信息幀後,要求發送方重發最後一個正確接收的信息幀之後的所有未被確認的幀;或者當發送方發送了N個幀後,若發現該N幀的前一個幀在計時器超時後仍未返回其確認信息,則該幀被判為出錯或丟失,此時發送方就不得不重新發送出錯幀及其後的N幀。這就是GO-DACK-N(退回N)法名稱的由來。因為,對接收方來說,由於這一幀出錯, 就不能以正常的序號向它的高層遞交數據,對其後發送來的N幀也可能都不能接收而丟棄。
後退N幀的工作情況
GO-DACK-N法操作過程如下圖。圖中假定發送完8號幀後,發現2號幀的確認返回在計時器超時後還未收到,則發送方只能退回從2號幀開始重發。
選擇重傳ARQ協議
為了進一步提高信道的利用率,可設法只重傳出現差錯的數據幀或者是定時器超時的數據幀。但這時必須加大接收窗口,以便先收下發送序號不連續但仍處在接收窗口中的那些數據幀。等到所缺序號的數據幀收到後再一並送交主機。這就是選擇重傳ARQ協議。
使用選擇重傳ARQ協議可以避免重復傳送那些本來已經正確到達接收端的數據幀。但我們付出的代價是在接收端要設置具有相當容量的緩存空間,這在許多情況下是不夠經濟的。
正因如此,選擇重傳ARQ協議在目前就遠沒有連續則協議使用得那麼廣泛。今後存儲器晶元的價格會更加便宜,選擇重傳ARQ協議還是有可能受到更多的重視。
❹ 選擇重傳ARQ協議中,為什麼發送窗口要和接收窗口相等,如果不等會怎樣
1、如果發送窗口>接收窗口。
比如接收窗口長度為2,准備接收序號為1和2的幀,發送窗口長度為4,正在發送1-4號的幀,此時如果4先到達了,因為不在接收窗口的范圍內,接收窗口就直接丟棄了。為了讓接收窗口正確接收4號幀,發送窗口還需要一直重傳,直到接收窗口接收。
所以如果發送窗口>接收窗口,會導致數據鏈路資源的浪費(重傳機會大大增加)。
2、如果發送窗口<接收窗口。
如發送窗口長度為2,正在發送1和2號幀,接收窗口長度為4,准備接收1-4號幀。這時,發送窗口要確認接收窗口接收了幀才能繼續發,所以接收窗口至少有兩個位置為空,得不到使用,也浪費了資源。
所以發送窗口=接收窗口是最好的。
❺ 數據鏈路層的流量控制與可靠傳輸機制
流量控制涉及對鏈路上的幀的發送速率的控制 ,以使接收方有足夠的緩沖空間來接收每一個幀。例如,在面向幀的自動重傳請求系統中 ,當待確認幀的數量增加時 ,有可能超出緩沖存儲空間而造成過載 。流量控制的基本方法是由接收方控制發送方發送數據的速率 ,常見的方式有兩種 : 停止-等待協議和滑動窗口協議 。
停止-等待流量控制基本原理
發送方每發送一幀 ,都要等待接收方的應答信號 ,之後才能發送下一幀;接收方每接收一幀 , 都要反饋一個應答信號 ,表示可接收下一幀,如果接收方不反饋應答信號,則發送方必須一直等待。每次只允許發送一幀 ,然後就陷入等待接收方確認信息的過程中 ,因而傳輸效率很低 。
滑動窗口流量控制基本原理
在任意時刻 ,發送方都維持一組連續的允許發送的幀的序號,稱為發送窗口;同時接收方也維持一組連續的允許接收幀的序號 ,稱為接收窗口。發送窗口用來對發送方進行流量控制,而發送窗口的大小 W T 代表在還沒有收到對方確認信息的情況下發送方最多還可以發送多少個數據幀。同理,在接收端設置接收窗口是為了控制可以接收哪些數據幀而不可以接收哪些幀 。在接收方只有當收到的數據幀的序號落入接收窗口內才允許將該數據幀收下 。若接收到的數據幀落在接收窗口之外 ,則一律將其丟棄。
下圖給出了發送窗口和接收窗口的工作原理。
在發送端,每收到一個確認幀,發送窗口就向前滑動一個幀的位置,當發送窗口內沒有可以發送的幀 (即窗口內的幀全部是己發送但未收到確認的幀) ,發送方就會停止發送 ,直到收到接收方發送的確認幀使窗口移動 ,窗口內有可以發送的幀,之後才開始繼續發送 。
在接收端 ,當收到數據幀後 ,將窗口向前移一個位置,並發回確認幀 ,若收到的數據幀落在接收窗口之外則一律丟棄 。
滑動窗口有以下重要特性 :
1) 只有接收窗口向前滑動時(同時接收方發送了確認幀),發送窗口才有可能(只有發送方收到確認幀才是一定)向前滑動。
2)從滑動窗口的概念看 ,停止-等待協議、後退 N 幀協議和選擇重傳協議只在發送窗口大小和接收窗口大小上有所差別 :
停止等待協議 :發送窗口大小 =1,接收窗口大小=1 ; 後退 N 幀協議:發送窗口大小>1 ,接收窗口大小=1; 選擇重傳協議 :發送窗口大小>1,接收窗口大小>1。
3) 當接收窗口的大小為 1 時,可保證幀的有序接收 。
4) 數據鏈路層的滑動窗口協議中 ,窗口的大小在傳輸過程中是固定的(注意與傳輸層的滑動窗口協議的區別)。
可靠傳輸機制
數據鏈路層的可靠傳輸通常使用確認和超時重傳兩種機制來完成 。確認是一種無數據的控制幀,這種控制幀使得接收方可以讓發送方知道哪些內容被正確接收。有些情況下為了提高傳輸效率,將確認捎帶在一個回復幀中,稱為捎帶確認 。超時重傳是指發送方在發送某一個數據幀以後就開啟一個計時器 ,在一定時間內如果沒有得到發送的數據幀的確認幀 ,那麼就重新發送該數據幀,直到發送成功為止 。
自動重傳請求 (Auto Repeat Request, ARQ ) ,通過接收方請求發送方重傳出錯的數據幀來恢復出錯的幀 ,是通信中用於處理信道所帶來差錯的方法之一 。傳統自動重傳請求分為三種,即停-等式 ( Stop-and-Wait) ARQ、後退 N 幀 ( Go-Back-N) ARQ 以及選擇性重傳(Selective Repate) ARQ 。後兩種協議是滑動窗口技術與請求重發技術的結合 ,由於窗口尺寸開到足夠大時,幀在線路上可以連續地流動 ,因此又稱其為連續 ARQ協議。注意,在數據鏈路層中流量控制機制和可靠傳輸機制是交織在一起的 。
在停止-等待協議中 ,源站發送單個幀後必須等待確認 ,在目的站的回答到達源站之前 ,源站不能發送其他的數據幀 。從滑動窗口機制的角度看 ,停止-等待協議相當於發送窗口和接收窗口大小均為 1 的滑動窗口協議。
在停止-等待協議中 ,除了數據幀丟失 ,還可能出現以下兩種差錯 : 到達目的站的幀可能己遭破壞 ,接收站利用差錯檢測技術檢出後,簡單地將該幀丟棄。為了對付這種可能發生的情況,源站裝備了計時器 。在一個幀發送之後 ,源站等待確認,如果在計時器計滿時仍未收到確認 ,則再次發送相同的幀 。如此重復 ,直到該數據幀無錯誤地到達為止 。
另一種可能的差錯是數據幀正確而確認幀被破壞 ,此時接收方已經收到了正確的數據幀,但發送方收不到確認幀 ,因此發送方會重傳已經被接收的數據幀 ,接收方收到同樣的數據幀時會丟棄該幀,並重傳一個該幀對應的確認幀 。發送的幀交替地用0和1來標識 ,肯定確認則分別用 ACK0和 ACK1 來表示 ,當收到的確認有誤時 ,則重傳己發送的幀。
對於停止-等待協議,由於每發送一個數據幀就停止並等待 ,因此用 1bit 來編號就夠 。在停止-等待協議中 ,若連續出現相同發送序號的數據幀 ,表明發送端進行了超時重傳。連續出現相同序號的確認幀 ,表明接收端收到了重復幀 。
此外,為了超時重發和判定重復幀的需要,發送方和接收方都須設置一個幀緩沖區。發送端在發送完數據幀時 ,必須在其發送緩存中保留此數據幀的副本 ,這樣才能在出差錯時進行重傳 。 只有在收到對方發來的確認幀 ACK 時,方可清除此副本 。
由下圖可知,停止-等待協議通信信道的利用率很低 。為了克服這一缺點 ,就產生了另外兩種協議 ,即後退 N幀協議和選擇重傳協議 。
在後退 N 幀式 ARQ 中,發送方不需要在收到上一個幀的 ACK 後才能開始發送下一幀 ,而是可以連續發送幀 。當接收方檢測出失序的信息幀後,要求發送方重發最後一個正確接收的信息幀之後的所有未被確認的幀;或者當發送方發送了 N個幀後 ,若發現該 N個幀的前一個幀在計時器超時後仍未返回其確認信息 ,則該幀被判為出錯或丟失 ,此時發送方就不得不又重傳該出錯幀及隨後的 N個幀 。換句話說 ,接收方只允許按順序接收幀 。
如圖所示,源站向目的站發送數據幀 。當源站發完 0 號幀後,可以繼續發送後續的 1 號幀、2 號幀等。源站每發送完一幀就要為該幀設置超時計時器 。由於連續發送了許多幀,所以確認幀必須要指明是對哪一幀進行確認 。為了減少開銷 ,GBN協議還規定接收端不一定每收到一個正確的數據幀就必須立即發回一個確認幀 ,而是可以在連續收到好幾個正確的數據幀後,才對最後一個數據幀發確認信息 ,或者可以在當自己有數據要發送時才將對以前正確收到的幀加以捎帶確認 。這就是說 ,對某一數據幀的確認就表明該數據幀和這以前所有的數據幀均己正確無誤地收到了。在圖中,ACKn 表示對第 n 號幀的確認 ,表示接收方己正確收到了第 n 號幀及以前的所有幀,下一次期望收到第 n+1 號幀 (也可能是第 0 號幀)。接收端只按序接收數據幀 。 雖然在有差錯的 2 號幀之後接著又收到了正確的 6 個數據幀,但接收端都必須將這些幀丟棄。接收端雖然丟棄了這些不按序的無差錯幀 ,但應重復發送己經發送過的最後一個確認幀 ACK1 ( 這是防止己經發送過的確認幀 ACK1 丟失)。
後退 N幀協議的接收窗口為1,可以保證按序接收數據幀。若採用n個比特對幀編號 ,則其發送窗口的尺寸 W T 應滿足:1 <= W T <= 2^n - 1。若發送窗口的尺寸大於2^n - 1,則會造成接收方無法分辨新幀和舊幀。
從圖中不難看出 ,後退 N 幀協議一方面因連續發送數據幀而提高了信道的利用率 ,但另一方面,在重傳時又必須把原來己傳送正確的數據幀進行重傳 (僅因這些數據幀的前面有一個數據幀出了錯) ,這種做法又使傳送效率降低。由此可見,若信道的傳輸質量很差導致誤碼率較大時,後退 N幀協議不一定優於停止-等待協議。
為進一步提高信道的利用率 ,可設法只重傳出現差錯的數據幀或者是計時器超時的數據幀。
但此時必須加大接收窗口,以便先收下發送序號不連續但仍處在接收窗口中的那些數據幀 。等到所缺序號的數據幀收到後再一並送交主機 。這就是選擇重傳 ARQ 協議。
在選擇重傳協議中 ,每一個發送緩沖區對應一個計時器 ,當計時器超時時,緩沖區的幀就會重傳 。另外,該協議使用了比上述其他協議更有效的差錯處理策略 ,即一旦接收方懷疑幀出錯,就會發一個否定幀 NAK 給發送方 ,要求發送方對 NAK 中指定的幀進行重傳 。如圖所示。
選擇重傳協議的接收窗口尺寸 W R 和發送窗口尺寸 W T 都大於 1,一次可以發送或接收多個幀。若採用n比特對幀編號,為了保證接收方向前移動窗口後 ,新窗口序號與舊窗口序號沒有重疊部分,需要滿足條件:接收窗口 W R +發送窗口 W T <= 2^n。假定仍然採用累計確認的方法 ,並且接收窗口 W R 顯然不應超過發送窗口 W T ( 否則無意義),那麼接收窗口尺寸不應超過序號范圍的一半:WR <= 2^(n - 1)。當接收窗口為最大值時 ,W T max=W R max=2^(n - 1)。需要提醒讀者的是 ,一般情況下,在 SR 協議裡面 ,接收窗口的大小和發送窗口的大小是相同的。
選擇重傳協議可以避免重復傳送那些本己正確到達接收端的數據幀 ,但在接收端要設置具有相當容量的緩沖區來暫存那些未按序正確收到的幀 。接收端不能接收窗口下界以下或窗口上界以上的序號的幀 ,因此所需緩沖區的數目等於窗口的大小 ,而不是序號數目 。
在停止-等待協議中 ,確認幀為什麼不需要序號(如用 ACK0 和 ACK1 ) ?
為什麼當用n個比特進行編號時 ,若接收窗口的大小為 1,則只有在發送窗口的大小 W T <= 2^n-1 時,連續ARQ 協議才能正確運行 ?
❻ 滑動窗口機制的選擇重傳協議
在後退n協議中,接收方若發現錯誤幀就不再接收後續的幀,即使是正確到達的幀,這顯然是一種浪費。另一種效率更高的策略是當接收方發現某幀出錯後,其後繼續送來的正確的幀雖然不能立即遞交給接收方的高層,但接收方仍可收下來,存放在一個緩沖區中,同時要求發送方重新傳送出錯的那一幀。一旦收到重新傳來的幀後,就可以原已存於緩沖區中的其餘幀一並按正確的順序遞交高層。這種方法稱為選擇重發(SELECTICE REPEAT),顯然,選擇重發減少了浪費,但要求接收方有足夠大的緩沖區空間。
❼ GBN具體是說的什麼
在理解GBN協議之前,先了解滑動窗口是怎麼回事?
在任意時刻,發送方都維持了一個連續的允許發送的幀的序號,稱為發送窗口;同時,接收方也維持了一個連續的允許接收的幀的序號,稱為接收窗口。發送窗口和接收窗口的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動窗口協議窗口大小一般不同。發送方窗口內的序列號代表了那些已經被發送,但是還沒有被確認的幀,或者是那些可以被發送的幀。
若從滑動窗口的觀點來統一看待停等、後退n及選擇重傳三種協議,它們的差別僅在於各自窗口尺寸的大小不同而已。停等:發送窗口= 1,接收窗口=1; 後退n協議:發送窗口>1,接收窗口=1;選擇重傳協議:發送窗口>1,接受窗口>1;
停等協議很好理解,這里主要解釋後退n協議和選擇重傳協議。
GBN協議中,發送方在發完一個數據幀後,連續發送若干個數據幀,即使在連續發送過程中收到了接收方發來的應答幀,也可以繼續發送。且發送方在每發送完一個數據幀時都要設置超時定時器。只要在所設置的超時時間內仍收到確認幀,就要重發相應的數據幀。如:當發送方發送了N個幀後,若發現該N幀的前一個幀在計時器超時後仍未返回其確認信息,則該幀被判為出錯或丟失,此時發送方就不得不重新發送出錯幀及其後的N幀。
接受幀只允許按順序接受幀。為了減少開銷,累計確認允許接收端在連續收到好幾個正確的確認幀後,只對最後一個數據幀發確認信息,或者可以在自己有數據要發送時才將對以前正確收到的幀加以捎帶確認。這就是說,對某一數據幀的確認就表明該數據幀和這以前所有的數據幀均已正確無誤地收到了。
後退N幀協議的接受窗口為1,可以保證按序接受數據幀。若採用n個比特對幀編號,則其發送窗口的尺寸應滿足:1~2^(n-1)。若發送窗口的尺寸大於2^(n-1),則會造成接受方無法分辨新幀和舊幀。(具體例子見書)
SR協議是當接收方發現某幀出錯後,其後繼續送來的正確的幀雖然不能立即遞交給接收方的高層,但接收方可收下來,存放在一個緩沖區中,同時要求發送方重新傳送出錯的那一幀。一旦收到重新傳來的幀後,就可以原已存於緩沖區中的其餘幀一並按正確的順序遞交高層。顯然,SR減少了浪費,但要求接收方有足夠大的緩沖區空間。
若採用n比特對幀編號,為了保證接收方向向前移動窗口後,新窗口序號與舊窗口序號沒有重疊部分,需要滿足條件:接受窗口+發送窗口<=2^n。假定仍然採用累計確認的方法,並且接受窗口顯然不應超過發送窗口,那麼接受窗口尺寸不應超過序號范圍的一半<=2^(n-1)。
假設n取3,序號空間即0~7 (S:sender R:receiver)
S 發送了0,1,2,3,4,5,6 號幀
R 接受上述幀並且捎帶發送 ACK6,但是丟失了
S的0號幀首先超時,S 重發發送0號幀
R收到0號幀,但是因為之前它已經接受0~6,發送了ACK6,它會認為0號幀是一個新的幀,而在0號幀之前的一個7號幀丟失(注意這里是一個環的結構)。因為是選擇重傳協議,R會接受0號幀( the old)作為新幀(暫時放在緩存區),並通知S重發7號幀。
S 發送7號幀
R接受了7和0號幀,並且發送ACK0
這就出現了問題:
1、R接受錯誤的0號幀作為新的幀
2、S在發送完7號幀之後收到了ACK0,而不是ACK7,此時對於S而言,它的0號幀早已在ACK6中確認。
出現這個問題的主要原因是我們不能區別新舊幀,現在我們將序號空間一分為二,首先發送0~3,繼續上面的步驟。走到步驟4的時候R不會接受0作為新幀,因為R知道新的幀是4而不是0。這樣就避免了上面的問題。
❽ 選擇重傳協議 發送窗口 接收窗口 都小於2^(n-1)
如果發送窗口大於接收窗口,接收方的緩沖區最終會溢出,接收方會死在那裡
❾ 02 - 數據鏈路層的詳細認識
時間有限我這里只寫了一部分內容,更詳細的內容可以直接看我的筆記 第三章數據鏈路層
數據鏈路層的任務就是將分組從一個網路中或一個鏈路上的一端傳送到另一端。數據鏈路層傳送的數據單元稱為幀(frame)。所以也可以說數據鏈路層的任務就是在一個網路(或一段鏈路上)傳送以幀為單位的數據
數據鏈路層屬於計算機網路的底層,僅在物理層的上方,在網路層的下方,網路中的主機、路由器等都必須實現數據鏈路層。數據鏈路層使用的信道主要有兩種類型,點對點信道,廣播信道
在點對點信道中最重要的是如何實現可靠傳輸(在實際中並不會在數據鏈路層實現可靠傳輸,而是交給上層)
網路層的IP數據報必須向下傳達到數據鏈路層,在數據報前後分別加上首部和尾部,封裝成為一個完整的幀。因為在數據鏈路層就是以幀為單位傳輸和處理數據,因此,數據鏈路層中的幀長就是數據部分加上首部和尾部的長度。
發送方將幀以比特流的形式發送給接收方(在物理層會轉換成電信號),接收方為了能夠處理幀數據,必須正確認識每個幀的開始和結束,這就需要進行幀定界
幀定界有很多種,比如乙太網就是在傳輸的幀與幀之間插入時間間隔來實現,只有首部有幀定界符,尾部沒有幀定界符。還有一種就是在幀的首部和尾部都加上一個幀定界符。
幀定界符:
不同類型:
幀定界符在透明傳輸中的問題和解決
問題: 傳輸數據存在使用幀定界符所使用的字元或比特組合,會出現錯誤的幀定界
解決:
注意:
通信鏈路的傳輸都不會是理想的,比特在傳輸過程中可能會產生差錯,比如1變為0,0變為1,這叫做比特差錯,因此就需要在接收端進行差錯檢測。
發送方需要採用某種差錯檢測演算法,使用發送的數據計算出差錯檢測碼EDC,差錯檢測碼隨數據一起發送給接收方,接收方使用同樣的差錯檢測演算法計算出差錯檢測碼EDC',如果兩者不一致,則表示出現差錯,一般採用循環冗餘檢驗(CRC)來檢錯
差錯檢測演算法:
接收雙方需要約定好一個多項式,之後按照下圖的方式進行處理
案例說明
發送方的冗餘校驗:
說明:
接收方的冗餘校驗:
說明:
注意:
有些情況下數據鏈路層需要向上層的網路層提供「可靠傳輸」的服務,也就是發送端發送什麼,對應的接收端就必須接收什麼。我們通過可靠傳輸協議來實現數據鏈路層的可靠傳輸,有三種,停止等待協議SW、回退N步協議GBN、選擇重傳協議SR。
可靠傳輸協議就是要在不可靠的信道上實現可靠的數據傳輸服務。
在計算機網路中實現可靠傳輸的基本方法就是:如果發現錯誤就重傳
使用分組確認和超時重傳機制就可以在不可靠的信道上實現可靠的數據傳輸。
解決: 可以在發送方發送完一個數據分組後,啟動一個超時計時器,若超出了設置的重傳時間,發送方仍沒有收到接收方的任何確認分組,就會重傳原來的分組。
注意: 重傳時間的選擇一般是略大於「從發送方到接收方的平均往返時間」數據鏈路層的往返時間是比較確定的,可以使用這種方式
說明:
上面也可以看到停止等待協議的信道利用率很低,所以需要採用流水線傳輸方式,發送方不間斷的發送分組來提高信道利用率。但是這種方式有可能會使接收方來不及處理這些分組,從而導致分組的丟失。因此需要限制發送方連續發送分組的個數避免這個問題,而這種方式就是回退N步協議。
簡單理解回退N步協議就是停止等待協議只能發送一個分組就等待,回退N步協議是發送多個分組才處於等待狀態
原理: 回退N步協議在流水線傳輸的基礎上利用發送窗口來限制發送方連續發送分組的個數,是一種連續的ARQ協議
注意:
選擇重傳協議是在回退N步協議的基礎上,只重傳出現差錯的分組,這時接收窗口不再為1,以便先收下失序到達但仍然處於接收窗口中的分組,等到所缺分組收齊後再一並送交上層,這就是選擇重傳協議。
注意:
❿ ARQ協議的工作原理是什麼
數據鏈路層的差錯控制問題。但提問的背景信息太少,你的問題是沒有明確什麼樣的前提條件。只按照一般:
1,車架號碼由3位數字嘗試回答。當發送序列號由三個比特佔用,可以由總共有八個不同的發送序列號,從000到111。當數據幀的發送序列號為111,下一個序列號發送到另一台000。
2,默認使用的網路是一個連續ARQ協議的工作原理。要點是:發送一個數據幀後,該幀是不是停下來等待一個答案,但你就可以發送一個連續的數據幀數量。如果你再收到發送確認幀的接收端,然後你就可以發送數據幀。由於減少的等待時間,提高通信的吞吐量。 /> 3,根據題意,我們正在設立發送3個比特用於編碼的序列號,它可以發送的幀的編號從0到7,8個不同的序列號;設置發送窗口WT = 5。然後,在開始發送側傳輸,傳輸窗口將指示:如果還沒有收到一個確認消息的情況下,發送方可以發送連續#0#4,5幀。如果發送方發送了這五個幀(#0#4),但最終還是收到一條確認消息,因為已經坐滿傳輸窗口,它必須停止發送和進入等待狀態。當您收到確認消息幀0號後,發送窗口,可以向前移動一個數字,然後,#5屬於發送窗口,發送者現在可以發送#5。假設有三個隨後的幀(#1至#3)到達的確認幀的發送端。因此,發送窗口,可以向前移動再次三個數字。此時,發送方也繼續發送#6,#7和新的第0。
4,當使用n位的編號,如果發送窗口的大小WT,接收窗口大小是WR,那麼只有WT≤2 ^ N - 1和WT + WR≤2正日已經形成,滑動窗口協議才能正常工作。然而,根據題目描述
例如,設n = 3,WT = WR = 5,當一個數據幀的數目的時候,ACK丟失時,接收器將可能#作為一個新的數據幀的數據幀倒閉,所以滑動窗口可能無法正常工作。
5,選擇重傳ARQ協議可以嘗試只是
錯誤重傳數據幀或數據幀計時器到期。但是,那麼我們就必須增加了接收窗口,先接受發送序列號不連續的,但仍然在接收窗框。等待,直到接收的數據幀丟失的數目,然後被發送到主機。這是一種選擇性的重傳ARQ協議。
使用選擇性重傳ARQ協議發送那些已經避免重復正確到達接收端的數據幀。但成本要設置在接收器中的緩沖區空間,具有相當大的容量,這在許多情況下,是不經濟的。
出於這個原因,選擇重傳ARQ協議已經遠遠的當前行中,所使用的協議是如此廣泛。未來內存晶元的價格會更便宜,選擇重傳ARQ協議還是有可能得到更多的關注。 。 />選擇重傳ARQ協議,接收窗口顯然是不大於發送窗口。如果n位的數量,最大接收窗口必須滿足以下條件:WR≤2N-1。當一支球隊最大接收窗口時,WR = 2N-1。例如:n = 3時,可以計算出WT = WR = 4。