虽然说EIGRP属于一种距离矢量路由协议,但是它在更新过程中却采用了非周期性的、部分更新的方法,RIP和IGRP正是靠着周期性的更新探测邻居状态,所以EIGRP必然需要一种方法来验证邻居的存在。
EIGRP使用了hello包,它会每隔5秒钟发送一次。因为这个时间要远远小于RIP的30秒,以及IGRP的90秒,所以EIGRP的收敛速度要快很多。
为了防止全局同步,有一个非常小的随机的延时产生,所以这个值并不会是绝对的5秒。
hello包是以多播224.0.0.10的方式发送的。
在多点(multipoint)环境下,比如X.25、Frame-relay、ATM网络上,链路带宽小于T1速率甚至更低,这种环境下它是以单播(unicast)60秒周期发送的。
hello包都是不用被应答的,我们可以在接口上使用ip hello-interval eigrp改变这个默认的时间周期。
当我们在一定时间内未收到邻居发送来的hello包时,认为邻居不存在,这个时间就被称之为holddown timer,一般设置为hello时间的3倍。在广播链路上的值为15秒,在NBMA链路上这个值为180秒。当然也可以通过ip hold-time eigrp命令进行调整。
我们在使用show ip eigrp neighbor命令时,可以观察到以下结果:
r2#sh ip ei nei
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq Type
(sec) (ms) Cnt Num
1 10.1.1.1 Et0/0 14 00:00:23 100 600 0 13
0 172.16.0.3 Et1/0 14 00:00:43 140 840 0 11 |
上述例子中出现了几个新概念:SRTT、RTO、Q、Seq,曾经有NA的学生问过我这个问题,但是这其实在IE里面才会有所提及。
SRTT(smooth round-trip time)平均回程时间,是衡量路由器发送EIGRP报文到邻居和从邻居收到对于该报文的确认为止,所花费的平均时间,以毫秒(ms)为单位。
RTO(retransmission timeout)重传超时,当EIGRP报文以多播之式传出之后,经过RTO时间周期后仍未收到邻居的ACK应答,接下来的报文会以单播(unicast)方式重新传输,所以叫重传超时时间。
Q(queue count)队列计数,当EIGRP更新、查询或是应答消息向邻居发送出去后,同样的一份报文的拷贝将会被放进队列中,一旦RTO超时后仍未收到对方的应答,这份拷贝就会被发送出去。
Seq(sequence number)序号,记录了上次从邻居收到的更新、查询或应答消息的序号。