计算机网络课程设计报告

计算机网络课程设计报告

ID:6316200

大小:538.98 KB

页数:30页

时间:2018-01-10

计算机网络课程设计报告_第1页
计算机网络课程设计报告_第2页
计算机网络课程设计报告_第3页
计算机网络课程设计报告_第4页
计算机网络课程设计报告_第5页
资源描述:

《计算机网络课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机网络课程设计报告2012年7月2日30目录1.CRC检验码…………………………………………………………31.1题目描述…………………………………………………………31.2需求分析…………………………………………………………31.3算法设计…………………………………………………………31.4功能实现…………………………………………………………62.RIP协议………………………………………………………………72.1题目描述…………………………………………………………72.2需求分析………………………

2、…………………………………72.3算法设计…………………………………………………………82.4功能实现…………………………………………………………133.滑动窗口……………………………………………………………153.1题目描述…………………………………………………………153.2需求分析…………………………………………………………153.3算法设计…………………………………………………………163.4功能实现…………………………………………………………224.课程设计总结………………………………………

3、………………245.重要程序清单………………………………………………………251.CRC检验码301.1题目描述课本P105页3-07:要发送的数据为1101011011,采用CRC的生成多项式是P(C)=X^4+X+1,试为该数据添加CRC码,并验证他的正确性,改动CRC码最后一位,验证他的正确性。1.2需求分析CRC循环冗余检验是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。上题即是要求编程实现CRC算法并利用其验证发送数据的正确性。循环冗余校验码(CRC)的

4、基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2的R次方除以生成多项式G(x)得到的余数就是校验码。1.3算法设计

5、1.3.1CRC码的生成步骤1、将x的最高幂次为R的生成多项式G(x)转换成对应的R+1位二进制数。  2、将信息码左移R位,相当与对应的信息多项式C(x)*2的R次方 3、用生成多项式(二进制数)对信息码做除,得到R位的余数。4、将余数拼到信息码左移后空出的位置,得到完整的CRC码。 【例如】题给的生成多项式是P(C)=X^4+X+1。5位的原始报文为1101011011,求编码后的报文。  解:1、将生成多项式P(C)=X^4+X+1转换成对应的二进制除数10011。2、此题生成多项式有5位(R+

6、1),要把原始报文P(x)左移4(R)位变成11010110110000  3、用生成多项式对应的二进制数对左移4位后的原始报文进行除运算。1.3.2生成步骤分析30步骤1中的转换过程可以由用户完成,即程序可以只提供二进制序列的输入(这样方便实现)。1.3.3算法具体实现1)核心函数CRC定义一个函数名为stringCRC(stringdata,stringdiv)的函数,其参数分别为发送数据data和除数div(都有用户输入,由主函数传值)2)函数分布实现strings1,s2,temp;intle

7、n;len=div.length();//下面的for循环式补0操作,相当于上述步骤2for(inti=0;i=div.length()){s2="";//中间变量,用来村粗每次异或的结果s1=data.substr(0,len);//求子串data=data.substr(len,data.length()-len);//下面是具体的一对一的异

8、或运算操作for(inti=0;i<(int)div.length();i++){if(s1[i]==div[i])//相同s2.append("0");elses2.append("1");//相异}//将s2前面0去掉,因为前面的0无意义,去掉后再继续下次异或while(s2.length()!=0)30{temp=s2[0];if(temp.compare("0")!=0)break;s2=s2.substr(1,s2.length()-1);}d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。