連續(xù)ARQ協(xié)議的具體功能
ARQ協(xié)議大家是否紙都它的作用呢?我們通常稱(chēng)其為連續(xù)ARQ協(xié)議。那么它的具體應(yīng)用和概念我們現(xiàn)在來(lái)簡(jiǎn)單地談一談?;赝薾幀(go-back-n)GBN,以及選擇性重傳(selective repeat)ARQ,兩種協(xié)議是滑動(dòng)窗口技術(shù)與請(qǐng)求重發(fā)技術(shù)的結(jié)合,由于窗口尺寸開(kāi)到足夠大時(shí),幀在線路上可以連續(xù)地流動(dòng),因此又稱(chēng)其為連續(xù)ARQ協(xié)議。 連續(xù)重發(fā)請(qǐng)求ARQ方案是指發(fā)送方可以連續(xù)發(fā)送一系列信息幀,即不用等前一幀被確認(rèn)便可繼續(xù)發(fā)送下一幀,效率大大提高。但在這種重發(fā)請(qǐng)求方案中,需要在發(fā)送方設(shè)置一個(gè)較大的緩沖存儲(chǔ)空間(稱(chēng)作重發(fā)表),用以存放若干待確認(rèn)的信息幀。當(dāng)發(fā)送方收到對(duì)某信息幀的確認(rèn)幀后,便可從重發(fā)表中將該信息幀刪除。所以,連續(xù)重發(fā)請(qǐng)求ARQ方案的鏈路傳輸效率大大提高,但相應(yīng)地需要更大的緩沖存儲(chǔ)空間。 在這一協(xié)議中,當(dāng)發(fā)送站點(diǎn)發(fā)送完一個(gè)數(shù)據(jù)幀后,不是停下來(lái)等待應(yīng)答幀,而是可以連續(xù)再發(fā)送若干個(gè)數(shù)據(jù)幀。如果在此過(guò)程中又收到了接收端發(fā)來(lái)的應(yīng)答幀,那么還可以接著發(fā)送數(shù)據(jù)幀。由于減少了等待時(shí)間,整個(gè)通信的吞吐量就提高了。
連續(xù)ARQ協(xié)議的主要功能可以歸結(jié)為以下兩點(diǎn):
1.在不可靠的鏈路上實(shí)現(xiàn)可靠交付。
這點(diǎn)可從用下面的圖來(lái)說(shuō)明。
不可靠的鏈路上實(shí)現(xiàn)可靠交付
因?yàn)槌鲥e(cuò)的幀都被CRC檢驗(yàn)器悄悄地丟棄了,因此接收端收下的幀都是無(wú)傳輸差錯(cuò)的幀。數(shù)據(jù)鏈路層協(xié)議還保證了收到的幀的順序和發(fā)送端發(fā)送的順序一致,因?yàn)樾蛱?hào)不對(duì)的幀都不接受。因此,數(shù)據(jù)鏈路層的連續(xù)ARQ協(xié)議就在不可靠的鏈路上實(shí)現(xiàn)了可靠交付,即發(fā)送端發(fā)送什么,接收端就收到什么。所有的重傳對(duì)上面都是透明的。
總之,可靠交付就是:無(wú)差錯(cuò)、無(wú)丟失、無(wú)重復(fù)、按順序。
2. 支持了流量控制。
在鏈路層流量控制的思想就是:當(dāng)接收端來(lái)不及接收時(shí)(如緩存空間不夠或CPU忙不過(guò)來(lái)),就可以通過(guò)暫時(shí)不發(fā)送確認(rèn)幀來(lái)降低發(fā)送端發(fā)送數(shù)據(jù)幀的速率。
關(guān)于連續(xù)ARQ協(xié)議特別要注意的地方就是對(duì)出錯(cuò)幀和不按序到達(dá)的幀的處理。
對(duì)出錯(cuò)幀的處理:
CRC檢驗(yàn)器自動(dòng)將其丟棄,協(xié)議沒(méi)有其他動(dòng)作。但為了不白白浪費(fèi)時(shí)間,可以規(guī)定,如果一個(gè)幀重傳多少次都一直出錯(cuò),那么就不要再繼續(xù)重傳下去,而是報(bào)告上層軟件,指出通信線路不可用。
對(duì)不按序到達(dá)的幀的處理(這個(gè)幀并無(wú)傳輸差錯(cuò)):
如果接收端沒(méi)有數(shù)據(jù)幀要發(fā)送,接收端丟棄這個(gè)幀,同時(shí)向發(fā)送端重復(fù)發(fā)送已經(jīng)發(fā)送過(guò)的***一個(gè)確認(rèn)幀。
如果接收端有數(shù)據(jù)幀要發(fā)送,接收端可以在下面要發(fā)送的自己的數(shù)據(jù)幀中,把確認(rèn)信息捎帶發(fā)送給對(duì)方。這個(gè)確認(rèn)信息就是期望收到對(duì)方的某個(gè)編號(hào)的數(shù)據(jù)幀。
接收端也可以每隔一段時(shí)間,向發(fā)送端重復(fù)發(fā)送已經(jīng)發(fā)送過(guò)的***一個(gè)確認(rèn)幀。