读《TCP/IP详解》第10章:动态选路协议

在网络很小,且与其他网络只有单个连接点且没有多余路由时,可以采用静态路由,以默认方式生成路由表项,并通过route命令增加表项。当相邻路由器之间进行通达信,以告知对方每个路由器当前所连接的网络,就应该使用动态选路。

每个自治系统可以选择该自治系统中各个路由器之间的选路协议,这种协议称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(Intradomain Routing Protocol)。最常用的IGP是选路协议RIP。

RIP报文包含在UDP数据报中,如下图所示:
读《TCP/IP详解》第10章:动态选路协议_第1张图片
RIP报文的详细格式如下所示:
读《TCP/IP详解》第10章:动态选路协议_第2张图片
命令字段为1表示请求,2表示应答,3和4舍弃不用,5表示轮询,6表示轮询表项。请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。

版本字段通常为1,第2版RIP将此字段设置为2。

20个字节的地址系列对IP地址来说,其值是2。RIP的度量是以跳计数的。每个RIP报文最多可携带25个路由,因此为了发送整个路由表,常常需要多个报文。

RIP的运行过程:

  • 初始化:先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。这种报文的命令字段值为1,但地址系统字段设置为0,而度量字段设置为16,是一种要求另一端发送完整路由表的特殊请求报文。
  • 接收到请求:如果这个请求是特殊请求,那么路由器就将完整的路由表发送给请求者,否则就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量值设置为我们的值,否则将度量置为16(代表”无穷大”,意味着没有到达目的的路由),然后发回响应。
  • 接收到响应:使响应生效,可能会更新路由表。可能会增加新表项,对已知的表项修改,或将已有的表项删除。
  • 定期选路更新:每过30秒,所有或部分路由器会将其完事路由表发送给相邻路由器。发送的形式可以是广播或发送给点对点链路的其他终点。
  • 触发更新:每当一条路由度量发生变化时,就对它进行更新,不需要发送整个路由表,只需要发送发生变化的表项。

每条路由都有与之相关的定时器,如果运行RIP的系统发现一条路由在3分钟内未更新,就将该路由的度量设置为无穷大(16),并标为删除。再过60秒,将从本地路由表中删除该路由。

RIP的缺陷:RIP没有子网地址的概念,在链路发生故障后,需要很长时间才能稳定,且RIP可以使用的网络大小限制在15以内。

RIP-2则利用了RIP报文中一些标”必须为0”的字段来传递一些额外信息。如果RIP忽略这些必须为0的字段,那么RIP和RIP-2可以互操作。RIP-2报文如下所示,其版本字段为2:
读《TCP/IP详解》第10章:动态选路协议_第3张图片

OSPF:开放最短路径优先
OSPF克服了RIP的限制,它是一个链路状态协议,路由器不与其邻站交换距离信息,采用每个路由器主动测试与其邻站相连的链路状态。并将信息发送给其他邻站,而邻站则将这些信息传播出去,路由器接收到这些信息,建立起完整的路由表。

OSPF直接使用IP,并不使用UDP或TCP,另外相对于RIP,还有一些其他的优点:

  1. OSPF可以对每个IP服务类型计算各自的路由集。
  2. 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。可以以每个IP服务类型指派一个单独的费用。
  3. 当对同一个目的地址有存在多个费用相同的路由时,OSPF在这些路由上平均分配流量,称之为流量平衡。
  4. OSPF支持子网
  5. 路由器之间的点对点链路不需要每端都有一个IP地址,这样可以节约IP地址。
  6. 采用简单鉴别机制,可以采用类似RIP-2机制发送一个指定明文口令。
  7. OSPF采用多播而不是广播,减少了不参与OSPF的系统负载。

另外可用于取代RIP的还有BGP(边界网关协议),CIDR(无类型域间选路)等。

你可能感兴趣的:(TCP/IP详解)