《计算机网络》计算校验和课程设计.docVIP

《计算机网络》计算校验和课程设计.doc

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

目 录 一.课程设计的目的和意义 1 1.1课程设计的目的 1 2.2课程设计的意义 1 二.程设计的内容和要求 2 2.1课程设计的内容 2 2.2课程设计的要求 2 三、课程设计的相关技术 2 3.1 计算校验和 2 3.1.1 交换性与结合性 2 3.1.2 字节顺序的自主性 3 3.1.3 并进行计算 3 3.2 一些编码技术可以提高校验和的计算速度 4 3.2.1延迟进位法 4 3.2.2反向循环法 4 3.2.3合并数据拷贝法 4 四.课程设计过程 5 4.1 数据的输入方式 5 4.2 校验和的计算 5 4.3 程序流程图 7 五.相关扩展 8 5.1 主要的实现过程 8 5.2 程序流程图 9 六.编程实现 10 6.1 程序源代码 10 七.程序的调试及分析 13 八.课设计小结 14 九.参考文献 15 一.课程设计的目的和意义 1.1课程设计的目的 网络上的信号最终都是通过物理传输线路进行传输的,如果高层没有采用差错控制,那么物理层传输的数据信号是可能有差错的。为了保证数据的正确性,在物理层的基础上设计了数据链路层。设计数据链路层的主要作用就是在原始的、有差错的物理传输线路的基础上,采用差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,以向网络层提供高质量的服务。本课程设计主要通过一个简单例子使学生了解网络协议中校验和的计算过程,以及设置校验和的作用。 目前,进行差错检测和差错控制的主要方法是:在需要传输ude数据分组后面加上一定的冗余信息,这样的冗余信息通常都是通过对所发送的数据应用某种算法进行计算而得到的。数据的接收方在接收到数据后进行同样的计算再与收到的冗余信息进行比较,如果结果不同就说明出现了差错,此时可以要求发送方重传该组数据,以此达到保证数据准确性的目的。 在普遍使用的网络协议中都设置了校验和项以保存这些冗余信息,例如Ipv4、ICMPv4、IGMPV4、UDP和TCP等等。 2.2课程设计的意义 《计算机网络课程设计》是计算机网络课程的一个延续,是计算机网络工程专业的一门专业实践课,其主要内容是使用C++实现理论课讲授的网络技术,如校验和法的验证等。课程设计所涉及的工作过程主要包括熟悉网络知识的原理,逻辑设计,使用C++编码实现,调试和分析等。通过本课程设计,使学生全面了解和掌握计算机网络课程上讲述的相关原理,并提高使用C++解决相关问题的能力。该课程设计能够提高学生网络工程的应用能力,可以提高分析问题和解决问题的能力和团队协作的能力。 二.程设计的内容和要求 2.1课程设计的内容 计算校验和的算法称为网际校验和算法,简单来说,就是把被校验的数据按16位进行累加,然后取反码。若数据字节长度为奇数,则在数据尾部补一个字节的0以凑成偶数。关于计算校验和算法更详细的信息请参考RFC 1071。 2.2课程设计的要求 根据前面介绍的算法,编制程序为给定数据计算校验和。 (1)以命令行形式运行:check_sum infile 其中check_sum为程序名,infile为输入数据文件名。 (2)输出:数据文件的校验和。 三、课程设计的相关技术 3.1 计算校验和 有很多数学方法可以用来提高校验和的计算速度,下面我们将就此展开讨论。 3.1.1 交换性与结合性 因为校验和主要考虑被校验数据中所包含字节数量的是奇数还是偶数,所以校验和的计算可以以任意顺序进行,甚至可以把数据进行分组后再计算。 例如,用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] 的形式进行计算。 3.1.2 字节顺序的自主性 打破被校验数据中的字节顺序仍可以计算出正确的16位校验和。 例如,我们交换字节组中两字节的顺序,得到 [B,A]+’[D,C]+’……+’[Z,Y] [4] 所得到的得结构与[1]式是相同的(当然结果也是要进行一次反转的)。为什么会是这样呢?我们发现两种顺序获得的进位是相同的,都是从第15位到第0位进位以及从第7位到第8位进位。这也就是说,交换字节位置只是改变高低位字节的排列顺序,但

文档评论(0)

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

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

1亿VIP精品文档

相关文档