摘 要 本文基于高性能路由器,对影响集成is-is协议路由稳定性的问题进行了深入研究,通过对协议包处理流程的优化有效地减少了不稳定链路上lsp的产生,高效地处理了最大lsp顺序号的问题,通过理论分析得出了lsp交互的优化方案,利用基于未确认的lsp检测机制研究了减少lsp重传问题。
关键字 高性能路由器;集成is-is协议;路由稳定性
1 引言
集成is-is( intermediate system to intermediate system)协议
[1]是一种域内路由协议,通过与自治系统(as)内其它路由器交互已知的路由信息,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入的其它自治系统的路由信息,得到整个internet的路由信息。is-is
[2]所使用的协议数据包有以下几种:点到点hello包;广播网hello包;链路状态协议数据包(lsp);完全序列号协议数据包(csnp);部分序列号协议数据包(psnp)。hello包用于发现、建立和维护邻居关系,lsp、csnp、psnp则主要用于链路状态信息的交换、更新和扩散。Www.lw881.com
路由软件的稳定性主要与处理器对协议报文及时处理负载和路由抖动因素相关,如果处理器对路由信息处理的负载很高,那么将意味着网络稳定性不够,在网络有突发流量时就可能出现问题。路由抖动则是由于网络的不稳定而不断地进行路径的更替,不仅会产生过多的链路状态包,还增加了spf计算的数量。本文对集成is-is的路由稳定性进行了深入研究,并提出优化改进方案。
2 集成is-is协议链路状态数据包处理
2.1 抑制不稳定链路lsp的产生
当is产生一个新lsp后,就要向外进行扩散,刷新原有的链路状态通告,这样就会在网络中引起一序列的数据包收发过程以及路由的重新计算。如果这种新lsp的产生过于频繁,无疑会增加整个网络的传输和处理负担。当is某个端口处于不稳定状态,端口up/down频繁时,就会出现这个问题。一个较简单方法是设定本地lsp最小产生间隔(如30秒),也就是一个lsp产生之后,下一个lsp的产生要等待此间隔超时。如果在此间隔内本地is状态已经出现了变化,应产生新lsp通告,那么就设置变化标志,等到间隔超时,再由此标志触发新lsp的产生。若在此期间有多次状态变化,则在间隔超时后,is要对各端口和其它路由信息进行检查,最终的状态结果会包含在新产生的lsp中。
2.2 最大lsp序列号的高效处理
lsp序列号表示了is产生本地lsp的先后次序,同时也是比较lsp新旧的重要参数。序列号为4个字节,协议要求is产生lsp序号从1开始,顺序递增,直至最大值。当序列号取最大值时,本地is需要强制复位,重启后序列号又从1开始。为了保证网络中原有最大序列号lsp能被所有is从数据库中超时清除,本地is重启后要延迟足够的时间。如果lsp保持时间为1200秒,再加上60秒的零生命期,那么本地is至少要等待1260秒才能重新启动。
对于序列号复位可以采用另一种更为有效的处理方法:当序列号取最大值后,由本地is主动进行老化处理,也就是产生一个新lsp,其序列号为最大值,并且剩余生存期置为0,向所有接口网络中扩散。网络中其它is收到此lsp后,按照协议规定,清除数据库中带有最大序列号lsp,只保留该lsp的一个摘要,同时启动零生命期。零生命期超时后,lsp被彻底删除。这样本地is只需等待零生命期超时稍长的时间,就可以重新起用序列号1来产生新的lsp。与前一种方式相比,此种方法等待时间明显缩短,并且路由软件还不需复位重启。
3 集成is-is协议链路状态数据包交互研究
只要某些is具有相似的链路状态数据库,而又与dis有所不同,就会发生lsp重复广播现象。当dis a广播csnp时,多个非dis路由器都发现自己与dis间链路状态数据库的差异,同时发出lsp更新对方或本地的链路状态数据库,形成不必要的重复广播,这种情况在新启动路由器被选举成dis时更明显。
为避免或减少这种重复发生,一种可行处理方法是采用随机延迟策略。在收到dis的csnp包后,非dis若需响应则应随机等待一段时间再发送 lsp。在此时间段内,如果有is广播了 lsp,其它非dis接收判别后就不必再作相同的广播,从而有效地减少了数据包重复发送。
随机等待的时间越长,多个is同时响应的概率越小,产生重复发送的可能性就越小,但平均响应时间会加长。为便于分析,令随机等待时间
,其中k取0到n的一个随机整数值(均匀分布),
为一个时间常数。p表示不产生重复发送的概率,t表示平均响应延时。若处于相同(或近似)状态的is有m个,则p、 t可分别计算如下:
设p为is在某一特定时刻产生响应的概率,由于is在任一时刻(0,
,2
,n
)响应是概率分布,所以 p=1/(n+1)。
0时刻有且只有一个is首次响应的概率:
;
时刻有且只有一个is首次响应的概率:
;
(n-1)
时刻有且只有一个is首次响应的概率:
;
n
时刻有且只有一个is首次响应的概率:
任一时刻有且只有一个is首次响应(不产生重复发送)的概率:
根据上式得出概率p的曲线如图1所示。
图1 不产生包重复发送概率图
在0时刻没有一个is响应的概率
,至
时刻没有一个is响应的概率
,至(n-1)
时刻没有一个is响应的概率
,至n
时刻没有一个is响应的概率p
n=0;
0时刻有is响应的概率为1- p
0,
时刻有is首次响应的概率为p
0- p
1, (n-1)
时刻有is首次响应的概率为p
n-2- p
n-1,n
时刻有is首次响应的概率为p
n-1。
is平均响应延迟:
根据上式可画出平均响应延时t的曲线(纵坐标单位为
)如图2所示。
图2 平均响应延时图
当处于相同状态is个数m(m>1)一定时,is允许等待时间越长,避免数据包重复广播概率越大;当is允许等待的最长时间一定时,m越大,避免数据包重复广播概率越小。随着n取值的增大,不出现重复广播的概率增大,但增大的程度会逐渐趋缓。当n大到一定程度后,对于避免重复广播已不会有太大的改善,如图1所示,当n取值为m的2倍时,p都达到0.8左右,n值再增大,p变化不明显。当m数一定时,n越大,平均响应延迟越大;n取值一定时,m越大,平均响应延迟越大。当n取值较大时,平均响应延迟t与n近似成线性关系,随着n的增加,t将线性增长。
通过以上计算分析我们知道,采用随机延时等待策略可以有效地减少或避免lan上重复广播的出现,但这并不意味着允许最大等待时间越长越好。当 值较大时,对减少重复广播已无多大改善,相应延迟却仍按比例增加,响应延迟增加会影响链路状态包在网络中的同步和扩散,影响协议性能。因此最大允许等待时间不宜过大,小于csnp发送周期(10秒),这样可以保证在下一个csnp到来之前完成本次同步过程。
4 集成is-is协议lsp重传问题
在点到点链路上,is发出lsp包后,对方要根据收到lsp更新其数据库,同时返回psnp作为确认,发送方接收到确认后,才把lsp在此链路上的发送标志srm清除,否则此lsp会被再次发送,直至收到对方的确认。这里存在两种可能:其一是在未收到确认前,lsp的重复发送过于频繁,其二是若对方出现故障无法应答,则在邻接关系解除之前,lsp可能要多次传送。在协议信息流已使网络处于拥塞的时期,主要拥塞原因之一是反复重传lsp。通过指数退避算法动态调整lsp的重传速率,可以减轻网络的负载,使网络尽早恢复正常。在对方发生故障情况下,也能减少重传。r(i)表示第i 次lsp重传时的rxmtinterval值。使用如下算法计算:
其中k、r
min和 r
max是常量。
4.1 基于未确认的lsp数量检测算法
如果路由器发生控制信息拥塞时,其邻居并不能显式知道。但能够从路由器未被确认的lsp的数量隐式检测出来。如果这个值超过一定的“最高阈值”,则lsp发送到该路由器的速率应当使用指数退避算法逐步降低,但不能低于最小速率。如果未确认的lsp的数量降到“最低阈值”,则lsp发送到该路由器的速率应当使用指数退避算法逐步提高,但不能高于最高速率。算法对于每个邻居独立运用,适用于发送到邻居的is-is单播的lsp分组。整个算法描述如下:
u(t)=t时刻到邻居的未确认lsp数量;h =最高阈值(未确认lsp数量);l =最低阈值(未确认lsp数量);g(t)=t时刻连续发送lsp到邻居的时隙; f=时隙增长(拥塞情况下)或者降低(拥塞之后)的系数; t=时隙改变的最短间隔; g
min=时隙最小值;g
max =时隙最大值。下述方程式表明了时间t后时隙的改变:
4.2 重传时间间隔设置对网络的影响
网络处于lsp拥塞状态下,协议分组传输会受到影响。如果传输延迟超过了设置的重传时间间隔,有可能造成邻居失效或lsp分组的重传,实验模拟当网络发生lsp拥塞时,重传时间间隔参数不同的设置值情况下,网络的某一接口在3分钟内收发的协议分组总数,实验数据见表1。
表1 实验数据表
次数
重传间隔(秒)
接收协议分组数量
1
1
552
2
4
144
3
8
75
4
16
46
5
32
31
从表1中接口协议分组收发数量可以看出,网络发生lsp拥塞时,适当延长重传时间间隔参数的值,可以降低网络中传输协议分组的数量,使网络尽快摆脱lsp拥塞状态,恢复正常。
5 结论
本文以高性能路由器集成is-is协议的研究为基础,对集成is-is协议的路由稳定性进行了研究并对针对相关问题提出了改进方案。本文通过对协议包处理流程的优化有效地减少了不稳定链路上lsp的产生,高效地处理了最大lsp顺序号的问题,通过理论分析得出了lsp交互的优化方案,利用基于未确认的lsp检测机制研究了减少lsp重传的问题。
参考文献
[1]d. oran.osi is-is intra-domain routing protocol[s],request for comments:1142,1990
[2]r. callon.use of osi is-is for routing in tcp/ip and dual environments[s],request for comments:1195,1990
[3]jeff doyle著,葛建立,吴建章译.routing tcp/ip volume 1[m].人民邮电出版社,2002