OSPF路由算法-Zoom in
网络社会的模型就是图,图中每个节点 都是路由器。而一个路由器想和另一台路由器通讯,选择最短的路径是成本最小的。基于这种考虑,OSPF(最短)路径优先选择算法考虑让每个路由器的数据库中都存在整个网络拓扑图。
这里的整个网络是指整个自治系统,一个自治系统假如比喻成北京的网络拓扑这样的规模。这样,整个世界的互联网由许多自治系统组成,而所有的自治系统都连接着一个骨干自治区,网络区域间形成星型的拓扑结构。每个自治区域中运行OSPF协议。当网络中渐趋稳定时,也就是每个路由都维持了一个完整的自治系统拓扑,那么可以使用单源最短路径(Dijkstra)来选择路由。
下面放大(zoom in):
OSPF路由行为
自治系统中图不存在孤岛,区域为连通区域。路由行为为双工,因此图为无向图。
每个路由器都有邻居,与其邻居间的通信行为有以下几种:
1.保持联系
整个自治系统中,每个路由器都有唯一标识RouterID
(32-bit).
与其每个邻居间隔30s,发送一次Hello 报文,意思就是你还活着吗?
不如假设一个网络拓扑:
R1和R6进行通信,R1和R6相互发送Hello,并收到对方回应Hello.
双方会周期性将自己的路由数据摘要发送给对方,一般30min,平时,
双方只是联系感情,直到对方没有挂。
2.告知现今情况(Tell you all about it when I see you again)
R1会周期性地将自己的路由摘要发送给所有邻居。比如对R6路由器,R1会发送
称为DD报文的包,里面会说自己认识R6,R2,R4,R5
,R6对比自己的信息库发现
除了自己R1的朋友它一个都不认识,于是就发送请求报文,请求告知这些不认识的
路由详情。这个请求报文称为LSR
(链路状态请求报文)报文。
R1收到之后,直到R6还不认识自己另外三个朋友,于是发送LSU报文(链路状态更新)告知R6详情。R6收到之后,给R1个确认-LSAck报文。两个人现在认识的路由器一样多了,此时两个人是好基友了-全毗邻关系。
LSU数据结构的数据项主要是通信成本方面-时延,带宽等,用于路径权值的计算。