RIP(Routing Information Protocol)路由信息协议,是内部网关协议IGP中最先得到广泛使用的协议;RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大优点就是简单。
内部网关协议IGP(Interior Gateway Protocol)即在一个自治系统内部使用的路由选择协议,而这与在互联网中的其它自治系统选用什么路由选择协议无关。目前这类路由器选择协议使用的最多。如RIP和OSPF;
::自治系统
自治系统(Autonomous System)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。------百度百科
(AS)是在一个或多个网络运营商的控制下代表单个管理实体或域的连接的IP协议路由前缀的集合,其呈现共同的,明确定义的路由策略。-------维基百科
AS是一个单一技术管理下的一组路由器,而这个路由器选择一种路由选择协议和共同的度量(向量或矢量);
一个AS对另一个AS表现出的是一个单一的和一致的路由选择策略;
::分布式和集中式
分布式路由选择算法是每一个节点通过定期得与相邻节点交换路由选择得状态信息来修改各自的路由表,这样使整个网络的路由选择经常处于一种动态变化的状况。集中式路由选择算法是网络中设置一个节点,专门收集各个节点定期发送的状态信息,然后由该节点根据网络状态信息,动态的计算出每一个节点的路由表,再将新的路由表发送给各个节点。
::距离向量算法
对每一个相邻路由器发送过来的RIP报文,进行以下步骤:
(1)对相邻地址为X的路由器发来的RIP报文,先修改报文中的所有项目:把‘下一跳’的地址都改为X,并把所有的‘距离’字段值+1;
每一个项目都有三个关键数据,即:到目的网络N,距离是D,下一跳路由器是X;
那么假设位于地址X的相邻路由器发来的RIP报文的某一个项目是(NetS,3,K)解释为经过路由器K到网络NetS的距离是3,那么就可以推断出经过路由器X到达NetS的距离为3+1=4即(NetS,4,X);
(2)对修改后的RIP报文中的每一个项目,进行以下步骤:
若原来的路由表中没有目的网络NetS,则把改项目添加到路由表中,否则就在该项目中查看下一跳的路由器地址;
(?,?,?)->(NetS,?,?);
若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目(一切以更新为准,尽管跳数更少);
(NetS,D-1,X)->(NetS,D,X);
否则(下一跳路由器不是X的情况):
若收到的项目中的距离D小于路由表中的距离,则进行更新,否则什么也不做;
(NetS,D,X)->(NetS,D-n,?);
(3)若三分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器,把距离置为16(协议中16表示不可达);
(4)返回
(1)仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器之间不交换信息;
(2)路由器交换的信息是当前路由器所知道的全部信息,即自己现在的路由表。也就是说,交换的信息是:“我到本自治系统中所有网络的(最短)距离,以及到每个网络应经过的下一跳路由器”;
(3)按固定时间交换路由信息,如,每隔30秒,然后路由器根据收到的路由信息更新路由表。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息;
路由器在刚刚开始工作时时,它的路由表是空的;
接着计算出直接相连的几个相邻的网络(该距离为1);和相邻路由器交换并更新路由信息;
最后随着拓扑的继续,经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址;
RIP让一个AS中的所有路由器都和自己的相邻路由器定期交换路由信息,并不断更新其路由表,似的从每一个路由器到每一个目的网络的路由都是最短的(跳数最少)。