四、网络层(二)路由算法与路由选择协议
目录
2.1 静态路由与动态路由
2.2 层次路由与自治系统
2.3 距离-向量路由算法之路由信息协议(RIP)
2.3.1 RIP的基本特点
2.3.2 距离向量算法
2.4 链路状态路由算法之开放最短路径优先(OSPF)协议
2.4.1 OSPF协议的基本特点
2.4.2 OSPF协议的五种分组类型
2.6 边界网关协议(BGP)
2.7 三种路由协议的比较
2.1 静态路由与动态路由
路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可以分为两类:
静态路由算法(又称非自适应路由算法):指由网络管理员手工配置的路由信息。特点是简便和开销小,它不能及时适应网络状态的变化,对于简单的小型网络,可使用静态路由。
动态路由算法(自适应路由算法):指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
2.2 层次路由与自治系统
当网络规模扩大时,路由器的路由表成比例增大。这不仅会消耗更多的路由器缓冲区空间,而且扫描路由表和交换路由状态信息的代价也更大,因此互联网采用分层的路由选择协议。
整个互联网被划分为许多较小的自治系统(自治系统内可包含多个局域网),每个自治系统自主地决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,那么就需一种在两个自治系统之间的协议来屏蔽这些差异。因此把路由选择协议划分为两大类:
- 内部网关协议(IGP):一个自治系统内部使用的路由选择协议。如RIP、OSPF协议。
- 外部网关协议(EGP):自治系统之间所使用的路由选择协议。如BGP
使用层次路由时,OSPF协议将一个自治系统再划分为若干区域(area),每个路由器都知道本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。
采用层次划分区域的方法虽然会使交换信息的种类增多,也会使OSPF更加复杂。但这样做却能使每个区域内部交换路由信息的通信量大大减少,因而使OSPF能够用于规模很大的自治系统中。
自治系统(Autonomous System ,AS)是指单一技术管理下的一组路由器。这些路由器使用一种AS内部的路由选择协议和共同的度量来确定数据报在该AS内的路由,同时还使用一组AS之间的路由选择协议,以确定数据报在AS之间的路由。一个AS内的所有网络都由一个组织(如一个学校)来管辖,一个AS的所有路由器在本AS内都必须是连通的。
2.3 距离-向量路由算法之路由信息协议(RIP)
2.3.1 RIP的基本特点
RIP是一种分布式的基于距离向量的路由选择协议,其最大的优点是简单。
规定
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(故维护一组距离,称为距离向量→如(3,6,0,5,8,4)是C到总计6个结点的距离向量,其中0代表到自身。)
- 距离也称跳数,规定从一个路由器到直接连接网络的跳数为1。每经过一个路由器跳数加1.
- RIP优先选择跳数最少的路径。
- RIP最多允许15跳,出现16跳则认为网络不可达。
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息(即动态路由选择)
- 当到达同一网络有多条距离相等的路由时,可进行等价负载均衡。
特点
- 仅和相邻的路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,默认为30秒。
- 经过多次RIP广播后,所有路由器都知道了整个IP网络的路由表,称RIP此时是收敛的。
2.3.2 距离向量算法
其他补充
- RIP默认超时时间为180秒,若180秒还未收到某相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即把距离设置为16。
- 优点是实现简单、开销小、正常收敛过程较快。
- 缺点是只适用于小型局域网,网络规模越大开销越大;
- 网络出现故障时会出现慢收敛现象,即坏消息传得慢。改进方法有可在路由表发生故障时立即发送更新报文,而不仅是周期性发送。
无论使用何种改进方法后都不能完全避免路由环路(距离无穷计数)问题,如下图所示:
2.4 链路状态路由算法之开放最短路径优先(OSPF)协议
2.4.1 OSPF协议的基本特点
规定
- 向本自治系统中的所有路由器发送信息,使用的是洪泛法。而非像RIP那样只发送给相邻路由器。洪泛法是一种简单的路由算法,将收到的封包,往所有的可能连结路径上递送,直到封包到达为止。
- 发送的信息是与本路由器相邻的所有路由器的链路状态,而非像RIP那样发送本路由器知道的全部信息。
- 只有当链路状态发送变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程很快,不会出现RIP的坏消息传递慢现象。
- OSPF是网络层协议,直接使用IP数据报传送。RIP是应用层协议,在传输层使用UDP。
OSPF的基本工作原理
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库LSDB,这个数据库实际上就是全网拓扑结构图,它在全网范围内是一致的(称为链路状态数据库的同步)。每个路由器就根据这个全网拓扑结构图,使用Dijkstra算法计算从自己到各目的网络的最优路径,构造出自己的路由表。之后,当链路状态发生变化时,每个路由器重新计算到各自的网络的最优路径,构造出新的路由表。
为了使OSPF能够用于规模很大的网络,将一个自治系统再划分为若干个更小的范围,称为区域。虽然分层次划分区域使OSPF更复杂,但划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每个区域而不是整个自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。这些区域也有层次之分,处于上层的区域称为主干区域,负责连通其他在下层的区域,并且还连接其他自治系统。
2.4.2 OSPF协议的五种分组类型
- 问候分组,用来发现和维持邻站的可达性。 每10秒钟相邻路由器交换一次问候分组。
- 数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
- 链路状态请求分组,向对方请求发送某些链路状态项目的详细信息。
- 链路状态更新分组,用洪泛法对全网更新链路状态。规定每隔一段时间(如30分钟)就刷新一次数据库中的链路状态。
- 链路状态确认分组,对链路更新分组的确认。
2.6 边界网关协议(BGP)
在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人。
不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179。
- 在此TCP连接上交换BGP报文以建立BGP会话
- 利用BGP会话交换路由信息(如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)即到达某个网络所要经过的各个自治系统序列。
- 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站或对等站。BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,如OSPF或RIP。
- BGP的路由选择过程使用路径向量协议。
BGP-4有以下四种报文:
- 打开(open)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化。
- 更新(update)报文:用来通告某一路由的信息,以及列出要撤销的多余路由。
- 保活(Keepalive)报文:用来确认打开报文并周期性地证实邻站的连通性。
- 通知(notification)报文:用来发送检测到的差错。
BGP-4报文被封装在TCP报文段中进行传输。
2.7 三种路由协议的比较