停止等待協議真的百分百的可靠嗎?

時間 2021-10-23 09:21:26

1樓:lele

在《可靠傳輸概述》中簡單了解了什麼是可靠傳輸,這裡來介紹實現可靠傳輸的第一種方法——停止-等待協議。

傳送方給接收方傳送資料分組(DATA),

接收方收到後對其進行差錯檢測,若沒有誤碼,則接收該資料分組,並給傳送方傳送確認分組(ACK)

傳送方收到對傳送的資料分組(DATA)所對應的確認分組(ACK)後,才能傳送下乙個資料分組(DATA),假設這個DATA在傳輸過程中出現了誤碼

接收方收到後對其進行差錯檢測,發現了誤碼,則丟棄該資料分組,並給傳送方傳送否認分組(NAK)

由此可知,傳送方每傳送完乙個資料分組DATA後,就要停止傳送DATA,等待ACK到達之後才能傳送下乙個DATA

如果傳送方傳送的第乙個DATA在傳輸過程中丟失了,又會出現什麼情況?

(對於資料鏈路層,點對點通道而言,不太容易出現這樣的情況,但對多個網路,通過多個路由器,互連到複雜網際網路環境而言,這種情況是會經常出現的)

接收方收不到資料分組,就不會傳送ACK或NAK,如果不採取其他措施,傳送方就會一直處於等待接收方ACK或NAK的狀態

為了解決該問題,可以在傳送方傳送完乙個資料分組時,啟動乙個超時計時器,若到了超時計時器所設定的重傳時間,而傳送方仍收不到接收方的任何ACK或者NAK,則重傳原來的DATA,這就是超時重傳

一般可將超時重傳時間選為略大於「從傳送方到接收方的平均往返時間」

傳送方超時重傳DATA後,接收方給傳送方傳送ACK,接收方收到ACK後,給傳送方傳送下乙個DATA,接收方給傳送方回覆ACK

傳送方傳送的DATA可能丟失,那麼接收方傳送的ACK也可能丟失

假設傳送方傳送了DATA,接收方正確接收該分組後,給傳送方傳送ACK,但該ACK在傳輸過程中丟失了,這必然導致傳送方對之前傳送的DATA超時重傳,假設這個超時重傳的DATA也正確到達了接收方,那麼接收方該如何判斷,該DATA是否為重複的DATA呢?

為了避免分組重複這種傳輸錯誤,必須給每個分組帶上序號

對於停止-等待協議,由於每傳送乙個DATA就停止等待,只要保證每傳送乙個新的DATA,其傳送序號與上次傳送的DATA序號不同就可以了,因此,用乙個位元來編號就可以了(0或1)

例如,這個給DATA新增1個位元的序號,根據DATA的序號,接收方就能判斷,接收到的分組是否為重複的。

接收方丟棄重複的DATA,並給傳送方傳送該DATA的ACK,一面傳送方再對DATA的超時重傳。當接收到ACK,傳送方就可以傳送下乙個DATA了,接收方返回ACK

既然DATA需要編號,那麼ACK是否也要編號呢?

傳送方給接收方傳送DATA0,接收方正確接收後返回ACK,由於某些原因,ACK有所延誤,導致傳送方重傳DATA0,而後傳送方收到延誤的ACK(對應DATA0),於是傳送方傳送DATA1,接收方接收到DATA0後,丟棄後面的重複分組DATA0,並針對該DATA0傳送ACK,以免傳送方再次超時重傳該DATA0。

這裡存在乙個對DATA0的重複確認ACK,但是傳送方又該如何知道呢?如果不採取措施,傳送方可能認為這是對DATA1的確認

如果給ACK編號,如果收到重複的ACK,就可以忽略,當接收到ACK1,就可以傳送下乙個DATA。

對於資料鏈路層點對點通道,往返時間比較固定,不會出現確認遲到的情況。如果只在資料鏈路層實現停止-等待協議,可以不用給ACK編號。

接收端檢測資料分組有誤碼時,將其丟棄並等待傳送方的超時重傳,但對於誤位元速率較高的點對點鏈路,為使傳送方盡早重傳,也可以給傳送方傳送NAK分組

為了讓接收方能夠判斷所受到的資料分組是否是重複的,需要給資料分組編號,由於停止-等待協議的停等特性,只需要1位元編號就可以了,即編號0或1

為了讓傳送方能夠判斷受到的ACK分組是否是重複的,需要給ACK分組編號,所用位元數量與資料分組所用位元數量一樣,資料鏈路層一般不會出現ACK分組遲到的情況,因此在資料鏈路層實現該協議可以不用給ACK分組編號

超時計時器設定的重傳時間應仔細選擇,一般可以將重傳時間選為略大於「從傳送方到接收方的平均往返時間」

假設收發雙發之間是一條直通通道,傳送方傳送完乙個資料分組後就停止傳送,並等待接收方對該分組的確認,接收到確認分組後,可以傳送下乙個資料分組

:傳送資料分組的時延(傳送時延)

RTT:收發雙發之間的往返時間

:傳送確認分組的時延

這裡略略了傳送方對確認分組的處理時延,忽略了接收方對資料分組的處理時延

當往返時延RTT遠大於資料幀傳送時延時(如衛星鏈路),通道利用率非常低

若出現重傳,則對於傳送有用的資料資訊來說,通道利用率還要降低

為了克服停止-等待協議通道利用率很低的缺點,就產生了另外兩個協議:後退N幀協議GBN和選擇重傳協議SR

2樓:朱寧

你先看看tcp的協議,讀懂tcp結構。不會出現你說的那個情況。前邊的得不到確認回執,後邊的不會發出同樣的,不是01交替這麼簡單。

如下圖這樣和打桌球一樣,不斷加1。還有你的乙個習慣不好,一般畫bit都是橫著畫每32bit一行,請參考RFC。

來自維基百科

三花貓百分百都是母貓嗎?

Jin 三花貓是中國田園貓中特有的具三種毛色而著稱的。絕大多數三花貓都是母貓,或者說99.9 或更多比例是母貓,只要有萬分之零點一或更小比例的在遺傳程序中出現基困突變而出現公貓,就不能絕對地說100 的都是母貓,三花公貓應該是鳳毛麟角,少之又少。 蘇蘇的舔狗 不是百分百,但是能見到三花公貓的機率極小...

平安守護百分百怎麼樣?價效比高嗎?

黃老師 在其平安系列產品價效比還可以,比安鑫保,福滿分之類要好。在這只是在平安一家公司中對比,如果放眼其它公司,這個產品就不行了。無論是返還還是保障,還是小孩買都不算很好 黃老師 X安守護百分百,這款打幾分? 馬鵬 你買我推薦,我買我真買!守護百分百具體應該是在今年三月份推出的,開始是入司一年內的新...

工作上有可能讓領導百分百滿意嗎?

橘子姑娘 有可能!1 不要遇到個不靠譜的領導,就對所有的領導都失望了。2 好的領導一般是把握整個部門戰略方向的,只要大的方向沒錯,聰明的領導是不會苛責下屬的。3 也有可能是你之前做過什麼事,得罪了領導讓他看你不順眼,心裡積怨,後來就看你做什麼都不對,就想指責一下才感覺比較舒服。 老周online 懟...