计算校验和程序_第1页
计算校验和程序_第2页
计算校验和程序_第3页
计算校验和程序_第4页
计算校验和程序_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1 第4章计算校验和程序 2 概述 为保证网络上数据传输的可靠性 在IP ICMP IGMP UDP和TCP等协议中都设置了校验和项 实际中使用的校验和算法是网际校验和算法 3 编程训练目的编程训练要求相关知识介绍程序设计分析扩展与提高 提纲 4 编程训练目的 掌握在给定的数据报格式条件下构造数据报并计算数据报的校验和的方法 加深对网络差错校验技术的理解掌握网际校验和算法原理与软件实现方法熟悉计算网际校验和的增量式计算法 5 编程训练目的编程训练要求相关知识介绍程序设计分析扩展与提高 提纲 6 编程训练要求 编写程序 计算自定义格式数据报的网际校验和 自定义的格式如下 程序要求以命令行方式运行 Checksuminputfileoutputfile其中 Checksum是程序名 inputfile是输入文件 该文件包含数据字段的内容 outputfile为输出文件 该文件保存封装完毕后的数据报 7 程序运行的参考界面 8 编程训练目的编程训练要求相关知识介绍程序设计分析扩展与提高 提纲 9 网际校验和算法 把检验和字段置0 把所有需要被校验的数据划分为16位一组的比特序列 然后对每16位的反码求和 结果取反 便得到校验和为了验证校验和的正确性 对所有的数据求反码和 如果结果全1 则表示校验结果正确 10 网际校验和算法特性 交换律和结合律字节顺序独立并行计算可以提高校验和计算速度的技术延迟进位循环展开数据读入与校验合二为一增量式更新 11 编程训练目的编程训练要求相关知识介绍程序设计分析扩展与提高 提纲 12 核心程序设计思路及实现 读入数据文件并构造数据报创建输入流 直接使用2进制的方式打开输入文件构造数据报缓冲区 给数据报赋值 ifstreamfInfile 创建输入文件流fInfile open argv 1 ios in ios binary 打开指定的输入文件 定义数据报缓冲区 缓冲区大小为4 wLen 其中4为数据报类型字段 长度字段及校验和字段的长度和 wLen为数据字段长度 unsignedchar pBuf newunsignedchar 4 wLen pBuf 0 unsignedchar 0 xab 给数据报类型字段赋值pBuf 1 unsignedchar wLen 给数据报长度字段赋值 unsignedshort pBuf 2 0 计算校验和之前 校验和字段先置为0fInfile read pBuf 4 wLen 根据输入文件填充数据报的数据字段fInfile open argv 1 ios in ios binary 打开指定的输入文件 计算校验和并把结果填入到数据报的校验和字段 unsignedshort pBuf 2 checksum calculating unsignedshort pBuf 4 wLen 13 核心程序设计思路及实现 续 计算校验和延迟进位法算法思想是 将进位累加的过程延迟到整个累加循环结束之后进行 从而提高计算速度实现 在32位的计算机上 把需要校验的数据按16位一组进行累加 结果存放在32位的累加器中 这样溢出位就保存在高16位上 全部累加结束后再把32位累加器中高16位累加到低16位上 那么低16位值的反码即为最终的校验和 14 核心程序设计思路及实现 续 输出完整数据报创建输出流 使用2进制的方式打开输出文件通过write 函数将存储在缓冲区的数据报一次性写入到输出文件 fstreamfOutfile 创建输出文件流 以2进制方式打开输出文件fOutfile open argv 2 ios in ios out ios binary ios trunc 将pBuf中的数据报写入输出文件fOutfile write char pBuf 4 wLen 15 编程训练目的编程训练要求相关知识介绍程序设计分析扩展与提高 提纲 16 扩展与提高 HC 修改前的头部校验和C 修改前的反码和HC 修改后的头部校验和C 修改后的反码和m 修改前的16位数值m 修改后的16位数值增量式更新法C

温馨提示

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

评论

0/150

提交评论