第17章OSPF路由协议的软件模拟与设计祥解.doc

第17章OSPF路由协议的软件模拟与设计祥解.doc

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17章OSPF路由协议的软件模拟与设计祥解.doc

第17章 OSPF路由协议的软件模拟与设计 Internet是一个分组交换网络,一个源节点应用程序所产生的数据分组要到达目的节点的对等层应用程序,通常要经过若干中间交换节点的转发中继,除非源和目的节点既在同一条数据链路上又在同一个子网中。如果转发设备是路由器或三层交换机,则设备中的数据链路层协议负责将待转发数据帧沿给定的数据链路传递到相邻的下一个节点,而网络层协议则要负责路由选择,即从可达目的节点的多条转发链路中选择出一条最佳的数据链路。路由有两种类型:静态路由和动态路由。静态路由即网络管理员手工配置的路由,这种路由有两个主要的缺陷:一个是不能对路由设备或链路的失效以及网络拓扑的变化做出反应,一个是不适合于具有复杂拓扑结构的大规模网络(可扩展性)。因此,当需要管理的网络不是小型网络时,就需要使用动态路由。动态路由是路由选择协议根据网络中所有路由器及其接口链路的当前状态自动计算生成的。路由选择协议能够自动检测路由设备及其接口链路的状态,能够自动适应网络拓扑的变化。 开放最短路径优先协议(OSPF,Open Shortest Path First)是一个基于链路状态算法、适合大型复杂网络、具有高效健壮特性的动态内部网关协议(工业上将路由器被称为网关)。“开放最短路径优先”的名字来源于以下事实:(1)这个协议基于Dijkstra的最短路径优先(SPF,Shortest Path First)路由算法。(2)“开放”反映了这个标准是开放的标准而不是一个私有的标准,这与一系列由特定厂商专有的或专用于某种特定网络的链路状态协议形成了对比,如Novell Netware的链路服务协议NLSP(Netware Link Servise Protocol)、IBM SNA的高级对等网络协议APPN(Advanced Peer-to-Peer Networking)和ATM的专用网间接口协议PNNI(Private Network-to-Network Interace)。作为开放和通用标准运动的主要倡议者——DEC公司为该协议做了最初的大部分工作,并把它作为了私有产品DECnet体系结构的一部分。 OSPF起源于1979年Bolt、Beranek和Newman公司为ARPANET开发的“新的实验性路由算法”以及随后ISO为OSI开发的IS-IS路由协议,是John T. Moy等人在1987年为克服RIP协议耗费带宽资源多、应对链路故障或拓扑变化收敛速度慢、适应树状拓扑结构难等缺点而开发的。OSPF最初的其它功能需求还包括: (1)采用更具描述性的路由度量值,以摆脱RIP协议网络直径最大15个路由器跳步的限制,以及可以将延时、带宽等其它路由度量因素考虑进来。 (2)可利用等代价的多条路径,以达到均衡负载等转发策略。 (3)具有路由选择的层次结构,以适应大规模复杂网络以及树状层次网络拓扑结构。 (4)支持更灵活的子网化技术,以适应变长子网掩码以及更进一步的无类别域间路由。 (5)保证安全性,避免伪路由器通过发布默认或其它路由而使路由选择过程陷入混乱。 (6)为保证可信性而区分内部和外部路由信息,内部路由信息可覆盖外部路由信息。 虽然OSPF还支持基于服务类型TOS的路由选择,允许为每个不同的TOS配置不同的链路度量值并建立不同的路由表,但基于TOS的路由选择从未在Internet上流行。OSPF的各个版本间是不兼容的。第1版的RFC 1131定义于1989年,目前的第2版在RFC 2328中有详细说明,1999年12月,IETF发布了基于IPv6的OSPF标准RFC2740,并称之为OSPFv3。 17.1 对等层协议模拟基础知识 17.1.1 标识符命名和编写规范 标识符命名和编写规范为了使程序易于理解和维护,在一个项目中的代码编写要遵循统一的规范。由于这种规范并不是强制的,因此,有时也将其称为风格。在此只对本章程序代码中结构、类、函数、变量、常量等标识符在命名时所遵循的规范和保持的风格进行说明。 标识符命名有两种风格:Unix风格和Windows风格。以网络接口(Network Interface)的数据结构为例,按照两种风格定义的数据结构比较如下: Unix风格 Windows风格 struct ifnet { struct IfNet struct ifnet *if_next; { struct ifaddr *if_addrlist; struct IfNet* m_pNext; ch

文档评论(0)

四娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档