Open Shortest Path First,开放式最短路径优先。
是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),用于在单一自治系统内决策路由。
著名的迪克斯加算法(Dijkstra)算法被用来计算最短路径树。这个算法能使路由选择基于链路状态,而不是距离向量。
分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。
与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。
工作机制:
链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。
OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器 使用这些最短路径构造路由表。
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。
路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器通过这个数据库计算其OSPF路由表。
作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器。
这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
邻居发现协议的整个过程:
Router发送hello包给组播地址224.0.0.5,然后是邻居的路由就会回复,进而建立邻居关系;
然后OSPF会进行链路状态数据库(ISDB)的交换和更新过程,进而使整个区域中的全部路由器都有一张相同的链路状态表,就是ISDB;
基于ISDB再结合Dijkstra算法,计算出来无环的路由信息也就是SPF树,然后路由器根据SPF树选择出最佳路径,将这个路径加入到其路由表中。