1: RIP协议:路由信息协议,是使用最广泛的距离向量协议,UDP协议,端口号为520
1) 工作过程
RIP路由器中初始的路由表中只有自己的直连路由;路由表中每一项为一个三元组(NET, Next hop, Metric),即目标网络,该条路由信息的下一条地址以及距离;距离定义为经过的路由器数
每个路由器发起自己的更新周期,将自己的路由表信息发送给相邻的路由表,接收到该路由表信息的邻接路由表更新自己的路由表信息;更新过程如图:
RIP协议有三个计时器:
a) 更新计时器:30s,即每30s发布自己的路由更新消息
b) 无效计时器:180s,即6倍更新时间内未收到更新,该路由表项被标记为16跳(不可达),即无效路由
c) 刷新计时器: 120s,吴晓路由在刷新计时器时间内仍未被更新,则被删除
2) RIP协议存在路由环路问题,例子:路由器A会将针对目标网络C的路由表项的metric值置为16,即标记为目标网络不可达,并准备在每30秒进行一次的路由表更新中发送出去,如果在这条信息还未发出的时候,A路由器收到了来自B的路由更新报文,而路由器B中包含着关于网络C的metric为2的路由信息,根据前面提到的路由更新方法,路由器A会错误的认为有一条通过路由器B的路径可以到达目标网络C,从而更新其路由表,将对于目标网络C的路由表项的metric值由16改为3,而对于的端口变为与路由器B相连接的端口。很明显,路由器A会将该条信息发给路由器B,路由器B将无条件(由上图可知,该条目与原条目来自同一源地址)更新其路由表,将metric改为4;该条信息又从路由器 B发向路由器A,路由器A将metric改为 5......最后双发的路由表关于目标网络C的metric值都变为16,此时,才真正得到了正确的路由信息。这种现象称为"计数到无穷大"现象,虽然最终完成了收敛,但是收敛速度很慢,而且浪费了网络资源来发送这些循环的分组。
3) 解决方法:
a) 水平分割:路由器记住每一条路由信息的来源,并且不在收到这条信息的端口上再次发送它;从而不会导致无限循环更新路由
b) 触发更新:在改变一条路由度量时立即广播一条更新消息,而不管3 0秒更新计时器还剩多少时间,即不考虑30秒发送更新消息这个规则
c) 毒性逆转:当路由器学习到一条毒化路由(度量值为16)时,对这条路由忽略水平分割的规则,并通告毒化(即该路由不可达)的路由;这条规则与水平分割相悖,因此它在接收到这条更新信息的端口上再次发送了,只是发送的消息是通告毒化
d) 抑制计时器:在抑制时间内,失效的路由不接受任何更新信息,除非这条信息是从原始通告这条路由的路由器来的
2: OSPF(Open Shortest Path First):使用的是链路状态路由算法,直接使用IP协议,协议类型值为89
1) 有五种分组类型
a) Hello:发现和维护邻居关系
b) Database Description:发送链路状态数据库摘要
c) Link State Request:请求特定的链路状态信息
d) Link State Update:发送详细的链路状态信息
e) Link State Ack:发送确认报文
OSPF中用区域来定义一个自治系统中的路由器和网络的集合,且必须有一个区域0用来标识网络骨干区域0;每个非0区域都必须通过一个区域边界路由器(ABR)连接到区域0
区域内:路由器相互发布和交换链路状态通告LSA ,并为该区域建立一个统一的映射图,称为链路状态数据库。
区域间:通过ABR 相互传递有关某一特定网络和拓扑的概括信息。
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
工作过程:
a) 路由器初始化或当网络结构发生变化(例如增减路由器,链路状态发生变化等)时,路由器会产生链路状态广播数据包LSA(Link-State Advertisement)。
b) 所有路由器会通过一种被称为刷新(Flooding)的方法来交换链路状态数据。
c) OSPF路由协议收敛下来时,所有的路由器会根据其各自的链路状态信息数据库计算出各自的路由表(最短路径优先算法)。