1. 内部网关协议RIP
(1)RIP(Routing Information Protocol)是一个基于距离向量的分布式路由选择协议。
(2) 距离:到目的网络所经过的路由器数加1,“距离”也称为“跳数”(hop count)。
(3) RIP允许一个通路最多只能包含15个路由器(发送主机自身也算一个) 。因此“距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互连网。
(4)RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由,即使还存在另一条高速(低时延)但路由器较多的路由。
(5) RIP的工作原理如下:
- 每个路由器每隔30秒向相邻路由器广播自己的路由表。所谓相邻路由器就是连接在同一个网络上的路由器。
- 路由表中最主要的信息就是3项:某网络号,到该网络的距离,以及应经过的下一站。
- 在30秒内收到所有相邻路由器的路由表后,在根据相邻路由表相连的网络的信息更新自己的路由表。
RIP协议的缺点: - RIP限制了网络的规模,它能使用的最大距离为15(不可达为16)。
- 路由器之间交换的完整路由信息开销太大。
- “坏消息传播得慢”,使许多更新过程的收敛时间过长。
2. 内部网关协议OSPF
2.1 内部网关协议
- 开放最短通路优先OSPF(Open Shortest Path First),十分复杂。
- 使用了Dijkstra提出的最短通路算法
- OSPFv2已成为因特网的正式标准
- 它是一种分布式的链路状态协议(1ink state protocol),而不是像RIP那样的距离向量协议。
2.2 OSPF的要点如下
-
所有的路由器都维持一个链路状态数据库(Link-state database),这个数据库实际上就是整个互连网的拓扑结构图。
-
“链路状态”就是该路由器都和哪些网络或路由器相邻(即存在链路),以及该链路的费用,费用的正式名字称为“度量”(metric):1至65535中的任何一个无量纲的数,用于衡量时延,吞吐量等。
-
OSPF让每一个链路状态都带上一个32bit的序号(可用1300多年),序号越大状态就越新。OSPF规定,链路状态序号增长的速率不得超过每5秒钟1次。
-
每一个路由器用链路状态数据库中的数据,算出自己的路由表(例如,使用Dijkstra的最短通路路由算法)。
-
只要网络拓扑发生任何变化,这种链路状态数据库就能很快地进行更新,使各个路由器能够重新计算出新的路由表。OSPF的更新过程收敛得快是其重要优点。
-
OSPF依靠各路由器之间的频繁交换信息来建立链路状态数据库,并维持这数据库在全网范围内的一致性(这称为链路状态数据库的同步)。
-
OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)
2.3 OSPF共有以下五种报文类型
- 类型1,Hello报文,用来发现和维持邻站的可达性。
- 类型2,Database Description报文,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
- 类型3,Link State Request报文,向对方请求发送某些链路状态项目的详细信息。
- 类型4,Link State Update报文,用洪泛法向全网更新链路状态。
- 类型5,Link State Acknowledgment报文,对链路更新报文的确认。
2.4 OSPF的工作机制如下
- 每两个相邻路由器每隔10秒钟要交换一次Hello报文。
- 若有40秒钟没有收到某个相邻路由器发来的Hello报文,则可认为该相邻路由器是不相邻的,应立即修改链路状态数据库,并重新计算路由表。
- OSPF让每一个路由器用Database Description报文和相邻路由器交换本数据库中已有的所有链路的摘要信息。摘要信息指出本路由器知道有哪些链路。 经过与相邻路由器交换Database Description报文后,路由器就使用Link State Request报文,向对方请求发送自己所缺少的某些链路状态项目的详细信息。通过一系列的这种报文交换,全网的链路数据库就建立了。
- 只要一个路由器的链路状态发生变化,该路由器就要使用Link State Update报文,用洪泛法向全网更新链路状态。OSPF使用的是可靠的带应答的洪泛法(用Link State Acknowledgment报文应答)。
- 每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。
2.5 OSPF的特点
- 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100ms。
- 具有负荷平衡的功能:如在同一费用下,到某个目的站有多条路由,则OSPF协议能使负荷平均地分配给每一个路由。而RIP协议对每一个目的站只算出一条路由。
- 当互连网络的规模逐渐变大时,OSPF允许进一步地将互连网划分成一些区域(area)。每一个区域内的拓扑结构对区域外部是不可见的。
- 路由器之间的信息交换必须经过鉴别(authentication),具有较好的安全性。