ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:152KB ,
资源ID:1752164      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1752164.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(RIP协议设计--软件详细设计说明书.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

RIP协议设计--软件详细设计说明书.doc

1、 案卷号 日期 2014/7/4 <RIP协议设计> 软件详细设计说明书 作 者: 完成日期: 2014年7月3日 签 收 人: 签收日期: 修改

2、情况记录: 版本号 修改批准人 修改人 安装日期 签收人 目录 1 引言 1 1.1 编写目的 1 1.2 背景 1 1.3 定义 1 1.4 参考资料 1 2 程序系统的结构 1 3 程序1(标识符)设计说明 2 3.1 程序描述 2 3.2 功能 2 3.3 性能 2 3.4 输入项 2 3.5 输出项 2 3.6 算法 3 3.7 流程逻辑 3 3.8 接口 3 3.9 存储分配 3 3.10 注释设计 3 3.11 限制条件 3 3.12 测试计划 3 3.13

3、 尚未解决的问题 4 4 程序2(标识符)设计说明 4 1 引言 1.1 编写目的 了解RIP协议的原理和应用以及其实现机制,通过距离矢量算法来实现最短传输路径的路由选择。通过本次课程设计,可以对路由表的建立和路由信息的更新等有更直观和清晰的认识。适合于熟悉C++语言的人和开发改程序的编程人员和设计人员阅读。 1.2 背景 a. 系统名称:RIP协议设计; b. 项目提出者:冯健 c. 项目开发者:石东梅 d. 项目使用者:相关用户。 1.3 定义 水平分割(split horizon) 水平分割保证路由器记住每一条路由信息的来源,并

4、且不在收到这条信息的端口上再次发送它。这是保证不产生路由循环的最基本措施。 毒性逆转(poison reverse) 当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路。 触发更新(trigger update) 当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期。同样,当一个路由器刚启动RIP时,它广播请求报文。收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期。这样,网络拓扑的变化会最快地

5、在网络上传播开,减少了路由循环产生的可能性。 抑制计时(hold down timer) 一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,且当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。 D-V算(DISTANCE-VECTOR) 距离矢量(简称D-V)算法,周期性地将路由表信息的拷贝在路由器之间传送。当网络拓扑变化时,也会将更新信息及时传送给路由器。每一个路由器只能接收

6、到网络中相邻路由器的路由表,通过增加一个距离矢量数(例如一个跳数)来增大距离矢量,然后将更新的路由表信息再传送给相邻路由器。这种逐步过程发生在相邻路由器之间。 1.4 参考资料 a.谢希仁,《计算机网络(第五版)》.电子工业出版社,2008 b.闵应骅,计算机网络路由研究综述[J];计算机学报;2003年06期 c.苏湘玉,路由信息协议及重发布技术研究与实现;中国人民解放军国防科学技术大学;2002年 d.RFC1058;RFC1388;RFC2453 2 程序系统的结构 3 程序1(标识符)设计说明 从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲

7、是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。 3.1 程序描述 a.常驻程序模块 start_rip_daemon():rip的守护程序,调用gen_request_all(),broadcast_rip_packet(), pthread_create(),pthread_join()等函数,完成rip程序的主要功能部分 b.非常驻程序模块 send_rip_packet_to():使用数据报式套接字发送rip包到目的地址。可重入,顺序处理

8、 receive_rip_packet():接收rip包检查RIP包,并判断处理方式。可重入,顺序处理 handle_request():处理一个输入请求。可重入,顺序处理 handle_response():处理响应并更新路由表。可重入,顺序处理 update_routing_table():更新路由表可。重入 timer_routine():rip路由定时器。可重入 init_all():对获得的本地IP、RIP相应包、初始路由表进行初始化,并发处理 3.2 功能 该程序主要有以下功能: a. 初始化 获得的本地IP、对RIP报文、路由表进行初始化 b.发送

9、报文 将报文从本地序转化为网络序,使用数据报式套接字发送到目的地址 c.接收报文 将报文从网络序转换为本地序,并检查rip包是否有误,无误的话根据命令字节判断接下来要进行请求处理或是响应处理 d.处理一个请求报文 收到rip消息,判断数据字节是否为空,不为空则开始处理。处理分为整张路由表的请求响应,或者部分路由条目的请求处理。完成处理后将报文发出,做出响应 e.处理响应 收到一个响应报文后,进行相应的路由处理。然后重置rip包为响应报文,发出rip包并准备更新路由表 f.更新路由表 对于要删除的表项,若在垃圾删除超时时间内,则将相应条目置为无效,然后进行删除,否则增加删除表项

10、等待下次删除。如果有新的表项,则插入列表添加路由条目,由此更新路由信息 g.路由定时器 在广播时间间隔内则向相邻路由广播rip报文,并重置rip包为响应报文。 h.广播 利用UDP在特定端口(520)广播路由信息给相邻路由,如果报文发送错误则返回错误信息。 3.3 性能 a.过于简单,以跳数为依据计算度量值,经常得出非最优路由。 b.适用范围:度量值以16为限,适用于较小型网络,诸如校园网。 c.时间特性性:更新计时器30秒,无效计时器180秒和刷新计时器240秒。 d.安全性:接受来自任何设备的路由更新。无密码验证机制,默认接受任何地方任何设备的路由更行。不能防止恶意

11、的rip欺骗。 e.收敛性差,时间经常大于5分钟。 f.消耗带宽很大。完整的复制路由表,把自己的路由表复制给所有邻居,尤其在低速广域网链路上更以显式的全量更新 g.不支持无类ip地址和VLSM。 3.4 输入项 本程序在设计过程中并未用到输入项。 3.5 输出项 a.输出rip消息:输出rip消息的题目及内容 b.输出输出rip包:包含命令类型、版本号、当前路由条目、IP地址以及跳数 c.输出路由表:包含输出当前路由信息,包括目的地址,下一条IP地址以及跳数 3.6 算法 D-V算法 距离矢量(DISTANCE-VECTOR,简称D-V)算法(也称

12、BELLMAN-FORD 算法)周期性地将路由表信息的拷贝在路由器之间传送。当网络拓扑变化时,也会将更新信息及时传送给路由器。每一个路由器只能接收到网络中相邻路由器的路由表,就通过增加一个距离矢量数(例如一个跳数)来增大距离矢量,然后将更新的路由表信息再传送给相邻路由器。这种逐步过程发生在相邻路由器之间。 距离矢量算法的数学算法如下: 我们用D(i,j)来表示从实体i到j的最佳路由的Metric,i、j可以是系统中的任意一对实体,用d(i,j)来表示单个跳数的花费,也就是从i直接到j的花费,如果i与j不是直接相邻的,则d(i,j)为无穷大。这样任意两个实体间的最佳Metric可以表示如下:

13、 D(i,j)=0 对所有的i: D(i,j)=min [ D(i,j)+d(i,k)] i不等于k时 由于我们把非相邻两实体间的d(i,j)定义为无穷大,当表达式中k不是i的相邻主机或路由器时,D(i,j)永远不可能为最小,故我们也可以把k限定为与i相邻。由此我们可以得出一个基于这个数学模型的计算Metric的简单算法:实体i接收它的邻居们k发送给它的到目标主机j的距离评价,并加上d(i,j),在这里是通过i,k之间网络所需的cost 值,接下来i比较来自所需邻居的信息,并选择其中最小的。可以证明,在拓扑结构不变的情况下该算法在有限时间内收敛于正确的D(i,j)。

14、 距离矢量算法通过上述方法累加网络距离,并维护网络拓扑信息数据库。使用这种算法,路由器并不能知道整个网络的确切拓扑结构。 3.7 流程逻辑 开始 int main() inti_all() start_rip_daemon() gen_request_all() broadcast_rip_packet() print_rip_packet() receive_rip_packet() current_rip_mand=1 handle_response() handle_request() =2 reset_rip_packet() send_ri

15、p_packet_to() update_routing_table() send_rip_packet_to() 结束 3.8 接口 int main() init all() start_rip_daemon(0) broadcast_rip_packet() gen_request_all() receive_rip_packet() get_local_ip() reset_rip_packet() init_routing_table() handle_request () timer_routine() print_rip_packet()

16、 handle_response () update_routing_table() 3.9 存储分配 a. int型 #define RIP_VERSION 1 rip版本号1字节 #define RIP_REQUEST 1 rip命令类型为request 1字节 #define RIP_RESPONSE 2 rip命令类型为response 1字节 #define RIP_INFINITY 16 最大跳数16 #define RIP_PACKET_HEAD 4 rip包首部占4字节 #define ROUTE_MAX_ENTRY

17、 256 路由最大条目256字节 #define LOCAL_ROUTE_ENTRY 10 本地路由条目10条 #define ROUTE_VALID 1 路由有效则置为1 占一字节 #define ROUTE_UNVALID 0 路由无效则置为0 占一字节 #define RIP_CHECK_OK 1 rip包检查无误 #define RIP_CHECK_FAIL 0 rip包检查有误 #define BROADCAST_INTERVAL 10 广播间隔10s #define CLOCK_TIMEOUT 15 块超时15s #define GARBAGE

18、REMOVE_TIMEOUT 25 垃圾删除超时时间25s b. struct struct rip_entry{} rip路由条目(可重复) struct rip_packet{} rip包格式 struct route_entry{} 路由条目 c. char型 char * local_ip[LOCAL_ROUTE_ENTRY] 字符型数组储存本地路由条目 3.10 注释设计 说明准备在本程序中安排的注释,如: a. 加在模块首部的注释; b. 加在各分枝点处的注释; c. 对各变量的功能、范围、缺省条件等所加的注释; d. 对使用的逻辑

19、所加的注释等等。 3.11 限制条件 a. 本程序在linux环境下开发,在其他环境下运行可能会产生错误。 b. 本RIP协议最大跳数为15,16就不可达,所以只适用于较小型网络的选路,且内部网关协议 3.12 测试计划 测试的步骤包括模块测试、子系统测试、系统测试、验收测试(用户测试)和平行运行(新老系统一起运行)。 本软件采用单元测试,着重测试点主要包括五个方面: a.模块接口:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元:全局变量的定义和用法在各个模块中是否一致。 b.局部数据结构:仔细设计测试方案,以便发现局部数据说明、初始化、默认值等方面的错误。 c.重要的执行通路:设计测试方案硬盘内过来发现由于错误的计算、不正确的比较或不适当的数据流而造成的错误。 d.出错处理同路:要能遇见出错误的条件,并且设置适当的处理错误的通路。 e.边界条件:软件常常在它的边界上失效,当我们使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值得测试方案。 3.13 尚未解决的问题 a. 只实现了获取本地路由更新路由的功能能,未能实现从网络上获取数据包更新路由的功能。 b.由于是在linux环境下开发,受本身环境的影响,很难联通网络是两台主机互通。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服