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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制

發(fā)布時(shí)間:2024/10/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

      • 0.思維導(dǎo)圖
      • 1.什么是流量控制?
      • 2.什么是可靠傳輸機(jī)制?
      • 3.什么是滑動(dòng)窗口機(jī)制?
      • 4.可靠傳輸、流量控制、滑動(dòng)窗口之間的關(guān)系
      • 5.停止-等待協(xié)議
        • (1)為什么要有停止-等待協(xié)議?
        • (2)研究停止等待協(xié)議的前提
        • (3)停止-等待協(xié)議有幾種應(yīng)用情況?
          • 1?? 無(wú)差錯(cuò)情況
          • 2?? 有差錯(cuò)情況
            • ① 數(shù)據(jù)幀丟失或檢測(cè)到幀出錯(cuò)
            • ② ACK確認(rèn)幀丟失
            • ② ACK確認(rèn)幀遲到超時(shí)
        • (4)停止等待協(xié)議性能分析
      • 6.多幀滑動(dòng)窗口與后退N幀協(xié)議(GBN)
        • (1)后退N幀協(xié)議(GBN)的滑動(dòng)窗口
        • (2)GBN發(fā)送方響應(yīng)的三件事
          • 1?? 上層的調(diào)用
          • 2?? 收到一個(gè)ACK
          • 3?? 超時(shí)事件
        • (3)GBN接受方要做的事
        • (4)一張圖了解GBN發(fā)送方和接受方之間的傳輸過(guò)程
        • (5)GBN滑動(dòng)窗口的限制
        • (6)GBN重點(diǎn)知識(shí)
        • (7)GBN性能分析
      • 7.多幀滑動(dòng)窗口與選擇重傳協(xié)議(SR)
        • (1)SR的滑動(dòng)窗口圖
        • (2)SR發(fā)送方必須響應(yīng)的三件事
          • 1?? 上層的調(diào)用
          • 2?? 收到一個(gè)ACK確認(rèn)幀
          • 3?? 超時(shí)處理
        • (3)SR接受方要做的事
        • (4)一張圖了解SR發(fā)送方和接受方之間的傳輸過(guò)程
        • (5)SR滑動(dòng)窗口的大小限制
        • (6)SR重點(diǎn)知識(shí)


0.思維導(dǎo)圖

1.什么是流量控制?

  • 流量控制是數(shù)據(jù)鏈路層的一種功能,流量控制對(duì)數(shù)據(jù)鏈路上的幀的發(fā)送速率進(jìn)行控制,以使接收方有足夠的緩沖空間來(lái)接受每個(gè)幀
  • 流量控制的基本方法是由接收方控制發(fā)送方發(fā)送數(shù)據(jù)的速率
  • 常見(jiàn)的流量控制方式有兩種:停止-等待協(xié)議、滑動(dòng)窗口協(xié)議

2.什么是可靠傳輸機(jī)制?

  • 可靠傳輸機(jī)制是為了使數(shù)據(jù)可以正確穩(wěn)定的傳輸和接收而制定的規(guī)則。

  • 數(shù)據(jù)鏈路層的可靠傳輸通常使用確認(rèn)和超時(shí)重傳兩種機(jī)制來(lái)完成。

  • 確認(rèn)是一種無(wú)數(shù)據(jù)的控制幀,這種控制幀使得接收方可以讓發(fā)送方知道哪些內(nèi)容被正確接收。有些情況下為了提高傳輸效率,將確認(rèn)捎帶在一個(gè)回復(fù)幀中,稱(chēng)為捎帶確認(rèn)。

  • 超時(shí)重傳是指發(fā)送方在發(fā)送某一個(gè)數(shù)據(jù)幀以后就開(kāi)始一個(gè)計(jì)時(shí)器,在一定時(shí)間內(nèi)如果沒(méi)有得到發(fā)送的數(shù)據(jù)幀的確認(rèn)幀,那么就重新發(fā)送該數(shù)據(jù)幀,直到發(fā)送成功為止。

  • 自動(dòng)重傳請(qǐng)求(Auto Repeat reQuest,ARQ),通過(guò)接收方請(qǐng)求發(fā)送方重傳出錯(cuò)的數(shù)據(jù)幀來(lái)恢復(fù)出錯(cuò)的幀,是通信中用于處理信道所帶來(lái)差錯(cuò)的方法之一。

  • 傳統(tǒng)自動(dòng)重傳請(qǐng)求分為三種,即停等式(Stop-and-Wait)ARQ、后退N幀(Go-Back-N)ARQ以及選擇性重傳(Selective Repeat)ARQ。后兩種協(xié)議是滑動(dòng)窗口技術(shù)與請(qǐng)求重發(fā)技術(shù)的結(jié)合,由于窗口尺寸開(kāi)到足夠大,幀在線路上可以連續(xù)地流動(dòng),因此又稱(chēng)為連續(xù)ARQ協(xié)議。

3.什么是滑動(dòng)窗口機(jī)制?

  • 滑動(dòng)窗口協(xié)議的基本原理就是在任意時(shí)刻,發(fā)送方都維持了一個(gè)連續(xù)的允許發(fā)送的幀的序號(hào),稱(chēng)為發(fā)送窗口;同時(shí),接收方也維持了一個(gè)連續(xù)的允許接收的幀的序號(hào),稱(chēng)為接收窗口。
  • 發(fā)送窗口和接收窗口的序號(hào)的上下界不一定要一樣,甚至大小也可以不同。
  • 不同的滑動(dòng)窗口協(xié)議窗口大小一般不同。
  • 發(fā)送方窗口內(nèi)的序列號(hào)代表了那些已經(jīng)被發(fā)送,但是還沒(méi)有被確認(rèn)的幀,或者是那些可以被發(fā)送的幀。


  • 在發(fā)送端,每收到一個(gè)確認(rèn)幀,發(fā)送窗口就向前滑動(dòng)一個(gè)幀的位置,當(dāng)發(fā)送窗口內(nèi)沒(méi)有可以發(fā)送的幀(即窗口內(nèi)的幀全部是已發(fā)送但未收到確認(rèn)的幀),發(fā)送方就會(huì)停止發(fā)送,直到收到接受方發(fā)送的確認(rèn)幀使窗口移動(dòng),窗口內(nèi)有可以發(fā)送的幀,之后才開(kāi)始繼續(xù)發(fā)送。

  • 在接受端,當(dāng)收到數(shù)據(jù)幀后,將窗口向前移一個(gè)位置,并發(fā)回確認(rèn)幀,若收到的數(shù)據(jù)幀落在接受窗口之外則一律丟棄。

  • 滑動(dòng)窗口有以下重要特性:

  • 只有接受窗口向前滑動(dòng)時(shí)(同時(shí)接受方發(fā)送確認(rèn)幀),發(fā)送窗口才有可能(只有發(fā)送方收到確認(rèn)幀才是一定)向前滑動(dòng)。

  • 從滑動(dòng)窗口的概念看,停止-等待協(xié)議、后退N幀協(xié)議和選擇重傳協(xié)議只有在發(fā)送窗口大小和接收窗口大小有所差別。

  • 停止-等待協(xié)議:發(fā)送窗口大小=1,接受窗口大小=1;

  • 后退N幀協(xié)議:發(fā)送窗口大小>1,接受窗口大小=1;

  • 選擇重傳協(xié)議:發(fā)送窗口大小>1,接受窗口大小>1;

  • 當(dāng)接受窗口的大小為1時(shí),可保證幀的有序接受。

  • 4.可靠傳輸、流量控制、滑動(dòng)窗口之間的關(guān)系

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

    • 停止-等待協(xié)議也稱(chēng)為單幀滑動(dòng)窗口與停止-等待協(xié)議
    • 當(dāng)發(fā)送窗口和接收窗口的大小固定為1時(shí),滑動(dòng)窗口協(xié)議退化為停等協(xié)議(stop-and-wait)。
    • 該協(xié)議規(guī)定發(fā)送方每發(fā)送一幀后就要停下來(lái),等待接收方已正確接收的確認(rèn)(acknowledgement)返回后才能繼續(xù)發(fā)送下一幀。
    • 由于接收方需要判斷接收到的幀是新發(fā)的幀還是重新發(fā)送的幀,因此發(fā)送方要為每一個(gè)幀加一個(gè)序號(hào)。
    • 由于停等協(xié)議規(guī)定只有一幀完全發(fā)送成功后才能發(fā)送新的幀,因而只用一比特來(lái)編號(hào)就夠了。

    (1)為什么要有停止-等待協(xié)議?

    (2)研究停止等待協(xié)議的前提

    • 雖然現(xiàn)在常用全雙工通信方式,但是為了討論方便,我們僅考慮一方發(fā)送數(shù)據(jù)(發(fā)送方),一方接收數(shù)據(jù)。

    (3)停止-等待協(xié)議有幾種應(yīng)用情況?

    • 兩種:無(wú)差錯(cuò)和有差錯(cuò)
    1?? 無(wú)差錯(cuò)情況

    2?? 有差錯(cuò)情況
    ① 數(shù)據(jù)幀丟失或檢測(cè)到幀出錯(cuò)

    ② ACK確認(rèn)幀丟失

    ② ACK確認(rèn)幀遲到超時(shí)

    (4)停止等待協(xié)議性能分析

    • 關(guān)于信道利用率可參考我之前的:https://blog.csdn.net/weixin_43914604/article/details/104541219
    • 發(fā)送方從開(kāi)始發(fā)送數(shù)據(jù)到收到第一個(gè)確認(rèn)幀ACK為止,這段時(shí)間稱(chēng)為一個(gè)發(fā)送周期
    • 信道利用率=發(fā)送時(shí)間/發(fā)送周期
    • 由于停等協(xié)議要為每一個(gè)幀進(jìn)行確認(rèn)后才繼續(xù)發(fā)送下一幀,大大降低了信道利用率,因此又提出了后退n幀協(xié)議(GBN)和選擇重傳協(xié)議(SR)。

    6.多幀滑動(dòng)窗口與后退N幀協(xié)議(GBN)

    • 后退n協(xié)議中,發(fā)送方在發(fā)完一個(gè)數(shù)據(jù)幀后,不停下來(lái)等待應(yīng)答幀,而是連續(xù)發(fā)送若干個(gè)數(shù)據(jù)幀,即使在連續(xù)發(fā)送過(guò)程中收到了接收方發(fā)來(lái)的應(yīng)答幀,也可以繼續(xù)發(fā)送。且發(fā)送方在每發(fā)送完一個(gè)數(shù)據(jù)幀時(shí)都要設(shè)置超時(shí)定時(shí)器。只要在所設(shè)置的超時(shí)時(shí)間內(nèi)仍未收到確認(rèn)幀,就要重發(fā)相應(yīng)的數(shù)據(jù)幀。
    • 如:當(dāng)發(fā)送方發(fā)送了N個(gè)幀后,若發(fā)現(xiàn)該N幀的前一個(gè)幀在計(jì)時(shí)器超時(shí)后仍未返回其確認(rèn)信息,則該幀被判為出錯(cuò)或丟失,此時(shí)發(fā)送方就不得不重新發(fā)送出錯(cuò)幀及其后的N幀。
    • 從這里不難看出,后退n協(xié)議一方面因連續(xù)發(fā)送數(shù)據(jù)幀而提高了效率,但另一方面,在重傳時(shí)又必須把原來(lái)已正確傳送過(guò)的數(shù)據(jù)幀進(jìn)行重傳(僅因這些數(shù)據(jù)幀之前有一個(gè)數(shù)據(jù)幀出了錯(cuò)),這種做法又使傳送效率降低。
    • 由此可見(jiàn),若傳輸信道的傳輸質(zhì)量很差因而誤碼率較大時(shí),連續(xù)測(cè)協(xié)議不一定優(yōu)于停止等待協(xié)議。此協(xié)議中的發(fā)送窗口的大小為k,接收窗口仍是1。

    (1)后退N幀協(xié)議(GBN)的滑動(dòng)窗口

    (2)GBN發(fā)送方響應(yīng)的三件事

    1?? 上層的調(diào)用
    • 上層要發(fā)送數(shù)據(jù)時(shí),發(fā)送方先檢查發(fā)送窗口是否已滿,如果未滿,則產(chǎn)生一個(gè)幀并將其發(fā)送;如果窗口己滿,發(fā)送方只需將數(shù)據(jù)返回給上層,暗示上層窗口已滿。上層等一 會(huì)再發(fā)送。 ( 實(shí)際實(shí)現(xiàn)中,發(fā)送方可以緩存這些數(shù)據(jù),窗口不滿時(shí)再發(fā)送幀)。
    • 配合下圖加深理解
    2?? 收到一個(gè)ACK
    • GBN協(xié)議中,對(duì)n號(hào)幀的確認(rèn)采用·累積確認(rèn)·的方式,標(biāo)明接收方已經(jīng)收到n號(hào)幀和它之前的全部幀。
    3?? 超時(shí)事件
    • 協(xié)議的名字為后退N幀/回退N幀,來(lái)源于出現(xiàn)丟失和時(shí)延過(guò)長(zhǎng)幀時(shí)發(fā)送方的行為。
    • 就像在停等協(xié)議中一樣,定時(shí)器將再次用于恢復(fù)數(shù)據(jù)幀或確認(rèn)幀的丟失。
    • 如果出現(xiàn)超時(shí),發(fā)送方重傳所有已發(fā)送但未被確認(rèn)的幀。

    (3)GBN接受方要做的事

    (4)一張圖了解GBN發(fā)送方和接受方之間的傳輸過(guò)程

    (5)GBN滑動(dòng)窗口的限制

    (6)GBN重點(diǎn)知識(shí)

    • 來(lái)道題目熟悉一下知識(shí)

    • 因?yàn)榻邮斩丝梢岳鄯e確認(rèn),所以只要看最大的確認(rèn)幀就行,所以接下來(lái)發(fā)送方要重發(fā)的幀數(shù)為4

    (7)GBN性能分析

    7.多幀滑動(dòng)窗口與選擇重傳協(xié)議(SR)

    • 在后退n協(xié)議中,接收方若發(fā)現(xiàn)錯(cuò)誤幀就不再接收后續(xù)的幀,即使是正確到達(dá)的幀,這顯然是一種浪費(fèi)。由此誕生了SR(SELECTICE REPEAT)。
    • SR工作原理:當(dāng)接收方發(fā)現(xiàn)某幀出錯(cuò)后,其后繼續(xù)送來(lái)的正確的幀雖然不能立即遞交給接收方的高層,但接收方仍可收下來(lái),存放在一個(gè)緩沖區(qū)中,同時(shí)要求發(fā)送方重新傳送出錯(cuò)的那一幀。一旦收到重新傳來(lái)的幀后,就可以將已存于緩沖區(qū)中的其余幀一并按正確的順序遞交上一層。
    • 顯然,選擇重發(fā)減少了浪費(fèi),但要求接收方有足夠大的緩沖區(qū)空間。

    (1)SR的滑動(dòng)窗口圖

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

    1?? 上層的調(diào)用
    • 從上層收到數(shù)據(jù)后,SR發(fā)送方檢查下一個(gè)可用于該幀的序號(hào),如果序號(hào)位于發(fā)送窗口內(nèi),則發(fā)送數(shù)據(jù)幀;否則就像GBN一樣,要么將數(shù)據(jù)緩存,要么返回給上層之后再傳輸。
    2?? 收到一個(gè)ACK確認(rèn)幀
    • 如果收到ACK,加入該幀序號(hào)在窗口內(nèi),則SR發(fā)送方將那個(gè)被確認(rèn)的幀標(biāo)記為已接收。如果該幀序號(hào)是窗口的下界(最左邊第-一個(gè)窗口對(duì)應(yīng)的序號(hào)),則窗口向前移動(dòng)到具有最小序號(hào)的未確認(rèn)幀處。如果窗口移動(dòng)了并且有序號(hào)在窗口內(nèi)的未發(fā)送幀,則發(fā)送這些幀。

    • 圖解此過(guò)程

    3?? 超時(shí)處理
    • 每個(gè)幀都有自己的定時(shí)器,一個(gè)超時(shí)事件發(fā)生后只重傳一個(gè)幀。

    (3)SR接受方要做的事

    • SR接收方將確認(rèn)-一個(gè)正確接收的幀而不管其是否按序。失序的幀將被緩存,并返回給發(fā)送方一個(gè)該幀的確認(rèn)幀[收誰(shuí)確認(rèn)誰(shuí)],直到所有幀(即序號(hào)更小的幀)皆被收到為止,這時(shí)才可以將一-批幀按序交付給 上層,然后向前移動(dòng)滑動(dòng)窗口。

    • 圖解此過(guò)程

    (4)一張圖了解SR發(fā)送方和接受方之間的傳輸過(guò)程

    (5)SR滑動(dòng)窗口的大小限制

    (6)SR重點(diǎn)知識(shí)

    • 一道小例題加深理解

    參考:https://www.bilibili.com/video/av70228743?p=25

    總結(jié)

    以上是生活随笔為你收集整理的3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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