- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
差错检验实验报告
实验一 差错检验
班级:计科2班 学号:201108030244 姓名:肖艳 完成日期:2014年3月24日
实验名称 实验一 差错检验 类别:实验 实验分析 问题描述: 用网际校验和算法进行差错检测
设计目的: 理解和掌握差错检测的一般方法;
深刻理解协议的概念;
掌握网际校验和算法的工作原理.
实验要求: 完成网际校验和算法的程序实现;
对算法进行简要分析;
运行程序,对发送数据计算和添加校验码;
运行程序,对接收数据进行差错检测
实验原理: 在需要传输的数据包中,加上一定的冗余信息。这些冗余信息通常都是对所发送的数据应用某种算法进行计算而得到的校验码。接收端:对接收到的信息(包含收到的冗余信息)用同一种算法(协议)进行计算后,得到结果为0的校验码,说明收到了正确的数据,否则收到的数据出现差错, 并将此数据报丢弃。“A,B,C,...,Y,Z”分别表示一系列8位组,用[A,B]这样形式的字节组来表示A*256+B的整数,那么该字节序列的反码和就可以通过以下两种表达式之一给出:
[A,B] + [C,D] + ... + [Y,Z]
[A,B] + [C,D] + ... + [Z,0]
其中,+ 表示反码算数运算相加,第一个公式适用于偶数个字节的校验和,第二个公式适用于计算奇数个字节的校验和。 #includestdio.h
#includestdlib.h
void main(int argc,char *argv[])
{
FILE *fp;
char ch;
unsigned char chr1,chrh;
unsigned int count=0,checksum=0,chr=0;
unsigned long sum=0;
if(argc!=2)
{
printf(please input command:CheckSum input_file);
return;
}
if((fp=fopen(argv[1],r))==NULL)
{
printf(File cannot be opened!);
return;
}
printf(Output Type:data--sum\n);
while(1)
{
if((ch=fgetc(fp))!=EOF)
{
count++;
if(ch!= )
{
if(ch=0ch=9)
ch-=0;
else
{
if(ch=ach=f)
ch=ch-a+10;
else
{
if(ch=Ach=F)
ch=ch-A+10;
}
}
if(count%2==1)
chrh=ch4;
else
{ chr1=ch0x0f;
chr=chrh|chr1;
if(count%4==2)
sum+=chr8;
else
{
if(count%4==0)
sum+=chr;
}
printf(%x--%lx ,chr,sum);
}
}
else
count--;
}
else
break;
}
if(sum16)
checksum=~(long(sum16)+long(sum0x0000ffff));
checksum=checksum0x0000ffff;
printf(\nCheckSum: %x,checksum);
fclose(fp);
}
实验结果:data--sum
c6—c600 b3—c6b3 87—14db3 db—14d20 aa—1f828
d5—1f8f5 40—238f5 bc—239b1 36—26fb1 53—27004
cd—33d04 b6—33dba 6a—3a7ba de—3a7ba b0—45898
bc—45954 35—48e54 d1—48f25 5d—4ec25 8e—4ecb3
bc—5a8b3 db—5a98e 5c—6058e ad—6063b eb—6f13b
b—6f146 c3—7b446 5d—7b4a3 5d—811a3 7d--81220
c—82020 b1—820d1
checksum:df26
实验结论:传送的数据出错
文档评论(0)