路由信息协议,通常称为Rip(RoutingInformationPRotocol),是使用最久的协议之一。RIP是一类基于距离-向量路由算法的协议,这种算法在ARPANET出现之前即存在。在1957~1962年之间人们对这种算法进行了理论上的研究。在整个60年代,这些算法被不同的公司广泛实现并标以不同的名字。最终造成的结果是这些产品之间紧密相关,但同时由于被各公司进行功能强化而使它们不能提供完全的互操作能力。
本章深入讨论当前开放标准RIP的细节、机制和使用情况。
1理解RFC1058
1988年6月,RFC1058发布,这个文档描述了一个新的、真正开放的距离-向量形式的路由协议:开放式标准RIP。这个RIP,和其先代一样,是一个简单的距离-向量路由协议,它是专门为小型简单网络而设计的内部网关协议(IGP)。
使用RIP的每个设备至少要有一个网络接口。假设这个网络是一种局域网体系结构(如以太网、令牌环和FDDI),RIP只需为不与这个局域网直接相连的设备计算路由。依靠于所使用的应用程序,位于相同局域网上的设备可能只使用局域网机制进行通信。
1.1RIP报文格式
RIP使用非凡的报文来收集和共享至有关目的地的距离信息。图1显示了路由信息域中只带一个目的地的RIP报文。
图1RIP报文结构
RIP报文中至多可以出现25个AFI、互联网络地址和度量域。这样答应使用一个RIP报文来更新一个路由器中的多个路由表项。包含多个路由表项的RIP报文只是简单地重复从AFI到度量域的结构,其中包括所有的零域。这个重复的结构附加在图12-1结构的后面。具有两个表项的RIP报文如图2所示。
图2具有两个表项的RIP报文
地址域可以既包括发送者的地址也包括发送者路由表中的一系列IP地址。请求报文含有一个表项并包括请求者的地址。应答报文可以包括至多25个RIP路由表项。
整个的RIP报文大小限制是512B。因此,在更大的RIP网络中,对整个路由表的更新请求需要传送多个RIP报文。报文到达目的地时不提供顺序化;一个路由表项不会分开在两个RIP报文中。因此,任何RIP报文的内容都是完整的,即使它们可能仅仅是整个路由表的一个子集。当报文收到时接收节点可以任意处理更新,而不需对其进行顺序化。
比如,一个RIP路由器的路由表中可以包括100项。与其他RIP路由器共享这些信息需要4个RIP报文,每个报文包括25项。假如一个接收节点(结点)首先收到了4号报文(包括从76至100的表项),它会首先简单地更新路由表中的对应部分,这些报文之间没有顺序相关性。这样使得RIP报文的转发可以省去传输协议如TCP所特有的开销。
1.命令域命令域指出RIP报文是一个请求报文还是对请求的应答报文。两种情形均使用相同的帧结构:
•请求报文请求路由器发送整个或部分路由表。
•应答报文包括和网络中其他RIP节点共享的路由表项。应答报文可以是对请求的应答,也可以是主动的更新。
2.版本号域
版本号域包括生成RIP报文时所使用的版本。RIP是一个开放标准的路由协议,它会随时间而进行更新,这些更新反映在版本号中。虽然有许多像RIP一样的路由协议出现,但RIP只有两个版本:版本1和版本2。这一章对通常使用的版本1进行描述。
3.0域嵌入在RIP报文中的多个0域证实了在RFC1058出现之前存在许多如RIP一样的协议。大多数0域为的是为了向后兼容旧的如RIP一样的协议,0域说明不支持它们所有的私有特性。
比如,两个旧的机制traceon和traceoff。这些机制被RFC1058抛弃了,然而开放式标准RIP需要和支持这些机制的协议向后兼容。因此,RFC1058在报文中为其保留了空间,但却要求这些空间恒置为0。当收到的报文中这些域不是0时就会被简单地丢弃。
不是所有的0域都是为了向后兼容。至少有一个0域是为将来的使用而保留的。
4.AFI域
地址家族标识(AddressFamilyIdentifier,AFI)域指出了互联网络地址域中所出现的地址家族。虽然RFC1058是由IETF创建的,因此适用于网际协议(IP),但它的设计提供了和以前版本的兼容性。这意味着它必须提供大量互联网络地址构成或家族的路由信息的传输。因此,开放式标准RIP需要一种机制来决定其报文中所携带地址的类型。
5.互联网络地址域
4字节的互联网络地址域包含一个互联网络地址。这个地址可以是主机、网络,甚至是一个缺省网关的地址码。这个域内容如何变化的两个例子如下:
•在一个单表项请求报文中,这个域包括报文发送者的地址。
•在一个多表项应答报文中,这些域将包括报文发送者路由表中存储的IP地址。
6.度量标准域
RIP报文中的最后一个域是度量标准域,这个域包含报文的度量计数。这个值在经过路由器时被递增。数量标准有效的范围是在1~15之间。度量标准实际上可以递增至16,但是这个值和无效路由对应。因此,16是度量标准域中的错误值,不在有效范围内。
1.2RIP路由表
如上一节所描述的,使用RIP报文中列出的项,RIP主机可以彼此之间交流路由信息。这些信息存储在路由表中,路由表为每一个知道的、可达的目的地保留一项。每个目的地表项是到达那个目的地的最低开销路由。
注重每个目的地的表项数可以随路由生产商的不同而变化。生产商可能选择遵守规范,
也可以对标准进行他们认为合适的“强化”。所以,用户很可能会发现某个非凡商标的
路由器为每一个网络中的目的地存储至多4条相同费用的路由。
每个路由表项包括以下各域:
•目的IP地址域
•距离-向量度量域
•下一跳IP地址域
•路由变化标志域
•路由计时器域注重虽然RFC1058是一个开放式标准,能支持大量互连网络地址结构,然而它是由
IETF设计用于Internet中自治系统内的协议。如此,使用这种形式RIP的自然是网络互联协议。
1.目的IP地址域
任何路由表中所包含的最重要信息是到所知目的地的IP地址。一旦一台RIP路由器收到一个数据报文,就会查找路由表中的目的IP地址以决定从哪里转发那个报文。
2.度量标准域
路由表中的度量域指出报文从起始点到特定目的地的总耗费。路由表中的度量是从路由器到特定目的地之间网络链路的耗费总和。
3.下一跳IP地址域
下一跳IP地址域包括至目的地的网络路径上下一个路由器接口的IP地址。假如目的IP地址所在的网络与路由器不直接相连时,路由器表中才出现此项。
4.路由变化标志域
路由变化标志域用于指出至目的IP地址的路由是否在最近发生了变化。这个域是重要的,因为RIP为每一个目的IP地址只记录一条路由。
5.路由计时器域
有两个计时器与每条路由相联系,一个是超时计时器,一个是路由刷新计时器。这些计时器一同工作来维护路由表中存储的每条路由的有效性。路由表维护过程在12.2.2节中具体描述。