數(shù)據(jù)鏈路層-ARQ協(xié)議-指導(dǎo)_第1頁
數(shù)據(jù)鏈路層-ARQ協(xié)議-指導(dǎo)_第2頁
數(shù)據(jù)鏈路層-ARQ協(xié)議-指導(dǎo)_第3頁
數(shù)據(jù)鏈路層-ARQ協(xié)議-指導(dǎo)_第4頁
數(shù)據(jù)鏈路層-ARQ協(xié)議-指導(dǎo)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ARQ協(xié)議ARQ協(xié)議ARQ協(xié)議ARQ協(xié)議ARQ協(xié)議任務(wù) 1. 同學(xué)編寫數(shù)據(jù)鏈路層通信協(xié)議,由發(fā)送端程序和接收端程序?qū)崿F(xiàn),確保數(shù)據(jù)可靠傳輸; 2. 總結(jié)實驗過程(實驗報告,左側(cè)裝訂):方案、編程、調(diào)試、結(jié)果、分析、結(jié)論。 成績評定 若完全實現(xiàn)無差錯傳輸(無丟失、無差錯、不重疊、不亂序、.)且實驗報告出色,5分; 若完成部分無差錯傳輸,依據(jù)實驗結(jié)果定成績,34分; 若沒有完成基本的傳輸任務(wù),依據(jù)實驗結(jié)果定成績,12分; 沒有進行實驗和無實驗報告者,0分; 實驗環(huán)境 Windows 9x/NT/2000/XP/2003 TCP/IP協(xié)議 同學(xué)程序 認真復(fù)習(xí)數(shù)據(jù)鏈路層內(nèi)容,熟悉編程語言C、C+和WIN

2、DOWS程序設(shè)計技術(shù)(查閱參考書); 開發(fā)工具:Visual C+ 6.0、Visual Basic 6.0、C+ Builder、Java、C#、Turbo C/C+或其它; HYPERLINK 24/Lab_ARQ.files/ARQ0.rar 程序示例: 理想信道的發(fā)送端程序和接收端程序(含源碼VC6.0); ARQ基本協(xié)議1:_引入檢錯和應(yīng)答幀 ARQ基本協(xié)議2:_引入超時計時器 ARQ基本協(xié)議3:_引入數(shù)據(jù)幀攜帶發(fā)送序號01 ARQ基本協(xié)議4:_引入確認幀攜帶發(fā)送序號01 ARQ基本協(xié)議5:_引入應(yīng)答幀含有校驗碼 ARQ基本協(xié)議6:_引入數(shù)據(jù)幀和確認幀含有發(fā)送序號07,Ws=1,Ws

3、=1 HYPERLINK 24/Lab_ARQ.files/Test.rar 下載: ARQ基本協(xié)議16及數(shù)字信道仿真程序 HYPERLINK 24/Lab_ARQ.files/slzd.htm 示例實驗指導(dǎo) 協(xié)議設(shè)計建議 協(xié)議中不考慮成幀數(shù)據(jù)幀和應(yīng)答幀以字節(jié)為單位; 數(shù)據(jù)幀:低4位D3D0為數(shù)據(jù)段(取值0000B1001B,即09),最高位為校驗位(D7),發(fā)送序號段:D6D4; 應(yīng)答幀:確認幀ACK:低4位D3D0取值1111B(FH),否認幀NAK:低4位D3D0取值1110B(EH),發(fā)送序號段:D6D4; 按上述定義,發(fā)送序號個數(shù)最大為8;實際使用時,可自行選取發(fā)送序號個數(shù)2或4,甚

4、至不使用。 協(xié)議中考慮成幀參見授課講義和教材的相關(guān)內(nèi)容; 數(shù)據(jù)幀:幀頭+發(fā)送序號+數(shù)據(jù)段+校驗段+幀尾; 應(yīng)答幀:幀頭+發(fā)送序號+校驗段+幀尾; 協(xié)議方案提示基本ARQ協(xié)議;否認幀不必攜帶出錯數(shù)據(jù)幀的發(fā)送序號。 連續(xù)ARQ協(xié)議回退N幀ARQ協(xié)議;應(yīng)采用滑動窗口技術(shù)和否認幀應(yīng)攜帶出錯數(shù)據(jù)幀的發(fā)送序號。 連續(xù)ARQ協(xié)議選擇重發(fā)ARQ協(xié)議;基本同上; 信道仿真程序 功能:可仿真信道上的信息(數(shù)據(jù)幀或應(yīng)答幀)產(chǎn)生丟失、產(chǎn)生差錯和傳輸時延; 下載: HYPERLINK 24/Lab_ARQ.files/xds121.rar V1.21,解壓后,直接運行! 界面: 實驗系統(tǒng)原理 發(fā)送端程序、信道仿真程序和

5、接收端程序采用UDP(TCP/IP)通信; 若單機實驗:發(fā)送端程序、信道仿真程序和接收端程序的IP地址設(shè)置為(本機); 發(fā)送端程序的端口=6666、信道仿真程序的端口=7777、接收端程序的端口=8888; 用戶程序(發(fā)送端程序和接收端程序)的信息發(fā)送到信道(信道仿真程序),信道仿真程序經(jīng)過處理(產(chǎn)生丟失、產(chǎn)生差錯和傳輸時延),然后轉(zhuǎn)發(fā)到對方。 參考程序段 1.設(shè)置(偶)校驗位/-void SetCheck(char& c) /設(shè)置(偶)校驗位D7 (一個字節(jié)) int i,sum = 0; BYTE x = 0 x01; for(i=0; isum if(c & x) sum+; x = x

6、 1; if(sum % 2) c = c|0 x80; /若sum為奇數(shù),則置D71 else c = c & 0 x7F; /若sum為偶數(shù),則置D70 /-2.校驗(偶)校驗位/-bool checkSum(BYTE c) /(偶)校驗計算(一個字節(jié)) int i,sum = 0; BYTE x = 0 x01; for(i=0; isum if(c & x) sum+; x = x1; if(sum % 2) return false; /若sum為奇數(shù),則有差錯! return true; /若sum為偶數(shù),則無差錯 /-3.定時器函數(shù)(WIN32 API函數(shù))/-#define I

7、D_TIMER 1 /定時器標號 #define ID_TIMER_c 1000L /超時時間:1000L=1000 ms/消息處理 LRESULT CALLBACK WndProc(HWND hW, UINT msg, WPARAM wP, LPARAM lP) switch( msg ) case WM_XXXXX: /其它事件觸發(fā). . . SetTimer(hW, ID_TIMER, ID_TIMER_c, NULL);/啟動 Timer. . . KillTimer(hW, ID_TIMER); /停止 Timer. . . break; case WM_TIMER: /Timer事

8、件觸發(fā). . . KillTimer(hW, ID_TIMER); /停止 Timer. wlcSend(aaSendi); /物理層:發(fā)送一個字節(jié),重發(fā). SetTimer(hW, ID_TIMER, ID_TIMER_c, NULL); /啟動Timer. break; case WM_XXXXX: /其它事件觸發(fā). . . break; /- 實驗:數(shù)據(jù)鏈路路層ARQQ協(xié)議指導(dǎo)導(dǎo)示例0:理想信信道情況實現(xiàn): 假設(shè):信道是理理想信道,即即數(shù)據(jù)信號在在信道中傳輸輸過程中,不不會出現(xiàn)差錯錯、丟失和隨隨機延遲; 發(fā)送端程序直直接發(fā)生數(shù)據(jù)據(jù),接收端端程序直接接接收數(shù)據(jù)。 問題: 若信道是理想的的,

9、發(fā)送端端程序發(fā)送送的數(shù)據(jù)能否否可靠傳輸?shù)氐氐竭_接收收端程序? 若信道不是理想想的,發(fā)送送端程序發(fā)發(fā)送的數(shù)據(jù)能能否可靠傳輸輸?shù)氐竭_接接收端程序?會出現(xiàn)什么么現(xiàn)象? 示例1:采用檢檢錯手段,解解決差錯問題題實現(xiàn): 數(shù)據(jù)幀含有一位位(偶)校驗驗位D7; 接收端程程序?qū)?shù)據(jù)據(jù)幀的進行檢檢錯,通過應(yīng)應(yīng)答幀告訴發(fā)送端端接收正確與與否,(應(yīng)答答幀是確認幀幀ACK和否否認幀NAK的統(tǒng)統(tǒng)稱); ACK碼0FFH,NAKK碼0EHH; 發(fā)送端程序得得到ACK,將將發(fā)送下一個個數(shù)據(jù); 發(fā)送端程序得得到NAK,將將重發(fā)剛才發(fā)發(fā)送的數(shù)據(jù)。 問題: 在什么情況下,發(fā)發(fā)送端發(fā)送的的數(shù)據(jù)可以無無誤地到達接接收端? 在什么情況

10、下,發(fā)發(fā)送端發(fā)送的的數(shù)據(jù)不能可可靠地傳輸?shù)降竭_接收端?會出現(xiàn)什么么問題? 示例2:采用超超時計時器,解解決因數(shù)據(jù)幀幀或應(yīng)答幀的的丟失所產(chǎn)生生的“死鎖”問問題實現(xiàn): 發(fā)送端設(shè)立一個個超時計時器器,發(fā)送完一一個數(shù)據(jù)幀時時,就啟動它它; 如果在在規(guī)定時間ttout內(nèi)得得不到應(yīng)答幀幀,就判定為為超時,重傳傳數(shù)據(jù)幀; 設(shè)置tout1000mms。 問題: 如果tout的的設(shè)置較長或或較短,會出出現(xiàn)什么問題題?如何選取取tout的長長短? 還存在什么問題題? 示例3:數(shù)據(jù)幀幀攜帶發(fā)送序序號01,解解決“重復(fù)幀幀”問題實現(xiàn): 使每個數(shù)據(jù)幀攜攜帶不同的發(fā)發(fā)送序號Nss01; 如果接收端收到到相同Ns的的數(shù)據(jù)幀

11、, 則丟棄, 并回送一個個ACK; 數(shù)據(jù)幀含有一位位比特的發(fā)送送序號D6(00/1)。 問題: 能徹底解決“重重復(fù)幀”問題題嗎? 還存在什么問題題? 示例4:ACKK幀攜帶發(fā)送序序號01,解解決什么問題題?實現(xiàn): 使每個ACK攜攜帶不同的發(fā)發(fā)送序號Nss01; 如果發(fā)送端收到到ACK中的的Ns與剛才才發(fā)送的數(shù)據(jù)據(jù)幀中的Nss相同, 則則發(fā)送下一個個數(shù)據(jù)幀,否否則,.; ACK含有一位位比特的發(fā)送送序號D6(00/1)。 問題: ACK有必要攜攜帶Ns嗎? 還存在什么問題題? 示例5:應(yīng)答幀幀含有一位(偶)校驗位位D7實現(xiàn): .; .。 問題: 在應(yīng)答幀中含有有校驗位有必必要嗎? 還存在什么問題題? 示例6:發(fā)送序序號為077,發(fā)送窗口口Ws1,接收窗口WWr1實現(xiàn): 數(shù)據(jù)幀含有

溫馨提示

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

最新文檔

評論

0/150

提交評論