> 随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第二版,定义于RFC1247和RFC1583。 1、概述 OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。 作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。 2、数据包格式 在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段: * Version number-定义所采用的OSPF路由协议的版本。 * Type-定义OSPF数据包类型。OSPF数据包共有五种: * Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。 * Database Description-用于描述整个数据库,该数据包仅在OSPF初始化时发送。 * Link state request-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。 * Link state update-这是对link state请求数据包的响应,即通常所说的LSA数据包。 * Link state acknowledgment-是对LSA数据包的响应。 * Packet length-定义整个数据包的长度。 * Router ID-用于描述数据包的源地址,以IP地址来表示。 * Area ID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。 * Checksum-校验位,用于标记数据包在传递时有无误码。 * Authentication type-定义OSPF验证类型。 * Authentication-包含OSPF验证信息,长为8个字节。 3、OSPF基本算法 3.1 SPF算法及最短路径树 SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明的。SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的Cost,其算法为:Cost = 100×106/链路带宽 |