欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 网络原理 >> TCPIP >> 教程正文

  没有公告

教程: TCP/IP教程-基础-RIP:选路信息协议 更多...
教程: TCP/IP教程-基础-RIP:选路信息协议


本节对RIP进行了描述,这是因为它是最广为使用(也是最受攻击)的选路协议。对于RIP 的正式描述文件是RFC 1058 [Hedrick 1988a],但是该RFC是在该协议实现数年后才出现的。
10.4.1 报文格式
RIP报文包含中在UDP数据报中,如图10-2所示(在第11章中对UDP进行更为详细的描述)。
图1 0 - 3给出了使用I P地址时的RIP报文格式。

命令字段为1表示请求,2表示应答。还有两个舍弃不用的命令( 3和4),两个非正式的命令:轮询( 5)和轮询表项( 6)。请
求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。
版本字段通常为1,而第2版RIP(1 0 . 5节)将此字段设置为2。
紧跟在后面的2 0字节指定地址系列( address family)(对于I P地址来说,其值是2)、I P地址以及相应的度量。在本节的后面可以看出, RIP的度量是以跳计数的。
采用这种2 0字节格式的RIP报文可以通告多达2 5条路由。上限2 5是用来保证RIP报文的总长度为2 0×25 4 = 504,小于5 1 2字节。由于每个报文最多携带2 5个路由,因此为了发送整个路由表,经常需要多个报文。

10.4.2 正常运行
让我们来看一下采用RIP协议的routed程序正常运行的结果。RIP常用的U D P端口号是5 2 0。
? 初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的U D P端口号是
5 2 0(这是其他路由器的路由守护程序端口号)。
这种请求报文的命令字段为1,但地址系列字段设置为0,而度量字段设置为1 6。这是一种要求另一端完整路由表的特殊请求报文。
? 接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为1 6(度量为1 6是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。
? 接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。
? 定期选路更新。每过3 0秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。
? 触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。
每条路由都有与之相关的定时器。如果运行RIP的系统发现一条路由在3分钟内未更新,就将该路由的度量设置成无穷大( 1 6),并标注为删除。这意味着已经在6个3 0秒更新时间里没收到通告该路由的路由器的更新了。再过6 0秒,将从本地路由表中删除该路由,以保证该路由的失效已被传播开。
10.4.3 度量
RIP所使用的度量是以跳( h o p )计算的。所有直接连接接口的跳数为1。考虑图1 0 - 4所示的路由器和网络。画出的4条虚线是广播RIP报文。
路由器R 1通过发送广播到N 1通告它与N 2之间的跳数是1(发送给N 1的广播中通告它与N 1之间的路由是无用的)。同时也通过发送广播给N 2通告它与N 1之间的跳数为1。同样,R 2通告它与N 2的度量为1,与N 3的度量为1。
如果相邻路由器通告它与其他网络路由的跳数为1,那么我们与那个网络的度量就是2,这是因为为了发送报文到该网络,我们必须经过那个路由器。在我们的例子中, R 2到N 1的度量是2,与R 1到N 3的度量一样。
由于每个路由器都发送其路由表给邻站,因此,可以判断在同一个自治系统A S内到每个网络的路由。如果在该A S内从一个路由器到一个网络有多条路由,那么路由器将选择跳数最小的路由,而忽略其他路由。
跳数的最大值是1 5,这意味着RIP只能用在主机间最大跳数值为1 5的A S内。度量为1 6表示到无路由到达该I P地址。

10.4.4 问题
这种方法看起来很简单,但它有一些缺陷。首先, RIP没有子网地址的概念。例如,如果标准的B类地址中16 bit的主机号不为0,那么RIP无法区分非零部分是一个子网号,或者是一个主机地址。有一些实现中通过接收到的RIP信息,来使用接口的网络掩码,而这有可能出错。
其次,在路由器或链路发生故障后,需要很长的一段时间才能稳定下来。这段时间通常需要几分钟。在这段建立时间里,可能会发生路由环路。在实现RIP时,必须采用很多微妙的措施来防止路由环路的出现,并使其尽快建立。RFC 1058 [Hedrick 1988a]中指出了很多实现RIP的细节。
采用跳数作为路由度量忽略了其他一些应该考虑的因素。同时,度量最大值为1 5则限制了可以使用RIP的网络的大小。
10.4.5 举例
我们将使用r i p q u e r y程序来查询一些路由器中的路由表,该程序可以从g a t e d中得到。r i p q u e r y程序通过发送一个非正式请求(图1 0 - 3中命令字段为5的“p o l l”)给路由器,要求得到其完整的路由表。如果在5秒内未收到响应,则发送标准的RIP请求(c o m m a n d字段为1)(前面提到过的,将地址系列字段置为0,度量字段置为1 6的请求,要求其他路由器发送其完整路由表)。
图1 0 - 5给出了将从s u n 主机上查询其路由表的两个路由器。如果在主机s u n 上执行r i p q u e r y程序,以得到其下一站路由器n e t b的选路信息,那么可以得到下面的结果:

正如我们所猜想的那样, n e t b告诉我们子网的度量为1。另外,与n e t b相连的位于机

[1] [2] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    教程: IPV6教程-基础-TCP/IP网络…

    教程: IPV6教程-基础-IPv6解决方…

    教程: HUB-基础教程-集线器(HUB)…

    教程: VLAN-基础教程-经典配置 V…

    教程: TCP/IP教程-基础-广播和多…

    教程: TCP/IP教程-基础-IGMP(Int…
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网