四、网络层概述--路由算法与路由选择协议
参考链接:max.book118.com/html/2016/1…
1、路由算法与路由协议概述
1.1、路由算法
接口可有可无
最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。填入每一行
1.2、路由算法的分类
静态路由算法(非自适应路由算法) 管理员手工配置路由信息
- 优点: 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
- 缺点: 路由更新慢(路由表需要人工更新),不适用大型网络。
动态路由算法(自适应路由算法)路由器间彼此交换信息,按照路由算法优化出路由表项。
- 优点: 路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
- 缺点: 算法复杂,增加网络负担。
动态路由算法:
- 全局性:链路状态路由算法,应用于OSPF协议,所有路由器掌握完整的网络拓扑和链路费用信息。适用于较大网络。
- 分散性:距离向量路由算法,应用于RIP协议,路由器只掌握物理相连的邻居及链路费用。适用于较小网络。
1.3、分层次的路由选择协议
因特网规模很大,许多单位不想让外界知道自己的路由选择协议,但是还是想连入因特网。为此,可以把整个互联网划分为许多较小的自治系统AS
自治系统AS(使用内部网关协议):
- AS是在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议(内部网关协议)和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议(外部网关协议EGP)以确定在AS之间的路由。
- 一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议:
- 内部网关协议IGP:一个AS内使用的,例如RIP(距离向量路由算法)、OSPF(链路状态路由算法)
- 外部网关协议EGP:AS之间使用的,例如BGP(BGP-4)
采用分层路由后,路由器被划分为区域,每个路由器知道如何将分组路由到自己所在区域内的目标地址,但对于其他区域内的结构毫不知情。当不同的网络相互连接时,可将每个网络当作一个独立的区域,这样做的好处是一个网络中的路由器不必知道其他网络的拓扑结构。
1.4、路由器交付
路由选择分为直接交付和间接交付,当发送站与目的站在同一网段内,就使用直接交付(对应RIP协议局域网内发送数据过程);反之使用间接交付(对应RIP协议不同局域网之间发送数据过程)。直接交付是在同一网段内,不涉及路由器。
2、内部网关RIP协议与距离向量算法
1 RIP协议(应用层协议)
RIP协议(Routing Information Protocol:路由信息协议):是一种分布式的基于距离向量算法的路由选择协议,是因特网的协议标准,最大优点是简单。
记录最佳距离:RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离(最多15个路由):通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1(也有的书是0)。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。所以RIP协议只适用于小互联网。
R2的路由表记录如下:
2 路由表怎么得出?通过路由器之间的信息交换===和谁交换?多久交换一次?交换什么?
- 和谁交换? 1.仅和相邻路由器交换信息。
- 交换什么? 2.路由器交换的信息是自己现在的路由表(路由器把自己的路由表信息放到一个RIP报文里面,发送给相邻路由器)。
- 多久交换一次? 3.每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
交换过程:
- 路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
- 距离怎么得到?路由表怎么更新的?——距离向量算法
- 路由表更新的原则是找到每个目的网络的最短距离,这种更新算法又称距离向量算法
4 距离向量算法
RIP报文: RIP报文包含的信息就是路由表的全部信息,每两个路由表之间交换信息其实就是交换的RIP报文。
距离向量算法过程: X-R1
- 修改相邻路由器发来的RIP报文中所有表项
- 对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
- 每个项目构成:到目的网络N,距离d,下一跳路由器是X.
- 对修改后的RIP报文中的每一个项目,进行以下步骤:
- 原R1路由表中若没有Net3,则把该项目直接填入R1路由表。
- 原R1路由表中若有Net3,则查看下一跳路由器地址(看一下新的情况是怎么样的):
- 若原R1路由表该项目到Net3的下一跳也是X,则用新的项目替换原路由表中的项目(为什么替换,因为路由表30s更新一次,以最新消息为准!);
- 若原R1路由表该项目到Net3的下一跳不是X,而是Y路由(说明Y也可以到Net3)。则比较距离,使用距离小的路由。
- 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。
- 返回
例题
例:已知路由器R6有表a所示的路由表,现在收到相邻路由器R4发来的路有更新信息,如表4-9b所示,试更新路由器R6的路由表。
解: 先把表b中的距离都加1,并把下一跳路由器都改为R4,得到表c.
表c
把这个表的每一行和表a进行比较。
- 第一行在表a中没有,因此要把这一行添加到表a中。
- 第二行的Net2在表a中有,且下一跳路由器也是R4。因此要更新(距离增大了)。
- 第三行的Net3在表a中有,但下一跳路由器不同。于是就要比较距离,新的路由信息的距离是2,小于原来表中的4,因此要更新。
- 这样,得出更新后的R6的路由表如下所示。
5 RIP协议的报文格式(使用UDP传输数据)
- RIP是应用层协议,RIP报文:首部+路由部分,传递给传输层的UDP协议,作为UDP报文段的一部分。(为什么叫RIP报文?因为是应用层协议)
- 一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送。
6 RIP协议特点:好消息传得快,坏消息传的慢
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
- RIP协议最大的优点就是实现简单,开销较小。
- RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加,并且会产生路由环路。
3、内部网关OSPF协议与链路状态算法
1 OSPF协议(考纲为网络层协议)
开放最短路径优先OSPF(Open shortest path first)协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“ 最短路径优先”是因为使用了Dijkstra(迪杰斯特拉)提出的最短路径算法SPF。(该算法十分重要,多次出现)
OSPF最主要的特征就是使用分布式的链路状态协议。
OSPF的特点:
- 和谁交换?
- 使用洪泛法(洪水泛滥)向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。类似广播——最终整个区域内所有路由器都得到了这个信息的一个副本。而RIP仅和相邻路由器交换信息。
- 交换什么?
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。而RIP交换的信息是自己的路由表
- 多久交换?
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息进行交换。而RIP是每30s路由表交换一次。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
4、外部网关BGP协议和路径向量算法
1 BGP协议(应用层协议)
Border Gateway Protocol:边界网关协议
- 和谁交换?
- 与其他AS的邻站BGP发言人交换信息。
- 在配置BGP时,每一个自治系统AS的管理员都要选择至少一个路由器来作为AS的发言人。一般来说,两个BGP发言人都是通过一个共享的网络连接在一起的,BGP发言人往往就是自治系统边界路由器。
- 交换什么?
- BGP发言人之间交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
- 多久交换?
- 发生变化时更新有变化的部分。
5、三种路由协议比较
- RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文(传输层)来交换路由信息。
- OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用网络层IP。
- BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用传输层TCP。