




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 课程设计目的 12 课程设计要求13相关知识14课程设计分析45程序清单及注释76运行结果及分析87 参考文献91 课程设计目的 在普通使用的网络协议中都设置了校验和项以保存冗余信息,例如ipv4、icmpv4、igmpv4、icmpv6、udp 和tcp等等。网络上的信号最终都是通过物理传输进行传输线路进行传输的,如果高层没有采用差错控制,那么物理层传输的数据信号是可能有差错的。为了保证数据的正确性,在物理层的基础,计了数据层。设计数据链路层的主要作用就是在原始的、有差错的线路改进成逻辑上无差错的数据链路,以向网络层提供高质量的服务。本课程设计主要通过一个简单例子使学生了解网络协议
2、中校验和的计算过程,以及设置校验和的作用。 目前,进行了差错检测和差错控制的主要方法是:在需要传输的数据分组后面加上一定的冗余信息通常都是通过对所发送的数据应用某种算法进行计算而得到的。数据的接收方在接收到数据后进行同样的计算再与收到的冗余信息进行比较不,如果结果不同说明出现了差错,此时可以要求发送方重传该组数据,以此达到保证数据准确性的目的。2 课程设计要求根据前面介绍的算法,编制程序为给定数据计算校验和。(1)、以命令行形式运行:check_sum infile其中check_sum为程序名,infile为输入数据文件名。 (2)、输出:数据文件的校验和。3 相关知识1 一些编码技术可以提
3、高校验和的计算速度(1)延迟进位法这种方法在主要的累加循环结束之后再把进位累加进和值。其实现方式就是用32位的累加器获得16位校验和,这样溢出就产生在高16位上。这种方法避免了累加器中进位传感器机构的设置,但是它要求的容量是原来的累加器容量的两倍,因此它更多地依赖于硬件条件。(2)反向循环法这种方法可以减少由循环而产生的负荷,有效地展开内部的累加循环,把循环过程中的一系列加法命令复制下来。这种技术通常可以节省大量的时间,但是程序的逻辑设计会比较复杂。(3)合并数据拷贝法计算校验和以及读入数据都需要将数据从内存的一个位置转移到另一个位置,这样会占用内存总线的带宽,而内存总线的传输效率是提高校验和
4、计算速度的瓶颈,尤其是对于某些机器(如一些简单的慢速的微型机)来说,这一问题尤为严重。为了解决这个问题,可以把数据读入的过程与校验的过程合二为一,也就是在读入数据的同时计算校验和,这样就可以省去一次数据移动的过程,从而提高校验和的计算速度。2 计算校验和有很多数学方法可以用来提高校验和的计算速度,下面我们将就此展开讨论。(1)交换性与结合性因为校验和主要考虑被校验数据中所包含字节数量的是奇数还是偶数,所以校验和的计算可以以任意顺序进行,甚至可以把数据进行分组后再计算。例如,用a、b、c、d,y,z分别表示一系列八位组,用a,b这样形式的字节来表示a*256+b的整数,那么16位校验和就可以通过
5、以下形式给出:a,b+c,d+y,z 1a,b+c,d+z,0 2在这里,+代表1补数加法,即将前面的16位校验和按位取反。1可以以(a,b+c,d+j,0+(0,k+y,z) 3的形式进行计算。(2)字节顺序的自主性打破被校验数据中的字节顺序仍可以计算出正确的16位校验和。例如,我们交换字节组中两字节的顺序,得到b,a+d,c+z,y 4所得到的得结构与1式是相同的(当然结果也是要进行一次反转的)。为什么会是这样呢?我们发现两种顺序获得的进位是相同的,都是从第15位到第0位进位以及从第7位到第8位进位。这也就是说,交换字节位置只是改变高低位字节的排列顺序,但并没有改变它们的内在联系。因此,无
6、论底层的硬件设置中对字节的接收顺序如何,校验和都可以被准确地校验出来。例如,假设校验和是以主机序(高位字节在前低位字节在后)计算的数据帧,但以网络序(低位字节在前高位字节在后)存放在内存中。每一个16位的字中的字节在传送过程中都交换了顺序,在计算校验和之后仍会先交换位置再存入内存,这样就与接受到的原本以网络序存储的数据帧中的校验和项保持一致了。(3)并进行计算某些机器的字处理长度是16位的倍数,这样可以提高它的计算速度。由于加法所具有的结合性,我们没有必要按照顺序对每个字节进行累加。相反,我们可以利用这一特点对它们进行并行累加。并行地计算校验和只是增加了每次累加的信息长度。例如,在一个323位
7、的机器上,我们可以一次增加4个字节,即a,b,c,d+。计算结束后再把累加和“折叠”起来,把一个32位的数值变为16位,这样产生的新的进位也要循环累积起来。此外,在此仍不考虑字节顺序的问题,我们可以用d,c,b,a+或b,a,d,c+;这样的顺序来计算校验和,最终再通过交换16位校验和中的字节序来得到正确的值。这些改变顺序的方法都是为了让所有的偶数字节进入一个校验和字节,所有的奇数字节进入一个校验和字节。3 示例下面将通过一个简单的例子来演示通过上述的几种方法所得到的校验和的情况16位按字节累加“正常”顺序交换顺序字节0/1:00 0100010100字节2/3:f2 03f20303f2字节
8、4/5:f4 f5f4f5f5f4字节6/7:f6 f7f6f7f7f6- -合计1:2dc 1f02ddf01f2dcdc f0ddf0f2dc进位:1 221- -合计2:dd f2ddf2f2dd最终结果:dd f2ddf2dd f232位按字节累加“正常”顺序交换顺序字节0/1/2/3:0001f203010003f203f20100字节4/5/6/7:f4f5f6f7f5f4f7f6f7 f6 f5f4-合计1:0f4f7e8fa0f6f4fbe80fbe8f6f4进位:000前半段:f4f7f6f4fbe8后半段:e8fafbe8f6f4-合计2:1ddf11f2dc1f2dcdd
9、f1f2dcf2dc进位:111-合计3:ddf2f2ddf2dd最终结果:ddf2ddf2ddf24课程设计分析校验和的计算过程主要分为三个步骤:数据文件的输入,校验和的计算和校验结果的输出。其中,主要的是数据的输入和校验和的计算过程。1.数据的输入方式输入数据可能是以字符形式存储的,而校验和的计算则要采用数据形式,所以在从文件读取数据时,都要进行字符到数据的相互转换。1)将读入的ascii码转化为相应的整型变量。if(ch=0&=a&ch=a&ch0xff|lowbyte0xff)0 /高8位或低8位中的任何一方产生了溢出(进位)lowbyte+=(highbyte8); /低字节加上高字
10、节超过8位的进位highbyte=highbutr&0xff; /清除高字节的进位highbyte+=(lowbyte8); /高字节加上来自低字节的进位lowbyte=lowbyte&0xff; /清除低字节的进位3 程序流程图图2-1给出了一个流程的参考方案程序开始,初始化 ch,count,sum,checksum 从文件读取一个字符 ch=eof? ch= ch转换为相应的8位数据,count+ count偶数? ch低4位送入chr低四位 ch低4位送入chr高4位得到chr 值 将32位sum折叠到16位 求sum反码并输出 结束 (count/2)%2=1? 得到sum chr和
11、sum低8位相加 chr和sum高8位相加 y y y y n n n n 图2-1 相关扩展的流程图5程序清单及注释#include#includevoid main(int argc, char *argv)/指针数组作为主函数参数,用于函数带参数入/定义并初始化变量file *fp;char ch;unsigned char chrl,chrh;unsigned int count=0,checksum=0,chr=0;unsigned long int sum=0;/打开文件argv1if(fp=fopen(d:jiaoyan.txt,r)=null)printf(nn file ca
12、nt be opened);exit(1);printf(nnthe type of output:data-sumnn);/从txt文件读取字符,并进行数据处理while(1)if(ch=fgetc(fp)!=eof)count+;if(ch!= )if(count%12=0)printf(n); /将字符转换成相应的整形变量if(ch=0&ch=a&ch=a&ch=f)ch=ch-a+10; /计算8字节数的累加值,将奇数位累加到长整形sum的158位,偶数位累加到低80位/这样就避免了数据个数为奇偶的处理操作if(count%2=1)chrh=ch4;elsechrl=ch&0x0f;c
13、hr=chrh|chrl;if(count%4=2)sum+=chr16)checksum=(long(sum16)+long(sum&0x0000ffff);checksum=checksum&0x0000ffff;/结果输出printf(nnsum:%lx-checksum:%x,sum,checksum);printf(nnsource:argc=%d,targv=%sn,argc,argv1); fclose(fp); 6 运行结果及分析分析:在调试程序的过程中,我遇到了不少的问题,比如在d盘没有新建一个文本文档时,这时系统会提示“内存不能为read”,而在d盘新建了一个文件夹后,就会
14、显示上图所示的结果。由于该程序比较短,所以实现的结果就比较简单。后来还发现计算checksum时出了一点点小错误,但是经过改正得到了解决。程序运行结果如下:在d盘下建立的jiaoyan.txt文档的内容如下:7 参考文献1 宋凯、刘念主编计算机网络清华大学出版社,2 吴功宜等著计算机网络课程设计人民邮电出版社 莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿
15、莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿
16、蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇
17、蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈
18、薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇袃羁蒆蚀蝿羀薈袆肈罿芈蚈羄羈莀袄袀羇蒃蚇螆肇薅葿肅肆芅蚅羀肅蒇蒈羆肄蕿螃袂肃艿薆螈肂莁螂肇肁蒃薄羃肁薆螀衿膀芅薃螅腿莈螈蚁膈薀薁肀膇芀袆羆膆莂虿袂膅蒄袅螈膅薇蚈肆芄芆蒀羂芃荿蚆袈节蒁葿螄芁膁蚄螀芀莃薇聿艿蒅螂羅艿薇薅袁芈芇螁螇莇荿薄肅莆蒂蝿羁莅薄薂袇莄莄螇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国船舶金融行业发展分析及发展前景与趋势预测研究报告
- 2025-2030中国船用电子领域行业市场现状供需分析及投资评估规划分析研究报告
- 安全知识文化墙施工方案
- 2025-2030中国自动喷漆枪行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国脑出血治疗行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国脂肪族减水剂市场营销策略探讨与前景运营规划研究报告
- 电梯井道承台施工方案
- 2025-2030中国聚四氟乙烯活塞行业市场现状分析及竞争格局与投资发展研究报告
- 2025-2030中国耐力板行业市场深度调研及前景趋势与投资研究报告
- 2025-2030中国羽毛球拍行业市场现状供需分析及投资评估规划分析研究报告
- 四年级下册英语教案:Unit 4 There are seven days in a week-Lesson 19人教精通版
- 英语人教新起点(一起)四年级下册-Unit 3 Lesson 2 Travel plans教学设计
- 精选四川大学SCI期刊分级方案
- 【高中地理课件】2022-2023学年高中地理人教版(2019)选择性必修1 构造地貌的形成 航拍之旅课件
- 《植物生理学》课件第三章+植物的光合作用
- 项目2三菱变频器的运行与操作ppt课件(PPT 68页)
- GB∕T 26281-2021 水泥回转窑热平衡、热效率、综合能耗计算方法
- 集装箱吊装方案(共5页)
- 电子公章模板
- rsa加密算法PPT学习教案
- 消防安全宣传培训记录
评论
0/150
提交评论