OSPF是除RIP外的另一个内部网关协议。它克服了RIP的所有限制。RFC 1247 [Moy1991]中对第2版OSPF进行了描述。
    与采用距离向量的RIP协议不同的是, OSPF是一个链路状态协议。距离向量的意思是,RIP发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表。
    在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。
    从实际角度来看,二者的不同点是链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后,例如在路由器关闭或链路出故障后,可以稳定下来。[ P e r l m a n1 9 9 2 ]的9 . 3节对这两种类型的选路协议的其他方面进行了比较。
    OSPF与RIP(以及其他选路协议)的不同点在于, OSPF直接使用IP。也就是说,它并不使用U D P或T C P。对于IP首部的p r o t o c o l字段,OSPF有其自己的值(图3 - 1)。
    另外,作为一种链路状态协议而不是距离向量协议, OSPF还有着一些优于RIP的特点。
    1) OSPF可以对每个IP服务类型(图3 - 2)计算各自的路由集。这意味着对于任何目的,可以有多个路由表表项,每个表项对应着一个IP服务类型。
    2) 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。可以给每个IP服务类型指派一个单独的费用。
    3) 当对同一个目的地址存在着多个相同费用的路由时,OSPF在这些路由上平均分配流量。我们称之为流量平衡。
    4) OSPF支持子网:子网掩码与每个通告路由相连。这样就允许将一个任何类型的IP地址分割成多个不同大小的子网(我们在3 . 7节中给出了这样的一个例子,称之为变长度子网)。到一个主机的路由是通过全1子网掩码进行通告的。默认路由是以IP地址为0 . 0 . 0 . 0、网络掩码为全0进行通告的。
    5) 路由器之间的点对点链路不需要每端都有一个IP地址,我们称之为无编号网络。这样可以节省IP地址—现在非常紧缺的一种资源。
    6) 采用了一种简单鉴别机制。可以采用类似于RIP-2机制(1 0 . 5节)的方法指定一个明文口令。
    7) OSPF采用多播(第1 2章),而不是广播形式,以减少不参与OSPF的系统负载。
    随着大部分厂商支持OSPF,在很多网络中OSPF将逐步取代RIP。