![計算機網絡幀封裝課程設計報告_第1頁](http://file4.renrendoc.com/view/6e73b81d7643590e2e2b77998947d150/6e73b81d7643590e2e2b77998947d1501.gif)
![計算機網絡幀封裝課程設計報告_第2頁](http://file4.renrendoc.com/view/6e73b81d7643590e2e2b77998947d150/6e73b81d7643590e2e2b77998947d1502.gif)
![計算機網絡幀封裝課程設計報告_第3頁](http://file4.renrendoc.com/view/6e73b81d7643590e2e2b77998947d150/6e73b81d7643590e2e2b77998947d1503.gif)
![計算機網絡幀封裝課程設計報告_第4頁](http://file4.renrendoc.com/view/6e73b81d7643590e2e2b77998947d150/6e73b81d7643590e2e2b77998947d1504.gif)
![計算機網絡幀封裝課程設計報告_第5頁](http://file4.renrendoc.com/view/6e73b81d7643590e2e2b77998947d150/6e73b81d7643590e2e2b77998947d1505.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-PAGE . z.- - - z -TOC o 1-3 h u HYPERLINK l _Toc29059 一、課程設計的目的和意義 PAGEREF _Toc29059 1 HYPERLINK l _Toc25507 一、 課程設計的容和要求 PAGEREF _Toc25507 1 HYPERLINK l _Toc15513 二、 課程設計的相關技術 PAGEREF _Toc15513 1 HYPERLINK l _Toc18923 1.幀 PAGEREF _Toc18923 1 HYPERLINK l _Toc9925 2.CRC校驗 PAGEREF _Toc9925 2 HYPERLIN
2、K l _Toc22898 三、 課程設計過程 PAGEREF _Toc22898 4 HYPERLINK l _Toc7856 1.填充幀頭部字段 PAGEREF _Toc7856 4 HYPERLINK l _Toc19547 2.填充數(shù)據(jù)字段 PAGEREF _Toc19547 4 HYPERLINK l _Toc19353 3.CRC校驗 PAGEREF _Toc19353 4 HYPERLINK l _Toc29647 4. 相關擴展 PAGEREF _Toc29647 5 HYPERLINK l _Toc3403 1.比特型運算法 PAGEREF _Toc3403 5 HYPERL
3、INK l _Toc16042 2.字節(jié)型算法 PAGEREF _Toc16042 65. HYPERLINK l _Toc21639程序流程圖: PAGEREF _Toc21639 76. HYPERLINK l _Toc27316 CRC根本實現(xiàn) PAGEREF _Toc27316 87. HYPERLINK l _Toc24532 程序代碼 PAGEREF _Toc24532 9 HYPERLINK l _Toc23725 8運行結果與分析 PAGEREF _Toc23725 11 HYPERLINK l _Toc2018 五、 課程設計小結 PAGEREF _Toc2018 12一、課
4、程設計的目的和意義 目的:點對點信道的數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元是幀。熟悉幀構造對于理解網絡協(xié)議的概念、網絡層次構造與協(xié)議執(zhí)行過程具有重要意義。本課程設計的主要目的的是通過封裝Ethernet幀,了解Ethernet幀中各個字段的含義和用途。 意義:幀是在數(shù)據(jù)鏈路層中進展數(shù)據(jù)傳輸?shù)膯挝弧W寣W生理解幀的每個字段的含義和用途,透徹理解網絡協(xié)議的概念。課程設計的容和要求本次課程設計我負責的主要容為:封裝Ethernet幀中的CRC校驗。 對于幀的封裝:首先填充幀頭部字段。其次便是填充幀的數(shù)據(jù)的字段注意數(shù)據(jù)字段的長度。最后便是CRC校驗了。對于CRC校驗,我們需要將校驗結果記入幀校驗字段。其實現(xiàn)過程詳細
5、見課程設計過程 根據(jù)后面介紹的IEEE802.3幀構造,編寫程序將指定數(shù)據(jù)封裝為Ethernet幀。1以命令行形式運行: EncapFrame input_file output_file 其中,EncapFrame為程序名,input_file為輸入數(shù)據(jù)文件,output_file為輸出文件。2) 輸出容:Ethernet幀的各字段容。課程設計的相關技術1.幀 術語幀來源于串行線路上的通信。其中,發(fā)送者在發(fā)送數(shù)據(jù)的前后分別添加特殊的字符,使它們成為一個幀。Ethernet從*種程度上可以被看做是機器之間的數(shù)據(jù)鏈路層連接。首先我們來認識一下幀構造,EthernerV2.0規(guī)和IEEE802.3
6、標準中的Ethernet幀構造有一些差異,這里我們按802.3標準的幀構造進展討論。圖為幀構造圖前導碼幀前定界符目的地址源地址長度字段數(shù)據(jù)字段校驗字段7B1B2/6B2/6B2B長度可變4B如上圖所示,802.3標準的Ethernet幀構造由7局部組成。前導碼與幀前定界符字段前導碼由56位7B的1010101010101010位序列組成。幀前定界符可以視為前導碼的延續(xù)。1B的幀前定界符構造為10101011.如果將前導碼與幀前定界符一起看,則在62位1010101010位序列之后出現(xiàn)11。在11之后是Ethernet幀的目的地址字段。前導碼與幀前定界符主要是保證接收同步,這8B接收后不需要保存
7、,也不記入幀頭長度中。目的地址和源地址目的地址DA與源地址SA分別表示幀的接收結點地址與發(fā)送結點的硬件地址。在Ethernet幀中,目的地址和源地址字段長度可以是2B或6B。目前的Ethernet都使用6B長度的地址。Ethernet幀的目的地址可以是單播地址、多播地址與播送地址,目的地址的第一位為0表示單播地址,為1表示多播地址,目的地址為全1則表示播送地址。長度字段Ethernet幀用2B定義數(shù)據(jù)字段包含的字節(jié)數(shù)。協(xié)議規(guī)定,幀數(shù)據(jù)的最小長度為46B,最大長度為1500B。設置最小幀長度的目的是使每個接收結點能夠有足夠時間檢測到沖突。數(shù)據(jù)字段幀數(shù)據(jù)字段的最小長度為46B。如果幀的LLC數(shù)據(jù)少
8、于46B,則應將數(shù)據(jù)字段填充只46B。填充字符是任意的,不計入長度字段值中。校驗字段幀校驗字段FCS采用32位的CRC校驗。校驗的圍包括目的地址字段、源地址字段、長度字段、LLC數(shù)據(jù)字段。此處,為了簡便起見,采用8位的CRC校驗。CRC校驗的生成多項式為:G(*)=*8+*2+*+1*些幀構造中還會包括幀類型字段,用來識別此幀所承載的數(shù)據(jù)的類型。當一個幀到達指定的計算機時,操作系統(tǒng)根據(jù)幀類型決定用哪個協(xié)議軟件模塊對它進展處理。自識別幀的主要優(yōu)點是,可以在同一物理網絡中使用多個協(xié)議而互不干擾。2.CRC校驗循環(huán)冗余編碼的編碼方式。循環(huán)冗余編碼是一種重要的線性分組編碼、解碼和編碼的方式,具有簡單的
9、檢錯和糾錯能力。過程:在發(fā)送端,根據(jù)要傳送的k位二進制碼序列,以一定的規(guī)則產生一個校驗用的r位監(jiān)視碼CRC碼,附在原始信息的后邊,構成一個新的二進制碼序列共k+r位,然后發(fā)送出去。在接收端,根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進展檢驗,以確定傳送中是否出錯。這個規(guī)則在過失理論中稱為生成多項式。CRC編碼的代數(shù)學原理將一個碼組表示為一個多項式,碼組中的各碼元作為多項式的系數(shù)。設編碼前的原始信息多項式為P*,P*最高次冪加1等于k;生成多項式為G(*),它的最高次冪等于r;CRC多項式為R(*);編碼后的帶CRC的信息多項式為T(*)。發(fā)送方編碼的方法是:P(*)乘以*r,再除以G(*),得余式即
10、為R(*)。接收方得解碼方法是:將T(*)除以G(*),如果余數(shù)為0,則說明傳輸中無錯誤發(fā)生,否則說明傳輸有錯誤。CRC的根本實現(xiàn)以CRC-8*8+*2+*1為例,它由多個移位存放器和加法器組成。編碼、解碼前將各存放器初始化為0,輸入位作為最右邊異或操作的輸入之一。三個存放器上的移位操作同時進展,均為左移一位,左邊的存放器的最左一位作為三個異或操作的輸入之一。每次移位時,最右邊的存放器容作為中間異或操作的輸入之一,中間的存放器的容作為最左邊異或操作輸入之一,各個異或操作的結果作為與它左邊那個存放器的移入位。重復以上步驟,每輸入一位就做一次移位操作,直到輸入了所有要計算的數(shù)據(jù)為止。這時,這個存放
11、器組中的數(shù)據(jù)就是CRC-8的結果。CRC運算通用電路方框圖:CRC的工作原理是:CRC在發(fā)送端編碼和接收端校驗時,都可以利用事先約定的生成多項式G(*)來得到,K位要發(fā)送的信息位可對應于一個(k-1)次多項式K(*),r位冗余位對應于一個r-1次多項式R(*),由r位冗余位組成的n=k+r位碼對應于一個(n-1)次多項式T(*)=*r*K(*)+R(*)。循環(huán)冗余校驗碼的特點CRC校驗碼的檢錯能力很強,不僅能檢查出離散錯誤,還能檢查出突發(fā)錯誤.CRC校驗碼具有以下的檢錯能力:CRC校驗碼可檢測出所有單個錯誤,所有奇數(shù)位錯誤,所有雙位的錯誤,所有小于、等于校驗位長度的突發(fā)錯誤。課程設計過程1.填
12、充幀頭部字段要完成一次幀封裝的過程,首先要完成的是幀頭部的裝入,這一過程只要將前導碼、定界符、目的地址、源地址、長度字段的相應數(shù)值按順序寫入就可以了。其中,長度字段的值即為要發(fā)送的數(shù)據(jù)的實際長度。有以下兩種方式來獲得長度字段的值。方法一:While(!in.eof()in.get(a);bufj=a;j+;方法二: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);2
13、.填充數(shù)據(jù)字段在填充數(shù)據(jù)字段的過程中要注意的主要問題是數(shù)據(jù)字段的長度。802.3標準中規(guī)定了幀數(shù)據(jù)字段的最小長度為46B,最大長度為1500B。如果數(shù)據(jù)缺乏46B,則需要通過填充0來補足;假設數(shù)據(jù)長度超過1500B,則將超過局部封裝入下一個幀進展發(fā)送。由于幀頭局部應該包括6B目的地址、6B源地址、2B長度字段以及4B幀校驗字段,因此幀頭局部長度為18B。前導碼與幀前定界符不計入幀頭長度中。則,Ethernet幀的最小長度為64B,最大長度為1518B。填充數(shù)據(jù)字段的代碼如下:if(len=1500) len=0;if(len46)for(i=len;i1;if(a) regs.val=0*84
14、08;2.字節(jié)型算法數(shù)字通信系統(tǒng)一般是對一幀數(shù)據(jù)進展CRC校驗,而字節(jié)是幀的根本單位。最常用的是一種按字節(jié)查表的快速算法。該算法基于這樣一個事實:計算本字節(jié)后的CRC碼,等于上一字節(jié)CRC右移8位和本字節(jié)之和再與上一字節(jié)余式CRC碼的低8位左移8位相加后所求得的CRC碼。如果我們把8位二進制序列數(shù)的CRC全部計算出來,放在一個表里,則編碼時只要從表中查找對應的值進展處理即可。算法如下:存放器組初始化為全1。存放器組向右移動一個字節(jié)。剛移出的那個字節(jié)與數(shù)據(jù)字節(jié)進展異或運算,得出一個指向值表的索引。將索引所指的表值與存放器組做異或運算。數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復步驟2.存放器組取
15、反,得到CRC,附加在數(shù)據(jù)之后。驗證算法:存放器組初始化為全1.存放器組向右移動一個字節(jié)。剛移出的那個字節(jié)與數(shù)據(jù)字節(jié)進展異或運算,得出一個指向值表的索引。將索引所指的表值與存放器組做異或運算。數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復步驟2.判斷存放器組的值是否等于Magic Value,假設相等則通過,否則失敗。5.程序流程圖:6.CRC根本實現(xiàn)除法電路實現(xiàn)CRC7.程序代碼#include#include#include#includevoid main(int argc,char*argv) /如果輸入命令行不正確,則輸出提示后退出。 if(argc!=3) coutendl請按以下格
16、式輸入:framer inputfile outputfileendl; e*it(0); /翻開指定的輸出文件,以二進制方式翻開并可讀可寫,如文件存在,則去除其容。 fstream file(argv2,ios:out|ios:in|ios:binary|ios:trunc,0); for(int i=0;i8); file.put(char(length&0*ff);/將文件長度值按照逆序寫入到輸出文件的長度字段中。 file.write(data,length);/將data容寫入到輸出文件中。 /如果輸入文件長度缺乏B,則用補足B。 if(length46) for(int j=len
17、gth;j46;j+) file.put(char(0*00); file.put(char(0*00);/將數(shù)據(jù)字段后添加個 file.seekg(8,ios:beg);/將讀指針指向目的地址字段,從此處開場CRC計算 unsigned char ch;/ch用來保存讀入的字符。 unsigned char crc=char(0*00);/余數(shù)初始值為。 while(1)/進展CRC計算 file.get(ch); if(ch=0*ff)/判斷是否到了文件結尾,如果是,則退出循環(huán)。 break; for(i=0;i8;i+)/對入讀入的字符的位分別處理。 if(0*80=(crc&(0*80
18、)/當前余數(shù)最高位為,需要進展除法運算。 crc=(crc7);/將輸入數(shù)據(jù)相應的值遞補到余數(shù)末位。 crc=crc(0*07);/進展除法運算,即與除數(shù)的低位相異或。 else/當前余數(shù)的最高位為,不需要進展除法運算。 crc=(crc7);/將輸入數(shù)據(jù)相應位的值遞補到余數(shù)末位。 ch=ch1;/讀到的字符左移位,使數(shù)據(jù)下一位作為輸入位。 file.clear(); file.seekp(-1,ios:end);/將寫指針移到輸出文件的最后。 file.put(crc);/寫入crc碼。 file.close(); infile.close();/關閉輸入文件和輸出文件。 coutendlfileargv2 pleteendl;8.運行結果與分析課程設計小結本次課程設計主要是實現(xiàn)幀的封裝。在本次課程設計中,我們組首先是將封裝的大致流程實現(xiàn)了。實現(xiàn)幀的封裝,主要是將幀的七個局部前導碼、幀前定界符、目的地址、源地址、長度字段、數(shù)據(jù)字段和校驗字段,一個一個按順序封裝的,最后使得一個幀的封裝得以完成。在此同時,我們組采用分工的方式將封裝幀的代碼進展了編寫。在編寫的過程中,我們遇到的問題有:1.我們是以文件流的形式實現(xiàn)的案例的輸入與輸出。在c語言中,我們經常采用的是freopenin.t*t,r,stdin;以及freopen(out.t*t,w,stdout);這兩個語句使得sc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 少先隊員申請書
- 2025年度生態(tài)農業(yè)用地互換合作協(xié)議
- 2025年中國低負壓吸引器行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年度建筑行業(yè)綠色建筑認證聯(lián)營協(xié)議合同
- 2025年度國有企業(yè)工資保密及員工競業(yè)限制合同
- 2025年度綠色建筑設計與施工合同范本-@-14
- 2025年度新能源汽車核心技術知識產權保護合同
- 2025年度智慧社區(qū)建設項目勘察與設計合同模板
- 2025年度建筑工程鋼筋班組分包施工進度調整合同
- 2025年度智能農業(yè)設備采購與推廣服務協(xié)議
- 化工儀表及自動化ppt課件匯總全套ppt完整版課件最全教學教程整套課件全書電子教案全套電子講義
- 2022注冊電氣工程師專業(yè)考試規(guī)范清單匯總
- 一年級寫字下學期課件(PPT 38頁)
- 桂花-作文ppt-PPT課件(共14張)
- 高一數(shù)學概率部分知識點總結及典型例題解析 新課標 人教版 必修
- 鐵路運費計算方法
- 《小腦梗死護理查房》
- 免疫及炎癥相關信號通路
- 某風電場設備材料設備清單
- —橋梁專業(yè)施工圖設計審查要(終)
- 德龍自卸車合格證掃描件(原圖)
評論
0/150
提交評論