數據鏈路層協(xié)議的設計與實現(xiàn).docx

數據鏈路層協(xié)議的設計與實現(xiàn).docx

ID:48018590

大?。?44.14 KB

頁數:21頁

時間:2020-01-18

數據鏈路層協(xié)議的設計與實現(xiàn).docx_第1頁
數據鏈路層協(xié)議的設計與實現(xiàn).docx_第2頁
數據鏈路層協(xié)議的設計與實現(xiàn).docx_第3頁
數據鏈路層協(xié)議的設計與實現(xiàn).docx_第4頁
數據鏈路層協(xié)議的設計與實現(xiàn).docx_第5頁
資源描述:

《數據鏈路層協(xié)議的設計與實現(xiàn).docx》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、計算機通信網絡實驗數據鏈路層協(xié)議的設計與實現(xiàn)學院:班級:學號:姓名:2012年11月11日一、實驗目的計算機網絡的數據鏈路層協(xié)議保證通信雙方在有差錯的通信線路上進行無差錯的數據傳輸,是計算機網絡各層協(xié)議中通信控制功能最典型的一種協(xié)議。本實驗實現(xiàn)一個數據鏈路層協(xié)議的數據傳送部分,目的在于更好地理解基本數據鏈路層協(xié)議的基本工作原理,掌握計算機網絡協(xié)議的基本實現(xiàn)技術。二、實驗內容使用C語言實現(xiàn)下面數據鏈路層協(xié)議:1.分析和實現(xiàn)一個理想的鏈路層協(xié)議2.對于前面實現(xiàn)的協(xié)議進行擴充,實現(xiàn)它的第一次改進,如何防止發(fā)方過快淹沒收方。3.對上一步再假設在不

2、可靠的的鏈路上進行通信。三、實驗步驟1.熟悉數據鏈路層協(xié)議的功能;2.編寫數據鏈路層協(xié)議的實現(xiàn)程序;3.調試并運行自己編寫的協(xié)議實現(xiàn)程序;4.了解協(xié)議的工作軌跡,如出現(xiàn)異常情況,在實驗報告中寫出原因分析;5.保留你實現(xiàn)的數據鏈路層協(xié)議,以備教師檢查。一、實驗過程1、程序功能及設計思路功能概述:用客戶端/服務器模式代表A站、B站。先由客戶端輸入服務器IP地址,發(fā)送SYN同步幀,告訴服務器準備接受。客戶端輸入數據后,會進行CRC編碼,再發(fā)送數據幀;服務器收到后,先進行校驗,數據正確則發(fā)送ACK幀,客戶端則發(fā)送下一幀數據;否則服務器發(fā)送NAK幀

3、,客戶端重新發(fā)送該數據。CRC校驗:1)將收到的字符轉為int型(32位),并將其二進制碼左移16位,存于data;2)進行C(D)=Remainder[(S(D)?D^L)/g(D)],即CRC校驗,得到校驗位。3)將校驗位加在信息元后,組成24位的碼字,存于要發(fā)送的數據幀dframe。停等式ARQ協(xié)議:Client:1)置SN=0;2)收到數據,將SN分配給該數據,如果沒有收到,則等待;1)存于要發(fā)送的數據幀中,發(fā)送給server;2)如果從server收到確認幀,且RN>SN,則SN加1(模2),返回2;如果收到NAK或RN=SN,

4、則返回3,重傳數據。Server:1)置RN=0;2)從client收到一個SN=RN的幀,進行CRC校驗檢查,無錯后輸出,并置RN加1、發(fā)送ACK幀;否則發(fā)送NAK幀,請求重發(fā)。2、C語言程序代碼:客戶端Client://***********************client.c*****************************#include//WINSOCKAPI的頭文件,需要包含在項目中#pragmacomment(lib,"ws2_32.lib")//WINSOCKAPI連接庫文件#includ

5、e#includeinterr;SOCKETsock;//用于服務器監(jiān)聽的SocketSOCKADDR_INaddrSrv;//服務端地址unsignedcharsendBuf[100];//發(fā)送緩存charserverIp[20];//客戶端ip地址intsocklen=sizeof(SOCKADDR_IN);//Socket的地址值的長度intcf_len=sizeof(structsockaddr);structdataFrame//數據幀{intseq;//分段消息的序號intSN;//發(fā)送序

6、號unsignedintdata[100];intmsglen;//字符長度,采用長度計數的組幀技術};structconFrame//控制幀{intRN;//接收序號chartype[3];//表明幀的類型:SYN同步、EOT送畢、ACK確認應答、NCK否定應答};structdataFramedframe;structconFramecframe;//************************初始化******************************voidinitialization(){WORDwVersionReq

7、uested;WSADATAwsaData;wVersionRequested=MAKEWORD(1,1);//WinSocket1.1版本err=WSAStartup(wVersionRequested,&wsaData);//wsaData用來存儲系統(tǒng)傳回的關于WinSocket的資料if(LOBYTE(wsaData.wVersion)!=1

8、

9、HIBYTE(wsaData.wVersion)!=1){WSACleanup();}return;}//************************計算CRC-16**********

10、********************//基于32位系統(tǒng),int型長度為4字節(jié),CRC-16的生成多項式為g(D)=D^16+D^15+D^2+1voidcaculate_crc16(uns

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。