計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 設(shè)計(jì)報(bào)告課 程 計(jì)算機(jī)網(wǎng)絡(luò) 設(shè)計(jì)名稱 幀 封 裝 專業(yè)班級(jí) 同組人姓名 同組人學(xué)號(hào) 實(shí)驗(yàn)日期 指導(dǎo)教師 成 績(jī) 2012年 3月 20日一、設(shè)計(jì)目的和要求1、實(shí)驗(yàn)?zāi)康?編寫程序,根據(jù)給出的原始數(shù)據(jù),組裝一個(gè)ieee 802.3格式的幀(題目)默認(rèn)的輸入文件為二進(jìn)制原始數(shù)據(jù)(文件名分別為input1和input2)。 要求程序?yàn)槊钚谐绦?。比如,可?zhí)行文件名為framer.exe,則命令行形式如下:framer inputfile outputfile,其中,inputfile為原始數(shù)據(jù)文件,outputfile為輸出結(jié)果。 輸出:對(duì)應(yīng)input1和input2得結(jié)果分別為output1和ou

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論