计算机网络实验报告.doc_第1页
计算机网络实验报告.doc_第2页
计算机网络实验报告.doc_第3页
计算机网络实验报告.doc_第4页
计算机网络实验报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

计算机网络实验报告指导老师班级姓名 学号日期二一年十二月二十五日星期六下午6时29分 By SuperZhao实验 编写一个循环冗余码的生成和验证程序实验目的了解循环冗余校验码(CRC)的生成与验证。实验要求可以模拟发送信息,噪声加入,检测验证,信息重发的过程。实验原理 循环冗余校验码又称为多项式码,是一种线性分组码,广泛应用在计算机网络和数据通信中。循环码除了具有线性分组码的一般性质外,还有一个显著的特点就是循环性,即循环码中任一码字循环左移(右移)一位或多位所形成的码字仍旧是循环码中的码字。 基本思想:将位串看成是系数为0或1的多项式。一个k位的帧看作是一个k-1次多项式的系数列表。 例如:110001 多项式的算数运算:以2为模来完成。加法没有进位,减法没有借位。加法和减法都等同于异或。实验分析实验的关键在于生成循环冗余校验码,生成多项式需要自己约定,可以用包含0或1 的字符串表示。求CRC,需要计算校验和。计算校验和算法如下:第一步 若生成多项式G(x)的阶是r, 将信息位左移r位,得xrM(x);第二步,作模2除法,求余数r(x);余数由下式获得: 第三步,根据T(x)=xrM(x)+r(x),求出码字。程序运行过程及结果:1.原来的帧及获得的循环冗余校验码。2.是否加入噪音,画面。3.加入噪音,出现错误。4.没有加入噪音,接收方收到正确的帧。程序中以字符串表示传输的帧位串。附录:(程序源代码) 程序编写运行环境:VC6.0/*循环冗余校验码实验 * *星期四 2010年11年11日 */#include #include #include #include #include #include int btoi(char *str);int btoi(char* str);int mod2div(int m,int m_len,int g,int g_len);int getCrc(char *c1);int test(int tx);void send();void wait();void main()printf(*CRC experiments*n);char c132 = 1101011011;/c1为原来的帧char c232;int temp;int tempWithNoise;printf(原来的帧为:%sn,c1);temp = getCrc(c1);/获取循环冗余校验码itoa(temp,c2,2);/c2是增加校验位后得到的循环冗余校验码printf(要传输的帧(增加校验位)后位串对应实数:%dn,temp);printf(增加校验位后得到要传输的帧位串:%sn,c2);system(pause);while(1)system(cls);printf(*CRC experiments*n);printf(要传输的帧位串对应实数:%dn,temp);printf(增加校验位后得到要传输的帧位串:%sn,c2);send();printf(是否加入噪音?(y/n)n);/是否加入噪声if(getch() = y)tempWithNoise = temp rand()%2;/用随机数来模拟噪声elseprintf(没有加入噪音n);send();wait();test(temp);break;send();wait();if(test(tempWithNoise)break;elseprintf(请按任意键重发.n);getch();system(PAUSE);/生成器多项式的位串char *gx = 10011;/约定生成多项式对应位串int gx_len = strlen(gx);int gx_int = btoi(gx);int getCrc(char c132)/c1是原来的帧,函数功能是获取循环冗余校验码int temp_int;temp_int = btoi(c1);temp_int = temp_int=0;-i,+j)ans += int(pow(2,j)*(stri - 0);/(stri - 0)可以将字符形式的整数转换成十进制的整数return ans;int mod2div(int m,int m_len,int g,int g_len)/m是被除数,m_len是被除数位串长度,g是除数长度,g_len是生成器位串的长度/用模2除法求出余数int remain;remain = m;int r_len = m_len;int g_len1 = m_len;char rem_str32;g = g1;-g_len1;itoa(remain,rem_str,2);r_len = strlen(rem_str);while(r_len=g_len);printf(模2余数:%sn,rem_str);return remain;void send()printf(传输中.);Sleep(300);printf(.);Sleep(300);printf(.);Sleep(300);printf(.);Sleep(300);printf(.n);Sleep(300);void wait()printf(接收方收到帧!正在校验.);Sleep(300);printf(.);Sleep(300);printf(.);Sleep(300);printf(.);Sleep(300);printf(.n);Sleep(300);int test(int tx)/如果检测到发生了错误,打印信息,返回1;否则打印信息,返回0char str_temp32;itoa(tx,str_temp,2);if(0 = mod2div(tx,

温馨提示

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

评论

0/150

提交评论