在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → OSPF协议完全实现

OSPF协议完全实现

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:13.63M
  • 下载次数:17
  • 浏览次数:167
  • 发布时间:2020-07-19
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
OSPF协议已成为目前广域网和内联网采用最多、应用最广泛的路由选择协议之一。本书由该协议的开发者编著,具有很高的权威性。书中以大量的实例详细介绍了具体实现的软件体系结构,深入阐述了OSPF的功能。主要内容包括OSPF层次结构、移植指导、IP路由表、链路状态数据库、路由选择计算、MOSPP实现、配置和监控以及主机路由侦听等。    本书适合TCP/IP网络管理员、协议设计者和网络应用的开发者阅读。
译者序 osPF(开放最短路径优先)是lη nternet路由选择协议的一种,最初是为替代RIP协 议而开发的,目前已成为构建大型网络最常用的路由选择协议。 本书与《 NTERNET路由选择协议○SPF剖析》构成关于OSPF协议的一套书。为 了与 Internet的价值传统“基本协议一致并提供工作代码”保持一致,本书提供了一套完 整的○SPF实现,并遵守《 NTERNET路由选择协议OSPF剖析》中阐述的OSPF协议规 范。书中的○sPF实现釆用C十十语言写成,可移植性好,而且提供了两个可移植实例 (1)OSP路由守护进程—— ospfd,用于 Linux操作系统;(2)OSPF路由仿真器 ospf sim,可在nux或 windows下运行。 与巛 INTERNET路由选择协议OSPF剖析》一书一样,本书主要针对那些对因特网 路由实践方面感兴趣的人们:数据通信专业的学生,TCP/|P网络管理员,协议设计人 员,路由协议软件开发人员,以及其它致力于TCP/|P网络的设计、开发和管理的专业 人员。另外,通过本书所附的练习,软件工程师人员也可以在修改并扩充一个相当庞大 复杂的实时软件系统过程中获得相当的经验。 因为本书还包含一个运行中的OsFF实现,它能够将一个 Linux工作站转换为一个路 由器,或者一个OSPF网络仿真器,因此本书对那些从事与OSPF网络管理,设计和监 控相关的非程序设计专业人员很有参考价值。 本书写作时,认为读者已具有一定的OSPF基础知识。同时,读者也可以从本书的 姐妹篇《 INTERNET路由选择协议○SPF剖析》一书中获得OSPF协议规范以及相关的 基础知识,或者通过阅读○SPF协议规范书来获得关于○SPF的基础知识 本书正文提供了OSPF实现的设计文档,具体移植工作的指导说明以及两个移植实 例的用户使用手册。○sPF实现的数据流和主要的数据结构也在本书中给予阐述说明,并 在必要时辅以代码块说明。 本书由灯芯工作室组织翻译,闵春平、李建成、钱言琮、叶媛媛、赵亮、周子坤等 完成了木书的翻译工作,孙兆林负责全书的审校工作。由于译者水平有限,时间仓促, 书中错误与疏漏之处在所难免,恳请广大读者批评指正 灯芯工作室 2001年11月 前 本书是《OSPF: Anatomy of an Internet Routing Protocol》(译注1)的姊妹篇。为了 与 Internet的价值传统“达成一致,代码可用”保持一致,本书提供了一个完整的OSPF 实现,并遵守其姊妺篇中阐述的○SPF协议规范。书中的○SPF实现采用C++语言写成, 可移植性好,而且提供了两个可移植实例:①OSFF路由选择守护进程—。sp£α,用 于Linuⅹ操作系统;②OSPF路由选择仿真器sp£sim,可在inux或 Windows 本书正文提供了○SPF实现的设计文档、具体移植工作的指导说明以及两个移植实 例的用户使用手册。OSPF实现的数据流和主要的数据结构也在本书中给予阐述说明,并 在必要时辅以代码块说明。○SPF完全实现的代码附在本书附带的光盘内。 通过考查OSPF实现,本书对协议的细节进行了深入分析。同时本书还对优化OSPF 实现的方法进行了阐释。书中所附习题供有兴趣的读者用来练习修改一个相当庞大的实 时分布式软件系统,并从中获取经验。 另外值得一提的是,本人从多年编写网络软件的实践中还学习到一点,那就是做任 何一种事情都不止一种方法。因此读者绝对不要认为本书所提供的OSPF协议实现方法 是惟一可行的方法。实际上,读者从本书中应该学到的是实现网络软件的一些新技术和 OSPF路由选择选择协议的优点。 读者对象 与《OSPF: Anatomy of an Internet Routing Protocol》一书一样,本书主要针对那些 对 Interne路由选择感兴趣的人们:数据通信专业的学生、TCPP网络管理员、协议设 计人员、路由选择协议软件开发人员以及其他致力于TCP/P网络的设计、开发和管理的 专业人员。另外,通过本书所附的练习,软件工程设计人员也可以在修改并强化一个相 当庞大且复杂的实时软件系统的过程中获得很多经验。 因为本书还包含一个工作中的OSPF实现,它能够将一个 Linux工作站转换为一个 路由器或者一个OSPF网络仿真器,因此本书对那些从事与OSPF网络管理、设计和监 控相关的非专业程序设计人员也很有参考价值。 本书写作时,认为读者已具有一定的OSPF基础知识。同时,读者也可以从本书的 姊妹篇《○OSFF: Anatomy of an Internet Routing Protocol》-书或OSPF协议规范中获得 译注1:该书中文版《OSPF协议剖析》已由中国电力出版社引进出版。详情请访问:htt:/w infopower. com.con。 相关的基础知识 本书的组织结构 读者可采用多种方式阅读本书。那些仅对如何使用。spfd完全实现或对OSPF仿真 器感兴趣的读者,可以只阅读第1,2,13,14和15章;对于那些需要将OSPF移植到 其他操作系统的读者,只需集中阅读第4章以及第14,15章中所描述的两个样例移植即 可 本书的其余章节,即第3章和第5~12章,详细叙述了OSPF完全实现及其一些扩展 功能的实现。阅读这些章节,要求读者具有一定的C++编程语言基础。这部分的每一章 都讨论一个OSPF功能,例如LSA泛洪。每一章的开始首先对OSPF规范作一必要的阐 眀,描述○SPF实现所提供的新功能、提高效率的措施,然后通过考査代码样例来深入 说明其功能实现。本书图7.2,是《OSPF: Anatomy of arη Internet Routing Protocol》中图 6.6的拷贝,它贯穿在本书的所有例子中。本书每章结尾的练习用来强化该章所讨论的观 点,并允许读者向OsPF实现中添加功能。本书没有提供练习的答案,实际上那些标记 为bug补丁的习题的答案可以在OSPF实现的源代码中找到http://www.ospf.org/ software/ospfdo 第1章,功能说明。该章介绍了OSPF的功能以及已经由附带软件实现的和还未实 现的扩展功能。另外,本章对两个移植样例进程做了简要介绍,即简要介绍了用于 Linux 操作系统的路由选择守护进程。spfd和OSPF路由选择仿真器。sP£sim这两个软件系 统 第2章,安装指导。本章阐述了如何在 Linux操作系统上安装○SPF路由选择守护 进程spfd,以及如何在 Linux和 Windows下安装OsPF路由选择仿真器。 spf_sim 第3章,软件体系结构。本章首先详细介绍了○SPF完全实现的软件体系结构,包 括输入、输出和贯穿○SPF实现的数据流。然后简单介绍了主要的数据结构及它们之间 的相互关系。本章最后阐述了所附光盘中的源文件组织结构。 第4章,移植指导。该章展示了如何将○SPF软件移植到各种操作环境中去。本章 还对OSPF完全实现与操作系统之间的软件层次作了解释。另外,移植时的一些特殊考 虑,如如何处理各种类型的CPU芯片等,也在本章予以介绍。 第5章,构造模块。本章描述了OSPF软件使用的各种实用函数。这些实用函数是 与软件一起提供的,包括AVL树、 Patricia树以及优先级队列。另外,计时器、日志消 息和|P路由表的实现也在本章给予说明 第6章,链路状态数据库。本章描述了○sPF实现中链路状态数据库的组织结构 以及对链路状态数据库的各种操作,如LSA的老化等 第7章,创建L$A。本章叙述了OSPF实现如何创建LSA,包括每一个特定 OSPF LSA 类型的构建。然后讨论了LsA创建的速率限制、LSA的更新以及从链路状态数据库中如 何泛洪LSA。 第8章,相邻路由器维护。本章描述了OSPF相邻关系的发现和保持过程。同时本 章还对相邻路由器之间链路状态数据库的初始同步化以及接口状态变化的处理作了介 绍 第9章,泛洪。这一章详细介绍了通过可靠泛洪算法来保证OSPF链路状态数据库 的持续同步机制。 第10章,OSPF层次结构。本章首先讨论了OSPF区边界认证的限制。然后介绍了 跨越区边界泛洪路由选择信息的方法,以及外部路由导入○SPF路由选择域的方法 第11章,路由选择计算。本章介绍了生成P路由表表项的基本的OSPF路由选择 计算,接着阐述了触发路由表计算的各种事件,以及能够加速路由选择计算的各种链路 状态数据库操作。路由表计算包括区间、区内以及外部路由的计算。 第12章,M○sPF实现。本章介绍了OSPF组播扩展功能的实现,即 MOSPF实现, 包括 MOSPF与IGMP的交互作用、 group-membership-LSA的生成以及 MOSPF路由选择 计算。 第13章,配置和监控。本章主要阐述OSPF完全实现是如何进行配置的,具体叙述 了配置参数的完整列表,以及动态改变某一配置参数时所引起的相应后果。同时本章还 介绍了配置请求的处理机制和关闭OSPF软件时的文明退出过程。 第14章,一个 Linux路由选择守护进程。本章介绍了OSPF软件的第一个移植样例, 即用于 Linux操作系统的○SPF路由选择守护进程。spfd。。sp£d路由选择守护进程与 标准的 routed riP路由选择守护进程相类似,后者大多用在基于unix的操作系统上。 如果希望用OSFF代替R|P,则应该尝试使用。sp£d。另外,本章对。spfα的配置、监 控和调试方法也作了介绍。 第15章,oSFF仿真器。本章介绍了OSPF实现的另外一个移植样例,即运行在 Linux 和 Windows下的OSPF路由选择仿真器。sp£_sim。同时本章还介绍了配置并运行该仿 真的方法,它是一种基于窗口的Tk/Tcl应用程序。 书后还有一些附录。附录A是OSPF软件发行版中所包含程序的UNX风格的用户 手册页。OSPF软件生成的日志消息见附录B。读者感兴趣的OSPF软件扩展项目列表见 附录C。附录D提供了 GNU GPL( General public license,通用公共许可证),其中涵盖 oSPF完全实现。附录之后是按字母顺序排列的参考文献。例如在正文中,引用[75]对应 参考文献中的第75条 bug修正 本书所提供○SPF软件是 Rel ease0.1版。尽管笔者已努力测试了尽可能多的功能, 但是毫无疑问,软件中仍有许多bug。如果发现了bug,可以向。sPfd-bugs@。sp£.。rg 发送bug报告。同时可以访问http://www.ospf.org/software/ospfd获得bug修 正,但有时修正由于种种原因并不那么及时,请读者谅解。 源代码版权 GNU GPL版权所有,第二版,1991.62。该项内容在附录D中给出,并涵盖本书中 的OSPF完全实现。 致谢 首先要感谢本书的技术审校人员,是他们及时而细致的审稿使本书更趋完美。他们 E Robert minnear, Patrick W. Murphy, Matthew G naugle, Mark J. S. Paton Fll John W Stewart,Ⅲ|等 还要感谢在此书编写过程中一直给我帮助的 Addison Wesley的编辑们: Karen Gettman, Mary harrington, Sarah Weaver和 Karen Wernholn。同时感谢 Tim Kinch为本 书绘制了所有的插图 同时还想感谢那些自愿参加OSPF软件测试的人们,因为早期我们的软件有很多 bg,但是他们仍然耐心而热情地对软件进行了测试。他们是: Fredi ammarη, Edoardo Caa以及 New Hampshire大学 InterOperability实验室的 Kimo johnson, Ray Larocca William Lenharth和 Danut mattei。特别地,我要感谢Kimo,如果没有他对该项目所进行 的彻底、创造性的测试,该项目恐怕永远不能完成 另外,特别感谢我的妻子 Sonya Keene,感谢她为本书设计了封面,并在本书写作的 几年中给予我的极大的耐心 目 录 前 第1章功能说明 1.1功能特点 1.2实现机制 4 1.3OSPF路由选择守护进程: ospfd. 14OSPF路由选择仿真器… 5申明 第2章安装指导 21osfd安装(只适用于 Linux) 22安装OSPF路由选择仿真器 ospf_ sim 23安装OSPF源 第3章软件体系结构 14 3.1数据流 …144 32主要数据结构 33文件组织.… 29 第4章移植指导 36 4.1移植概述 4.2系统接口 38 4.3AP 44移植注意事项 47 第5章构造模块 第6章链路状态数据库 6.1链路状态数据库基本原理 6.2数据库操作 63LSA列表 重■■重口面 86 64LSA老化 6.5 donotage L SA 94 第7章创建LSA 102 7.1支撑程序, 102 7.2 router-LSA∴ …107 7.3 Network-LSA: Spf Ifc: nl origo .112 7.4接收自创建的LSA 115 7.5创建延迟 117 7.6刷新LSA 119 7.7LS序列数滚动 119 7.8提前老化 120 第8章相邻路由器维护 122 8.1相邻路由器状态机 122 82发现相邻路由器 128 83数据库交换 131 84接口状态变化 134 第9章泛洪 139 9.1数据结构 140 9.2接收链路状态更新分组: Spf Nbr: recv update() 142 93泛洪LSA:LSA: flood() 150 94接收确认: Spf Nbr: c recv ack() 154 9.5重发LSA: Spf Nbr: rxmt update() 155 96建立更新分组 .158 第10章OSPF层次结构 161 10.1区边界准则 161 10.2实现区路由选择 10.3实现外部路由选择 170 第11章路由选择计算 184 111路由选择计算触发:OSPF: rtsched() .184 112 intra-AS路由选择计算:OSPF:fu|l_ cal culation() 186 11.3多路径计算 199 11.4处理LSA 199 11.5到达ASBR的路由 201 116外部路由:| Nrte:run external() 203 第12章 MOSPF实现 205 12.1 MOSPF数据结构 206 122 IGMPV2实现 208 123传播组成员身份: Group- membership-LSA 210 124路由选择计算 212 125缓存维护和 MOSPF一GMP交互 220 126与其他路由选择协议的交互 220 第13章配置和监控 222 13.1全局参数 223 132OSPF接口参数 224 133密码验证密钥 226 134区参数 重重■ 227 135区路由聚合 228 136虚链路参数 228 137非广播网络上的相邻路由器 229 138回送地址和附属主机 229 139外部路由 230 13.10文明退出 231 13.11重新读取完整的配置(见 My document) 234 13.12主机路由侦听 235 13.13监控接口 237 第14章一个 Linux路由选择守护进程 243 14.1 ospfd配置 .243 142改变配置语法 250 143动态重配置 252 144文明关闭 252 14.5监控spfd操作 252 146申告 253 147实现细节 254 【实例截图】
【核心代码】

标签:

实例下载地址

OSPF协议完全实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警