计算机通信网络课程实验报告循环冗余校验.docVIP

计算机通信网络课程实验报告循环冗余校验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机通信网络课程实验报告循环冗余校验.doc

计算机通信网络课程实验报告 实验三:循环冗余校验 班级: 姓名: 学号: 1 实验目的 熟悉VC开发环境,学习VC编程的基本步骤。 2. 写一个C程序,将实现CRC编码。此计画包含了两侧。第一个函数将会产生校验从原始数据和发电机。第二的会检查是否校验和是正确的。 2 实验环境 要求安装Window XP、Visual C++ 6.0、MSDN 3 实验原理 循环冗余校验(CRC)通常是用来编码错误检测。在CRC错误检查,传送设备的基础上计算出号码传送的数据。接收设备重复同一计算后传输。如果两个设备都得到同样的结果,故假定传播是无错误的。程序被称为冗余校验是因为每个传输不仅包括数据,另外,冗余值进行错误检查。 假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,既将g后加m个0,然后除以m阶多项式h(x),得到的(m-1)阶余项r(x)对应的二进制码r就是CRC编码。 h(x)可以自由选择或者使用国际通行标准,一般按照h(x)的阶数m,将CRC算法称为CRC-m,比如CRC-32、CRC-64等。 g(x)和h(x)的除运算,可以通过g和h做xor(异或)运算。比如将11001与10101做xor运算: ?????? 明白了xor运算法则后,举一个例子使用CRC-8算法求101001110100001的效验码。CRC-8标准的h(x) = x^8 + x^7 + x^6 + x^4 + x^2 + 1,既h是9位的二进制串111010101。? 经过迭代运算后,最终得到的r这就是CRC效验码。 4.实验要求 1.编码在C(用VB或MFC或其他代码将被拒绝)。 2.输入数据填补数据域、编码或支票CRC码在现场总线控制系统领域。 3.所有的信息都需要输入“0”或“1”。 4.插座程序所需的传输。 5 设计流程图 6 调试及结果分析 (1) 实验分析:图中客户/服务器已建立连接,等待客户输入数据 (2) 分析:图中连接已建立,客户输入信息码(图中和生成多项式(图中为1011), 客户端自己计算出字节数(图中为11) (3) 在服务器中输入生成多项式(图中为1011)如果服务器中的生成多项式与客户端的生成多项式一样,则系统提示为‘CRC is successful!’如果不一样则系统提示为‘CRC is not successful!’ 6 系统调试出现及解决的问题 本次实验的问题就是关于CRC的编程出现困难,只能通过上网查找资料再经多次修改后才运行成功。 7 实验小结 通过本次实验我进一步熟悉了VC开发环境和VC编程的基本步骤。熟悉了CRC编码。 附录: string crc_function(string m,string p) { string r(m.begin (),m.begin ()+p.size ()),q; m=m+string(p.size ()-1,0); string::size_type i=p.size(),N=m.size (),j,i1=p.size (); while(i=N) { q=; if(p[0]==r[0]) { for(j=0;ji1;j++) { q+=(r[j]-48)^(p[j]-48)+48; } r=q; } else { r.erase(0,1); r=r+m[i++]; } } coutrendl; return r; }

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档