一、引言
前一章已经说过了IP数据包是如何分发的。为啥这一章还要说这个问题?在网络很小、只有单个连接点、没有多余的路由的时候,使用静态选路是可以的。但是一旦网络变大一点就会出现各种问题。在大网络中的网络选路将在该节说明。
动态选路协议用于路由器间的通信。该章主要介绍3种动态选路协议:RIP,OSPF,BGP。在Internet这样的大型的网络系统中,将这些主机划分若干个系统(分组)中,一台主机只属于一个系统(组)中,如将一个公司或学校定一个为一个系统(组),这些系统(组)叫做自治系统(AS,Autonomous System).正如其名一样。每一个AS通常由单个实体管理。一组AS组织成Internet。在同一AS中在该系统下的所有路由器选择同一种选路协议。我们称这种路由协议为
IGP(Interior Gateway Protocol,内部网关协议)
;在不同的AS中的路由器的选路协议我们称为
EGP(Exterier Gateway Protocol,外部网关协议)
。常用的IGP协议有RIP与OSPF,常用的EGP协议有BGP。
二、RIP协议
RIP(Routing Infromation Protocol 路由信息协议)数据包包含在UDP数据包中。RIP协议现在总共分两个版本RIP-1与RIP2,RIP常用UDP端口号是520.
1. RIP-1协议
RIP-1数据包如下:
- 命令:长度一个字节。1-请求,2-应答,3/4-舍弃不用,5-轮询,6-轮询表项;
- 版本字段:长度一个字节。RIP-1协议为1,RIP-2协议为2;
-
一条路由项:长度20个字节。
- 地址系列: 2个字节,指明是何种地址。值为2表示IP地址。
- 度量:路由器跳转数,直连为1,最大为16
2.运行流程
-
初始化
:在启动路由守护程序,先判断有哪些网络端口,并且在每一个接口上发送一个RIP请求数据包。对于点对点的网络中,直接发给连接主机。如果是网络,这种请求是以广播的形式发送出去的。这种请求报文的命令字段为 1,但地址系列字段设置为 0,而度量字段设置为 16。这是一种要求另一端完整路由表的特殊请求报文。 -
接收请求
:如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为16(度量为16是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。 -
接收到的响应
:使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。 -
定期选路更新
:每过30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。 -
触发更新
:每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。
3.RIP-2协议
RIP-2协议是对RIP-1协议的扩充,该协议不改变RIP-1协议内容,只是所有的填充0区域利用上了。