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

下載本文檔

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

文檔簡介

與技術(shù)院網(wǎng)絡(luò)系 課程設(shè)報(bào)告成績:成績:課程設(shè)報(bào)告課程名稱: 網(wǎng)絡(luò)課程設(shè)設(shè)題目: 幀封裝姓 名:專 業(yè): 與技班 級: 13-3班號:2016 1 1 日以太這個語通常是指由DECIntelXerox1982聯(lián)合公布的個標(biāo)TCP/IPCSMA/CDTCP/IPIP文的RFC894過查看包含在中的標(biāo)地址,確定是否進(jìn)行接收或放棄。如果證明數(shù)據(jù)確是發(fā)給自己的,作站將會接收數(shù)據(jù)并傳遞給高層進(jìn)行。以太CSMA/CCarrierSenseMultipleAccess/CollisionDetectio媒體制,作站都可以在。在以太中,所有的傳。如證傳有、高地傳,是以太的制要的題。是在數(shù)據(jù)層數(shù)據(jù)進(jìn)行傳的。的概、行過以題的方法有要的義。的的是用數(shù)據(jù)層制層的,據(jù)數(shù)據(jù)層的,通過個具體的Ethernet,從而深入的基本概念題的般方法。e“”致兩:頭和頭包括方主物地址及信息區(qū)含有個體確兩IIP體兩:體頭和體區(qū)體頭包括IPIP目PP,:MAC格式兩準(zhǔn)DIX Ethernet V2準(zhǔn)V2準(zhǔn)另E3準(zhǔn)里只介紹符合 IEEE802.3準(zhǔn)格式如上圖所示。它的組成比較簡單,由6個字段組成。接下來對這6個部分詳細(xì)介紹一下。(1)前導(dǎo)符:由7字節(jié)的前同步碼和1字節(jié)的幀起始定界符構(gòu)成。前同步碼:這個字段有7個字節(jié)(6位)交替出現(xiàn)的1和0,它的作用就是提醒接收的,并不是(正式的)幀的一部分。前同步碼的目標(biāo)是允許物理層在接收到實(shí)際的幀起始符之前檢測載波,并且與接收到的幀時序達(dá)到穩(wěn)定同步。幀起始定界符:這個字段用 1字節(jié)(10101011)作為幀開始的信號,表示一幀的開始。最后兩位是11,表示下面的字段是目的地址。(2)目的地址(DA) 48位,表示幀準(zhǔn)備目的的地址,6個字節(jié),以是單址(代表單個)址(表一組)地址(表網(wǎng)上的有)目的地址出現(xiàn)址時,表示幀一組同時接收,為組(t)。目的地址出現(xiàn)地址時,表示幀網(wǎng)上有同時接收,為(t),以 A的最位來地址的,一字節(jié)最位為“0表示單址,一字節(jié)最低位為“1表示組。(3)(SA)48(4)字段是長度/。這個字段的值大于 0時(相于十進(jìn)制的 6),就表示。這樣的幀和以太網(wǎng) 幀完一樣。只有這個字段的值小于 時才表示長度,即 C幀的數(shù)據(jù)部分長度。(5)數(shù)據(jù)字段 最小長度必須為 46字節(jié)以保證幀長至少為 64字節(jié),這意味著傳輸一字節(jié)信息也必須使用 46字節(jié)的數(shù)據(jù)字段:如果填入字段的信息少于 46字節(jié),字段的其余部分也必須進(jìn)行填充。數(shù)據(jù)字段的默認(rèn)最大長度為1500字節(jié)。(6)幀檢驗(yàn)序列(FCS)32位冗余檢驗(yàn)碼(CRC),檢驗(yàn)除前導(dǎo)SFD和 FCS以外的內(nèi)容。當(dāng)發(fā)送站發(fā)出幀時,一邊發(fā)送,一邊逐位進(jìn)行CRC檢驗(yàn)。最后形成一個32CRC檢驗(yàn)和填在幀尾FCS位置中一起在媒體上傳輸。接收站接收后,從DA開始同樣邊接收邊逐位進(jìn)行CRC檢驗(yàn)。最后接收站形成的檢驗(yàn)和若與幀的檢驗(yàn)和相同,則表示媒體上傳輸幀未被破壞。反之,接收站認(rèn)為幀被破壞,則會通過一定的機(jī)制要求發(fā)送站重發(fā)該幀差錯檢驗(yàn):CRCLLC(CRC)有簡單、檢錯和糾錯能,在通地用差錯CRC校驗(yàn)碼的檢錯能能檢,能檢發(fā)錯用CRC進(jìn)行檢錯的過簡單:在發(fā)送據(jù)要傳送的k進(jìn)制碼一定的一個校驗(yàn)用的 r位碼碼),在始的后邊,成一個的進(jìn)制碼(k+r位),然后發(fā)送出。在接收,據(jù)碼和 CRC碼之循的則進(jìn)行檢驗(yàn),定傳送中是出錯。個則在差錯制理中為成。循環(huán)冗余校驗(yàn)碼的:CRC校驗(yàn)碼檢出有單個錯。CRC校驗(yàn)碼數(shù)位錯。CRC校驗(yàn)碼位的錯。CRC校驗(yàn)碼檢出有、校驗(yàn)位長度的發(fā)錯。CRC校驗(yàn)碼的檢出長度為(K+1)位的發(fā)錯。三.主要問題的解決方法和關(guān)鍵技術(shù) 填充幀頭部字段完次封裝首先完就頭部裝入將前導(dǎo)界符的地址、源地址、長度字段的相應(yīng)數(shù)值寫入。長度字段的值即為要發(fā)送的數(shù)據(jù)的實(shí)際長度。我們通過面的方式獲得長度字段:ifstreaminfile;infile.open(argv[1],ios);infile.seekg(0,ios::end);shortlength=(short)infile.tellg();file.put(char(length/256));file.put(char(length%256));填充數(shù)據(jù)字段果小46B0超1500B部裝入file.put(char(0x00));CRC(1)CRC編碼的代數(shù)學(xué)理將一個碼組表示為一個多項(xiàng)式,碼組中的各碼元作為多項(xiàng)式的系數(shù)。設(shè)編碼前的始信為 (x,x最加1k成為,的最為 編碼后的帶的為 T(x)。 發(fā)送方編碼的方法是:P(x)x^r,余為 R(x)。接收方解碼方法是:將)),余數(shù)為 0,則傳輸中錯發(fā),否則傳輸有錯。的基本實(shí)現(xiàn)810時這CRC-8。CRC作原是CRC接收端校時都可利用事先約定的生G(xK要發(fā)送的信息可對應(yīng)于一(k-1K(x),r冗余對應(yīng)于一r-)次項(xiàng)式R(x)r的n=k+r(n-1)冗余校的CRC校的,,發(fā).CRC校有的CRC可所有所有數(shù)所有的所有于、于校的發(fā)的最一步就是對數(shù)據(jù)進(jìn)行校將校結(jié)果記入校CRC際上就是一的模二運(yùn)流程描述:把CRC中的值置0在原始數(shù)據(jù)input后添80 while(數(shù)據(jù)未處完beginicrc首是1)crc=crc XOR 100000111把crc值左一從input一新的數(shù)據(jù)于crc0位crc中的后8就是經(jīng)過CRC-8樣我們只需看后 8即因此面流程簡構(gòu)造8c值0依入c的0時7當(dāng)1c才1R運(yùn);0,運(yùn)471理while(total--)48{49chartemp;50file.get(temp);51//printf("ssss");52for(unsignedchari=(unsignedchar)0x80;i>0;i>>=1)53{54//printf(" nihao");55if(crc&0x80)56{57crc<<=1;58if(temp&i)crc^=0x01;5960crc^=0x07;61}62else63{64crc<<=1;65if(temp&1)crc^=0x01;66}67}68}69//printf("\n------%x\n",crc);70file.seekp(pCrc,ios::beg);1.1.bit0bit15bit10bit3CRC。{u16val;struct{u16bit0:1;u16bit1:1;}bits;}CRCREGS;{regs.val=0xffff;}{bitregs.bits.bit0=regs.bits.bit1;regs.bits.bit1=regs.bits.bit2;regs.bits.bit2=regs.bits.bit3;regs.bits.bit3=regs.bits.bit4^a;regs.bits.bit4=regs.bits.bit5;regs.bits.bit5=regs.bits.bit6;regs.bits.bit6=regs.bits.bit7;regs.bits.bit7=regs.bits.bit8;regs.bits.bit8=regs.bits.bit9;regs.bits.bit9=regs.bits.bit10;regs.bits.bit10=regs.bits.bit11^a;regs.bits.bit11=regs.bits.bit12;regs.bits.bit12=regs.bits.bit13;regs.bits.bit13=regs.bits.bit14;regs.bits.bit14=regs.bits.bit15;regs.bits.bit15=a;}u16crcGetRegisters(){returnregs.val;}crcInputBit(bitin){bita;a=regs.bits.bit0^in;regs.val>>1;if(a)regs.val^=0x8408;}2.CRC種CRCCRC8CRC88的CRC81。。。1C證:1.寄存器組向右移動個。剛移出那個異或運(yùn)得出個指向值表索引。將索引所指的表值與寄存器組做異或運(yùn)算。數(shù)據(jù)指針加 1,如果數(shù)據(jù)沒有全部處理完,則重復(fù)步驟 判斷寄存器組的值是否等于“Value”,若相等則通過,否則失敗。填充數(shù)據(jù)字段在填充數(shù)據(jù)字段的過程中要注意的主要問題是數(shù)據(jù)字段的長度。標(biāo)準(zhǔn)中規(guī)定了幀數(shù)據(jù)字段的最小長度為 B,最大長度為 B。如果數(shù)據(jù)不足 B,則需要通過填充 0來補(bǔ)足;若數(shù)據(jù)長度超過 B,則將超過部分封裝入下一個幀進(jìn)行發(fā)送。由于幀頭部分應(yīng)該包括目的地址、源地址、長度字段以及驗(yàn)字段,幀頭部分長度為18B與幀不計(jì)入幀頭長度中。Ethernet幀的最小長度為B,最大長度為B。填充數(shù)據(jù)字段的如下if(len==1500){ {for(i=len;i<46;i++) fr.data[i]=0x00; data_len=len;以進(jìn)、以進(jìn)、入定符指針入數(shù)據(jù)、h,將長度值入據(jù)字段=46BN填充h)字’YCRC五.原程序清單1#include<iostream>usingnamespacestd;4 intmain(intargc,char*argv[])5 {6if(argc!=3)7{8cout<<"èˉ·??‰??€???? ??? è?“?…¥?‘???¤è??framerinputfileoutputfile"<<endl;9 return10 }fstreamfile;file.open(argv[2],ios::in|ios::out|ios::binary|ios::trunc);for(inti=0;i<7;++i)file.put(char(0xaa));file.put(char(0xab));longpCrcS=file.tellp();chardst_addr[6]={char(0x00),char(0x00),char(0xe4),char(0x1a),char(0xe6),char(0x65)};file.write(dst_addr,sizeof(dst_addr));charsrc_addr[6]={char(0x00),char(0x00),char(0x80),char(0x1a),char(0xe6),char(0x65)};file.write(src_addr,sizeof(src_addr));2021ifstreaminfile;infile.open(argv[1],ios::binary);infile.seekg(0,ios::end);shortlength=(short)infile.tellg();file.put(char(length/256));file.put(char(length%256));28char*data=newchar[length];infile.seekg(0,ios::beg);infile.read(data,length);3233 file.write(data,length);34infile.close();delete37if(length<46)for(inti=0;i<46-length;++i)file.put(char(0x00));longpCrc=file.tellp();4142 shorttotal=short(file.tellp())-(short)pCrcS;4344file.seekg(pCrcS,ios::beg);4546unsignedcharcrc=0;47while(total--)48{49chartemp;50file.get(temp);51//printf("ssss");52for(unsignedchari=(unsignedchar)0x80;i>0;i>>=1)53{54//printf(" nihao");55if(crc&0x80)56{57crc<<=1;58if(temp&i)crc^=0x01;5960crc^=0x07;61}62else63{64crc<<=1;65if(temp&1)crc^=0x01;66}67}68}69//printf("\n------%x\n",crc);70file.seekp(pCrc,ios::beg);71file.put(crc);72//printf("nihao");7374/*file.seekg(0,ios::beg);75while(!file.eof()

溫馨提示

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

最新文檔

評論

0/150

提交評論