




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 沈陽理工大學(xué)課程設(shè)計(jì)專用紙 No14目錄1 課程設(shè)計(jì)目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 課程設(shè)計(jì)要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 相關(guān)知識(shí). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 4 課程設(shè)計(jì)分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2、5 相關(guān)擴(kuò)展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 程序代碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 運(yùn)行結(jié)果與分析. . . . . . . . . . . . . . . . . . . . . . . . . . . .168 參考文獻(xiàn). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171課程設(shè)計(jì)目的 幀是
3、在數(shù)據(jù)鏈路層中進(jìn)行數(shù)據(jù)傳輸?shù)幕締挝?。熟悉幀結(jié)構(gòu)對(duì)于理解網(wǎng)絡(luò)協(xié)議的概念、網(wǎng)絡(luò)層次結(jié)構(gòu)與協(xié)議執(zhí)行過程具有重要的意義。本課程設(shè)計(jì)的主要目的是通過封裝Ethernet幀,了解Ethernet幀中各個(gè)字段的含義與用途。2 課程設(shè)計(jì)要求根據(jù)后面介紹的IEEE802.3幀結(jié)構(gòu),編寫程序?qū)⒅付〝?shù)據(jù)封裝為Ethernet幀。1)以命令行形式運(yùn)行: EncapFrame input_file output_file 其中,EncapFrame為程序名,input_file為輸入數(shù)據(jù)文件,output_file為輸出文件。2) 輸出內(nèi)容:Ethernet幀的各字段內(nèi)容。3 相關(guān)知識(shí)1.幀 術(shù)語“幀”來源于串行線路
4、上的通信。其中,發(fā)送者在發(fā)送數(shù)據(jù)的前后分別添加特殊的字符,使它們成為一個(gè)幀。Ethernet從某種程度上可以被看做是機(jī)器之間的數(shù)據(jù)鏈路層連接。首先我們來認(rèn)識(shí)一下幀結(jié)構(gòu),EthernerV2.0規(guī)范和IEEE802.3標(biāo)準(zhǔn)中的Ethernet幀結(jié)構(gòu)有一些差別,這里我們按802.3標(biāo)準(zhǔn)的幀結(jié)構(gòu)進(jìn)行討論。圖為幀結(jié)構(gòu)圖前導(dǎo)碼幀前定界符目的地址源地址長(zhǎng)度字段數(shù)據(jù)字段校驗(yàn)字段(7B)(1B)(2/6B)(2/6B)(2B)(長(zhǎng)度可變)(4B) 圖1.幀結(jié)構(gòu)圖如上圖所示,802.3標(biāo)準(zhǔn)的Ethernet幀結(jié)構(gòu)由7部分組成。(1) 前導(dǎo)碼與幀前定界符字段前導(dǎo)碼由56位(7B)的1010101010101010
5、位序列組成。幀前定界符可以視為前導(dǎo)碼的延續(xù)。1B的幀前定界符結(jié)構(gòu)為10101011.如果將前導(dǎo)碼與幀前定界符一起看,那么在62位1010101010位序列之后出現(xiàn)11。在11之后是Ethernet幀的目的地址字段。前導(dǎo)碼與幀前定界符主要是保證接收同步,這8B接收后不需要保留,也不記入幀頭長(zhǎng)度中。(2) 目的地址和源地址目的地址(DA)與源地址(SA)分別表示幀的接收結(jié)點(diǎn)地址與發(fā)送結(jié)點(diǎn)的硬件地址。在Ethernet幀中,目的地址和源地址字段長(zhǎng)度可以是2B或6B。目前的Ethernet都使用6B長(zhǎng)度的地址。Ethernet幀的目的地址可以是單播地址、多播地址與廣播地址,目的地址的第一位為0表示單播
6、地址,為1表示多播地址,目的地址為全1則表示廣播地址。(3) 長(zhǎng)度字段Ethernet幀用2B定義數(shù)據(jù)字段包含的字節(jié)數(shù)。協(xié)議規(guī)定,幀數(shù)據(jù)的最小長(zhǎng)度為46B,最大長(zhǎng)度為1500B。設(shè)置最小幀長(zhǎng)度的目的是使每個(gè)接收結(jié)點(diǎn)能夠有足夠時(shí)間檢測(cè)到?jīng)_突。(4) 數(shù)據(jù)字段幀數(shù)據(jù)字段的最小長(zhǎng)度為46B。如果幀的LLC數(shù)據(jù)少于46B,則應(yīng)將數(shù)據(jù)字段填充只46B。填充字符是任意的,不計(jì)入長(zhǎng)度字段值中。(5) 校驗(yàn)字段幀校驗(yàn)字段(FCS)采用32位的CRC校驗(yàn)。校驗(yàn)的范圍包括目的地址字段、源地址字段、長(zhǎng)度字段、LLC數(shù)據(jù)字段。此處,為了簡(jiǎn)便起見,采用8位的CRC校驗(yàn)。CRC校驗(yàn)的生成多項(xiàng)式為:G(X)=X8+X2+X
7、+1某些幀結(jié)構(gòu)中還會(huì)包括幀類型字段,用來識(shí)別此幀所承載的數(shù)據(jù)的類型。當(dāng)一個(gè)幀到達(dá)指定的計(jì)算機(jī)時(shí),操作系統(tǒng)根據(jù)幀類型決定用哪個(gè)協(xié)議軟件模塊對(duì)它進(jìn)行處理。自識(shí)別幀的主要優(yōu)點(diǎn)是,可以在同一物理網(wǎng)絡(luò)中使用多個(gè)協(xié)議而互不干擾。2.CRC校驗(yàn) 循環(huán)冗余編碼的編碼方式。 過程:在發(fā)送端,根據(jù)要傳送的k位二進(jìn)制碼序列,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的r位監(jiān)督碼,附在原始信息的后邊,構(gòu)成一個(gè)新的二進(jìn)制碼序列,然后發(fā)送出去。在接收端,根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進(jìn)行檢驗(yàn),以確定傳送中是否出錯(cuò)。(1) CRC編碼的代數(shù)學(xué)原理將一個(gè)碼組表示為一個(gè)多項(xiàng)式,碼組中的各碼元作為多項(xiàng)式的系數(shù)。設(shè)編碼前的原始信息多項(xiàng)式為P
8、(x),P(x)最高次冪加1等于k;生成多項(xiàng)式為G(x),它的最高次冪等于r;CRC多項(xiàng)式為R(x);編碼后的帶CRC的信息多項(xiàng)式為T(x)。發(fā)送方編碼的方法是:P(x)乘以xr,再除以G(x),得余式即為R(x)。接收方得解碼方法是:將T(x)除以G(x),如果余數(shù)為0,則說明傳輸中無錯(cuò)誤發(fā)生,否則說明傳輸有錯(cuò)誤。(2) CRC的基本實(shí)現(xiàn)以CRC-8(X8+X2+X1為例,它由多個(gè)移位寄存器和加法器組成。編碼、解碼前將各寄存器初始化為0,輸入位作為最右邊異或操作的輸入之一。三個(gè)寄存器上的移位操作同時(shí)進(jìn)行,均為左移一位,左邊的寄存器的最左一位作為三個(gè)異或操作的輸入之一。每次移位時(shí),最右邊的寄存
9、器內(nèi)容作為中間異或操作的輸入之一,中間的寄存器的內(nèi)容作為最左邊異或操作輸入之一,各個(gè)異或操作的結(jié)果作為與它左邊那個(gè)寄存器的移入位。重復(fù)以上步驟,每輸入一位就做一次移位操作,直到輸入了所有要計(jì)算的數(shù)據(jù)為止。這時(shí),這個(gè)寄存器組中的數(shù)據(jù)就是CRC-8的結(jié)果。CRC的工作原理是:CRC在發(fā)送端編碼和接收端校驗(yàn)時(shí),都可以利用事先約定的生成多項(xiàng)式G(x)來得到,K位要發(fā)送的信息位可對(duì)應(yīng)于一個(gè)(k-1)次多項(xiàng)式K(x),r位冗余位對(duì)應(yīng)于一個(gè)(r-1)次多項(xiàng)式R(x),由r位冗余位組成的n=k+r位碼對(duì)應(yīng)于一個(gè)(n-1)次多項(xiàng)式T(x)=Xr*K(x)+R(x)。(3) 循環(huán)冗余校驗(yàn)碼的特點(diǎn)CRC校驗(yàn)碼的檢錯(cuò)
10、能力很強(qiáng),不僅能檢查出離散錯(cuò)誤,還能檢查出突發(fā)錯(cuò)誤.CRC校驗(yàn)碼具有以下的檢錯(cuò)能力:CRC校驗(yàn)碼可檢測(cè)出所有單個(gè)錯(cuò)誤,所有奇數(shù)位錯(cuò)誤,所有雙位的錯(cuò)誤,所有小于、等于校驗(yàn)位長(zhǎng)度的突發(fā)錯(cuò)誤。4 課程設(shè)計(jì)分析1.填充幀頭部字段要完成一次幀封裝的過程,首先要完成的是幀頭部的裝入,這一過程只要將前導(dǎo)碼、定界符、目的地址、源地址、長(zhǎng)度字段的相應(yīng)數(shù)值按順序?qū)懭刖涂梢粤?。其中,長(zhǎng)度字段的值即為要發(fā)送的數(shù)據(jù)的實(shí)際長(zhǎng)度。有以下兩種方式來獲得長(zhǎng)度字段的值。方法一:While(!in.eof()in.get(a);bufj=a;j+;方法二:infile.open(argv1,ios:binary);infile.s
11、eekg(0,ios:end);short length=(short)infile.tellg();file.put(char(length/256);file.put(char(length%256);2.填充數(shù)據(jù)字段在填充數(shù)據(jù)字段的過程中要注意的主要問題是數(shù)據(jù)字段的長(zhǎng)度。802.3標(biāo)準(zhǔn)中規(guī)定了幀數(shù)據(jù)字段的最小長(zhǎng)度為46B,最大長(zhǎng)度為1500B。如果數(shù)據(jù)不足46B,則需要通過填充0來補(bǔ)足;若數(shù)據(jù)長(zhǎng)度超過1500B,則將超過部分封裝入下一個(gè)幀進(jìn)行發(fā)送。由于幀頭部分應(yīng)該包括6B目的地址、6B源地址、2B長(zhǎng)度字段以及4B幀校驗(yàn)字段,因此幀頭部分長(zhǎng)度為18B。前導(dǎo)碼與幀前定界符不計(jì)入幀頭長(zhǎng)度中。那
12、么,Ethernet幀的最小長(zhǎng)度為64B,最大長(zhǎng)度為1518B。填充數(shù)據(jù)字段的代碼如下:if(len=1500) len=0;if(len46)for(i=len;i1;if(a) regs.val=0x8408;2.字節(jié)型算法數(shù)字通信系統(tǒng)一般是對(duì)一幀數(shù)據(jù)進(jìn)行CRC校驗(yàn),而字節(jié)是幀的基本單位。最常用的是一種按字節(jié)查表的快速算法。該算法基于這樣一個(gè)事實(shí):計(jì)算本字節(jié)后的CRC碼,等于上一字節(jié)CRC右移8位和本字節(jié)之和再與上一字節(jié)余式CRC碼的低8位左移8位相加后所求得的CRC碼。如果我們把8位二進(jìn)制序列數(shù)的CRC全部計(jì)算出來,放在一個(gè)表里,那么編碼時(shí)只要從表中查找對(duì)應(yīng)的值進(jìn)行處理即可。算法如下:1
13、) 寄存器組初始化為全1。2) 寄存器組向右移動(dòng)一個(gè)字節(jié)。3) 剛移出的那個(gè)字節(jié)與數(shù)據(jù)字節(jié)進(jìn)行異或運(yùn)算,得出一個(gè)指向值表的索引。4) 將索引所指的表值與寄存器組做異或運(yùn)算。5) 數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復(fù)步驟2.6) 寄存器組取反,得到CRC,附加在數(shù)據(jù)之后。驗(yàn)證算法:1) 寄存器組初始化為全1.2) 寄存器組向右移動(dòng)一個(gè)字節(jié)。3) 剛移出的那個(gè)字節(jié)與數(shù)據(jù)字節(jié)進(jìn)行異或運(yùn)算,得出一個(gè)指向值表的索引。4) 將索引所指的表值與寄存器組做異或運(yùn)算。5) 數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復(fù)步驟2.6) 判斷寄存器組的值是否等于“Magic Value”,若相等則通過,7) 否
14、則失敗。圖2程序流程圖: 圖3.CRC計(jì)算流程圖6 程序代碼#include#includevoid main(int argc,char*argv)if(argc!=3)cout請(qǐng)按以下格式輸入命令行: framer inputfile outputfileendl;return;fstream file;file.open(argv2,ios:in|ios:out|ios:binary|ios:trunc);for(int i=0;i7;i+) file.put(char(0xaa);file.put(char(0xab);long pCrcs=file.tellp();char dst_
15、addr6=char(0x00),char(0x00),char(0x80),char(0x1a),char(0xe6),char(0x65);file.write(dst_addr,sizeof(dst_addr);ifstream infile;infile.open(argv1,ios:binary);infile.seekg(0,ios:end);short length=(short)infile.tellg();file.put(char(length/256);file.put(char(length%256);char*data=new charlength;infile.se
16、ekg(0,ios:beg);infile.read(data,length);infile.close();delete data;if(length46) for(int i=0; i0;i=1)if(crc&0x80)crc=1;if(temp&i) crc=0x01;crc=0x07;elsecrc=1;if(temp&i) crc=0x01;file.seekg(pCrc,ios:beg);file.put(crc);while(!file.eof()unsigned char temp;file.get(temp);couthex(short)tempendl;cout幀文件 argv2封裝完成end
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西河池市本年度(2025)小學(xué)一年級(jí)數(shù)學(xué)統(tǒng)編版期中考試(下學(xué)期)試卷及答案
- 四川省青神中學(xué)2025年高三最后一模英語試題含答案
- 母嬰1+x模擬試題及參考答案
- 2025屆陜西省西安市遠(yuǎn)東一中高三考前熱身英語試卷含答案
- 貨幣金融學(xué)模擬習(xí)題+答案
- 山東省名??荚嚶?lián)盟2024-2025學(xué)年高一下學(xué)期期中檢測(cè)地理試題(原卷版+解析版)
- 畜禽舍環(huán)境控制與改善考核試卷
- 糕點(diǎn)烘焙師的創(chuàng)意靈感來源考核試卷
- 體育場(chǎng)館體育賽事商務(wù)開發(fā)與贊助商招募考核試卷
- 紙容器輕量化與結(jié)構(gòu)優(yōu)化設(shè)計(jì)考核試卷
- 機(jī)械制造及非標(biāo)零部件加工項(xiàng)目突發(fā)環(huán)境事件應(yīng)急預(yù)案
- 2025年裝維智企工程師(三級(jí))復(fù)習(xí)模擬100題及答案
- 國家管網(wǎng)集團(tuán)西南管道昆明輸油氣分公司突發(fā)環(huán)境事件綜合應(yīng)急預(yù)案
- 9.1科學(xué)立法 課件高中政治統(tǒng)編版必修三政治與法治
- 施工現(xiàn)場(chǎng)臨時(shí)用電安全
- 停送電培訓(xùn)課件
- 醫(yī)院培訓(xùn)課件:《核心制度-護(hù)理值班和交接班制度》
- 解題秘籍05 圓的綜合問題(9種題型匯-總+專題訓(xùn)練)(解析版)-2025年中考數(shù)學(xué)重難點(diǎn)突破
- 美學(xué)《形象設(shè)計(jì)》課件
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 08真空熱處理爐
評(píng)論
0/150
提交評(píng)論