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

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

ID:957505

大?。?52.96 KB

頁數(shù):11頁

時間:2017-10-20

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

《數(shù)據鏈路層協(xié)議的設計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。

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

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

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

4、CRC校驗檢查,無錯后輸出,并置RN加1、發(fā)送ACK幀;否則發(fā)送NAK幀,請求重發(fā)。2、C語言程序代碼:客戶端Client://***********************client.c*****************************#include//WINSOCKAPI的頭文件,需要包含在項目中#pragmacomment(lib,"ws2_32.lib")//WINSOCKAPI連接庫文件#include#includeinterr;SOCKETsock;//用于服務器監(jiān)聽的SocketSO

5、CKADDR_INaddrSrv;//服務端地址unsignedcharsendBuf[100];//發(fā)送緩存charserverIp[20];//客戶端ip地址intsocklen=sizeof(SOCKADDR_IN);//Socket的地址值的長度intcf_len=sizeof(structsockaddr);structdataFrame//數(shù)據幀{intseq;//分段消息的序號intSN;//發(fā)送序號unsignedintdata[100];intmsglen;//字符長度,采用長度計數(shù)的組幀技術};structconFrame//控制幀{intRN;//

6、接收序號chartype[3];//表明幀的類型:SYN同步、EOT送畢、ACK確認應答、NCK否定應答};structdataFramedframe;structconFramecframe;//************************初始化******************************voidinitialization(){WORDwVersionRequested;WSADATAwsaData;wVersionRequested=MAKEWORD(1,1);//WinSocket1.1版本err=WSAStartup(wVersionReq

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

8、

9、HIBYTE(wsaData.wVersion)!=1){WSACleanup();}return;}//************************計算CRC-16******************************//基于32位系統(tǒng),int型長度為4字節(jié),CRC-16的生成多項式為g(D)=D^16+D^15+D^2+1voidcaculate_crc16(uns

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

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

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