日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【学习笔记】数据链路层——流量控制:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)

發(fā)布時間:2024/7/23 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】数据链路层——流量控制:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一. 流量控制
    • ① 必要性
    • ② 數(shù)據(jù)鏈路層 VS 傳輸層
    • ③ 定義
    • ④ 方法
      • 1)停止等待協(xié)議
      • 2)滑動窗口協(xié)議
        • 關(guān)系:
        • 包括:
      • 3)協(xié)議對比
  • 二. 停止-等待協(xié)議
    • 必要性
    • 應(yīng)用情況
      • ① 無差錯情況
      • ② 有差錯情況
        • 1)數(shù)據(jù)幀丟失,或檢測到幀出錯。
        • 2)ACK丟失
        • 3)ACK遲到
      • ③ 性能分析
        • 結(jié)論
        • 解析圖
        • 信道利用率 && 信道吞吐率
          • 1)定義
          • 2)例題
  • 三. 后退N幀協(xié)議(GBN)
    • ① GBN的滑動窗口
    • ② GBN發(fā)送方要做的三件事
    • ③ GBN接收方要做的事
    • ④ 運行圖
    • ⑤ 滑動窗口長度
    • ⑥ GBN重點總結(jié)
    • ⑦ 例題
    • ⑧ 性能分析
  • 四. 選擇重傳協(xié)議(SR)
    • ① 滑動窗口
    • ② SR發(fā)送方必須響應(yīng)的三件事
    • ③ SR接受方要做的事
    • ④ 運行圖
    • ⑤ 滑動窗口長度
        • 公式:WtmaxWtmaxWtmax = WrmaxWrmaxWrmax = 2n-1
        • 限制原因:
    • ⑥ SR協(xié)議重點 && 例題
        • 重點
        • 例題
    • ⑦ 思維導(dǎo)圖

ppt來源:王道考研B站教程

一. 流量控制

① 必要性

較高的發(fā)送速度和較低的接收能力不匹配的話,會造成傳輸出錯

② 數(shù)據(jù)鏈路層 VS 傳輸層

層模式流量控制手段
數(shù)據(jù)鏈路層點對點收不下就不回復(fù)確認(rèn)
傳輸層端到端給發(fā)送端一個窗口公告

③ 定義

控制發(fā)送速率,使接收方有足夠的緩沖空間來接收每一個幀。

④ 方法

1)停止等待協(xié)議

2)滑動窗口協(xié)議

關(guān)系:

解決了流量控制,以及可靠傳輸(通過發(fā)送方自動重傳)

包括:

  • 后退N幀協(xié)議(GBN)
  • 選擇重傳協(xié)議(SR)

3)協(xié)議對比

也就是說,其實停等協(xié)議也可以看成是一種滑動窗口協(xié)議。

二. 停止-等待協(xié)議

下簡稱”停等協(xié)議“

必要性

  • 底層信道會出現(xiàn)丟包問題。
  • 流量控制

應(yīng)用情況

① 無差錯情況

0幀、1幀為編號。ACK為確認(rèn)幀。(acknowledgement frame)
注意:幀編號可以重復(fù)利用,比如此處0,1就是不斷給新幀重復(fù)使用的。

② 有差錯情況

停等協(xié)議的有差錯情況,都是基于超時計時器來進(jìn)行處理的。
讓我們在第一種差錯情況中對超時計時器進(jìn)行更多的介紹。

1)數(shù)據(jù)幀丟失,或檢測到幀出錯。

  • 數(shù)據(jù)幀丟失:即接收端并沒有接收到數(shù)據(jù)幀。
  • 檢測到幀出錯:接收端接收到了數(shù)據(jù)幀,但是檢測到數(shù)據(jù)幀出錯了。

這兩種都產(chǎn)生一樣的結(jié)果:接收端不返回ACK。

下圖中,感嘆號部分的原因為:

  • 保留副本:可能需要重新發(fā)送這個幀(由于之前丟失或出錯)。
  • 必須編號:防止重復(fù)。

2)ACK丟失

描述:接收端接收到數(shù)據(jù)了,但是發(fā)送給發(fā)送端的ACK丟失了的情況。

解決流程:
i) 由于沒有回收到ACK,觸發(fā)了超時計時器,發(fā)送端重新發(fā)送當(dāng)前數(shù)據(jù)幀。
ii) 接收端再次收到當(dāng)前數(shù)據(jù)幀,由于我們有編號,于是判斷這是重復(fù)幀,丟棄重復(fù)幀,并且再次傳ACK。
iii) 發(fā)送端接收到ACK,錯誤解決。(當(dāng)然,如果又丟失則繼續(xù)這個流程)

3)ACK遲到

描述:接收端接收到數(shù)據(jù)了,但是ACK遲到了,觸發(fā)了超時計時器的情況。

解決流程:
i) ACK遲到導(dǎo)致觸發(fā)超時計時器,發(fā)送端重傳數(shù)據(jù)幀。
ii) 接收端收到重復(fù)數(shù)據(jù)幀,丟棄重復(fù)幀,并重傳ACK。
iii) 發(fā)送端在某刻終于收到遲到ACK,由于編號重復(fù),丟棄遲到ACK。

③ 性能分析

結(jié)論

簡單,信道利用率太低。

解析圖

可見一個周期中,RTT占了很大的比例。

信道利用率 && 信道吞吐率

1)定義

2)例題
  • RTT = 雙向傳播事延 = 2 * 30ms
  • 此處TD = L / 4kb/s,TA題干未給,不計。(見解析圖中的公式變量。)

三. 后退N幀協(xié)議(GBN)

GBN:Go Back N

首先來一個GBN協(xié)議與前面的停等協(xié)議的對比圖吧!

停等協(xié)議 GBN協(xié)議

由停等協(xié)議到GBN協(xié)議,有兩個前提:

  • 必須增加序號范圍
  • 發(fā)送方要緩存多個分組

① GBN的滑動窗口

傳送幀分為三個部分:

  • 發(fā)完被確認(rèn)的幀
  • 還能發(fā)送的幀(即正在發(fā)送窗口里的幀)
  • 還不能發(fā)的幀

② GBN發(fā)送方要做的三件事

簡單來說,就是:

  • 與上層的交流:上層發(fā)送數(shù)據(jù),發(fā)送方如果窗口滿,則退還數(shù)據(jù)給上層。(實際可以緩存數(shù)據(jù))
  • 對ACK采取累計確認(rèn)方式。
    這里要舉個例子:發(fā)送0、1、2,只返回ack1,則說明:0,1都收到,重傳2。而非只收到1。
  • 超時事情處理:重傳所有已發(fā)但未確認(rèn)幀。
    舉個例子:發(fā)送0、1、2、3,返回ack1,超時后重傳2、3。
    (之后的SR協(xié)議就是對此處進(jìn)行了優(yōu)化。)

③ GBN接收方要做的事

下圖簡而言之就是:

  • 正確按序收到n號幀后,發(fā)送ack N(累計確認(rèn)),上傳數(shù)據(jù)給上層。
  • 維護(hù)Expected_Seq_Num。
    舉個例子:發(fā)0、1、2、3,接收到0、2、3,則發(fā)ack0,expectedseqnum=1(期待接收幀是1)
    這里提了一下緩存失序幀,其實就是為SR協(xié)議引一下,因為SR協(xié)議會緩存失序幀。

④ 運行圖

圖中需要注意:

  • 接收3、4、5后,都丟棄,并且發(fā)送的都是ACK 1。
  • 超時計時器:超時后,重傳所有已發(fā)未確認(rèn)幀,結(jié)合expectedseqnum=2來維護(hù)運行。

⑤ 滑動窗口長度

  • 采取n比特對幀編號的情況:發(fā)送窗口尺寸W滿足:1 ≤ W ≤ 2n2 ^ n2n-1
  • 原因:尺寸過大會導(dǎo)致接收方無法區(qū)分新幀與舊幀。
    如果不太了解為啥無法區(qū)分,可以到SR協(xié)議部分再看看解析。

⑥ GBN重點總結(jié)

這里直接看圖就好

⑦ 例題


做這道題需要的知識點:

  • 累計確認(rèn)
  • GBN的重發(fā)機(jī)制

解析:由于收到了3號幀的確認(rèn),也就是ACK 3,那么由累計確認(rèn)機(jī)制可知:0、1、2、3號幀都成功傳送。因此,只有4、5、6、7號幀需要重發(fā)。所以選C.4。

⑧ 性能分析

i) 優(yōu)點:連續(xù)發(fā)送數(shù)據(jù)幀 => 提高信道利用率。
ii) 缺點:重傳時要把已經(jīng)正確傳輸?shù)臄?shù)據(jù)幀重傳 => 傳送效率降低。

最后來一個GBN的思維導(dǎo)圖

四. 選擇重傳協(xié)議(SR)

SR:Selective Repeat

對于之前的GBN協(xié)議,我們了解其弊端:批量重傳。
而為了解決這一弊端,我們有一個解決方法:

單個確認(rèn),加大接收窗口,設(shè)置接收緩存,支持亂序(緩存亂序到達(dá)幀)

由此引出SR協(xié)議

① 滑動窗口

與GBN協(xié)議不同在于:

  • 見接收方窗口的紫色部分6,新增緩存功能。
  • 見發(fā)送方窗口的綠色部分3,支持亂序確認(rèn),也就是重傳時可以傳2,4而省略3。
  • 下界:位于發(fā)送方窗口的最小序號位,下圖中為2號幀。

② SR發(fā)送方必須響應(yīng)的三件事

  • 上層調(diào)用同GBN,不贅述。
  • ACK:與GBN不同,并非累計確認(rèn)。具體可見圖中解釋。
    舉個例子:
    發(fā)0、1、2、3、4,收到ACK1 、2、3,那么說明0、4并沒有被正確接收。并且由于0是下界,因此不能移動窗口。于是重傳0、4,如果只返回ACK0,那么窗口移動,下界變成4。
  • 超時事件:一個超時事件對應(yīng)一個幀的重傳

③ SR接受方要做的事

分成三類。

  • 接受亂序,緩存失序幀。如下圖的6號幀
  • 比下界序號還小的幀,返A(chǔ)CK。(下圖5號幀前的01234,只是重新確認(rèn)已發(fā))
  • 其他情況:忽略。

移動滑動窗口的情況:下界幀成功返回ACK。

④ 運行圖

  • 2幀丟失后,3幀緩存,發(fā)送ACK3 (GBN則返A(chǔ)CK2)
  • 2幀超時后,重傳2幀。(GBN則返2345)
  • 移動窗口:重傳2幀后,2-5都成功了,移動下界到6。

⑤ 滑動窗口長度

公式:WtmaxWtmaxWtmax = WrmaxWrmaxWrmax = 2n-1

限制原因:

同GBN,會導(dǎo)致接收方無法區(qū)分新幀與舊幀。
見圖左,與圖右流程:

  • 共同點:最后都是接受0號幀
  • 不同點:左邊是重傳(舊幀),右邊不是重傳(新幀)

解決方法:按公式給窗口長度,就不會出現(xiàn)這種二義性錯誤。

⑥ SR協(xié)議重點 && 例題

重點

直接見下圖

例題


考察知識:

  • SR協(xié)議的重傳機(jī)制

解析:

  • 1號幀已經(jīng)確認(rèn),不需要重傳
  • 0、2號幀超時,需要重傳
  • 3號幀,沒超時,先不處理。

因此,最終只需要重傳0、2號幀,答案選A.2。

⑦ 思維導(dǎo)圖

終于補(bǔ)完這一小節(jié)的內(nèi)容了= =,一篇博客拖了好久。
要抓緊寫完三四章的內(nèi)容了!

總結(jié)

以上是生活随笔為你收集整理的【学习笔记】数据链路层——流量控制:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。