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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络数据链路层 --- 选择重传协议(SR)

發布時間:2024/7/23 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络数据链路层 --- 选择重传协议(SR) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

GBN協議的弊端

累計確認,從而導致某一幀錯誤后會批量重傳。

可行的解決方案

可以只重傳出錯的幀,設置單個確認,同時加大接收窗口,設置接收緩存,緩存亂序到達的幀。這也就是選擇重傳協議SR。

SR中的滑動窗口

如圖所示為SR中的發送窗口,假設此時3的確認幀已經收到:

可分為以下部分:

發送完被確認的:01

發送完等待確認的:24

目前可發送:5

不可發送的:其余的

再看接收方(假設此時5號幀沒有收到):

希望收到還未收到:5號幀

收到且確認的:6號幀

等待接收的:70

SR發送方必須響應的事件

上層的調用

從上層收到數據后,SR發送方檢查下一個可用于該幀的序號,如果序號位于發送窗口內,則發送數據幀;否則就像GBN一樣,要么將數據緩存,要么返回給上層,之后再傳輸。

收到ACK

如果收到ACK,假如該幀序號在窗口內,則SR發送方將那個被確認的幀標記為已接收。如果該幀序號是窗口的下界(最左邊第一個窗口對應的序號),則窗口向前移動到具有最小序號的未確認幀處。如果窗口移動了并且有序號在窗口內的未發送幀,則發送這些幀。

超時事件

每個幀都有自己的定時器,一個超時事件發生后只重傳一個幀。

SR接收方要做的事

對于窗口內的幀,無條件接收

SR接收方將確認一個正確接收的幀而不管其是否按序。失序的幀將被緩存,并返回給發送方一個該幀的確認幀(收到誰確認誰),直到所有幀(即序號更小的幀)皆被收到為止,這時才可以將一批幀按序交付給上層,然后向前移動滑動窗口。

如果收到了窗口下界之前的幀,就返回一個ACK。其他情況,就忽略該幀。

運行中的SR

假設發送窗口和接收窗口都為4,發送方發送0幀,接收方收到0幀,并回復0幀確認,由于0幀是接收窗口下界,于是移動窗口使得窗口下界為第一個未被接收的幀(1號幀),同時把新加入幀(4號幀)的狀態置為可接收狀態:

發送方發送1幀,接收方收到1幀,并回復1幀確認,由于1幀是接收窗口下界,于是移動窗口使得窗口下界為第一個未被接收的幀(2號幀),同時把新加入幀(5號幀)的狀態置為可接收狀態:

發送方發送2幀,但是2幀丟失,接收方未收到2幀:

發送方發送3幀,接收方收到3幀,緩存三幀,發送ACK3:

發送方收到ACK0,由于窗口下限被確認,所以窗口右移一個,發送4幀,接收方收到4幀,緩存,發送ACK4:

發送方收到ACK1,由于窗口下界被確認,所以窗口右移1個,發送5幀,接收方接收5幀,緩存,發送ACK5:

發送方2幀超時未收到2幀確認,重新傳2幀,這次接收方收到了,2-5幀交付(發送給上層網絡層),發送ACK2:

發送方收到ACK3,但是無幀可發,等待,一直到ACK2到達,然后下界移至6.

滑動窗口長度

發送窗口最好等于接收窗口

大了會溢出,小了沒意義

存在以下公式

,其中,分別是發送窗口和接收窗口大小,n是幀號的比特位數。

SR協議重點總結

對數據幀逐一確認,收一個確認一個

只重傳出錯幀

接收方有緩存

總結

以上是生活随笔為你收集整理的计算机网络数据链路层 --- 选择重传协议(SR)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。