欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

计算机网络差错检验实验报告

  • 资源ID:62539446       资源大小:21.67KB        全文页数:5页
  • 资源格式: DOCX        下载积分:20积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要20积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

计算机网络差错检验实验报告

精选优质文档-倾情为你奉上实验一 差错检验1 问题分析和需求定义1.1问题分析网络上的信号最终都是通过物理传输线路进行传输的,如果高层没有采用差错控制,那么物理层传输的数据信号是可能有差错的。为了保证数据的正确性,在物理层的基础上设计了数据链路层。设计数据链路层的主要作用就是在原始的、有差错的物理传输线路的基础上,采用差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,以向网络层提供高质量的服务。1.2需求定义目前,进行差错检测和差错控制的主要方法是:在需要传输数据分组后面加上一定的冗余信息,这样的冗余信息通常都是通过对所发送的数据应用某种算法进行计算而得到的。数据的接收方在接收到数据后进行同样的计算再与收到的冗余信息进行比较,如果结果不同就说明出现了差错,此时可以要求发送方重传该组数据,以此达到保证数据准确性的目的。 在本实验中我们需要完成网际校验和算法的程序实现,通过此程序对发送数据计算和添加校验码,对接收数据进行差错检测。2 算法的原理以及实现思路2.1 算法的原理在需要传输的数据包中,加上一定的冗余信息。这些冗余信息通常都是对所发送的数据应用某种算法进行计算而得到的校验码。接收端:对接收到的信息(包含收到的冗余信息)用同一种算法(协议)进行计算后,得到结果为0的校验码,说明收到了正确的数据,否则收到的数据出现差错, 并将此数据报丢弃。“A,B,C,.,Y,Z”分别表示一系列8位组,用A,B这样形式的字节组来表示A*256+B的整数,那么该字节序列的反码和就可以通过以下两种表达式之一给出: A,B +' C,D +' . +' Y,Z A,B +' C,D +' . +' Y,Z A,B +' C,D +' . +' Y,Z A,B +' C,D +' . +' Z,0 其中,+' 表示反码算数运算相加,第一个公式适用于偶数个字节的校验和,第二个公式适用于计算奇数个字节的校验和。 注:把被校验的数据按16位进行累加,若有进位,将进位加至结果最低位,得16位累加和,对16位累加和求反码,得到校验码 。2.2 算法的实现思路校验和计算算法主要分为三个步骤:数据文件的输入、校验和的计算和校验结果的输出。其中,主要是数据的输入和校验和的计算。2.2.1 数据的输入在本实验中输入的数据是以字符形式存储的,而校验和的计算则要采用数据形式,所以从文件读取数据时,都要进行字符到数据的相互转换。2.2.2 校验和的计算本实验中采用端循环进位算法,将数据按一定数位进行累加,最高位的进位则循环加入最低位。待校验的数据按16位一个单位相加,采用端循环进位,最后对所得的数据取反码。因为待校验的数据是以字节方式分隔的,所以为了方便,将16位的数据分成高8位和低8位分别处理。2.2.3 校验和结果的输出使用输出语句进行输出。3 算法实现的正确性测试运行程序,得到CheckSum.exe文件。运行jyh.txt文件,之后得出其校验和。将得出的校验和写入jyh.txt文件中,再次运行文件,若得到的校验和为0,则无错误发生。4 差错测试方案如3中所实现,如果经过多次测试,算法的程序实现正确,则可以人工模拟出传输错误的数据,让接收方检测出差错。5 程序流程图计算机网络课程设计p166 程序代码分析# include<stdio.h># include<stdlib.h>int main(int argc,char * argv) /定义并初始化变量 FILE *fp;/fp为指向文件的指针 char ch;/ch用于存放在文件中读到的一个字符 unsigned char chr1,chrh;/chr1用于存放低四位,chrh用于存放高四位 unsigned int count=0,checksum=0,chr=0;/count计数用于保存读到字符的次数,checksum用于存放校验和,chr用于存放高八位和低八位数 unsigned long sum=0;/sum用于存放十六进制数根据算法累加得到的结果 /检查输入命令格式if(argc!=2)/如果命令行输入的参数个数不为2 printf("Please input command: CheckSum input_file");/打印提示语句 return -1;/结束程序,返回-1 /打开文本文件if(fp=fopen(argv1,"r")=NULL)/以读形式打开文件,若返回的指针为空,则退出程序 printf("File cannot be oppened!n");/打印报错语句 return -2;/结束程序,返回-2 /从文本文件中读取字符printf("Output Type: data-sumn");/打印提示语句 while(1)/进入一个判断条件永远为真的循环 if(ch = fgetc(fp) != EOF)/从文件读取一个字符,判断是否到达文件末尾 count+;/count计数+1 if(ch != ' ')/判断读的字符是否是空格 /将字符转换成相应整型值if(ch>='0' && ch<='9') ch -= '0' elseif(ch>='a' && ch<='f')ch = ch-'a'+10;elseif(ch>='A' && ch<='F')ch = ch-'A'+10;/计算8字节数的累加值if(count%2 = 1)/如果count为奇数 chrh = ch<<4; /将ch的数据左移4位放入chrh中 ,即将一个高四位赋值给chrh else/如果count为偶数 chr1=ch&0x0f;/将ch和0x0f进行位与运算,去掉ch的高四位,赋值给chr1 chr=chrh|chr1;/将chrh和chr1进行位或运算,也就是将chrh的高四位和chr1的低四位合并为一个八位赋给chr if(count%4 = 2)/如果count与4取余得2 sum += chr<<8;/将chr左移八位赋值给sum ,即将一个高八位余sum相加 else/如果count与4取余不是2 if(count%4=0)/如果count与4取余为0 sum += chr;/将sum和chr相加赋值给sum ,即将一个低八位与sum相加 printf("%x-%lx ",chr,sum);/以整型的十六进制形式打印chr的值,以长整形的十六进制形式打印sum的值 else/如果读到的字符是空格 count-;/count减一 else/如果读到文件末尾 break;/结束循环 fclose(fp); /关闭资源checksum=(long(sum>>16)+long(sum&0x0000ffff); /将校验和由32位折合成16位,取反checksum=checksum&0x0000ffff;printf("nCheckSum: %4x",checksum);/输出校验和结果 return 0;/结束程序 7 差错检查过程及其结果分析7.1 测试数据本次实验共准备了三组数据。1. abcd 1234 5678 bcde2. bdf1 5a34 d223 dabc3. fcb1 a3bd 4aec 4dab7.2 程序运行方式本实验中程序在命令行下执行,win+R输入cmd打开命令行窗口,进入程序所在的目录,输入check_sum infile,其中check_sum为程序名,infile为数据文件名,需要注意的是文件应和程序在同一目录下。7.3 运行结果第一组数据打印输出为:2ea7第二组数据打印输出为:3af9第三组数据打印输出为:c6f87.4 结果分析将7.3中得到的校验和添加到各组数据的末尾,再次运行程序,打印输出的数据如下:第一组:0第二组:0第三组:0.7.5 遇到的问题及解决方案1. 最初运用cmd 运行jyh文件时打不开解决方案:注意到要和chencksum.exe文件存放在同一文件夹中2. 没有弄清计算原理解决方案:与同学讨论掌握了校验和及算法中的计算原理专心-专注-专业

注意事项

本文(计算机网络差错检验实验报告)为本站会员(29)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!