上海交通大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)翁惠玉_第1頁(yè)
上海交通大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)翁惠玉_第2頁(yè)
上海交通大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)翁惠玉_第3頁(yè)
上海交通大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)翁惠玉_第4頁(yè)
上海交通大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)翁惠玉_第5頁(yè)
已閱讀5頁(yè),還剩168頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章數(shù)據(jù)鏈路層定義和功能數(shù)據(jù)幀的組成可靠性傳輸數(shù)據(jù)鏈路層示例為網(wǎng)絡(luò)層提供一個(gè)較好的服務(wù)接口定義一個(gè)合適的傳輸差錯(cuò)率對(duì)傳輸?shù)臄?shù)據(jù)流進(jìn)行管理,以免快速的發(fā)送淹沒(méi)慢速的接收端數(shù)據(jù)鏈路層的定義數(shù)據(jù)鏈路層的上層是網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層將借助于物理層為網(wǎng)絡(luò)層提供服務(wù)數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元(PDU)是幀數(shù)據(jù)鏈路層的功能數(shù)據(jù)鏈路層的任務(wù)是把網(wǎng)絡(luò)層的數(shù)字?jǐn)?shù)據(jù)組合成幀,并加上一定的校驗(yàn)碼后交物理層物理層用不同的信號(hào)表示二進(jìn)制數(shù)據(jù)位,從而把幀用一段連續(xù)的信號(hào)串表示并傳送到目的主機(jī)通過(guò)目的主機(jī)的物理層和數(shù)據(jù)鏈路層送到網(wǎng)絡(luò)層,也就是為源和目的主機(jī)的網(wǎng)絡(luò)層之間提供一條可靠的數(shù)據(jù)鏈路相連、物理鏈路和數(shù)據(jù)鏈路所謂相連,可以理解為物理介質(zhì)的連接,但當(dāng)采用多路復(fù)用技術(shù)時(shí)也可以是信道的連接,其特征為:所傳輸?shù)臄?shù)據(jù)是按序的物理鏈路:一段無(wú)源的點(diǎn)到點(diǎn)的物理連接,中間沒(méi)有任何交換節(jié)點(diǎn)數(shù)據(jù)鏈路:包括一條物理連接和為實(shí)現(xiàn)數(shù)據(jù)傳輸而在兩端配置的硬件及其相關(guān)的通信協(xié)議數(shù)據(jù)鏈路層服務(wù)的區(qū)分規(guī)則數(shù)據(jù)鏈路層的服務(wù)是通過(guò)有無(wú)連接、有無(wú)確認(rèn)來(lái)區(qū)分的無(wú)確認(rèn)無(wú)連接的服務(wù)有確認(rèn)無(wú)連接的服務(wù)有確認(rèn)有連接的服務(wù)確認(rèn)和連接確認(rèn):接收方在收到數(shù)據(jù)幀后,必須給發(fā)送方發(fā)回一個(gè)確認(rèn)面向連接:發(fā)送方和接收方在傳輸數(shù)據(jù)之前必須建立一條數(shù)據(jù)鏈路,傳輸結(jié)束后必須釋放該鏈路數(shù)據(jù)鏈路層的服務(wù)無(wú)確認(rèn)無(wú)連接的服務(wù)有確認(rèn)無(wú)連接的服務(wù)有確認(rèn)有連接的服務(wù)無(wú)確認(rèn)面向無(wú)連接的服務(wù)無(wú)確認(rèn)是指接收方在收到數(shù)據(jù)幀后,毋需發(fā)回一個(gè)確認(rèn)無(wú)連接的服務(wù)是指在數(shù)據(jù)傳輸前毋需建立數(shù)據(jù)鏈路物理線路的連接并非意味著提供了有連接的服務(wù)無(wú)確認(rèn)并非不可靠,其可靠性可由上層負(fù)責(zé) 例如:局域網(wǎng)共享信道不需要、也不允許建立連接信道較為理想,數(shù)據(jù)傳輸?shù)恼`碼率很低即使出錯(cuò)或丟失由上層負(fù)責(zé)恢復(fù)數(shù)據(jù)鏈路層的服務(wù)無(wú)確認(rèn)無(wú)連接的服務(wù)有確認(rèn)無(wú)連接的服務(wù)有確認(rèn)有連接的服務(wù)有確認(rèn)面向無(wú)連接的服務(wù)使用前不建立連接,即不建立數(shù)據(jù)鏈路,但每幀傳輸必須得到確認(rèn)這在信號(hào)傳播延時(shí)較大、線路狀態(tài)不一定很可靠的情況下是有效的 例如:無(wú)線通信如建立連接,則信道使用率很低然而,由于數(shù)據(jù)傳輸?shù)恼`碼率相對(duì)較高,所以確認(rèn)是必要的數(shù)據(jù)鏈鏈路層層的服服務(wù)無(wú)確認(rèn)認(rèn)無(wú)連連接的的服務(wù)務(wù)有確認(rèn)認(rèn)無(wú)連連接的的服務(wù)務(wù)有確認(rèn)認(rèn)有連連接的的服務(wù)務(wù)有確認(rèn)認(rèn)的面面向連連接服服務(wù)使用前前先建建立連連接,,即先先建立立數(shù)據(jù)據(jù)鏈路路,并并且每每幀的的傳輸輸必須須得到到確認(rèn)認(rèn)有連接接的服服務(wù)必必須在在使用用前先先建立立連接接(即即建立立數(shù)據(jù)據(jù)鏈路路),,然后后使用用,最最后釋釋放連連接例如::電話話電話是是一種種實(shí)時(shí)時(shí)的應(yīng)應(yīng)用,,如不不是面面向連連接,,則實(shí)實(shí)時(shí)性性難以以得到到保證證電話是是一對(duì)對(duì)一的的、雙雙向的的數(shù)據(jù)據(jù)傳輸輸數(shù)據(jù)的的可靠靠傳輸輸將傳輸輸?shù)男判畔⒔M組合成成幀校驗(yàn)和和重發(fā)發(fā)流量控控制保證直直接相相連的的兩臺(tái)臺(tái)主機(jī)機(jī)的可可靠性性傳輸輸?shù)?章數(shù)數(shù)據(jù)鏈鏈路層層定義和和功能能數(shù)據(jù)幀幀的組組成可靠性性傳輸輸數(shù)據(jù)鏈鏈路層層示例例數(shù)據(jù)幀幀的組組成字符計(jì)計(jì)數(shù)法法帶字符符填充充的首首尾界界符法法帶位填填充的的首尾尾標(biāo)志志法物理層層編碼碼違例例法幀的組組成必必須保保證能能識(shí)別別一個(gè)個(gè)完整整的幀幀,并并保證證一旦旦出現(xiàn)現(xiàn)傳輸輸差錯(cuò)錯(cuò)而導(dǎo)導(dǎo)致前前一個(gè)個(gè)幀丟丟失時(shí)時(shí),也也必須須能識(shí)識(shí)別后后一個(gè)個(gè)幀,,即具具有幀再同步步能力力字符計(jì)計(jì)數(shù)法法假設(shè)幀幀的長(zhǎng)長(zhǎng)度用用一個(gè)個(gè)字節(jié)節(jié)表示示,并并作為為幀的的頭部部一旦幀幀長(zhǎng)度度計(jì)數(shù)數(shù)被誤誤讀,,將無(wú)無(wú)法再再同步步,所所以不不能采采用第1幀第2幀幀長(zhǎng)度計(jì)數(shù)錯(cuò)幀長(zhǎng)度計(jì)數(shù)第1幀第4幀第3幀第2幀5123456789801234568789012351234767898012345687890123TnbmP188Fig.3-4字字符符計(jì)數(shù)數(shù)成幀幀法數(shù)據(jù)幀幀的組組成字符計(jì)計(jì)數(shù)法法帶字符符填充充的首首尾界界符法法帶位填填充的的首尾尾標(biāo)志志法物理層層編碼碼違例例法幀的組組成必必須保保證能能識(shí)別別一個(gè)個(gè)完整整的幀幀,并保證證一旦旦出現(xiàn)現(xiàn)傳輸輸差錯(cuò)錯(cuò)而導(dǎo)導(dǎo)致前前一個(gè)個(gè)幀丟丟失時(shí)時(shí),也必必須能能識(shí)別別下一一個(gè)幀幀,即具有有幀再再同步步能力力帶字符符填充充的首首尾界界符法法用特殊殊的字字符作作為幀幀頭和和幀尾尾界符符FLAGHeaderPayloadfieldTrailerFLAG這是一一種面面向字字符的的幀格格式,,所傳傳輸?shù)牡臄?shù)據(jù)據(jù)都是是字符符(ASCII或EBCDIC字字符)),但但幀中中不允允許出出現(xiàn)幀幀界符符標(biāo)志志,在在面向向字符符的串串型通通信中中常使使用這這種格格式(PPP)接收方方一旦旦丟失失了一一個(gè)FLAG,,只要要繼續(xù)續(xù)搜索索下一一個(gè)FLAG,,就可可重新新確定定幀邊邊界,,即具具有再再同步步能力力TnbmP189Fig.3-5(a)由由Flag標(biāo)標(biāo)志的的一個(gè)個(gè)幀面向字字符的的幀格格式面向字字符的的幀格格式不不適宜宜傳輸輸數(shù)據(jù)據(jù)中包包含二二進(jìn)制制數(shù)的的幀,,因?yàn)闉樵诎M(jìn)制制數(shù)的的幀中中很可可能出出現(xiàn)與與FLAG相同同的bit序列列(通通常FLAG用用ASCII字字符7EH定義義)一種方方法是是在二二進(jìn)制制數(shù)中中偶然然出現(xiàn)現(xiàn)的FLAG前前再插插入一一個(gè)ESC((ASCII字字符1BH),,這種種方法法稱為為字符符填充充法41337E5C4B0C41331B5C4B0C41331B

7E5C4B0C41331B

1B5C4B0C41331B

7E5C4B0C41331B1B5C4B0C41331B

1B1B

7E5C4B0C41331B

1B1B1B5C4B0C數(shù)據(jù)幀幀的組組成字符計(jì)計(jì)數(shù)法法帶字符符填充充的首首尾界界符法法帶位填填充的的首尾尾標(biāo)志志法物理層層編碼碼違例例法幀的組組成必必須保保證能能識(shí)別別一個(gè)個(gè)完整整的幀幀,并并保證證一旦旦出現(xiàn)現(xiàn)傳輸輸差錯(cuò)錯(cuò)而導(dǎo)導(dǎo)致前前一個(gè)個(gè)幀丟丟失時(shí)時(shí),也也必須須能識(shí)識(shí)別下下一個(gè)個(gè)幀,,即具具有幀幀再同同步能能力帶位填充的的首尾標(biāo)志志法在面向二進(jìn)進(jìn)制位的同同步串行通通信中常使使用帶位填充的的首尾標(biāo)志志格式,如HDLC這是一種面面向二進(jìn)制制位的幀格格式,把所所有需傳輸輸?shù)臄?shù)據(jù)((不論是字字符或表示示一個(gè)浮點(diǎn)點(diǎn)數(shù)的二進(jìn)進(jìn)制位串,,還是一個(gè)個(gè)MP3的的文件)一一字排開,,并以特殊殊的位模式式01111110作為幀標(biāo)標(biāo)志,即一一個(gè)幀的開開始(同時(shí)時(shí)標(biāo)志前一一個(gè)幀的結(jié)結(jié)束)如果由于干干擾,一個(gè)個(gè)幀標(biāo)志沒(méi)沒(méi)有被正確確接收,則則繼續(xù)掃描描接收串,,一旦掃描描到01111110,即新新的一幀從從此開始,,即具有再再同步能力力即使字符也也并非都是是8位的,,東方文字字是16位位,UNICODE是16位位面向bit的幀格式式當(dāng)幀中出現(xiàn)現(xiàn)一個(gè)與幀幀標(biāo)志相同同的位串01111110,,則在連續(xù)續(xù)5個(gè)1后后自動(dòng)插入入一個(gè)0,,即變成01111101,,接收方將將自動(dòng)刪除除第5個(gè)個(gè)1后的0這稱為位插插入法,也也稱為透明明傳輸011011111111111111110010011011111011111011111010010011011111111111111110010TnbmP190Fig.3-6(a)(b)(c)位插插入法示例例數(shù)據(jù)幀的組組成字符計(jì)數(shù)法法帶字符填充充的首尾界界符法帶位填充的的首尾標(biāo)志志法物理層編碼碼違例法幀的組成必必須保證能能識(shí)別一個(gè)個(gè)完整的幀幀,并保證證一旦出現(xiàn)現(xiàn)傳輸差錯(cuò)錯(cuò)而導(dǎo)致前前一個(gè)幀丟丟失時(shí),也也必須能識(shí)識(shí)別下一個(gè)個(gè)幀,即具具有幀再同同步能力物理層編碼碼違例法在曼切斯特特編碼中,,連續(xù)高電電平或連續(xù)續(xù)低電平可可用作幀界界符采用冗余編編碼技術(shù),,如曼切斯斯特編碼,,即對(duì)連續(xù)續(xù)兩個(gè)信號(hào)號(hào)進(jìn)行采樣樣,可得到到一個(gè)二進(jìn)進(jìn)制位數(shù)據(jù)0:低低-高電平平對(duì)數(shù)據(jù)1:高高-低電平平對(duì)高-高電平對(duì)對(duì)和低-低低電平對(duì)沒(méi)沒(méi)有使用,,如在二進(jìn)進(jìn)制編碼中中出現(xiàn)則稱稱為編碼違違例,但這這兩種違例例編碼正好好可用作幀幀界符,在在令牌環(huán)網(wǎng)網(wǎng)中使用編編碼違例格格式第3章數(shù)據(jù)鏈鏈路層定義和功能能數(shù)據(jù)幀的組組成可靠性傳輸輸數(shù)據(jù)鏈路層層示例可靠性傳輸輸差錯(cuò)控制::校驗(yàn)、重重發(fā)和序號(hào)號(hào)避免幀錯(cuò)誤誤的保證::幀的校驗(yàn)驗(yàn)避免幀丟失失的保證::超時(shí)和重重發(fā)避免幀重復(fù)復(fù)的保證::幀有序號(hào)號(hào)流量控制::窗口協(xié)議議發(fā)送方和接接收方之間間傳輸速率率的協(xié)調(diào)協(xié)議描述和和驗(yàn)證差錯(cuò)控制確認(rèn)數(shù)據(jù)幀丟失失重復(fù)幀如何保證數(shù)數(shù)據(jù)幀的正正常傳輸,,將通過(guò)三三種手段處處理三種可可能出現(xiàn)的的情況::確認(rèn)接收方在收收到了正確確的幀后向向發(fā)送方發(fā)發(fā)肯定性確確認(rèn);如收收到的幀有有問(wèn)題,則則發(fā)否定性性確認(rèn),此此時(shí)發(fā)送方方將重發(fā)此此幀確認(rèn)的前提提是必須經(jīng)經(jīng)過(guò)差錯(cuò)檢檢測(cè)差錯(cuò)檢測(cè)和和校正差錯(cuò)的產(chǎn)生生主要是在在傳輸時(shí),,數(shù)據(jù)中的的一位或幾幾位因噪聲聲干擾而出出錯(cuò)噪聲分兩種種:信道所固有有的、持續(xù)續(xù)存在的熱熱噪聲外界突發(fā)原原因而造成成的隨機(jī)的的沖擊噪聲聲通常接收方方應(yīng)能檢錯(cuò)錯(cuò),甚至糾糾錯(cuò)糾錯(cuò)碼是除除m個(gè)數(shù)據(jù)據(jù)位外增加加r個(gè)冗余余位作為糾糾錯(cuò)位,傳傳輸?shù)目傞L(zhǎng)長(zhǎng)度為n=m+r糾錯(cuò)碼和檢檢錯(cuò)碼糾錯(cuò)碼:海明(Hamming)碼碼檢錯(cuò)碼:校驗(yàn)和(CheckSum)塊校驗(yàn)碼((BlockCheckCode)循環(huán)冗余檢檢錯(cuò)碼CRC(CyclicRedundancyCheck))海明(Hamming)糾錯(cuò)碼m個(gè)數(shù)據(jù)位位外加r個(gè)個(gè)糾錯(cuò)位位,在2i(i=0,1,2,3…)的的位置放放的是糾錯(cuò)錯(cuò)位,m個(gè)個(gè)數(shù)據(jù)位的的次序不變變,如字符符m的7位位ASCII碼為1101101,要要加上4位位糾錯(cuò)碼0011((偶校驗(yàn))),共11個(gè)bit1110987654321A7A6A5P4A4A3A2P3A1P2P111001100111信息位影響響的糾錯(cuò)位位一個(gè)信息位位影響多個(gè)個(gè)糾錯(cuò)位信息位信息組位組位展開影響的糾錯(cuò)位A711=8+2+1對(duì)P4、P2、P1有影響A610=8+2對(duì)P4、P2有影響A59=8+1對(duì)P4、P1有影響A47=4+2+1對(duì)P3、P2、P1有影響A36=4+2對(duì)P3、P2有影響A25=4+1對(duì)P3、P1有影響A13=2+1對(duì)P2、P1有影響糾錯(cuò)位的取取值一個(gè)糾錯(cuò)位位由多個(gè)信信息異或,,然后取偶偶/奇校驗(yàn)驗(yàn)糾錯(cuò)位糾錯(cuò)位的取值(再取偶/奇校驗(yàn))P4=A7A6A5P3=A4A3A2P2=A7A6A4A3A1P1=A7A5A4A2A1海明碼糾錯(cuò)錯(cuò)位取值舉舉例采用偶校驗(yàn)驗(yàn)1110987654321A7A6A5P4A4A3A2P3A1P2P111001100111檢錯(cuò)位糾錯(cuò)位的取值(再取偶校驗(yàn))P4=A7A6A5=0P3=A4A3A2=0P2=A7A6A4A3A1=1P1=A7A5A4A2A1=1接收方的校校驗(yàn)校驗(yàn)位校驗(yàn)位計(jì)算表達(dá)式S4=A7A6A5P4S3=A4A3A2P3S2=A7A6A4A3A1P2S1=A7A5A4A2A1P1計(jì)算結(jié)果S4S3S2S1為0000意味味著接收正正確計(jì)算結(jié)果S4S3S2S1為0101意味味著第5位位出錯(cuò)接收方的校校驗(yàn)舉例(無(wú)錯(cuò))字符m采用用海明碼的的發(fā)送序列列為11001100111如接收到到的序列為為11001100111校驗(yàn)位校驗(yàn)位計(jì)算表達(dá)式的值S4=A7A6A5P4=1100=0S3=A4A3A2P3=1100=0S2=A7A6A4A3A1P2=111111=0S1=A7A5A4A2A1P1=101011=0S4S3S2S1=0000意味校驗(yàn)正確1110987654321A7A6A5P4A4A3A2P3A1P2P111001100111接收方的校校驗(yàn)舉例(有錯(cuò))字符m采用用海明碼的的發(fā)送序列列為11001100111如接收到到的序列為為110011101111110987654321A7A6A5P4A4A3A2P3A1P2P111001110111S4S3S2S1=0101意味第5位出錯(cuò)校驗(yàn)位校驗(yàn)位計(jì)算表達(dá)式的值S4=A7A6A5P4=1100=0S3=A4A3A2P3=1110=1S2=A7A6A4A3A1P2=111111=0S1=A7A5A4A2A1P1=101111=1糾錯(cuò)碼和檢檢錯(cuò)碼糾錯(cuò)碼:海明(Hamming)碼碼檢錯(cuò)碼:校驗(yàn)和(CheckSum)塊校驗(yàn)碼((BlockCheckCode)循環(huán)冗余檢檢錯(cuò)碼CRC(CyclicRedundancyCheck))校驗(yàn)和算法簡(jiǎn)單、、實(shí)現(xiàn)容易易,但檢錯(cuò)錯(cuò)強(qiáng)度較弱弱以16位為為例:4865H+6C6CH+6F20H+776FH+726CH+642EH+進(jìn)位=71FCHHelloworld.48656C6C6F20776F726C642E71FC將發(fā)送的數(shù)數(shù)據(jù)看成是是二進(jìn)制整整數(shù)序列,,并劃分成成一段段規(guī)規(guī)定的長(zhǎng)度度(如8位位、16位位、32位位等),計(jì)計(jì)算它們的的和,如計(jì)計(jì)算和時(shí)有有進(jìn)位,則則將進(jìn)位加加到最后的的校驗(yàn)和中中,并將校校驗(yàn)和與數(shù)數(shù)據(jù)一起發(fā)發(fā)送;在接接收端,重重新計(jì)算校校驗(yàn)和,并并與接收到到的原校驗(yàn)驗(yàn)和比較,,如要傳輸輸“Helloworld.””糾錯(cuò)碼和檢檢錯(cuò)碼糾錯(cuò)碼:海明(Hamming)碼碼檢錯(cuò)碼:校驗(yàn)和(CheckSum)塊校驗(yàn)碼((BlockCheckCode)循環(huán)冗余檢檢錯(cuò)碼CRC(CyclicRedundancyCheck))塊校驗(yàn)碼塊校驗(yàn)碼BCC(BlockCheckCode))簡(jiǎn)單常用用,但檢錯(cuò)錯(cuò)的強(qiáng)度較較弱,如在在同一列上上有偶數(shù)位位錯(cuò),則不不能檢測(cè)如傳輸?shù)臄?shù)數(shù)據(jù)都是ASCII字符(即即面向字符符,這在應(yīng)應(yīng)用中很多多),每個(gè)個(gè)字符進(jìn)行行奇偶校驗(yàn)驗(yàn),然后把把所有的字字符(連同同奇偶位))進(jìn)行異或或運(yùn)算,運(yùn)運(yùn)算結(jié)果即即為其塊校校驗(yàn)碼,通通常發(fā)送端端在發(fā)送完完數(shù)據(jù)區(qū)的的結(jié)束標(biāo)志志后發(fā)送BCC,接接收端一邊邊接收數(shù)據(jù)據(jù)一邊計(jì)算算BCC,,最后與接接收到的BCC比較較,以確認(rèn)認(rèn)所接收到到的數(shù)據(jù)正正確與否如“Helloworld.”,采用用偶校驗(yàn),,校驗(yàn)后的的字符序列列為:48H65H6CH6CH6FHA0H77H6FH72H6CHE4H2EH=2EHHelloworld.48656C6C6FA0776F726CE42E2E糾錯(cuò)碼和檢檢錯(cuò)碼糾錯(cuò)碼:海明(Hamming)碼碼檢錯(cuò)碼:校驗(yàn)和(CheckSum)塊校驗(yàn)碼((BlockCheckCode)循環(huán)冗余檢檢錯(cuò)碼CRC(CyclicRedundancyCheck))循環(huán)冗余檢檢錯(cuò)碼CRC任何一個(gè)k位的幀都都可看成為為一個(gè)k-1次的多多項(xiàng)式M(x)的系系數(shù)列表如:1011001看成是多多項(xiàng)式x6+x4+x3+x0的系數(shù)列表表設(shè)定一個(gè)生生成多項(xiàng)式式G(x),G(x)為r階階,k>r如xrM(x)/G(x)=Q(x)+R(x)/G(x)其其中Q(x)為為商、R(x)為余余數(shù),R(x)即為為M(x)的CRC碼將CRC碼碼接在幀后后一起發(fā)送送,即發(fā)送送數(shù)據(jù)為xrM(x)+R(x)二進(jìn)制運(yùn)算算中,減法法和加法都都做異或運(yùn)運(yùn)算:0+1=1,1+1=0因?yàn)?xrM(x)-R(x))一定能被被G(x)整除,即即余數(shù)為0,則接收收方只要計(jì)計(jì)算CRC,并所得得余數(shù)為0即為正確確CRC碼計(jì)計(jì)算舉例如一幀為1101011011即:M(x)=x9+x8+x6+x4+x3+x+1G(x)=x4+x+1T(x)=x4M(x)=x4(x9+x8+x6+x4+x3+x+1)=x13+x12+x10+x8+x7+x5+x4CRC碼計(jì)計(jì)算舉例(續(xù)1)幀:1101011011除數(shù):10011實(shí)際傳輸幀幀:11000010101001111010110110000100111001110011000010000000010000000010100000010110000010110100110101000000101001001101110000001110余數(shù)11010110111110幀數(shù)據(jù)余數(shù)TnbmP198Fig.3-8CRC碼計(jì)計(jì)算舉例CRC碼計(jì)計(jì)算舉例(續(xù)2)11010110110000/10011=1100001010………1110即11010110110000+1110能被10011整除(注:模2運(yùn)算的加加、減和異異或,其運(yùn)運(yùn)算結(jié)果相相同)發(fā)送方發(fā)送送的是T(x)+R(x)[能被G(x)整整除],如如接收方收收到的是T(x)+R(x)+E(x),除非非E(x)是G(x)的整倍倍數(shù),否則則不能被整整除,即都都能被檢測(cè)測(cè)到已出錯(cuò)錯(cuò)三個(gè)生成多多項(xiàng)式國(guó)際際標(biāo)準(zhǔn)CRC-12:x12+x11+x3+x2+x1+1用于字符長(zhǎng)長(zhǎng)度為6位位CRC-16:x16+x15+x2+1用于字符長(zhǎng)長(zhǎng)度為8位位CRC-CCITT:x16+x12+x5+1用于字符長(zhǎng)長(zhǎng)度為8位位IEEE802::x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1CCITT:ConsultativeCommitteeonInternationalTelegraphyandTelephone國(guó)際際電報(bào)和電電話咨詢委委員會(huì),即即現(xiàn)在的ITU-TITU-T:InternationalTelecommunicationsUnion––TelecommunicationsStandardizationSector國(guó)國(guó)際電電信聯(lián)盟––電信信標(biāo)準(zhǔn)分部部差錯(cuò)控制確認(rèn)數(shù)據(jù)幀丟失失重復(fù)幀如何保證數(shù)數(shù)據(jù)幀的正正常傳輸::通過(guò)三種種手段處理理三種可能能出現(xiàn)的情情況:數(shù)據(jù)幀丟失失通過(guò)發(fā)送方方的重發(fā)定定時(shí)器(超超時(shí))解決決超時(shí)(TimeOut):在在傳輸過(guò)程程中,如果果所發(fā)送的的幀丟失,,接收方根根本沒(méi)有收收到,不可可能發(fā)送確確認(rèn)幀(包包括否定性性確認(rèn)),,當(dāng)然發(fā)送送方也不可可能等待收收到如何信信息,所以以發(fā)送方每每發(fā)送一幀幀,就啟動(dòng)動(dòng)一個(gè)重發(fā)發(fā)定時(shí)器,,在所設(shè)定定的時(shí)間內(nèi)內(nèi),一般都都應(yīng)該收到到確認(rèn),如如收不到確確認(rèn),則在在重發(fā)定時(shí)時(shí)器溢出后后,再重發(fā)發(fā)此幀差錯(cuò)控制確認(rèn)數(shù)據(jù)幀丟失失重復(fù)幀如何保證數(shù)數(shù)據(jù)幀的正正常傳輸::通過(guò)三種種手段處理理三種可能能出現(xiàn)的情情況:重復(fù)幀重發(fā)機(jī)制也也包括當(dāng)接接收方發(fā)送送的確認(rèn)幀幀丟失而導(dǎo)導(dǎo)致發(fā)送方方的重發(fā)定定時(shí)器超時(shí)時(shí)而重發(fā)由于接收方方確認(rèn)幀的的丟失,導(dǎo)導(dǎo)致發(fā)送方方多次發(fā)送送同一幀,,接收方也也將多次收收到同一幀幀,為能識(shí)識(shí)別是否為為相同的幀幀,應(yīng)該在在幀格式中中增加一個(gè)個(gè)幀的編號(hào)號(hào)(序號(hào)))幀的格式基于上述討討論,一個(gè)個(gè)數(shù)據(jù)鏈路路層的幀至至少應(yīng)該包包括下列內(nèi)內(nèi)容:信息校驗(yàn)信息infoCRC確認(rèn)號(hào)Ack_no幀序號(hào)Seq_no幀類型type幀頭可靠性傳輸輸差錯(cuò)控制::校驗(yàn)、重重發(fā)和序號(hào)號(hào)避免幀錯(cuò)誤誤的保證::幀的校驗(yàn)驗(yàn)避免幀丟失失的保證::超時(shí)和重重發(fā)避免幀重復(fù)復(fù)的保證::幀有序號(hào)號(hào)流量控制::窗口協(xié)議議發(fā)送方和接接收方之間間的協(xié)調(diào)協(xié)議描述和和驗(yàn)證流量控制發(fā)送速率和和接收速率率的匹配即即流量控制制如接收方的的處理能力力低于發(fā)送送方,即使使傳輸中沒(méi)沒(méi)有出錯(cuò),,也可能被被“淹沒(méi)沒(méi)”,所以以通常在接接收方的緩緩沖區(qū)到達(dá)達(dá)一定量時(shí)時(shí),應(yīng)及時(shí)時(shí)通知發(fā)送送方,暫停停發(fā)送,等等候通知,,這就是流流量控制機(jī)機(jī)制基本數(shù)據(jù)鏈鏈路協(xié)議滑動(dòng)窗口協(xié)協(xié)議A、B兩臺(tái)臺(tái)主機(jī)要求求可靠的、、面向連接接的通信,,在接收方方的數(shù)據(jù)鏈鏈路層,目目前正運(yùn)行行的是wait_for_event(&event),即等待待某個(gè)事件件發(fā)生基本數(shù)據(jù)鏈鏈路協(xié)議可以這樣理理解:在一一臺(tái)主機(jī)中中,物理層層、數(shù)據(jù)鏈鏈路層、網(wǎng)網(wǎng)絡(luò)層等,,都有各自自的進(jìn)程在在運(yùn)行,并并且假設(shè)::wait_for_event(&event)的參數(shù)數(shù)如event=checksum_err,意即所接接收幀的校校驗(yàn)和錯(cuò),,應(yīng)考慮不不發(fā)送確認(rèn)認(rèn)幀ACK,或發(fā)送送否定性確確認(rèn)幀NAK如event=frame_arrival,即幀幀已到達(dá)并并校驗(yàn)正確確,應(yīng)調(diào)用用from_physical_layer,,從物理層層取得幀,,并檢查幀幀頭的控制制信息,如如一切正常常,則僅把把其中的分分組交網(wǎng)絡(luò)絡(luò)層一系列過(guò)程程和數(shù)據(jù)結(jié)結(jié)構(gòu)的定義義:TnbmP202Fig.3-9如發(fā)生了某某個(gè)事件,,此過(guò)程將將返回參數(shù)數(shù)event,event有兩個(gè)取值值:checksum_err(CRC錯(cuò))frame_arrival(正正確收到))三個(gè)基本數(shù)數(shù)據(jù)鏈路協(xié)協(xié)議(協(xié)議1-3)無(wú)限制的單單工協(xié)議(協(xié)議1))TnbmP205Fig.3-10一種無(wú)限制制的單工協(xié)協(xié)議單工的停––等協(xié)協(xié)議(協(xié)議2))TnbmP207Fig.3-11一個(gè)單工的的停–等等協(xié)議噪聲信道的的單工協(xié)議議(協(xié)議3))TnbmP210Fig.3-12一個(gè)肯定性性確認(rèn)和超超時(shí)重發(fā)協(xié)協(xié)議無(wú)限制的單單工協(xié)議鏈路是理想想的傳輸通通道,所傳傳輸?shù)娜魏魏螖?shù)據(jù)既不不會(huì)出錯(cuò)也也不會(huì)丟失失即:不需校校驗(yàn),也不不可能出現(xiàn)現(xiàn)重發(fā),毋毋需差錯(cuò)控控制不管發(fā)送方方以怎樣的的速率發(fā)送送數(shù)據(jù),接接收方都能能及時(shí)接收收并處理即接收端處處理器的處處理速度無(wú)無(wú)限高,處處理時(shí)間可可忽略不計(jì)計(jì),緩沖區(qū)區(qū)空間無(wú)限限大,毋需需流量控制制TnbmP205Fig.3-10一種無(wú)限制制的單工協(xié)協(xié)議一種理想的的環(huán)境,理理想的協(xié)議議,假定::協(xié)議1:SENDERvoidsender1(void){frames;packetbuffer;while(true){from_network_layer(&buffer);=buffer;to_physical_layer(&s);}}協(xié)議1:RECEIVERvoidreceiver1(void){framer;event_typeevent;while(true){wait_for_event(&event);from_physical_layer(&r);to_network_layer(&);}}三個(gè)基本數(shù)數(shù)據(jù)鏈路協(xié)協(xié)議(協(xié)議1-3)無(wú)限制的單單工協(xié)議(協(xié)議1))TnbmP205Fig.3-10一種無(wú)限制制的單工協(xié)協(xié)議單工的停––等協(xié)協(xié)議(協(xié)議2))TnbmP207Fig.3-11一個(gè)單工的的停–等等協(xié)議噪聲信道的的單工協(xié)議議(協(xié)議3))TnbmP210Fig.3-12一個(gè)肯定性性確認(rèn)和超超時(shí)重發(fā)協(xié)協(xié)議單工的停––等協(xié)協(xié)議鏈路是理想想的傳輸通通道,所傳傳輸?shù)娜魏魏螖?shù)據(jù)既不不會(huì)出錯(cuò)也也不會(huì)丟失失考慮實(shí)際情情況,接收收方不可能能具有足夠夠高的CPU處理能能力來(lái)及時(shí)時(shí)處理所有有的接收幀幀,也不可可能具有永永不溢出的的緩沖區(qū)即:毋需差差錯(cuò)控制,,但必須進(jìn)進(jìn)行流量控控制這里的單工工,其實(shí)是是半雙工,,所謂流量量控制是發(fā)發(fā)送方必須須收到前一一幀的確認(rèn)認(rèn)后才允許許發(fā)送下一一幀,接收收方發(fā)出確確認(rèn),意味味著前一幀幀已接收并并交網(wǎng)絡(luò)層層,準(zhǔn)備接接收下一幀幀TnbmP207Fig.3-11一個(gè)單工的的停–等等協(xié)議協(xié)議1中第第一個(gè)假設(shè)設(shè)保留,第第二個(gè)假設(shè)設(shè)撤消,假假定:協(xié)議2:SENDERvoidsender2(void){frames;packetbuffer;event_typeevent;while(true){from_network_layer(&buffer);=buffer;to_physical_layer(&s);wait_for_event(&event);}}協(xié)議2:RECEIVERvoidreceiver2(void){framer,s;event_typeevent;while(true){wait_for_event(&event);from_physical_layer(&r);to_network_layer(&);to_physical_layer(&s);}}協(xié)議議2說(shuō)說(shuō)明明協(xié)議議2是是一一個(gè)個(gè)半半雙雙工工協(xié)協(xié)議議,,即即發(fā)發(fā)送送方方和和接接收收方方使使用用同同一一信信道道,,但但發(fā)發(fā)送送方方發(fā)發(fā)送送數(shù)數(shù)據(jù)據(jù)幀幀的的過(guò)過(guò)程程和和接接收收方方發(fā)發(fā)送送確確認(rèn)認(rèn)幀幀的的過(guò)過(guò)程程是是嚴(yán)嚴(yán)格格交交替替的的協(xié)議議2中中,,發(fā)發(fā)送送方方發(fā)發(fā)送送的的數(shù)數(shù)據(jù)據(jù)幀幀和和接接收收方方發(fā)發(fā)送送的的確確認(rèn)認(rèn)幀幀采采用用相相同同的的幀幀格格式式,,發(fā)發(fā)送送方方發(fā)發(fā)送送的的數(shù)數(shù)據(jù)據(jù)幀幀中中僅僅包包含含數(shù)數(shù)據(jù)據(jù),,接接收收方方發(fā)發(fā)送送的的確確認(rèn)認(rèn)幀幀數(shù)數(shù)據(jù)據(jù)為為空空,,僅僅為為一一個(gè)個(gè)信信號(hào)號(hào)由于于協(xié)協(xié)議議2定定義義的的是是一一個(gè)個(gè)理理想想的的傳傳輸輸通通道道,,所所以以不不考考慮慮傳傳輸輸差差錯(cuò)錯(cuò)問(wèn)問(wèn)題題三個(gè)個(gè)基基本本數(shù)數(shù)據(jù)據(jù)鏈鏈路路協(xié)協(xié)議議(協(xié)協(xié)議議1-3))無(wú)限限制制的的單單工工協(xié)協(xié)議議(協(xié)協(xié)議議1))TnbmP205Fig.3-10一種種無(wú)無(wú)限限制制的的單單工工協(xié)協(xié)議議單工工的的停停––等等協(xié)協(xié)議議(協(xié)協(xié)議議2))TnbmP207Fig.3-11一個(gè)個(gè)單單工工的的停停––等等協(xié)協(xié)議議噪聲聲信信道道的的單單工工協(xié)協(xié)議議(協(xié)協(xié)議議3))TnbmP210Fig.3-12一個(gè)個(gè)肯肯定定性性確確認(rèn)認(rèn)和和超超時(shí)時(shí)重重發(fā)發(fā)協(xié)協(xié)議議噪聲聲信信道道的的單單工工協(xié)協(xié)議議噪聲聲信信道道的的差差錯(cuò)錯(cuò)控控制制采用用定定時(shí)時(shí)器器實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制簡(jiǎn)單單的的重重發(fā)發(fā)機(jī)機(jī)制制存存在在的的問(wèn)問(wèn)題題較為為實(shí)實(shí)用用的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議噪聲聲信信道道的的差差錯(cuò)錯(cuò)控控制制幀的的數(shù)數(shù)據(jù)據(jù)出出錯(cuò)錯(cuò)::幀數(shù)數(shù)據(jù)據(jù)中中若若干干位位出出錯(cuò)錯(cuò),,通通常常CRC都都能能檢檢測(cè)測(cè)到到幀的的丟丟失失::一旦旦幀幀頭頭出出錯(cuò)錯(cuò),,則則該該幀幀丟丟失失幀的的重重復(fù)復(fù)::如發(fā)發(fā)送送方方有有重重發(fā)發(fā)機(jī)機(jī)制制,,當(dāng)當(dāng)接接收收方方發(fā)發(fā)出出的的ACK丟丟失失時(shí)時(shí),,接接收收方方將將收收到到發(fā)發(fā)送送方方重重發(fā)發(fā)的的重重復(fù)復(fù)幀幀在噪噪聲聲信信道道中中應(yīng)應(yīng)考考慮慮傳傳輸輸有有差差錯(cuò)錯(cuò)的的情情況況,,所所謂謂差差錯(cuò)錯(cuò)::噪聲聲信信道道的的單單工工協(xié)協(xié)議議噪聲聲信信道道的的差差錯(cuò)錯(cuò)控控制制采用用定定時(shí)時(shí)器器實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制簡(jiǎn)單單的的重重發(fā)發(fā)機(jī)機(jī)制制存存在在的的問(wèn)問(wèn)題題較為為實(shí)實(shí)用用的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議采用用定定時(shí)時(shí)器器實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制如在在協(xié)協(xié)議議2的的基基礎(chǔ)礎(chǔ)上上增增加加一一個(gè)個(gè)重重發(fā)發(fā)定定時(shí)時(shí)器器,,當(dāng)當(dāng)發(fā)發(fā)送送方方發(fā)發(fā)送送完完一一幀幀后后啟啟動(dòng)動(dòng)一一個(gè)個(gè)重重發(fā)發(fā)定定時(shí)時(shí)器器并并等等待待確確認(rèn)認(rèn)無(wú)論論是是由由于于接接收收方方收收到到一一個(gè)個(gè)錯(cuò)錯(cuò)幀幀而而不不發(fā)發(fā)ACK((無(wú)無(wú)否否定定性性確確認(rèn)認(rèn)機(jī)機(jī)制制)),,還還是是由由于于幀幀標(biāo)標(biāo)志志錯(cuò)錯(cuò)而而導(dǎo)導(dǎo)致致幀幀的的丟丟失失,,接接收收方方不不可可能能發(fā)發(fā)送送ACK,,或或者者接接收收方方所所發(fā)發(fā)送送的的ACK丟丟失失,,發(fā)發(fā)送送方方的的重重發(fā)發(fā)定定時(shí)時(shí)器器都都將將超超時(shí)時(shí),,重重發(fā)發(fā)定定時(shí)時(shí)器器一一旦旦超超時(shí)時(shí)則則立立即即重重發(fā)發(fā),,以以實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制噪聲聲信信道道的的單單工工協(xié)協(xié)議議噪聲聲信信道道的的差差錯(cuò)錯(cuò)控控制制采用用定定時(shí)時(shí)器器實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制簡(jiǎn)單單的的重重發(fā)發(fā)機(jī)機(jī)制制存存在在的的問(wèn)問(wèn)題題較為為實(shí)實(shí)用用的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議簡(jiǎn)單單的的重重發(fā)發(fā)機(jī)機(jī)制制存存在在的的問(wèn)問(wèn)題題效率率較較低低如接接收收方方收收到到的的幀幀出出錯(cuò)錯(cuò)或或者者整整個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)幀幀丟丟失失,,則則不不發(fā)發(fā)ACK((無(wú)無(wú)否否定定性性確確認(rèn)認(rèn)機(jī)機(jī)制制)),,發(fā)發(fā)送送方方將將在在重重發(fā)發(fā)定定時(shí)時(shí)器器超超時(shí)時(shí)后后重重發(fā)發(fā),,直直至至正正確確,,然然而而重重發(fā)發(fā)定定時(shí)時(shí)器器的的設(shè)設(shè)定定時(shí)時(shí)間間可可能能是是正正常常ACK返返回回時(shí)時(shí)間間的的2倍倍、、3倍倍和和更更多多,,所所以以效效率率極極低低接收收方方會(huì)會(huì)收收到到重重復(fù)復(fù)幀幀如接接收收方方收收到到了了正正確確的的數(shù)數(shù)據(jù)據(jù)幀幀并并發(fā)發(fā)送送了了ACK,,但但此此ACK丟丟失失,,發(fā)發(fā)送送方方在在重重發(fā)發(fā)定定時(shí)時(shí)器器超超時(shí)時(shí)后后重重發(fā)發(fā)此此幀幀,,這這樣樣,,接接收收方方的的數(shù)數(shù)據(jù)據(jù)鏈鏈路路層層會(huì)收收到到兩兩個(gè)個(gè)完完全全相相同同的的幀幀,,其其網(wǎng)網(wǎng)絡(luò)絡(luò)層層將將收收到到兩兩個(gè)個(gè)完完全全相相同同的的分分組組,,這這是是不不允允許許的的噪聲聲信信道道的的單單工工協(xié)協(xié)議議噪聲聲信信道道的的差差錯(cuò)錯(cuò)控控制制采用用定定時(shí)時(shí)器器實(shí)實(shí)現(xiàn)現(xiàn)差差錯(cuò)錯(cuò)控控制制簡(jiǎn)單單的的重重發(fā)發(fā)機(jī)機(jī)制制存存在在的的問(wèn)問(wèn)題題較為為實(shí)實(shí)用用的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議較為為實(shí)實(shí)用用的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議這里里的的噪噪聲聲信信道道單單工工協(xié)協(xié)議議,,其其實(shí)實(shí)是是噪噪聲聲信信道道半半雙雙工工協(xié)協(xié)議議協(xié)議議3的的幀幀格格式式中中定定義義一一個(gè)個(gè)幀幀序序號(hào)號(hào)字字段段發(fā)送送方方要要記記錄錄下下一一個(gè)個(gè)準(zhǔn)準(zhǔn)備備發(fā)發(fā)送送的的順順序序號(hào)號(hào)接收收方方要要記記錄錄下下一一個(gè)個(gè)期期待待接接收收的的順順序序號(hào)號(hào)由于于是是半半雙雙工工噪噪聲聲信信道道,,發(fā)發(fā)送送和和接接收收過(guò)過(guò)程程將將嚴(yán)嚴(yán)格格交交替替協(xié)議議3只只定定義義了了肯肯定定性性確確認(rèn)認(rèn)幀幀ACK,,而而沒(méi)沒(méi)有有定定義義否否定定性性確確認(rèn)認(rèn)NAK接收收方方收收到到一一個(gè)個(gè)正正確確((CRC正正確確))的的幀幀,,即即便便不不是是所所期期待待的的幀幀((即即重重復(fù)復(fù)幀幀)),,都都必必須須發(fā)發(fā)送送一一個(gè)個(gè)確確認(rèn)認(rèn)幀幀ACK也稱稱為為ARQ協(xié)協(xié)議議::AutomaticRepeatreQuest協(xié)議議3中中幀幀格格式式幀類類型型::有有數(shù)數(shù)據(jù)據(jù)幀幀DATA和和確確認(rèn)認(rèn)幀幀ACK((肯肯定定性性確確認(rèn)認(rèn)))兩兩種種類類型型幀序號(hào)號(hào):僅僅一個(gè)個(gè)bit,,在發(fā)發(fā)送方方的數(shù)數(shù)據(jù)幀幀中是是該幀幀的序序號(hào)0/1,在在接收收方的的確認(rèn)認(rèn)幀中中是接接收方方期待待接收收的下下一幀幀的序序號(hào)1/0協(xié)議3:SENDERvoidsender3(void){next_frame_to_send=0;from_network_layer(&buffer);while(true){=buffer;s.seq=next_frame_to_send;to_physical_layer(&s);start_timer(s.seq);;wait_for_event(&event);if(event==frame_arrival){from_physical_layer(&s);if(s.ack==next_frame_to_send){stop_timer(s.ack);from_network_layer(&buffer);inc(next_frame_to_send);}}}}TnbmP210Fig.3-12一一個(gè)個(gè)肯定定性確確認(rèn)和和超時(shí)時(shí)重發(fā)發(fā)協(xié)議議協(xié)議3:RECEIVERvoidreceiver3(void){frame_expected=0;while(true){wait_for_event(&event);if(event==frame_arrival){from_physical_layer(&r);if(r.seq==frame_expected){to_network_layer(&);inc(frame_expected);}s.ack=1-fram_expected;to_physical_layer(&s);}}}}流量控控制發(fā)送速速率和和接收收速率率的匹匹配即即流量量控制制如接收收方的的處理理能力力低于于發(fā)送送方,,即使使傳輸輸中沒(méi)沒(méi)有出出錯(cuò),,也可可能被被“淹淹沒(méi)沒(méi)”,,所以以通常常在接接收方方的緩緩沖區(qū)區(qū)到達(dá)達(dá)一定定量時(shí)時(shí),應(yīng)應(yīng)及時(shí)時(shí)通知知發(fā)送送方,,暫停停發(fā)送送,等等候通通知,,這就就是流流量控控制機(jī)機(jī)制基本數(shù)數(shù)據(jù)鏈鏈路協(xié)協(xié)議滑動(dòng)窗窗口協(xié)協(xié)議協(xié)議3尚存存的問(wèn)問(wèn)題由于數(shù)數(shù)據(jù)是是單向向傳輸輸?shù)?,,?shù)據(jù)據(jù)傳輸輸和應(yīng)應(yīng)答不不會(huì)同同時(shí)傳傳輸,,因此此可使使用半半雙工工信道道(通通常半半雙工工僅需需單信信道)),但但不能能實(shí)現(xiàn)現(xiàn)同時(shí)雙雙向傳傳輸。。也可可以用用兩根根信道道,但但傳輸輸應(yīng)答答的信信道效效率較較低如發(fā)送送方的的重發(fā)發(fā)定時(shí)時(shí)器設(shè)設(shè)定的的初始始值較較小,,可能能出現(xiàn)現(xiàn)系統(tǒng)統(tǒng)死鎖鎖雙向傳傳輸解解決方方案但在實(shí)實(shí)際情情況下下,一一般需需要的的是雙雙向傳傳輸雙向傳傳輸?shù)牡慕鉀Q決方案案:用四條條信道道:兩兩條數(shù)數(shù)據(jù),,兩條條應(yīng)答答但信道道利用用率很很低用兩條條信道道:一一條A到B,另另一條條B到到A用不同同的幀幀類型型標(biāo)志志區(qū)分分?jǐn)?shù)據(jù)據(jù)幀和和確認(rèn)認(rèn)幀采用捎捎帶確確認(rèn)(piggybacking)進(jìn)進(jìn)一步步提高高信道道效率率滑動(dòng)窗窗口協(xié)協(xié)議收、發(fā)發(fā)使用用兩條條信道道發(fā)送方方可連連續(xù)發(fā)發(fā)送多多幀,,接收收方接接收到到一幀幀后就就從另另一個(gè)個(gè)信道道發(fā)回回一個(gè)個(gè)ACK,,為提提高信信道使使用效效率,,接收收方可可使用用捎帶帶確認(rèn)認(rèn)幀是有有序號(hào)號(hào)的即使過(guò)過(guò)早超超時(shí)而而導(dǎo)致致的重重發(fā)也也可根根據(jù)幀幀的序序號(hào)來(lái)來(lái)避免免幀的的重復(fù)復(fù)滑動(dòng)窗窗口原原理(設(shè)WT=1,,WR=1))發(fā)送方方接收方方TnbmP213Fig.3-13一一個(gè)個(gè)大小小為1、有有3位位序列列號(hào)的的滑動(dòng)動(dòng)窗口口(a)(b)(c)(d)1652437016524370652437016524370116524370165243701652437065243701正發(fā)送0#幀等待0#幀ACK收到ACK正在處理正發(fā)送1#幀三個(gè)滑滑動(dòng)窗窗口協(xié)協(xié)議(協(xié)議議4-6))發(fā)送窗窗口WT=1,,接收收窗口口WR=1TnbmP215Fig.3-14一位滑滑動(dòng)窗窗口協(xié)協(xié)議((協(xié)議議4))發(fā)送窗窗口WT=7,,接收收窗口口WR=1TnbmP220Fig.3-17后退n幀的的滑動(dòng)動(dòng)窗口口協(xié)議議(協(xié)協(xié)議5))發(fā)送窗窗口WT=4,,接收收窗口口WR=4TnbmP224Fig.3-19選擇性性重發(fā)發(fā)滑動(dòng)動(dòng)窗口口協(xié)議議(協(xié)協(xié)議6)一位滑滑動(dòng)窗窗口協(xié)協(xié)議A和B之間間的通通信是是雙向向的,,A和和B都都正運(yùn)運(yùn)行一一個(gè)滑滑動(dòng)窗窗口協(xié)協(xié)議,,其中中包含含了發(fā)發(fā)送和和接收收的功功能幀序號(hào)號(hào)僅用用1bit表示示,A和B的發(fā)發(fā)送窗窗口WT=1、、接收收窗口口WR=1,,窗口口大小小即緩緩沖區(qū)區(qū)的個(gè)個(gè)數(shù)發(fā)送方方發(fā)送送下一一個(gè)數(shù)數(shù)據(jù)幀幀必須須在收收到接接收方方的確確認(rèn)之之后接收方方采用用捎帶帶確認(rèn)認(rèn),并并假設(shè)設(shè)需確確認(rèn)時(shí)時(shí),接接收方方總能能從網(wǎng)網(wǎng)絡(luò)層層取到到待發(fā)發(fā)送的的數(shù)據(jù)據(jù),以以便捎捎帶確確認(rèn)凡接收收到一一個(gè)正正確的的幀,,即便便不是是所期期待的的幀((可能能是重重復(fù)幀幀),,也必必須發(fā)發(fā)一個(gè)個(gè)確認(rèn)認(rèn)一位滑滑動(dòng)窗窗口協(xié)協(xié)議voidprotocol4(void){next_frame_to_send=0;frame_expected=0;from_network_layer(&buffer);=buffer;s.seq=next_frame_to_send;s.ack=1-frame_expected;to_physical_layer(&s);start_timer(s.seq);TnbmP215Fig.3-14(協(xié)議4))while(true){wait_for_event(&event);if(event==frame_arrival){from_physical_layer(&r);if(r.seq==frame_expected){to_network_layer(&);inc(frame_expected);}if(r.ack==next_frame_to_send){stop_timer(r.ack);from_network_layer(&buffer);inc(next_frame_to_send);}}=buffer;s.seq=next_frame_to_send;s.ack=1-frame_expectedto_physical_layer(&s);start_timer(s.seq)}}比較兩種情情況情況1:A端首先發(fā)發(fā)送,B端端等待發(fā)送送,無(wú)過(guò)早早超時(shí),其其運(yùn)行過(guò)程程正常情況2:A端和B端端同時(shí)發(fā)送送,無(wú)過(guò)早早超時(shí),其其運(yùn)行過(guò)程程不正常情況1:主主機(jī)A發(fā)送送主機(jī)B等等待發(fā)送主機(jī)A初始化后組組成發(fā)送幀幀,其中::主機(jī)B初始化后尚尚未組成發(fā)發(fā)送幀,在在接收到A0幀后交交網(wǎng)絡(luò)層并并組成發(fā)送送幀,(捎捎帶確認(rèn)))其中:發(fā)送幀順序序號(hào)seq=0對(duì)接收到的的幀的確認(rèn)認(rèn)ack=1實(shí)際上此確確認(rèn)無(wú)意義義通過(guò)物理層層發(fā)送發(fā)送幀順序序號(hào)seq=0對(duì)接收到的的幀的確認(rèn)認(rèn)ack=0通知A,0幀收到A發(fā)送(0,1,A0)SeqackA發(fā)送A0,seq=0B收到(0,1,A0)▲B收到A0B發(fā)送(0,0,B0)B發(fā)送B0,并確認(rèn)A0A收到(0,0,B0)▲

A收到B0及對(duì)A0的確認(rèn)A發(fā)送(1,0,A1)A發(fā)送A1及對(duì)B0的確認(rèn)B收到(1,0,A1)▲B收到A1及對(duì)B0的確認(rèn)B發(fā)送(1,1,B1)B發(fā)送B1及對(duì)A1的確認(rèn)A收到(1,1,B1)▲A收到B1及對(duì)A1的確認(rèn)A發(fā)送(0,1,A2)A發(fā)送A2及對(duì)B1的確認(rèn)B收到(0,1,A2)▲B收到A2及對(duì)B1的確認(rèn)B發(fā)送(0,0,B2)B發(fā)送B2及對(duì)A2的確認(rèn)A收到(0,0,B2)▲A收到B2及對(duì)A2的確認(rèn)A發(fā)送(1,0,A3)A發(fā)送A3及對(duì)B2的確認(rèn)B收到(1,0,A3)▲B收到A3及對(duì)B2的確認(rèn)B發(fā)送(1,1,B3)情況1:運(yùn)運(yùn)行過(guò)程正正常TnbmP216Fig.3-15(a)協(xié)協(xié)議4,運(yùn)運(yùn)行過(guò)程正正常比較兩種情情況情況1:A端首先發(fā)發(fā)送,B端端等待發(fā)送送,無(wú)過(guò)早早超時(shí),其其運(yùn)行過(guò)程程正常情況2:A端和B端端同時(shí)發(fā)送送,無(wú)過(guò)早早超時(shí),其其運(yùn)行過(guò)程程不正常情況2:主機(jī)A發(fā)送送主機(jī)B也也發(fā)送主機(jī)A初始化后組組成發(fā)送幀幀,其中::主機(jī)B初始化后也也組成發(fā)送送幀,其中中:發(fā)送幀順序序號(hào)seq=0對(duì)接收到的的幀的確認(rèn)認(rèn)ack=1實(shí)際上此確確認(rèn)無(wú)意義義通過(guò)物理層層發(fā)送發(fā)送幀順序序號(hào)seq=0對(duì)接收到的的幀的確認(rèn)認(rèn)ack=1實(shí)際上此確確認(rèn)無(wú)意義義通過(guò)物理層層發(fā)送A發(fā)送(0,1,A0)B發(fā)送(0,1,B0)B也已從網(wǎng)絡(luò)層得到B0B收到(0,1,A0)▲B以為B0分組A沒(méi)有收到B發(fā)送(0,0,B0)所以B又重發(fā)B0分組A收到(0,1,B0)▲A以為A0分組B沒(méi)有收到A發(fā)送(0,0,A0)所以A又重發(fā)A0分組B收到(0,0,A0)

B收到對(duì)B0的確認(rèn)并丟棄A0B發(fā)送(1,0,B1)B發(fā)送B1及對(duì)A0的確認(rèn)A收到(0,0,B0)A收到對(duì)A0的確認(rèn)并丟棄B0A發(fā)送(1,0,A1)A發(fā)送A1及對(duì)B0的確認(rèn)B收到(1,0,A1)▲B以為B1分組A沒(méi)有收到B發(fā)送(1,1,B1)所以B又重發(fā)B1分組A收到(1,0,B1)▲A以為A1分組B沒(méi)有收到A發(fā)送(1,1,A1)所以A又重發(fā)A1分組B收到(1,1,A1)

B收到對(duì)B1的確認(rèn)并丟棄A1B發(fā)送(0,1,B2)情況2:運(yùn)運(yùn)行過(guò)程不不正常TnbmP216Fig.3-15(b)協(xié)協(xié)議4,運(yùn)運(yùn)行過(guò)程不不正常三個(gè)滑動(dòng)窗窗口協(xié)議(協(xié)議4-6)發(fā)送窗口WT=1,接收收窗口WR=1TnbmP215Fig.3-14一位滑動(dòng)窗窗口協(xié)議((協(xié)議4))發(fā)送窗口WT=7,接收收窗口WR=1TnbmP220Fig.3-17后退n幀的的滑動(dòng)窗口口協(xié)議(協(xié)協(xié)議5))發(fā)送窗口WT=4,接收收窗口WR=4TnbmP224Fig.3-19選擇性重發(fā)發(fā)滑動(dòng)窗口口協(xié)議(協(xié)協(xié)議6)后退n幀的的滑動(dòng)窗口口協(xié)議協(xié)議4的主要問(wèn)題題是信道利利用率太低低發(fā)送端等待待發(fā)送下一一幀的時(shí)間間至少是發(fā)發(fā)送端到接接收端信號(hào)號(hào)傳播時(shí)間間的兩倍,,沒(méi)有充分分利用兩條條信道的傳傳輸能力信道的利用用率定義為為數(shù)據(jù)發(fā)送時(shí)時(shí)間/從數(shù)數(shù)據(jù)開始發(fā)發(fā)送到ACK返回的總耗耗時(shí)協(xié)議5是一一個(gè)發(fā)送管管道化(pipelining)的協(xié)議在等待ACK的時(shí)間內(nèi)連連續(xù)發(fā)送出錯(cuò)后重發(fā)發(fā)必須后退n幀一旦重發(fā)定定時(shí)器超時(shí)時(shí),必須將將已發(fā)的n幀全部重發(fā)發(fā)后退n幀的的滑動(dòng)窗口口協(xié)議圖例例有一個(gè)差錯(cuò)時(shí)時(shí)后退n幀(WT=7,WR=1)超時(shí)間隔出錯(cuò)時(shí)間被數(shù)據(jù)鏈路層丟棄的幀發(fā)收0ACK0ACK1ACK2ACK3ACK4ACK512543287654387601EDDDDDD25436TnbmP218Fig.3-16(a)退后n幀協(xié)協(xié)議(gobackn)設(shè)幀序號(hào)由3個(gè)bit表表示,即0~7,并并且WT=7,WR=1設(shè)發(fā)送方有大大量數(shù)據(jù)待發(fā)發(fā)送給對(duì)方,,由于WT=7,即有有7個(gè)發(fā)送緩緩沖區(qū),所以以可連續(xù)發(fā)送送7幀,并每每發(fā)送一幀將將啟動(dòng)一個(gè)重重發(fā)定時(shí)器,,但緩沖區(qū)的覆蓋蓋(窗口的旋旋轉(zhuǎn))必須在收到ACK之后,,因?yàn)橐坏┰撛搸闹匕l(fā)定定時(shí)器超時(shí),,必須將原緩緩沖區(qū)內(nèi)的幀幀重發(fā)退后n幀協(xié)協(xié)議(gobackn)續(xù)接收方采用捎捎帶確認(rèn),并并假設(shè)需確認(rèn)認(rèn)時(shí),接收方方總能從網(wǎng)絡(luò)絡(luò)層取到待發(fā)發(fā)送給發(fā)送方方的的數(shù)據(jù),,以便捎帶確確認(rèn)(piggybacking)由于接收方的的WR=1,如期期待接收的幀幀出錯(cuò),則丟丟棄此幀及以以后所有收到到的幀,不發(fā)發(fā)確認(rèn)(無(wú)NAK機(jī)制))當(dāng)發(fā)送方出現(xiàn)現(xiàn)超時(shí)(錯(cuò)幀幀的TimeOut)后后,重發(fā)自該該幀起的所有有已發(fā)送幀((在當(dāng)前的緩緩沖區(qū)中),,如發(fā)送方連連續(xù)發(fā)送了7幀(2~8),而2#幀無(wú)確認(rèn),超超時(shí)后,必須須從2#幀起全部重發(fā)發(fā)后退n幀的滑滑動(dòng)窗口協(xié)議議程序01234567Next_frame_to_sendack_expectednbuffered=3voidprotocol5(void){enable_network_layer();ack_expected=0;next_frame_to_send=0;frame_expected=0;nbuffered=0;TnbmP220Fig.3-17((協(xié)議5))while(true){wait_for_event(&event);switch(event){casenetwork_layer_ready::network_layer_ready處理;caseframe_arrival:frame_arrival處理;casecksum_err:break;忽略壞幀幀casetimeout:timeout處理;}ifnbuffered<MAX_SEQ)enable_network_layer();elsedisable_network_layer();}}network_layer_ready處理:裝配一個(gè)數(shù)據(jù)據(jù)幀并發(fā)送,發(fā)送送緩沖區(qū)數(shù)+1,準(zhǔn)備發(fā)發(fā)送下一數(shù)據(jù)據(jù)幀from_network_layer(&buffer[next_frame_to_send]);nbuffered=nbuffered+1;send_data(next_frame_to_send,frame_expected,buffer);inc(next_frame_to_send);frame_arrival處理:如收到一個(gè)數(shù)數(shù)據(jù)幀則交網(wǎng)網(wǎng)絡(luò)層,并期期待接收下一一數(shù)據(jù)幀如收到一個(gè)ACK則釋放放一個(gè)緩沖區(qū)區(qū)定時(shí)器復(fù)位位,并期待接接收下一ACKfrom_physical_layer(&r);if(r.seq==frame_expected){to_network_layer(&);inc(frame_expected);}while(between(ack_expected,r.ack,next_frame_to_send)){nbuffered=nbuffered-1;stop_timer(ack_expected);inc(ack_expected);}TimeOut處理:從等待確認(rèn)的的幀開始全部重發(fā)發(fā)next_frame_to_send=ack_expected;for(i=1;i<=nbuffered;i++){send_data(next_frame_to_send,frame_expected,buffer);inc(next_frame_to_send);}后退n幀的滑滑動(dòng)窗口協(xié)議議總結(jié)(WT=2n-1,WR=1)協(xié)議5,即管管道化(pipelining)協(xié)協(xié)議是一個(gè)很很實(shí)用的點(diǎn)對(duì)對(duì)點(diǎn)可靠傳輸輸?shù)膮f(xié)議,特特別適用于差差錯(cuò)率較低的的信道,此時(shí)時(shí),信道利用用率很高如果幀序號(hào)由由n位組成,,則發(fā)送窗口口WT=2n-1,接收窗口WR=1三個(gè)滑動(dòng)窗口口協(xié)議(協(xié)議4-6)發(fā)送窗口WT=1,接收窗窗口WR=1TnbmP215Fig.3-14一位滑動(dòng)窗口口協(xié)議(協(xié)議議4)發(fā)送窗口WT=7,接收窗窗口WR=1TnbmP220Fig.3-17后退n幀的滑滑動(dòng)窗口協(xié)議議(協(xié)議5))發(fā)送窗口WT=4,接收窗窗口WR=4TnbmP224Fig.3-19選擇性重發(fā)滑滑動(dòng)窗口協(xié)議議(協(xié)議6))選擇性重發(fā)的的滑動(dòng)窗口協(xié)協(xié)議在差錯(cuò)率較高高的信道上,,使用協(xié)議5可能導(dǎo)致大量量的重發(fā),從從而使信道利利用率大幅度度降低設(shè)幀長(zhǎng)為1500Byte,連續(xù)續(xù)發(fā)送7幀共共84000bits,當(dāng)信道的的誤碼率高于于1.2x10-5,信道的利用用率將非常低低協(xié)議6是一個(gè)個(gè)選擇性重發(fā)發(fā)的滑動(dòng)窗口口協(xié)議發(fā)送方在某幀幀的重發(fā)定時(shí)時(shí)器超時(shí)(沒(méi)沒(méi)有收到該幀幀的ACK))后,只要重重發(fā)該幀即可可,而不必重重發(fā)所有已發(fā)發(fā)送的幀發(fā)送方可根據(jù)據(jù)所定義的發(fā)發(fā)送窗口大小小,連續(xù)發(fā)送送通常發(fā)送方將將當(dāng)前緩沖區(qū)區(qū)內(nèi)的幀連續(xù)續(xù)發(fā)送完后,,等待確認(rèn),,發(fā)送緩沖區(qū)區(qū)的覆蓋(窗窗口的旋轉(zhuǎn)))將依據(jù)收到到的ACK的的序號(hào),該序序號(hào)的幀及其其以前的所有有幀都可被覆覆蓋選擇性重發(fā)窗窗口協(xié)議圖例例有一個(gè)差錯(cuò)時(shí)僅僅重發(fā)一幀(WT=4,WR=4)TnbmP218Fig.3-16(b)出錯(cuò)將分組2~5交網(wǎng)絡(luò)層被數(shù)據(jù)鏈路層緩存的幀發(fā)收0ACK0ACK1ACK8ACK9ACK10ACK111211109876254314131201E34526781110912ACK5ACK1ACK1NAK2ACK7ACK6選擇性重發(fā)窗窗口協(xié)議說(shuō)明明設(shè)幀序號(hào)由3個(gè)bit表表示,即0~7,并并且假設(shè)WT=4,WR=4設(shè)發(fā)發(fā)送送方方有有大大量量數(shù)數(shù)據(jù)據(jù)等等待待發(fā)發(fā)送送給給對(duì)對(duì)方方,,由由于于WT=4,,即即有有4個(gè)個(gè)發(fā)發(fā)送送緩緩沖沖區(qū)區(qū),,所所以以可可連連續(xù)續(xù)發(fā)發(fā)送送4幀幀,,并并每每發(fā)發(fā)送送一一幀幀將將啟啟動(dòng)動(dòng)一一個(gè)個(gè)((帶

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論