計算機網絡課程設計_第1頁
計算機網絡課程設計_第2頁
計算機網絡課程設計_第3頁
計算機網絡課程設計_第4頁
計算機網絡課程設計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 設計報告課 程 計算機網絡 設計名稱 幀 封 裝 專業(yè)班級 同組人姓名 同組人學號 實驗日期 指導教師 成 績 2012年 3月 20日一、設計目的和要求1、實驗目的 編寫程序,根據給出的原始數(shù)據,組裝一個ieee 802.3格式的幀(題目)默認的輸入文件為二進制原始數(shù)據(文件名分別為input1和input2)。 要求程序為命令行程序。比如,可執(zhí)行文件名為framer.exe,則命令行形式如下:framer inputfile outputfile,其中,inputfile為原始數(shù)據文件,outputfile為輸出結果。 輸出:對應input1和input2得結果分別為output1和ou

2、tput2。2、實驗要求 編寫程序,根據給出的原始數(shù)據,組裝一個ieee 802.3格式的幀(題目)默認的輸入文件為二進制原始數(shù)據(文件名分別為input1和input2)。 要求程序為命令行程序。比如,可執(zhí)行文件名為framer.exe,則命令行形式如下:framer inputfile outputfile,其中,inputfile為原始數(shù)據文件,outputfile為輸出結果。輸出:對應input1和input2得結果分別為output1和output2二、設計說明(包括設計分析,系統(tǒng)運行環(huán)境,設計中的重點和難點,輸入和輸出輸出條件等)幀:來源于串行線路上的通信。其中,發(fā)送者在發(fā)送數(shù)據的

3、前后各添加特殊的字符,使它們成為一個幀。ethernet從某種程度上可以被看作是機器之間的數(shù)據鏈路層連接。按802.3標準的幀結構如下表所示(802.3標準的ethernet幀結構由7部分組成)802.3標準的幀結構前導碼幀前定界符目的地址源地址長度字段數(shù)據字段校驗字段7b1b(2/6b)(2/6b)(2b)(長度可變)(4b)其中,幀數(shù)據字段的最小長度為46b。如果幀的llc數(shù)據少于46b,則應將數(shù)據字段填充至46b。填充字符是任意的,不計入長度字段值中。在校驗字段中,使用的是crc校驗。校驗的范圍包括目的地址字段、源地址字段、長度字段、llc數(shù)據字段。循環(huán)冗余編碼(crc)是一種重要的線性

4、分組碼、編碼和解碼方法,具有簡單、檢錯和糾錯能力強等特點,在通信領域廣泛地用于實現(xiàn)差錯控制。crc校驗碼的檢錯能力很強,不僅能檢查出離散錯誤,還能檢查出突發(fā)錯誤。利用crc進行檢錯的過程可簡單描述如下:在發(fā)送端根據要傳送的k位二進制碼序列,以一定的規(guī)則產生一個校驗用的r位監(jiān)督碼(crc碼),附在原始信息的后邊,構成一個新的二進制碼序列(共k+r位),然后發(fā)送出去。在接收端,根據信息碼和crc碼之間所遵循的規(guī)則進行檢驗,以確定傳送中是否出錯。這個規(guī)則在差錯控制理論中稱為“生成多項式”。crc的基本實現(xiàn)前導碼幀前定界符目的地址源地址長度字段數(shù)據字段校驗字段7b1b(2/6b)(2/6b)(2b)(

5、長度可變)(4b)循環(huán)冗余校驗碼的特點:(1)crc校驗碼可檢測出所有單個錯誤。(2)crc校驗碼可檢測出所有奇數(shù)位錯誤。(3)crc校驗碼可檢測出所有雙位的錯誤(4)crc校驗碼可檢測出所有小于、等于校驗位長度的突發(fā)錯誤。(5)crc校驗碼可以的概率檢測出長度為(k+1)位的突發(fā)錯誤。實驗分析: 填充幀頭部字段 要完成一次幀封裝的過程,首先要完成的就是幀頭部的裝入,這一過程只要將簽到碼、定界符、目的地址、源地址、長度字段的相應數(shù)值按順序寫入就可以了。其中,長度字段的值即為要發(fā)送的數(shù)據的實際長度。 填充數(shù)據字段在填充數(shù)據字段的過程中要注意的主要問題是數(shù)據字段的長度。802.3標準中規(guī)定了幀數(shù)據

6、字段的最小長度為46b,最大長度為1500b。如果數(shù)據不足46b,則需要通過填充0來補足;若數(shù)據長度超過1500b,則的大獎超過部分封裝入下一個幀進行發(fā)送。 crc校驗 幀封裝的最后一步就是對數(shù)據進行校驗,并將校驗結果記入幀校驗字段。三、系統(tǒng)詳細設計(包括程序流程、主要函數(shù)等)程序流程圖:crc計算流程圖:四、程序源代碼及注釋序源代碼:#include#include#includevoid main(int argc,char*argv) /如果輸入命令行不正確,則輸出提示后退出。 if(argc!=3) coutendl請按以下格式輸入:framer inputfile outputfil

7、eendl; exit(0); /打開指定的輸出文件,以二進制方式打開并可讀可寫,如文件存在,則清除其內容。 fstream file(argv2,ios:out|ios:in|ios:binary|ios:trunc,0); for(int i=0;i8); file.put(char(length&0xff);/將文件長度值按照逆序寫入到輸出文件的長度字段中。 file.write(data,length);/將data內容寫入到輸出文件中。 /如果輸入文件長度不足b,則用補足b。 if(length46) for(int j=length;j46;j+) file.put(char(0x

8、00); file.put(char(0x00);/將數(shù)據字段后添加個 file.seekg(8,ios:beg);/將讀指針指向目的地址字段,從此處開始crc計算 unsigned char ch;/ch用來保存讀入的字符。 unsigned char crc=char(0x00);/余數(shù)初始值為。 while(1)/進行crc計算 file.get(ch); if(ch=0xff)/判斷是否到了文件結尾,如果是,則退出循環(huán)。 break; for(i=0;i8;i+)/對入讀入的字符的位分別處理。 if(0x80=(crc&(0x80)/當前余數(shù)最高位為,需要進行除法運算。 crc=(cr

9、c7);/將輸入數(shù)據相應的值遞補到余數(shù)末位。 crc=crc(0x07);/進行除法運算,即與除數(shù)的低位相異或。 else/當前余數(shù)的最高位為,不需要進行除法運算。 crc=(crc7);/將輸入數(shù)據相應位的值遞補到余數(shù)末位。 ch=ch1;/讀到的字符左移位,使數(shù)據下一位作為輸入位。 file.clear(); file.seekp(-1,ios:end);/將寫指針移到輸出文件的最后。 file.put(crc);/寫入crc碼。 file.close(); infile.close();/關閉輸入文件和輸出文件。 coutendl數(shù)據幀文件argv2 封裝完成endl;五、實驗數(shù)據、結果

10、分析運行結果:運行結果如下所示:執(zhí)行framer.exe文件的結果如下所示:六、總結 實現(xiàn)幀的封裝,主要是將幀的七個部分-前導碼、幀前定界符、目的地址、源地址、長度字段、數(shù)據字段和校驗字段,一個一個按順序封裝的,最后使得一個幀的封裝得以完成。同時,在編寫程序的過程中,用到了很多的函數(shù),這些函數(shù)的運用使得程序簡便而且正確的運行出來。通過此次短暫的課程設計,我們小組成員都是深有感觸。從一開始的構思再到今天寫下這份總結。期間經歷的時間雖然短暫但是也學到了不少的知識。在課程設計剛剛開始構想的時候只有大體的思路,忽略了一些細節(jié),因此在我真正做設計網絡方案時發(fā)現(xiàn)有很多錯誤,有的時候要解決一個錯誤反反復復會

11、花上很多時間。在做的過程中,也會有很多意想不到的錯誤,其中有的錯誤到最后解決的時候卻是發(fā)現(xiàn)犯得很幼稚,不過這樣的錯誤多了,在不知不覺中對一些命令知識分外的熟悉了起來,并且自身的排錯能力也得到很大的提高。此次的網絡課程設計,讓我們第一次摸索網絡的需求去搭建一個符合要求的基本的網絡,在設計過程中總是會遇到一些很小的問題,雖然不明顯,卻可以影響到整個網絡的安全運作。這樣一個小小的網絡,卻是通過一次次的搭建,修改之后的結果,真是令人感慨萬千。第一次的方案設計雖然有所困難,卻也使我們更加深入的了解各個設備的如何搭建能使網絡變得更加安全,更加快捷。并將平時所學的知識第一次融會貫通。也明白了設計一個網絡是需

12、要花費很多精力去構思的,其間的財富是任何時候的上課實驗所不可比擬的。在這次實習過程中,我們發(fā)現(xiàn)平時學習的知識與實踐環(huán)節(jié)所用到的有一定的差距,往往我們覺得自己掌握的很好或者自認為熟練的技術卻在此次實踐環(huán)節(jié)中往往出問題,書本上的知識只提供方法的借鑒,實踐中自己必須摸索出適合具體工作的方法,這一切都離不開鉆研精神與勤學好問的精神在人與人相處過程中我收獲更大,首先要謙虛謹慎,不能自以為是,認為自己懂得很多,而僅僅埋頭苦干,而不向他人請教,工作不但是實踐與應用的過程,同時也是學習的過程,我們必須加強與他人的溝通學習,以便獲得與他人的交流。這次幀封裝網絡方案設計讓我們把屬于這方面的各個知識點從各方面收集過來,根據網絡要求設計了拓撲圖,完成后臺的配置,在進行一遍一遍的測試,仔細的編寫文檔。在完成的過程中去完善更多的方面,使設計的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論