OSPF(Open Shortest Path First 最短开放路径优先)是由IETF开发的广泛使用的链路状态路由协议。
OPSF 当前版本是V2,主要标准是RFC1583和RFC 23228。
OSPFv3主要用在IPv6协议中,参考标准主要是RFC5340。

OSPF出现前,网络上广泛使用RIP作为内部网关协议。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。
OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:
OSPF采用组播形式收发报文(组播地址224.0.0.5/224.0.0.6两者之间的区别后文再进行阐述),OSPF在某些场景下,是单播进行收发报文,针对这个特殊场景,我们后面单独介绍。

OSPF协议的特点:
OSPF是IGP内部网关协议(IGP 内部网关协议包括RIP、OSPF、ISIS,它们都是工作在一个自治系统内的路由器),我们常提的BGP它属于EGP外部网关协议,是工作在不同自治系统之间的。

OSPF把自治系统AS划分成逻辑意义上的一个或多个区域(比如骨干区域、区域1、区域2等等)
OSPF通过LSA(Link State Advertisement)的形式发布路由;
OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
OSPF报文封装在IP 报文内,可以采用单播或组播的形式发生。
在正式介绍OSPF原理前,我们现了解一些基础知识,大概有这个概念。

OSPF协议有5种报文,它们分别是:
Hello报文:
周期性发送,用来发现和维护OSPF邻居关系;
在广播和点到点网络中,Hello包是每10s发送一次;在NBMA和P2MP网络中每30s发送一次。
DD报文(Database Description packet)
描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步
LSR报文(Link State Request packet)
用于向对方请求所需的LSA,只有在双方成功开始交换DD报文之后才会向对方发出LSR报文。
LSU报文(Link State Update packet)
向对方发送其所需要的LSA或者泛洪自己更新的LSA
LSAck报文(Link State Acknowledge packet)
用来对收到的LSA进行确认。

待续……