当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.
路由器之间必须采用选路协议进行通信,这样的选路协议有很多种.路由器上有一个进程称为路由守护程序,它运行选路协议,并与其相邻的一些路由器进行通信.路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表.
RIP:选路信息协议
1.启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表
2.接收到请求,如果是特殊请求则将完整的路由表发送给请求者,否则,就处理请求中的每个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量设置成16
3.接收到响应.使响应生效,可能会更新路由表.可能会增加新表项,对已有的表项进行修改,或是将已有表项删除.
4.定期选路更新.每过30秒,所有或部分路由器会将其完整路由表发送给相邻路由器.
5.触发更新.每当一条路由的度量发生变化时,就对它进行更新.不需要发送完整路由表,而只需要发送那些变化的表项
每条路由都有与之相关的定时器.如果运行RIP的系统发现一条路由在3分钟内未更新.就将该路由的度量设置成无穷大(16),并标注为删除.这意味着已经在6个30秒更新时间里没收到通告该路由的路由器的更新了.再过60秒,将从本地路由表中删除该路由,以保证该路由的失效已被传播开
OSPF:开放最短路径优先,逐步取代RIP
与采用距离向量的RIP协议不同的是,OSPF是一个链路状态协议.距离向量的意思是,RIP发送的报文包含一个距离向量(跳数).每个路由器都根据它所接收到的邻站的这些距离向量来更新自己的路由表.
在一个链路状态协议中,它采用的是每个路由器主动地测试与邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去.每个路由器接收这些链路状态信息,并建立完整的路由表.
OSPF直接使用IP,对于IP首部的protocol字段,OSPF有自己的值.
它的优点:
1.OSPF可以对每个IP服务类型计算各自的路由表.这意味着对于任何目的,可以有多个路由表项,每个表项对应着一个IP服务类型
2.给每个接口指派一个无维数的费用.可以通过吞吐率,往返时间,可靠性或其他性能来进行指派.可以给每个IP服务类型指派一个单独的费用
3.当对同一个目的地址存在着多个相同费用的路由时,OSPF在这些路由上平均分配流量,我们称之为流量平衡.
4.OSPF支持子网:子网掩码与每个通告路由相连.这样就允许将一个任何类型的IP地址分割成多个不同大小的子网.到一个主机的路由是通过全1子网掩码进行通告的.默认路由是以IP地址为0.0.0.0,网络掩码为全0进行通告的
5.路由器之间的点对点链路不需要每端都有一个IP地址,我们称之为无编号网络
6.采用了一种简单认证机制,指定一个明文口令
7.OSPF采用多播,而不是广播形式,以减少不参与OSPF的系统负载.
BGP:边界网关协议
BGP是一种不同自治系统的路由器之间进行通信的外部网关协议
BGP系统与其他BGP系统之间交换网络可到达信息.这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径.这些信息足以构造一幅自治系统连接图.然后,可以根据连接图删除选路环,制订选路策略
BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议.两个运行BGP的系统之间建立一条TCP连接,然后交换整个BGP路由表.并定期发送keepalive报文给其邻站来检测TCP连接的链路或主机失败,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号).这样就排除了一些距离微量协议的问题
CIDR:无类型域间选路
CIDR是一个防止Internet路由表膨胀的方法,也称超网
CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和成更少的数目.例如,如果给单个站点分配16个C类地址,以一种可以用总和的方式来分配这16个地址,这样,所有这16个地址可以参照Internet上的单个路由表项.同时,如果有8个不同的站点是通过同一个Internet服务提供商的同一个连接点接入Internet的,且这8个站点分配的8个不同IP地址可以进行总和,那么,对于这8个站点,在Internet上,只需要单个路由表表项
"无类型"的意思是现在的选路决策是基于整个32bit IP地址的掩码操作,而不管其IP地址是A类,B类还是C类.