计算机网络课设,计算校验和解答.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
目 录 摘 要 1 课程设计目的 1 2 课程设计要求 1 3 相关知识 1 4 课程设计分析 1 5 程序代码 1 6 运行结果与分析 1 7 参考文献 1 1 课程设计目的 校验和是用于验证数据传输正确性的一种方法。在网络体系结构的各层协议中, 很多网络协议都利用校验和来实现差错控制功能。本课程设计主要目的是通过完 成一个简单例子,了解网络协议中的校验和计算过程。 2 课程设计要求 根据校验和的算法,编写程序为给定数据计算校验和 以命令行形式运行: Checksum input_file 其中Checksum为程序名,input_file为输入数据文件名 2)输出内容:数据文件的校验和 相关知识 1校验和的概念 网络上的数据最终都是通过物理传输线路进行传输的,如果高层没有采用差错控制,那 么物理层传输的线路可能有差错。为了保证传输数据的正确性,在物理层的基础上设计 了数据链路层。设计数据链路层的主要目的就是在原始的,有差错的物理传输线路的基 础上,采用差错检测,差错控制和流量控制等方法。 目前,进行差错检测和控制的主要方法是:发送方在需要发送的数据后面增加一定的 冗余信息,这些冗余信息通常是通过对发送的数据进行某种算法计算而得到的。接收方 对接收数据进行同样的计算,然后与数据后面附加的冗余信息进行比较,如果比较结果 不同就说明在传输中出现了差错,并要求发送方重新传送该数据,以此达到确保数据准确 性的目的。在普遍使用的网络协议中,通常都设置了校验和字段以保存这些冗余信息,计算 这些校验和的算法,就是将被校验的数据按16位进行累加,然后取反码,如果数据字节长 度为奇数,则数据尾部补一个字节的0以凑成偶数。关于计算校验和算法的详细信息请参考 RFC1071. 2计算校验和 有很多数学方法可以提高校验和的速度。 交换性和结合性 因为校验和主要考虑被校验数据中所包含字节的数量是奇数还是偶数,所以校验和的计算可 以以任意顺序进行,甚至可以把数据进行分组后再计算。 例如,用A,B,C,D,……,Y,Z分别表示一系列八位组,用[a,b]这样的字节来表示a*256+b的整数,那么16位校验和就可以通过以下形式给出: [A,B]+’[C,D]+’……+’[Y,Z] [1] [A,B]+’[C,D]+’……+’[Z,0] [2] 在这里+’代表1补数加法,即将前面的16位校验和和按位取反。 [1]可以以 [A,B]+’[C,D]+’……+’[J,0]+’([0,K]+’……+’[Y,Z]) [3] 的形式进行计算。 字节顺序的自主性 打破被校验数据中的字节顺序仍可以计算正确的16位校验和。 例如,我们交换字节组中两字节的顺序,得到 [B,A]+’[D,C]+’……+’[Z,Y] 所得到的结构与[1]式是相同的(当然结果也是要进行一次反转的)。为什么会是这样呢?我们发现两种顺序获得的进位是相同的,都是从第15位到第0位进位以及从第7位到第8位进位。这也就是说,交换字节位置只是改变高低位字节的排列顺序但并没有改变他们的内在联系。因此无论底层的硬件设置中对字节的接收顺序如何,校验和都可以被准确地校验出来。例如,假设校验和是以主机序(高位字节在前低位字节在后)计算的数据帧,但以网络序(低位字节在前高位字节在后)存放在内存中。每一个16位的字中的字节在传送过程中都交换了顺序,在计算校验和之后仍会先交换位置再存入内存,这样就与接受到的原本以网络序存储的数据帧中的校验和项保持一致了。 并行计算 某些机器的字处理长度是16位的倍数,这样可以提高他的计算速度。由于加法所具有的 结合性,我们没有必要按照顺序对每个字节进行累加。相反,我们可以利用这一特点对他们进行并行累加。并行地计算校验和只是增加了每次累加信息的长度,例如,在一个32 位的机器上,我们可以一次增加4个字节,即【A,B,C,D】+...。计算结束后再把累加和“折叠”起来,把一个32位的数值变成16位,这样产生的新的进位也要循环累加起来。 此外,在此仍不需要考虑字节顺序问题,通过交换16位校验和中的字节序来得到正确的值。这些改变顺序的方法都是为了所有的偶数字节进入一个校验和字节,所有的奇数字节进入一个校验和字节。? 3一些编码技术可以提高校验和的计算速度 延迟进位法 这种方法在主要的累加循环结束之后再把进位累加进和值。? 其实现方式就是用32位的累加器获得16位校验和,这样溢出就产生在高16位上。这种方法避免了累加器中进位传感器机构的设置,但是它要求的容量是原来的累加器容量的两倍,因此它更多地依赖于硬件条件。 反向循环法 这种方法可以减少由循环而产生的负荷,有效地展开内部的累加循环,把循环过程中的一系列加

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档