加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 OSPF协议完全实现

OSPF协议完全实现.pdf

OSPF协议完全实现

tom165
2013-05-07 0人阅读 举报 0 0 暂无简介

简介:本文档为《OSPF协议完全实现pdf》,可适用于IT/计算机领域

���� 协议完全实现          莫艾  著       闵春平 等译                          中国电力出版社内容提要本书提供了OSPF实现的设计文档、具体移植工作的指导说明以及两个移植实例的用户使用手册�还介绍了OSPF实现的数据流和主要的数据结构。通过考查OSPF实现�本书对协议的细节进行了深入分析�同时还对如何优化一个OSPF实现的方法进行了阐述。图书在版编目�CIP�数据OSPF协议完全实现�美�莫艾著�闵春平等译北京�中国电力出版社�ISBNⅠO…Ⅱ①莫…②闵…III计算机网络路由选择通信协议ⅣTN中国版本图书馆CIP数据核字��第号著作权合同登记号图字�号本书英文版原名�OSPFCompleteImplementationPublishedbyarrangementwithAddisonWesleyLongman,IncAllrightsreserved本书由美国培生集团授权出版中国电力出版社出版、发行�北京三里河路号http:wwwinfopowercomcn�汇鑫印务有限公司印刷各地新华书店经售*年月第一版年月北京第一次印刷毫米×毫米开本印张千字定价元版权所有翻印必究�本书如有印装质量问题�我社发行部负责退换�译者序OSPF�开放最短路径优先�是Internet路由选择协议的一种�最初是为替代RIP协议而开发的�目前已成为构建大型网络最常用的路由选择协议。本书与《INTERNET路由选择协议OSPF剖析》构成关于OSPF协议的一套书。为了与Internet的价值传统“基本协议一致并提供工作代码”保持一致�本书提供了一套完整的OSPF实现�并遵守《INTERNET路由选择协议OSPF剖析》中阐述的OSPF协议规范。书中的OSPF实现采用C��语言写成�可移植性好�而且提供了两个可移植实例���OSPF路由守护进程ospfd�用于Linux操作系统���OSPF路由仿真器ospfsim�可在linux或windows下运行。与《INTERNET路由选择协议OSPF剖析》一书一样�本书主要针对那些对因特网路由实践方面感兴趣的人们�数据通信专业的学生�TCP�IP网络管理员�协议设计人员�路由协议软件开发人员�以及其它致力于TCP�IP网络的设计、开发和管理的专业人员。另外�通过本书所附的练习�软件工程师人员也可以在修改并扩充一个相当庞大复杂的实时软件系统过程中获得相当的经验。因为本书还包含一个运行中的OSPF实现�它能够将一个Linux工作站转换为一个路由器�或者一个OSPF网络仿真器�因此本书对那些从事与OSPF网络管理�设计和监控相关的非程序设计专业人员很有参考价值。本书写作时�认为读者已具有一定的OSPF基础知识。同时�读者也可以从本书的姐妹篇《INTERNET路由选择协议OSPF剖析》一书中获得OSPF协议规范以及相关的基础知识�或者通过阅读OSPF协议规范书来获得关于OSPF的基础知识。本书正文提供了OSPF实现的设计文档�具体移植工作的指导说明以及两个移植实例的用户使用手册。OSPF实现的数据流和主要的数据结构也在本书中给予阐述说明�并在必要时辅以代码块说明。本书由灯芯工作室组织翻译�闵春平、李建成、钱言琮、叶媛媛、赵亮、周子坤等完成了本书的翻译工作�孙兆林负责全书的审校工作。由于译者水平有限�时间仓促�书中错误与疏漏之处在所难免�恳请广大读者批评指正。灯芯工作室年月前言本书是《OSPF�AnatomyofanInternetRoutingProtocol》�译注�的姊妹篇。为了与Internet的价值传统“达成一致�代码可用”保持一致�本书提供了一个完整的OSPF实现�并遵守其姊妹篇中阐述的OSPF协议规范。书中的OSPF实现采用C语言写成�可移植性好�而且提供了两个可移植实例�①OSPF路由选择守护进程ospfd�用于Linux操作系统�②OSPF路由选择仿真器ospfsim�可在linux或Windows下运行。本书正文提供了OSPF实现的设计文档、具体移植工作的指导说明以及两个移植实例的用户使用手册。OSPF实现的数据流和主要的数据结构也在本书中给予阐述说明�并在必要时辅以代码块说明。OSPF完全实现的代码附在本书附带的光盘内。通过考查OSPF实现�本书对协议的细节进行了深入分析。同时本书还对优化OSPF实现的方法进行了阐释。书中所附习题供有兴趣的读者用来练习修改一个相当庞大的实时分布式软件系统�并从中获取经验。另外值得一提的是�本人从多年编写网络软件的实践中还学习到一点�那就是做任何一种事情都不止一种方法。因此读者绝对不要认为本书所提供的OSPF协议实现方法是惟一可行的方法。实际上�读者从本书中应该学到的是实现网络软件的一些新技术和OSPF路由选择选择协议的优点。读者对象与《OSPF�AnatomyofanInternetRoutingProtocol》一书一样�本书主要针对那些对Internet路由选择感兴趣的人们�数据通信专业的学生、TCPIP网络管理员、协议设计人员、路由选择协议软件开发人员以及其他致力于TCPIP网络的设计、开发和管理的专业人员。另外�通过本书所附的练习�软件工程设计人员也可以在修改并强化一个相当庞大且复杂的实时软件系统的过程中获得很多经验。因为本书还包含一个工作中的OSPF实现�它能够将一个Linux工作站转换为一个路由器或者一个OSPF网络仿真器�因此本书对那些从事与OSPF网络管理、设计和监控相关的非专业程序设计人员也很有参考价值。本书写作时�认为读者已具有一定的OSPF基础知识。同时�读者也可以从本书的姊妹篇《OSPF�AnatomyofanInternetRoutingProtocol》一书或OSPF协议规范中获得译注�该书中文版《OSPF协议剖析》已由中国电力出版社引进出版。详情请访问�http:wwwinfopowercomcon。相关的基础知识。本书的组织结构读者可采用多种方式阅读本书。那些仅对如何使用ospfd完全实现或对OSPF仿真器感兴趣的读者�可以只阅读第���和章�对于那些需要将OSPF移植到其他操作系统的读者�只需集中阅读第章以及第�章中所描述的两个样例移植即可。本书的其余章节�即第章和第~章�详细叙述了OSPF完全实现及其一些扩展功能的实现。阅读这些章节�要求读者具有一定的C编程语言基础。这部分的每一章都讨论一个OSPF功能�例如LSA泛洪。每一章的开始首先对OSPF规范作一必要的阐明�描述OSPF实现所提供的新功能、提高效率的措施�然后通过考查代码样例来深入说明其功能实现。本书图�是《OSPF�AnatomyofanInternetRoutingProtocol》中图的拷贝�它贯穿在本书的所有例子中。本书每章结尾的练习用来强化该章所讨论的观点�并允许读者向OSPF实现中添加功能。本书没有提供练习的答案�实际上那些标记为bug补丁的习题的答案可以在OSPF实现的源代码中找到�http:wwwospforgsoftwareospfd。第章�功能说明。该章介绍了OSPF的功能以及已经由附带软件实现的和还未实现的扩展功能。另外�本章对两个移植样例进程做了简要介绍�即简要介绍了用于Linux操作系统的路由选择守护进程ospfd和OSPF路由选择仿真器ospfsim这两个软件系统。第章�安装指导。本章阐述了如何在Linux操作系统上安装OSPF路由选择守护进程ospfd�以及如何在Linux和Windows下安装OSPF路由选择仿真器ospfsim。第章�软件体系结构。本章首先详细介绍了OSPF完全实现的软件体系结构�包括输入、输出和贯穿OSPF实现的数据流。然后简单介绍了主要的数据结构及它们之间的相互关系。本章最后阐述了所附光盘中的源文件组织结构。第章�移植指导。该章展示了如何将OSPF软件移植到各种操作环境中去。本章还对OSPF完全实现与操作系统之间的软件层次作了解释。另外�移植时的一些特殊考虑�如如何处理各种类型的CPU芯片等�也在本章予以介绍。第章�构造模块。本章描述了OSPF软件使用的各种实用函数。这些实用函数是与软件一起提供的�包括AVL树、Patricia树以及优先级队列。另外�计时器、日志消息和IP路由表的实现也在本章给予说明。第章�链路状态数据库。本章描述了OSPF实现中链路状态数据库的组织结构�以及对链路状态数据库的各种操作�如LSA的老化等。第章�创建LSA。本章叙述了OSPF实现如何创建LSA�包括每一个特定OSPFLSA类型的构建。然后讨论了LSA创建的速率限制、LSA的更新以及从链路状态数据库中如何泛洪LSA。第章�相邻路由器维护。本章描述了OSPF相邻关系的发现和保持过程。同时本章还对相邻路由器之间链路状态数据库的初始同步化以及接口状态变化的处理作了介绍。第章�泛洪。这一章详细介绍了通过可靠泛洪算法来保证OSPF链路状态数据库的持续同步机制。第章�OSPF层次结构。本章首先讨论了OSPF区边界认证的限制。然后介绍了跨越区边界泛洪路由选择信息的方法�以及外部路由导入OSPF路由选择域的方法。第章�路由选择计算。本章介绍了生成IP路由表表项的基本的OSPF路由选择计算�接着阐述了触发路由表计算的各种事件�以及能够加速路由选择计算的各种链路状态数据库操作。路由表计算包括区间、区内以及外部路由的计算。第章�MOSPF实现。本章介绍了OSPF组播扩展功能的实现�即MOSPF实现�包括MOSPF与IGMP的交互作用、groupmembershipLSA的生成以及MOSPF路由选择计算。第章�配置和监控。本章主要阐述OSPF完全实现是如何进行配置的�具体叙述了配置参数的完整列表�以及动态改变某一配置参数时所引起的相应后果。同时本章还介绍了配置请求的处理机制和关闭OSPF软件时的文明退出过程。第章�一个Linux路由选择守护进程。本章介绍了OSPF软件的第一个移植样例�即用于Linux操作系统的OSPF路由选择守护进程ospfd。ospfd路由选择守护进程与标准的routedRIP路由选择守护进程相类似�后者大多用在基于unix的操作系统上。如果希望用OSPF代替RIP�则应该尝试使用ospfd。另外�本章对ospfd的配置、监控和调试方法也作了介绍。第章�OSPF仿真器。本章介绍了OSPF实现的另外一个移植样例�即运行在Linux和Windows下的OSPF路由选择仿真器ospfsim。同时本章还介绍了配置并运行该仿真的方法�它是一种基于窗口的Tk�Tcl应用程序。书后还有一些附录。附录A是OSPF软件发行版中所包含程序的UNIX风格的用户手册页。OSPF软件生成的日志消息见附录B。读者感兴趣的OSPF软件扩展项目列表见附录C。附录D提供了GNUGPL�GeneralPublicLicense�通用公共许可证��其中涵盖OSPF完全实现。附录之后是按字母顺序排列的参考文献。例如在正文中�引用对应参考文献中的第条。bug修正本书所提供OSPF软件是Release版。尽管笔者已努力测试了尽可能多的功能�但是毫无疑问�软件中仍有许多bug。如果发现了bug�可以向ospfdbugsospforg发送bug报告。同时可以访问http:wwwospforgsoftwareospfd获得bug修正�但有时修正由于种种原因并不那么及时�请读者谅解。源代码版权GNUGPL版权所有�第二版�。该项内容在附录D中给出�并涵盖本书中的OSPF完全实现。致谢首先要感谢本书的技术审校人员�是他们及时而细致的审稿使本书更趋完美。他们是RobertMinnear�PatrickWMurphy�MatthewGNaugle�MarkJSPaton和JohnWStewart�III等。还要感谢在此书编写过程中一直给我帮助的AddisonWesley的编辑们�KarenGettman�MaryHarrington�SarahWeaver和KarenWernholm。同时感谢TimKinch为本书绘制了所有的插图。同时还想感谢那些自愿参加OSPF软件测试的人们�因为早期我们的软件有很多bug�但是他们仍然耐心而热情地对软件进行了测试。他们是�FrediAmmann�EdoardoCalia以及NewHampshire大学InterOperability实验室的KimoJohnson�RayLaRocca�WilliamLenharth和DanutMaftei。特别地�我要感谢Kimo�如果没有他对该项目所进行的彻底、创造性的测试�该项目恐怕永远不能完成。另外�特别感谢我的妻子SonyaKeene�感谢她为本书设计了封面�并在本书写作的几年中给予我的极大的耐心。JM目录前言第章功能说明功能特点实现机制OSPF路由选择守护进程�ospfdOSPF路由选择仿真器申明第章安装指导ospfd安装�只适用于Linux�安装OSPF路由选择仿真器ospfsim安装OSPF源第章软件体系结构数据流主要数据结构文件组织第章移植指导移植概述系统接口API移植注意事项第章构造模块第章链路状态数据库链路状态数据库基本原理数据库操作LSA列表LSA老化DoNotAgeLSA第章创建LSA支撑程序routerLSANetworkLSA:SpfIfc::nlorig()接收自创建的LSA创建延迟刷新LSALS序列数滚动提前老化第章相邻路由器维护相邻路由器状态机发现相邻路由器数据库交换接口状态变化第章泛洪数据结构接收链路状态更新分组:SpfNbr::recvupdate()泛洪LSA:LSA::flood()接收确认:SpfNbr::recvack()重发LSA:SpfNbr::rxmtupdate()建立更新分组第章OSPF层次结构区边界准则实现区路由选择实现外部路由选择第章路由选择计算路由选择计算触发�OSPF::rtsched()intraAS路由选择计算�OSPF::fullcalculation()多路径计算处理LSA到达ASBR的路由外部路由�INrte::runexternal()第章MOSPF实现MOSPF数据结构IGMPv实现传播组成员身份�GroupmembershipLSA路由选择计算缓存维护和MOSPF�IGMP交互与其他路由选择协议的交互第章配置和监控全局参数OSPF接口参数密码验证密钥区参数区路由聚合虚链路参数非广播网络上的相邻路由器回送地址和附属主机外部路由文明退出重新读取完整的配置�见Mydocument�主机路由侦听监控接口第章一个Linux路由选择守护进程ospfd配置改变配置语法动态重配置文明关闭监控ospfd操作申告实现细节第章OSPF仿真器软件体系结构仿真控制器进程�ospfsim一个仿真的OSPF路由器�ospfdsim进程监控和调试附录A参考手册附录BOSPFD日志消息B配置和管理消息B错误报告消息B信息类消息B停机消息附录C开发项目附录DGNUGPL参考文献功能说明第章功能说明本章介绍性地列出了所附的OSPF�OpenShortestPathFirst�开放最短路径优先�实现的主要功能特点。同时也对OSPF实现的两个移植样例�即Linux下的OSPF路由选择守护进程与OSPF路由选择仿真器作了简要的介绍。功能特点本书的OSPF源代码完全实现了OSPFv规范RFC。所有的OSPF接口类型广播型�broadcast�、点到点型�pointtopoint��包括编号和未编号的�、非广播多路存取型�NBMA�nonbroadcastmultiaccess�、点到多点型�pointtomultipoint�以及虚链路�virtuallink�都在OSPF实现中得到支持。同时OSPF实现也完全支持OSPF各种区划分�这些区包括存根区�stubarea�、区边界�areaborder�上可配置的聚合�aggregation�以及虚链路。在配置控制下�任意多的外部路由都能够通过ASexternalLSA�AS�AutonomousSystem�自治系统�LSA�Linkstateadvertisement�链路状态通告�导入。当存在多个等代价路径�equalcostpath�通往某一个目的地址时�这些路径都会被发现�并被试图装入系统的IP�InternetProtocol�路由表�routingtable��见节�。LSA内非零TOS�TypeofService�服务类型�值的度量值�metric�将被正确解析�parse��但是会忽略度量值本身。附录C的RFC中提到的所有配置参数都是可以动态配置的�同样OSPFMIB内所有与RFC功能性质有关的可写MIB�ManagementInformationBase�管理信息库�变量也都是可以动态配置的。但有一个例外�即可配置参数RFCCompatibility�它总是被置为false�见节�。所有的配置参数都可以动态配置�也就是说配置的改变会马上在OSPF执行中生效�并尽可能小地导致中断发生。例如�可以改变一个接口的OSPF区ID号�OSPFAreaID�。当发生这种情况时�接口状态将发生切换�从而该接口上的相邻路由器�neighbor�之间第章将重新建立邻接关系�adjacency�。参见第章中关于本OSPF完全实现对各种配置变化响应的行为的完整描述。一个文明关闭进程�gracefulshutdownprocedure�也在本OSPF完全实现中得到实现。直接退出时�OSPF完全实现会首先清除自己生成的所有LSA�然后终止其所有的相邻关系�neighborrelationship�。上述处理将减少其他OSPF路由器的链路状态数据库的大小�并

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/49

OSPF协议完全实现

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利