




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程名稱:計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議系 別:計(jì)算機(jī)科學(xué)系年級(jí)專業(yè):學(xué) 號(hào):姓名:任課教師:成績(jī):2015年11月11日 前言數(shù)據(jù)鏈路層是OSI參考模型中的第二層,介乎于物理層和網(wǎng)絡(luò)層之間。數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來(lái)的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯(cuò),如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個(gè)網(wǎng)絡(luò)實(shí)體之間提供數(shù)據(jù)鏈路通路的建立、
2、維持和釋放的管理。數(shù)據(jù)鏈路層的最基本的功能是向該層用戶提供透明的和可靠的數(shù)據(jù)傳送基本服務(wù)。透明性是指該層上傳輸?shù)臄?shù)據(jù)的內(nèi)容、格式及編碼沒有限制,也沒有必要解釋信息結(jié)構(gòu)的意義;可靠的傳輸使用戶免去對(duì)丟失信息、干擾信息及順序不正確等的擔(dān)心。在物理層中這些情況都可能發(fā)生,在數(shù)據(jù)鏈路層中必須用糾錯(cuò)碼來(lái)檢錯(cuò)與糾錯(cuò)。數(shù)據(jù)鏈路層是對(duì)物理層傳輸原始比特流的功能的加強(qiáng),將物理層提供的可能出錯(cuò)的物理連接改造成為邏輯上無(wú)差錯(cuò)的數(shù)據(jù)鏈路,使之對(duì)網(wǎng)絡(luò)層表現(xiàn)為一無(wú)差錯(cuò)的線路。如果您想用盡量少的詞來(lái)記住數(shù)據(jù)鏈路層,那就是:“幀和介質(zhì)訪問(wèn)控制”。 數(shù)據(jù)鏈路層一、實(shí)習(xí)目的 計(jì)算機(jī)網(wǎng)絡(luò)的數(shù)據(jù)鏈路層協(xié)議保證通信雙方在有差錯(cuò)的通信線
3、路上進(jìn)行無(wú)差錯(cuò)的數(shù)據(jù)傳輸,是計(jì)算機(jī)網(wǎng)絡(luò)各層協(xié)議中通信控制功能最典型的一種協(xié)議。 本實(shí)驗(yàn)實(shí)現(xiàn)一個(gè)數(shù)據(jù)鏈路層協(xié)議的數(shù)據(jù)傳送部分,目的在于更好地理解基本數(shù)據(jù)鏈路層協(xié)議的基本工作原理,掌握計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的基本實(shí)現(xiàn)技術(shù)。二、實(shí)習(xí)時(shí)間 (第 12 周到 13周)三、 實(shí)習(xí)地點(diǎn) 福建農(nóng)林大學(xué)東方學(xué)院網(wǎng)絡(luò)實(shí)驗(yàn)室四、實(shí)習(xí)單位和部門 福建農(nóng)林大學(xué)東方學(xué)院 五、 實(shí)習(xí)內(nèi)容5.1實(shí)驗(yàn)內(nèi)容使用C 語(yǔ)言實(shí)現(xiàn)下面數(shù)據(jù)鏈路層協(xié)議:1. 分析和實(shí)現(xiàn)一個(gè)理想的鏈路層協(xié)議 2. 對(duì)于前面實(shí)現(xiàn)的協(xié)議進(jìn)行擴(kuò)充,實(shí)現(xiàn)它的第一次改進(jìn),如何防止發(fā)方過(guò)快淹沒收方。 3.
4、;對(duì)上一步再假設(shè)在不可靠的的鏈路上進(jìn)行通信。 5.2實(shí)驗(yàn)步驟 1. 熟悉數(shù)據(jù)鏈路層協(xié)議的功能; 2. 編寫數(shù)據(jù)鏈路層協(xié)議的實(shí)現(xiàn)程序; 3. 調(diào)試并運(yùn)行自己編寫的協(xié)議實(shí)現(xiàn)程序; 4. 了解協(xié)議的工作軌跡,如出現(xiàn)異常情況,在實(shí)驗(yàn)報(bào)告中寫出原因分析; 5. 保留你實(shí)現(xiàn)的數(shù)據(jù)鏈路層協(xié)議,以備教師檢查。 5.3實(shí)驗(yàn)過(guò)程 5.3.1程序功能及設(shè)計(jì)思路 功能概述: 用客戶端/服務(wù)器模式代表A站、B站。先由客戶端輸入服務(wù)器IP地址
5、,發(fā)送SYN同步幀,告訴服務(wù)器準(zhǔn)備接受。客戶端輸入數(shù)據(jù)后,會(huì)進(jìn)行CRC編碼,再發(fā)送數(shù)據(jù)幀;服務(wù)器收到后,先進(jìn)行校驗(yàn),數(shù)據(jù)正確則發(fā)送ACK幀,客戶端則發(fā)送下一幀數(shù)據(jù);否則服務(wù)器發(fā)送NAK幀,客戶端重新發(fā)送該數(shù)據(jù)。 CRC校驗(yàn): 1) 將收到的字符轉(zhuǎn)為int型(32位),并將其二進(jìn)制碼左移16位,存于data; 2) 進(jìn)行C(D)=Remainder(S(D)DL)/g(D) ,即CRC校驗(yàn),得到校驗(yàn)位。 3) 將校驗(yàn)位加在信息元后,組成24位的碼字,存于要發(fā)送的數(shù)據(jù)幀dframe。 停等式ARQ協(xié)議:&
6、#160;Client: 1) 置SN=0; 2) 收到數(shù)據(jù),將SN分配給該數(shù)據(jù),如果沒有收到,則等待; 3) 存于要發(fā)送的數(shù)據(jù)幀中,發(fā)送給server; 4) 如果從server收到確認(rèn)幀,且RN>SN,則SN加1(模2),返回2;如果收到NAK或RN=SN,則返回3,重傳數(shù)據(jù)。 Server: 1) 置RN=0; 2) 從client收到一個(gè)SN=RN的幀,進(jìn)行CRC校驗(yàn)檢查,無(wú)錯(cuò)后輸出,并置RN加1、發(fā)送ACK幀;否則發(fā)送NAK幀
7、,請(qǐng)求重發(fā)。5.4 C語(yǔ)言程序代碼:其客戶端主要部分代碼:Client: /* client.c * #include<winsock.h> /WINSOCK API的頭文件,需要包含在項(xiàng)目中#pragma comment(lib,"ws2_32.lib") /WINSOCK API連接庫(kù)文件#include<stdio.h> #include<string.h> int err; SOCKET sock; /用于服務(wù)器監(jiān)聽的Socket SOCKADDR_IN addrSrv; /服務(wù)端地址unsigned char sendBuf10
8、0; /發(fā)送緩存char serverIp20; /客戶端ip地址int socklen=sizeof(SOCKADDR_IN); /Socket的地址值的長(zhǎng)度int cf_len=sizeof(struct sockaddr); struct dataFrame /數(shù)據(jù)幀 int seq; /分段消息的序號(hào)int SN; /發(fā)送序號(hào)unsigned int data100; int msglen; /字符長(zhǎng)度,采用長(zhǎng)度計(jì)數(shù)的組幀技術(shù); struct conFrame /控制幀 int RN; /接收序號(hào)char type3; /表明幀的類型:SYN同步、EOT送畢、ACK確認(rèn)應(yīng)答、NCK否定
9、應(yīng)答; struct dataFrame dframe; struct conFrame cframe; /* 初始化* void initialization() WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD( 1, 1 ); /WinSocket1.1版本err = WSAStartup( wVersionRequested, &wsaData ); /wsaData用來(lái)存儲(chǔ)系統(tǒng)傳回的關(guān)于WinSocket的資料if ( LOBYTE( wsaData.wVersion ) != 1 |
10、HIBYTE( wsaData.wVersion ) != 1 )WSACleanup( ); return; /* 計(jì)算CRC-16* /基于32位系統(tǒng),int型長(zhǎng)度為4字節(jié),CRC-16的生成多項(xiàng)式為g(D)=D16+D15+D2+1 void caculate_crc16(unsigned char*msg,int lenth,unsigned int *crc) unsigned int data=0; int i,j; / char s32; /用于測(cè)試時(shí)顯示二進(jìn)制碼for(i=0;i<lenth;i+,crc+,msg+) data=(int)*msg; / itoa(dat
11、a,s,2); /把整數(shù)轉(zhuǎn)為二進(jìn)制碼/ printf("第%d字的二進(jìn)制碼:%sn",i+1,s); /test *crc=data<<16; for(j=0;j<16;j+) if(data&0x8000) data=(data<<1)&0xffff; data=data0x8005; else data=(data<<1)&0xffff; *crc=*crc|data; /把校驗(yàn)位放在信息元后面,存在一個(gè)int變量中/ itoa(*crc,s,2); / printf("加上CRC校驗(yàn)位后的二進(jìn)
12、制碼%sn",s);/test 6、 代碼功能的相關(guān)結(jié)果6.1測(cè)試1:在沒有傳輸錯(cuò)誤情況下,在dos界面顯示的傳遞內(nèi)容的二進(jìn)制碼和CRC校驗(yàn)碼Client: 222.25.162.196,發(fā)送數(shù)據(jù)“yl”,顯示“message is delivered successfully”后關(guān)閉連接。Server: 222.25.162.196,收到數(shù)據(jù)“yl”,與上圖對(duì)比,碼字正確,則正確輸出數(shù)據(jù)。6.2測(cè)試2:在傳輸出錯(cuò)情況下,在dos界面顯示傳遞內(nèi)容的二進(jìn)制碼和CRC校驗(yàn)碼Client:222.25.162.196,發(fā)送數(shù)據(jù)“yl”,傳輸出錯(cuò)收到NAK后重傳數(shù)據(jù)。Server: 222.
13、25.162.196,與上圖的二進(jìn)制碼對(duì)比發(fā)現(xiàn),第2個(gè)碼字最后1一位出錯(cuò),程序顯示“message is wrong”,然后等待客戶端重傳。6.3通信測(cè)試:在dos界面進(jìn)行通信,但隱藏了二進(jìn)制碼、校驗(yàn)碼,實(shí)現(xiàn)的是數(shù)據(jù)的透明傳輸。Client:222.25.162.5Server:222.25.162.196分析:從上面兩圖可以看出,服務(wù)端和客戶端可以實(shí)現(xiàn)通暢且準(zhǔn)確無(wú)誤的通信,基本能夠?qū)崿F(xiàn)預(yù)期功能。七、 實(shí)習(xí)總結(jié) 通過(guò)本次實(shí)習(xí),對(duì)數(shù)據(jù)鏈路層中數(shù)據(jù)幀的傳輸和CRC校驗(yàn)有了更深的了解,不僅僅是停留在書本的理論上了,而且自己對(duì)網(wǎng)絡(luò)編程也有了更大的興趣,通過(guò)自己動(dòng)手收集資料,一步步的設(shè)計(jì),對(duì)于以后邏輯分析能力有很大的幫助。然后讓我知道了鏈路管理的
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西職業(yè)技術(shù)學(xué)院《影視特效》2023-2024學(xué)年第一學(xué)期期末試卷
- 錦州市黑山縣2024-2025學(xué)年三年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 南開大學(xué)《試驗(yàn)設(shè)計(jì)與數(shù)據(jù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西電力職業(yè)技術(shù)學(xué)院《電視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黔南民族醫(yī)學(xué)高等??茖W(xué)校《生物大分子雙語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程資金計(jì)劃表模板范文
- 精油美容儀問(wèn)卷調(diào)查
- 激光投影施工方案范本
- 管道盲探施工方案
- 山西定向穿越施工方案
- 電復(fù)律的護(hù)理查房
- 2024年貴州現(xiàn)代物流產(chǎn)業(yè)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 20222023八下語(yǔ)文提優(yōu)輔導(dǎo)02(教師+學(xué)生)
- 共和國(guó)史(自己整理-僅供參考)
- 視頻監(jiān)控維保項(xiàng)目投標(biāo)方案(技術(shù)標(biāo))
- NB-T 11076-2023 高壓交流故障電流限制器通用技術(shù)規(guī)范
- 整縣(市、區(qū))屋頂分布式光伏開發(fā)方案書-V5
- 透水磚鋪裝施工方案
- 《十步訊問(wèn)法》讀書筆記
- GB/T 42599-2023風(fēng)能發(fā)電系統(tǒng)電氣仿真模型驗(yàn)證
- 質(zhì)量問(wèn)題解決方法之7鉆流程法
評(píng)論
0/150
提交評(píng)論