云南大学计算机网络期中考试刘春花,实验九基于CRC编码的检错程序的实现.doc...
實驗九基于CRC編碼的檢錯程序的實現(xiàn).doc
云南大學軟件學院實 驗 報 告課程 計算機網(wǎng)絡原理實驗 任課教師 劉春花,劉宇 姓名 學號 專業(yè) 成績 實驗九、鏈路層實驗基于 CRC 編碼的檢錯程序的實現(xiàn)實驗報告一、實驗目的1、通過實驗,掌握 CRC 編碼和解碼的原理。2、掌握基于 CRC 編碼的差錯檢測技術(shù)。二、實驗指導現(xiàn)在計算機網(wǎng)絡廣泛采用的差錯檢測技術(shù)是基于 CRC(cyclic redundancy check)循環(huán)冗余檢測編碼,CRC 也稱為多項式編碼(polynomial code) ,CRC算法非常容易用硬件實現(xiàn)。CRC 編碼操作如下對給定的數(shù)據(jù) D,發(fā)送者選擇 r 個附加位,追加到 D 的末尾,形成 dr 位的新位型,該位型正好能被 G 模 2 除盡。其中,G 稱為生成器。CRC 編碼算法實現(xiàn)1、選擇生成多項式 G,其最高次方為 r,即 r1 位的二進制位串2、計算 D2r, 即在數(shù)據(jù) D 后面補 r 個 0,構(gòu)成 dr 位的位串3、按模 2 除法求(D2 r/G)的余數(shù) R,即4、從 D2r中模 2 減去 R,得到新的數(shù)據(jù) T,即加了 CRC 的幀三、實驗要求 1、設(shè)置一個 d 位的數(shù)據(jù) D,r1 位的多項式 G,生成 CRC 碼,并把此 CRC 碼作為數(shù)據(jù)幀進行傳送。2、編寫兩個子程序,分別實現(xiàn) CRC 編碼和 CRC 解碼,在主函數(shù)中對子程序進行調(diào)用。解碼子程序應能根據(jù)解碼情況判斷出接收到的數(shù)據(jù)幀是否出錯,并給出提示。3、要求分別以正確和錯誤的數(shù)據(jù)來檢驗此檢錯程序。4、將編寫程序的源代碼加必要注釋和程序運行結(jié)果一起填入實驗報告中。提示1、編寫程序時數(shù)據(jù)直接用二進制數(shù),可能用到位操作符異或和include void crcint A,int G, int x,int n編碼程序int i,j,k;printf“ntt“;for k0;kx-1;kprintf“ d“,Ak; 輸出補后的數(shù)for i0;ix-n1;iif Ai1 當首位為時進行異或for j0;jn-1;jif AijGjAij0; 異或運算,相同為,不同為else Aij1;printf“ntt“; 輸出每次異或后的結(jié)果for k0;kx-1;kprintf“ d“,Ak; 輸出余數(shù)void crlint M,int A,int m,int n檢驗解碼程序int k0,i;fori0;im-1;iifMiAiprintf“nnt 第d 位出現(xiàn)錯誤n“,i1;k;ifk0printf“nnt 數(shù)據(jù)完全正確n“;void main int m,n;int A20,M20,G20,i,j;printf“ntn“;printf“nnt 請輸入生成器的長度 m“;scanf“d“,printf“nnt 請輸入原始數(shù)據(jù)的長度 n“;scanf“d“,printf“nnt 請輸入生成器“;for i0;im-1;iscanf“d“,printf“nnt 請輸入原始數(shù)據(jù)“;for j0;jn-1;jscanf“d“,for i0;im-1;iAiMi;for im;imn-2;iAi0; 對被除數(shù)進行補crcA,G,mn-1,n; 調(diào)用異或函數(shù)for i0;im-1;iAiAiMi;printf “nnt 結(jié)果為“;for i0;imn-2;iprintf “d“,Ai;int a;printf“nnt 是否繼續(xù) 1/21 代表 yes,2 代表 no “;printf“ntn“;scanf“d“,getchar;ifa1 繼續(xù)system“cls“;printf“ntn“;printf“nnt 請輸入需要解碼的數(shù)據(jù)“;for i0;im-1;iscanf“d“,crlM,A,m,n;printf“ntn“;elsesystem“cls“;printf“ntn“;printf“ntt*按任意鍵退出n“;printf“ntn“;getchar;exit0;
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的云南大学计算机网络期中考试刘春花,实验九基于CRC编码的检错程序的实现.doc...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端请求接口post_接口自动化测试-W
- 下一篇: java 常量区存放 new_java-