路由选择算法
- 前面我讲了很多次查询路由表以确认下一跳信息,现在我们就来讲一下查询路由表的算法。
相关概念
代价
(度量):在研究路由选择时,需要给每一条链路指明一定的代价。这里的代价值得是一条链路的一些综合因素的一种度量。如链路长度、数据率、链路容量、是否要保密、传播时延等。最佳:
相对于某一种特定要求下得出的较为合理的选择。路由选择时网络中所有节点共同协调工作的结果,路由选择环境也是会变化的,变化也无法事先知道。因此路由选择十分复杂。
一、分层次的路由选择协议
分层次的原因如下:
- 互联网的规模非常大,如果让所有路由器知道所有网络应怎样到达,则这种路由表会非常大。
- 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情) ,但同时还希望连接到互联网上。
二、自治系统AS
定义:在同一技术管理下的一组路由器
,这些路由器使用同一种AS内部
路由选择协议 和 共同的度量 以确定分组在该AS内部的路由。
三、两大类路由选择协议
内部网关协议IGP(自治系统AS内部):
- 在一个自治系统内部使用的路由选择协议
- 目前这类路由协议使用得最多,如
RIP
和OSPF
协议 - 自治系统内部使用的路由选择叫做
域内路由选择
外部网关协议EGP
- 若源站和目的站处于不同的自治系统AS中,当数据传到自治系统
边界
的时候,跨界传输时就需要使用EGP协议 - 外部网关协议(EGP)中目前使用最多的是BGP-4
- 自治系统之间的路由选择叫做
域间路由选择
四、内部网关协议RIP
- 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议
- RIP是一种分布式的基于
距离向量
的路由选择协议 (选择距离(跳数)短的,距离不是指远近,而是指跳数) - RIP协议要求网络中的每一个路由器都要维护记录从它自己到其他每一个目的网络的
距离记录
。
距离 - 每经过一个路由器跳数加一
- RIP认为一个好的路由就是它通过的
路由器的数目少
,也就是距离短.(完全不考虑其他因素,如时延) - RIP允许一条路径最多只能包含15个路由器.可见RIP只适用于小型互联网。当距离是16时对RIP来说意味着不可到达(这个路由器坏了或其他原因也会被标记为16)。 (
疑问
:最多15个路由器,距离不是16吗?????)
RIP协议的三个要点
- 实现RIP实际就是实现路由信息的交换,三个要点:
- 仅和相
邻路由器
交换信息。每个路由器都有邻居,最终所有信息都会共享。(向谁发
) - 交换的信息是当前本路由器所知的
全部信息
,也就是自己的路由表。 (发什
么)- 交换信息的内容(目的网络, 距离 , 路由表)
- 按固定的时间间隔交换路由信息,例如每隔30s (
何时发
)- 一台RIP路由器在创建自己的RIP路由表之前,是只包含了该路由器自动发现的直连路由。在一个RIP网络中,每台RIP路由器都会每隔30s向它所有的邻居路由器发布它最新的RIP路由表中国的所有路由信息,同时也会不断的接收它的邻居路由器发来的路由信息,并根据这些接收到的路由信息来更新自己的RIP路由表。该过程是反复循环进行的。
- 仅和相
五、路由表的建立
- 路由表刚开始工作时,只知道直连路由,距离为1。
- 只和邻居交换信息(最多十五个路由器,因此很快就好了)
六、距离向量算法
if "目的网络不在路由表中"
添加项目
else //下面的目的网络相同
if "下一跳字段相同" //忽视距离
替换更新
else //下一跳字段不同
if "收到的项目距离更小" //这时候说明目的网络相同 ,下一跳不同,距离不同
替换更新
若下一跳字段
给出的路由器地址是相同的,则将收到的项目替换原路由表中的项目。(这里不需要管RIP项目距离长还是自己原有的里有表项目距离长,直接更新数据即可)
七、RIP协议位置
- RIP协议使用
运输层
的用户数据包 UDP进行传输 (使用UDP的端口520)。 - 因此RIP协议的位置应当在
应用层
。但转发的IP数据报的过程是在网络层完成的 - 另外,路由器也是一个智能主机,也有应用层,但在分组转发过程中只达到网络层(转发数据报的过程中只用拆到网络层,再封装)。再补充一点:主机也有路由表。
八、RIP协议的优缺点
优点:
- 实现简单,开销较小
缺点 - RIP限制了网络规模,最大距离为15.
- 当网络出现故障时,消息传递很慢(延迟很久,错误信息反复传递,直到距离加至16。)
- 当网络规模增大,路由信息交换量大。