实验九-链路层实验-基于CRC编码的检错程序的实现实验报告_第1页
实验九-链路层实验-基于CRC编码的检错程序的实现实验报告_第2页
实验九-链路层实验-基于CRC编码的检错程序的实现实验报告_第3页
实验九-链路层实验-基于CRC编码的检错程序的实现实验报告_第4页
实验九-链路层实验-基于CRC编码的检错程序的实现实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验九、链路层实验——基于CRC编码的检错程序的实现实验报告序号:姓名:学号:2成绩指导教师一、实验目的1、通过实验,掌握CRC编码和解码的原理。2、掌握基于CRC编码的差错检测技术。二、实验指导现在计算机网络广泛采用的差错检测技术是基于CRC(cyclicredundancycheck)循环冗余检测编码,CRC也称为多项式编码(polynomialcode),CRC算法非常容易用硬件实现。CRC编码操作如下:对给定的数据D,发送者选择r个附加位,追加到D的末尾,形成d+r位的新位型,该位型正好能被G模2除尽。其中,G称为生成器。CRC编码算法实现:1、选择生成多项式G,其最高次方为r,即r+1位的二进制位串2、计算D·2r,即在数据D后面补r个0,构成d+r位的位串3、按模2除法求(D·2r/G)的余数R,即:4、从D·2r中模2减去R,得到新的数据T,即加了CRC的帧三、实验要求1、设置一个d位的数据D,r+1位的多项式G,生成CRC码,并把此CRC码作为数据帧进行传送。2、编写两个子程序,分别实现CRC编码和CRC解码,在主函数中对子程序进行调用。解码子程序应能根据解码情况判断出接收到的数据帧是否出错,并给出提示。3、要求分别以正确和错误的数据来检验此检错程序。4、将编写程序的源代码加必要注释和程序运行结果一起填入实验报告中。提示:1、编写程序时数据直接用二进制数,可能用到位操作符^(异或)和<<(左移)。2、在设置错误的编码时,错误位数最好不要超过r+1位。四、程序代码:#include<stdio.h>intcrc(intD[],intG[],intx,intn);//该函数用于进行异或运算voidmain(){ while(1){ intd,g,n,m,result; g; intD[100],M[100],G[100],i,j;//D[]余数,M[]被除数 printf("请输入生成器长度:"); scanf("%d",&g); printf("\n请输入生成器为(空格输入):\n"); for(j=0;j<=g-1;j++)//将输入的除数按位存储在数组G[j] scanf("%d",&G[j]); printf("请选择你要进行的操作:\n1,CRC编码\n2,CRC解码:\n"); scanf("%d",&n); if(n==1) { printf("请输入原始数据长度="); scanf("%d",&d); printf("\n请输入原始数据为(空格输入):\n"); for(i=0;i<=d-1;i++)//将输入的数据按位存储进数组M[i] scanf("%d",&M[i]); for(i=0;i<=d-1;i++) D[i]=M[i];//将数组M[i]中的数据赋值给D[i] for(i=d;i<=d+g-2;i++)//将数据左移r位,后面补r+1个零 D[i]=0; crc(D,G,d+g-1,g);//调用函数,进行异或运算 for(i=0;i<=d-1;i++) D[i]=D[i]+M[i];//将g-1位的余数加到数据后面,即为发送方发送的完整数据 printf("\n发送方发送的数据为:"); for(i=0;i<=d+g-2;i++) printf("%d",D[i]);printf("\n"); } if(n==2) { printf("请输入你要进行校验的数据长度="); scanf("%d",&m); printf("请输入要进行校验的数据为(空格输入):\n");=1\*GB3①通过这个实验,对CRC编码解码的算法有了初步了解.并且学会了CRC编码解码的算法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论