网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共5页,可阅读全部内容。
  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.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程序流程图

计算机网络课程设计p16

6程序代码分析

#includestdio.h

#includestdlib.h

intmain(intargc,char*argv[])

{

//定义并初始化变量

FILE*fp; //fp为指向文件的指针

charch; //ch用于存放在文件中读到的一个字符

unsignedcharchr1,chrh; //chr1用于存放低四位,chrh用于存放高四位

unsignedintcount=0,checksum=0,chr=0; //count计数用于保存读到字符的次数,checksum用于存放校验和,chr用于存放高八位和低八位数

unsignedlongsum=0; //sum用于存放十六进制数根据算法累加得到的结果

//检查输入命令格式

if(argc!=2) //如果命令行输入的参数个数不为2

{

printf(Pleaseinputcommand:CheckSuminput_file); //打印提示语句

return-1; //结束程序,返回-1

}

//打开文本文件

if((fp=fopen(argv[1],r))==NULL) ////以读形式打开文件,若返回的指针为空,则退出程序

{

printf(Fileca

文档评论(0)

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

赶紧 下载啊啊啊啊

1亿VIP精品文档

相关文档