实验目的:
验证一:如果“队列计数”的值大于0,则可能存在拥塞问题。
验证二:如果RTO到期后任未收到ACK分组,EIGRP将重传可靠分组的一个副本,直到重传16次, 或者保持定时器到期为止。(注:RTO表示发送两个连续单播之间等待的时间)
验证三:在多播流(multicastfilow)定时器到期之后,从多播切换到单播之前等待ACK的时间。
本期实验拓扑:
先按照拓扑图配置好接口IP和EIGRP相关内容;
配置好之后我们查看一下相关信息:
关注几个时间,Hold(邻居保持时间)、Uptime(邻居从收到hello分组的保持时间)、SRTT(报文传输的平均时间)、RTO(单播重传的间隔时间)、Q(在队列中的分组时间)、Seq(序列号) |
R1#show ip eigrp neighbors IP-EIGRP neighbors for process 20 HAddressInterfaceHold UptimeSRTTRTOQSeq (sec)(ms)Cnt Num 1192.168.1.3Et0/014 00:18:5812876807 0192.168.1.2Et0/011 00:19:3313480407 |
R2#show ip eigrp neighbors IP-EIGRP neighbors for process 20 HAddressInterfaceHold UptimeSRTTRTOQSeq (sec)(ms)Cnt Num 1192.168.1.3Et0/013 00:29:5413178607 0192.168.1.1Et0/01200:30:28 1047500007 |
R3#show ip eigrp neighbors IP-EIGRP neighbors for process 20 HAddressInterfaceHold UptimeSRTTRTOQSeq (sec)(ms)Cnt Num 1192.168.1.2Et0/013 00:30:297042007 0192.168.1.1Et0/014 00:30:296740207 |
需要说明的是Hold这个时间,我们知道一般邻居保持时间是15秒,这边的Hold时间是从15秒开始的倒计时。比如说如果hold值为14,就说明本路由器已经有1秒钟时间没有收到邻居的hello分组了,邻居一般是5秒发送一次,当收到hello包的时候,路由器将hold时间重置为15秒;如果这个数值小于8的话,那说明整个网络中有拥塞的情况发生,需要关注网络状况喽! |
查看多播流定时器。当发送方以组播的方式发送出updata、reply等报文时,就重置多播流计时器,并开始等待邻居的需要ack报文确认。如果因为链路拥塞,发送方没有在多播计时器倒计时结束之前收到邻居的ACK(可能是一个邻居,也可能是多个邻居),这个时候查看邻居表的时候就看到“Q”值大于0,表示有数据分组在重传队列里面了;这个时候发送方不再等待,向那些没有收到ACK的邻居发送单播数据分组; |
R1#show ip eigrp interfaces e0/0 IP-EIGRP interfaces for process 20 Xmit QueueMeanPacing TimeMulticastPending InterfacePeersUn/ReliableSRTTUn/ReliableFlow TimerRoutes Et0/020/01030/23960 |
RTO:是单播重传ERGRP分组所要等待的时间,当发送方开始以单播重传分组,如果没有在单播重传计时器结束之前收到ACK报文,那么发送方继续单播重传,直到从传16次或者是hello保持时间到期; |
这个验证试验比较难做,我的做法是使用wireshark抓包软件抓取R1的e/0接口,然后将R2的e0/0接口shutdown掉,然后迅速在R1的eigrp进程中宣告22.2.2.0/24这个网段,等到R1和R2接触邻居关系的时候停止抓包 |
相关命令及步骤: 步骤一: R1(config)#inter lo 2 R1(config-if)#ip add 22.2.2.2 255.255.25 R1(config)#router eigrp 20 R1(config-router)#network 22.2.2.0 0.0.0.255 // 这条命令敲好了先不要按回车 步骤二: R2(config-if)#shutdown //关闭R2的e0/0接口; 然后迅速到R1中按下回车,宣告22.2.2.0/24网段; |
其中第3个是R2向组播地址发送的最后一个hello报文,我们记下时间是2.67秒,然后再看 22个包,这个是R1和R2解除了邻居关系,然后向组播地址请求有没有到达2.0.0.0/8的其他路径,我们再记录时间17.71秒,我们算一下,之间正好差了15秒,说明是因为过了hello保持时间所以才断开邻居关系的; |
我们再来研究一下多播重传时间,首先看第9个包(9.73秒),这是R1向组播地址宣告自己新增的一个网段【22.2.2.0/8,自动汇总了】,然后几乎是在同一时间,R3向R1发送了ACK,但是R2因为端口被shutdown了,所以没有发送ACK报文,直到第14个包(10.68秒),多播重传计时器结束了,R1开始向R2以单播的方式发送更新报文,这期间工经历0.95秒,然后在观察第15、16、20这几个包,他们的间隔时间分别为0.89、1.47、2.16、3.40秒,我们发现这个间隔时间是越来越长了; |
总结: 虽然实验的结果(间隔时间)和我们预期的有所差别,但是整个过程还是正常的,相信我们也能够很好的理解了其中流程了吧。 重传保证EIGRP可靠性的重要保障,除此之外可靠性还依赖另一项技术叫DUAL(扩散更新算法),这部分内容将在下一章节介绍。 |