书书书
第35卷 第10期2012年10月
计 算 机 学 报CHINESEJOURNALOFCOMPUTERS Vol.35No.10Oct.2012
收稿日期:20120630;最终修改稿收到日期:20120809.本课题得到国家自然科学基金(61070199)、国家“九七三”重点基础研究发展规
划项目基金(2009CB320503)资助.胡乔林,男,1979年生,博士,讲师,主要研究方向为容迟容断网络、网络生存性和虚拟网络.Email:
huqiaolin@nudt.edu.cn.彭 伟,男,1974年生,博士,副研究员,主要研究方向为路由协动、移动网络.陈 新,男,1981年生,博士,主要
研究方向为网络安全.苏金树,男,1962年生,博士,教授,博士生导师,主要研究领域为计算机网络、信息安全.
犕犉犜2犅犌犘:基于多转发树的无中断域间路由
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
胡乔林1) 彭 伟2) 陈 新1) 苏金树2)
1)(空军预警学院五系 武汉 430019)
2)(国防科技大学计算机学院 长沙 410073)
摘 要 BGP通过触发全局、反应式收敛应对链路或节点失效引起的拓扑变化,然而BGP协议收敛时间长、收敛
过程中的瞬时失效严重降低了数据平面转发性能,难以支持关键业务流量.该文提出了容忍失效的MFT2BGP,通
过利用路径标识符以较低的消息开销构造符合BGP策略的多转发树,使得每个AS获得多样性路径,当出现瞬时
失效时,在不改变协议动态性的情况下,允许节点动态切换报文转发路径以实现无中断报文转发,通过嵌入“失效
根源信息”以降低收敛时间,抑制瞬时失效以降低路由系统的扰动.通过在Internetlike拓扑上的大量实验表明,在
链路失效场景中与其它协议相比,MFT2BGP能有效改善收敛时间,降低转发中断时间,改善路由系统稳定性.
关键词 域间路由;瞬时失效;多转发树;多路径;快速恢复
中图法分类号TP393 犇犗犐号:10.3724/SP.J.1016.2012.02023
犕犉犜2犅犌犘:犃犮犺犻犲狏犻狀犵犇犻狊狉狌狆狋犻狅狀犉狉犲犲犐狀狋犲狉犇狅犿犪犻狀犚狅狌狋犻狀犵犘狉狅狋狅犮狅犾犝狊犻狀犵犕狌犾狋犻狆犾犲犉狅狉狑犪狉犱犻狀犵犜狉犲犲狊
HUQiaoLin1) PENGWei2) CHENXin1) SUJinShu2)
1)(犇犲狆犪狉狋犿犲狀狋犉犻狏犲,犃犻狉犉狅狉犮犲犚犪犱犪狉犃犮犪犱犲犿狔,犠狌犺犪狀 430019)
2)(犛犮犺狅狅犾狅犳犆狅犿狆狌狋犲狉,犖犪狋犻狅狀犪犾犝狀犻狏犲狉狊犻狋狔狅犳犇犲犳犲狀狊犲犜犲犮犺狀狅犾狅犵狔,犆犺犪狀犵狊犺犪 410073)
犃犫狊狋狉犪犮狋 BGPtriggersglobalandreactiveroutingconvergencetodynamicallyadapttonetwork
topologyandpolicychangessuchaslinkornodefailures.Nevertheless,BGPfacesthechallenge
oflongconvergencetime,transientfailureduringtheroutingconvergence,whichaffectsthefor
wardingperformancesoastohardtosupportmissioncriticaltraffic.Thispaperpresentsthepro
tocolforachievingfailuretolerantinterdomainroutingprotocolnamedMFT2BGP,itconstructs
policycompliantmultipleforwardingtreesusingpathidentifierwithlowmessageandprocess
overhead,whichmakeeveryASdiscoverydiversitypath,EveryAScanswitchtraffictobackup
pathdynamicallytoachievedisruptionfreeforwardingwithoutcomprisingtheroutingbehaviorin
thepresenceoftransientfailurescenario.MFT2BGPreducestheconvergencetimebycarrying
“rootcausenotification”inupdatemessagesandreducesthechurnofroutingsystembysuppress
ingnonnecessaryroutingupdates.Detailedexperimentsoninternetliketopologysuggestthat
MFT2BGPreducesconvergencetimeandforwardingdisruptiontimeinlinkfailurescenarios,
enhancestheroutingstabilitythanotherprotocols.
犓犲狔狑狅狉犱狊 interdomainrouting;transientfailure;multipleforwardingtrees;multiplepath;
fastrecovery
1 引 言
Internet已经发展成为重要的通信基础设施,
承载了许多如VoIP、在线游戏、远程医疗等对延迟
及中断敏感的关键业务,然而Internet却容易遭到
破坏,例如软硬件故障、误配置、攻击等因素都会造
成网络失效.通过对Sprint骨干网链路故障进行分析[1],人们发现失效几乎每天都会发生,且90%属
于瞬时性故障.理想的路由协议应保证只要底层拓
扑连接就能提供持续通信.然而BGP协议[2]缺乏生
存性保证,在失效时仅触发全局、反应式收敛应对拓
扑变化,相对于IGP秒级的收敛,BGP由于大量“路
径探索”[3]以及MRAI和WRATE定时器的限制,
导致收敛时间甚至达到30分钟[4],这进一步恶化了
转发中断.KatzBassett等人[5]发现即使多宿主AS
并不总能实现容错,BGP导致大量多宿主AS经历
不可达事件,持续时间甚至长达数小时或天,其数量
与持续时间都远超预期,严重降低数据平面的转发
性能.Wang[6]通过对顶级ISP进行测量,发现BGP收敛期间的动态性造成大量路由器经历瞬时路由失
效、环路,即使在失效切换和链路恢复时路由黑洞也
会造成数十秒的报文丢失.
可达性是路由协议的顶级目标,研究者通过加
速收敛以降低失效对转发中断的影响,包括Ghost
Flushing[7]、EPIC[8]等通过抑制或嵌入“失效根源”信息以快速作废非法路径,但GhostFlushing、
EPIC在Internetlike拓扑下,其加速收敛效果并不
明显.而且由于多数是瞬时失效,过快收敛反而给路
由器增加负担,带来路由的不稳定性.加速收敛并不
能满足关键应用需求,也不能消除收敛过程对转发
中断的影响.一些研究工作集中于扩展BGP,比如
MIRO[9]、RBGP[10]、Splicing[11]、Consensus[12]、
YAMR[13]等采用预计算备份路径的方法,不同程度
上暴露底层拓扑冗余路径,但这些协议AS之间的
备份路径缺乏协调可能形成环路,也并不能保证每
个AS获得多样性路径,且部分协议难以实现完全
无中断转发.
针对抑制瞬时失效、无中断报文转发、低开销的
需求,本文提出了通过构造多转发树容忍失效的域
间路由协议(MultipleForwardingTreeandFailure
TolerantBGP,MFT2BGP)以实现快速路由恢复,
其主要面临如下挑战:(1)在
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
BGP中,AS节点
无全局拓扑,使得每个AS难以获得、区分多样性路
径;(2)在构造多转发树时要求降低收敛时间,并保
证处理开销在合理范围内;(3)保证报文在多转发
树之间切换时不会形成环路.为此,MFT2BGP设
计主要包括3个关键部分,即控制平面的多转发树
构造、加速收敛与瞬时失效抑制、数据平面无中断报
文转发算法.该协议的特点在于:(1)充分利用底层
冗余拓扑,提供可保证的结构化多样性路径,避免了
备份路径之间可能的环路;(2)抑制瞬时失效,避免
失效全局可视化,增强了BGP系统的稳定性;(3)从
数据平面保护流量,采取本地先验式的方法处理瞬
时失效引起的报文丢失,支持关键业务的应用;
(4)具有可扩展性、兼容性,便于增量部署.
本文第2节介绍相关工作;第3节描述问题模
型;第4节设计MFT2BGP协议框架以及控制平面
的多转发树构造、加速收敛、失效抑制以及报文转发
算法;第5节对协议的正确性进行分析;第6节通过
模拟验证MFT2BGP的收敛性以及无中断转发性
能;最后对本文工作进行
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
.
2 相关工作
当前大部分研究工作主要利用冗余路径以应对
出现的失效,IETFRTGWG工作组致力于IGP协
议的IPFRR(IP快速重路由),比如Deflections[14]
等,其主要思想是为可能出现的链路、节点失效预计
算备份路径.Medard等人[15]最早提出了冗余树的
方法以容忍单链路失效,Kini等人[16]通过构造多冗
余树以容忍两条链路失效,然而在图论中计算冗余
路径的经典算法都需要获得全局一致性拓扑信息,
而域间路由系统中每个AS仅能获得局部拓扑信
息,无法进行有效集中式计算;其次由于Internet的
AS数量大,集中式计算复杂度非常高,即使是分布
式方法也由于协议复杂度过高而难以实现;最后由于
BGP协议需要保证策略实现,进一步限制了可达性,
因此许多IGP中的方法难以直接应用于BGP中.
现有BGP协议缺乏对多路径的考虑,缺乏发
现、使用多路径的能力,大量研究表明多路径可增强
网络容量、可靠性.MIRO[9]通过复杂的协商机制获
得多路径,依赖于配置通告备份路径的策略,是一种
无结构路径的方法,MIRO采用隧道机制区分那些
需要在备用路径上传输的报文,并且没有考虑快速
路由恢复.RBGP[10]为AS通告一条与最佳路径不
相交的AS级备份路径以提高可靠性,这依赖于大
量手工配置通告备份路径的策略,是一种无结构路
径的方法,信令机制较复杂,且并不能完全保证获得
多样性路径,且需要特殊报文封装机制进行转发.
4202 计 算 机 学 报 2012年
Consensus[12]路由协议借鉴了分布式系统中快照实
现一致性的算法,将路由计算集中于顶级AS,这却
违反了AS自治性,当链路失效造成报文不能正常
转发时进入瞬时模式,采用偏转(Deflection)、回退
(Backtracking)、备份(Backup)机制发起本地重路
由.Splicing[11]利用BGP路由器中已有的多条路径
构造多路径转发.YAMR[13]为每个AS最佳路径的
每一跳都获得冗余标签路径,其平均RIB/FIB存储
平均至少增加4.6倍,且部分冗余路径对于快速恢
复难以发挥作用.ACF[17]在路由不一致的情况下采
用检测并恢复的方法,通过在报文头中添加路径踪
迹域、黑名单域等辅助路由决策和转发,较大程度增
加了报文头开销,可能形成违反AS策略的转发路
径.AddPath[18]通告多路径,需要全网路由器更新,
且增加了路由震荡的风险.
上述针对BGP的多路径协议主要通过修改策
略使其在控制平面通告多路径,这需要复杂的信令、
决策机制等,是一种无结构的方法,并没有对BGP
协议进行系统化的设计,对于多链路失效的转发缺
乏考虑;且这些协议对于路径多样性暴露程度并没
有确定性的保证,且基本上没有考虑抑制瞬时失效
的方法,对于多路径协议的收敛期间的动态行为缺
乏考虑.对于降低协议开销、保证无中断转发、抑制
瞬时失效这3个相互影响的问题,已有工作并不能
完全解决.MFT2BGP通过为目标前缀构造冗余
树,每个AS自动获得结构化的多样性路径,而无需
大量人工配置复杂策略,可以实现负载均衡、降低
BGP扰动,面临失效时动态切换路径以实现快速路
由恢复,在不影响报文转发的情况下抑制瞬时失效,
增强BGP路由系统的稳定性.
3 网络模型和问题分析
31 网络模型
MFT2BGP做出如下设定(其中设定(1)是为了
简化表述,这是当前研究普遍采用的设置,不影响协
议的正确性,而(2)、(3)是研究BGP[2]的基本设置):
(1)每个AS狏仅由单边界网关路由器节点组成
(不考虑iBGP),狏对每个狌∈犘犲犲狉狊(狏)(犘犲犲狉狊(狏)为狏
的邻居节点)的导入、导出路径分别保存在rib_in(狏←
狌)、rib_out(狏→狌)中,loc_rib(狏)保存本地最佳路径;
(2)AS的导入导出策略服从“GaoRexford”原
则[19],即仅出现“valleyfree”的路径;
(3)AS间建立eBGP会话,路由更新消息服从
SPVP[20]模型.
32 问题的提出与分析在给定拓扑下网络容忍失效的性能主要取决于
拓扑暴露程度、协议响应性两个因素.BGP协议在
这两个方面却存在不足.虽然BGP将快速响应性置
于一致性之上,但是却带来了大量环路以及路由黑
洞,直接影响转发性能;同时,尽管Internet底层路
径具有充分冗余[21],AS无可替代路径的不到
5%[9],BGP协议对于底层路径暴露程度不足,缺乏
发现、区分和使用多路径的能力,多宿主AS也仅能
控制报文出口,而仍然缺乏容错性[5],这主要是由于
BGP缺乏故障隔离能力、仅通告并使用单路径、协
议的动态性造成的瞬时性不可达、环路(将其统称为
瞬时路由失效)[22],从而造成了网络可用性相对较
低,而一些多路径BGP协议却增加了环路发生的可
能性[18],比如RBGP为当前下一跳通告备份路径
时,如图1中AS2为下一跳AS1通告备份路径
(20),当AS1AS0和AS2AS0多链路同时失效
时,由于AS1和AS2独立决策,将会在造成备份路
径之间形成环路,甚至某些单链路特殊场景下也可
能造成环路.Splicing[11]仅利用已有路径,却没有考虑如何获得多样性路径,比如AS0AS3断开时
Splicing仍将产生失效.合理发现、利用多样性路径是解决这些问题的关键.基于以上观察,在设计
MFT2BGP时对SPVP[20]定义进行扩展以发现、区
分多路径;在多路径开销和性能之间折衷,确保协议
的收敛性和正确性.
图1 链路故障导致BGP瞬时失效
定义1. 合法路径.BGP中合法路径必须服从策略、能够到达犱(即不含失效链路/节点);其次路
径犘=π(狌,犱)是合法的必须满足:犻,狀犻1,
π(狌,犱)=π(狌,狏犻)+π狌(狌∈狏犻,犱)=π(狌,狏犻)+π(狏犻,
犱),即π狌(狌∈狏犻,犱)=π(狏犻,犱),即合法路径不会造成报文偏转.其中路径犘=π(狌,犱)=(狌,狏1,狏2,…,
狏狀,犱),表示狌分配的到达犱的节点序列,π狌(狌∈狏犻,
犱)表示在狌的路由
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
中所看到的狏犻到达犱的路
520210期 胡乔林等:MFT2BGP:基于多转发树的无中断域间路由协议
径,而π(狏犻,犱)表示狏犻实际采用转发路径,犘·犙表示为路径犘、犙拼接.
设非空合法路径犘、犙完全不相交;或者在某点
交叉,即犻,犼,使得狏犻=狑犼≠犱,或者犘与犙仅在犱汇合,如果π狌(狌∈狏犻,犱)=π狕(狕∈狑犼,犱),那么犘、犙之间是一致的,一致性路径不会造成转发环路.
定义2. 隐藏路径与备份路径.指底层拓扑存
在到达犱的合法路径,但AS却没有获取该路径,其
具有相对性,比如图1中,AS3可以通过(35620)
或(34620)合法路径封装报文到达目标,却
被AS4、AS5隐藏.备份路径是指可到达犱且没有被
选作最佳路径的合法路径,备份路径也可能被隐藏.
定义3. 路径不相交度.对于给定路径犘、犙,
如果犘和犙具有不同下一跳,犇犻狊犼狅犻狀狋(犘,犙)=1-
|犘∩犙|/|犘|(计算|犘∩犙|时不包含源、目的节
点);否则犇犻狊犼狅犻狀狋(犘,犙)=0,这是由于具有相同下
一跳的路径无法用于快速恢复.对于节点狌的合法
路径犘、犙,如果满足犇犻狊犼狅犻狀狋(犘,犙)>0,则称狌具
有多样性路径.
定义4. 转发树.对于给定目标前缀犱,存在稳
定的路径分配使BGP收敛后,所有节点最佳路径最
终形成以犱为根节点的转发树[20],转发树中所有节
点转发路径具有一致性,即如果π(狌,犱)=(狌,狏,
犘),那么π(狏,犱)=(狏,犘).由于BGP的策略限制,
其转发树并不一定是最短路径树.
定义5. 路径标识(PathIdentifier,PID).当
存在多条到达目标前缀的路径时,为了区分、处理每
条合法路径,节点需要同时根据前缀狆狉犲犳犻狓和特定
标识符ψ区分路径,即利用(狆狉犲犳犻狓,ψ)路径标识符唯一标识一条路径犘.
定义6. 秩函数λ狏:犘狏→犖,对于犘∈犘狏,犘狏=
{犘|犘=狏·π(狏,犱),狏∈犘犲犲狉狊(狌)},犘狏表示从狏到
达犱的合法路径集合,如果犘1、犘2∈犘狏,λ狏(犘1)>
λ狏(犘2),那么犘1具有更高优先级.
定义7. 瞬时失效节点.指出现失效后,节点狏
的狉犻犫_犻狀(狏)中无可到达犱的合法路径,此时节点可
行路径集为空或包含非法路径,此时会造成报文丢
失或者环路[22].如图1所示,目标前缀犱位于AS0,
AS旁矩形框为根据ValleyFree得到的路由表,
比如AS5具有3条到达AS0的路径,AS5根据
“PreferCustomer”优选(530)作为最佳路径.假设
链路AS0AS3断开,AS3发送撤销消息到AS4和
AS5,AS5将根据其偏好策略优先选择(5430),
而AS4将选择(4530)路径作为最佳路由,
WRATE(撤销速率限制定时器)使得AS2和AS3
延迟通告新的可用路径,此时AS5、AS4之间形成
环路,AS3无到达AS0的路径.即AS3、AS4、AS5
经历瞬时失效.
定义8. 转发中断.转发路径是指在时刻狋,报
文从狌发送到犱所实际经过的节点序列,表示为
犳狅狉狑犪狉犱(狌,犱),如果狏∈犳狅狉狑犪狉犱(狌,犱),狏的转发
平面中的下一跳为空或陷入环路,则称之为转发中
断(本文忽略失效检测时间,BFD机制可将失效检
测时间降至15ms以内,Cisco路由器已经普遍实现
BFD).需要注意的是,节点瞬时失效仅是转发中断
的必要条件,比如在图1中,如果AS2AS0链路失
效,虽然AS6采用(620)不是合法路径,但是由于
AS2具有冗余路径,在检测到失效以后能够迅速切
换(210),此时并无节点经历转发中断.而在一些
加速收敛协议中,如GhostFlushing将使AS2快速
撤销路径(20),如果AS6无备份路径,将导致AS6
也经历转发中断,数据平面的转发中断相对于BGP
收敛时间更准确度量协议性能[23],文献[5]也指出
控制平面的可达与数据平面的可达并不完全相关,
本文也将用瞬时失效率、转发中断作为衡量协议性
能的重要指标.
4 犕犉犜2犅犌犘协议设计
41 犕犉犜2犅犌犘基本框架
BGP路由系统表示为犛=〈犌,犘狅犾犻犮狔(犌),狊〉,其中AS图表示为犌=(犞,犈),犞={0,1,…,狀},
犘狅犾犻犮狔为所有节点的策略集合.BGP系统状态表示为元组〈狉0,狉1,…,狉狀〉,其中狉犻表示AS犻的路由表中
所包含的到达犱的路径集合,狆∈狉犻,狊0表示犱发起
通告时的初始状态,狊0=〈狉00,狉01,…,狉0狀〉.当处于收敛
状态狊犳犻狀犪犾时,所有节点的转发路径将形成以犱为根
的最佳转发树犅犲狊狋_犜狉犲犲(犱,〈狉犳犻狀犪犾0,狉犳犻狀犪犾1,…,
狉犳犻狀犪犾狀〉)=犌(犞′,犈′),且有犞′={狀犼∈犞|狆∈狉犼},
犈′=∪狀犼∈犞′{(狌,狏)∈犈狘狆∈狉犼∧狆
=狏1,狏2,…,狏( )犿∧((狌=狀犼∧狏=狏1)∨
(狌=狏犽∧狏=狏犽+1))} (1)
当链路失效后BGP重新收敛形成新的以犱为
根的转发树.如图1中,AS0AS3断开后收敛最终
得到失效后转发树.基于以上观察,如果各个节点在
失效前能够发现、预计算出备份转发树,就可以保证
每个AS在面临链路/节点失效的时候,仍然存在合
法备份路径,从而将流量切换到备份转发树中,且备
6202 计 算 机 学 报 2012年
份转发树路径上具有完全一致性,其结构化性质阻
止了环路形成.然而,由于BGP并不能获得全局
拓扑进行有效集中式计算链路或者节点不相交
树[1516],而注入失效链路并强制其收敛获得失效后
转发树,其收敛时间过长且会中断报文转发.为此,
MFT2BGP对协议通告过程进行修改,添加路径标
识符以区分、获得结构化的多样性路径.节点为了能
够利用多条路径进行无环转发,也需要为多路径分
配路径标识符,任意节点狏必须实现如下映射:
犘犪狋犺犐犇狏狆犪狋犺,( )犱:犘犪狋犺→犘犐犇
犉狅狉狑犪狉犱狏犘犐犇,( )犱:犘犐犇→烅
烄
烆 犘犪狋犺 (2)
路径标识函数犘犪狋犺犐犇狏,即节点狏需要为每条
合法路径从路径标识集合犘犐犇中选择合适标识符
ψ犻狏,其中ψ犻狏表示节点狏的第犻条路径标识符,而转发函数犉狅狉狑犪狉犱狏则根据ψ(ψ∈犘犐犇)进行报文转发,将ψ映射到对应的路径犘=(狏1,狏2,…,狏狀),节点狏犽和狏犽-1需正确解释ψ,且狏犽能够将报文转发到狏犽-1,即犉狅狉狑犪狉犱狏犽(ψ,犱)=狏犽-1,1犻狀.其中路径标识符可以是全局一致标识或本地分配的标识符,
而本地分配标识符更加灵活,但狏犽、狏犽-1之间需对本
地标识符ψ犼狏犽以及ψ犻狏犽-1按照式(2)的条件协商后进行映射转换,即对于标识符ψ路径犘上相邻节点,如图2(a)所示,犿犪狆(ψ犼狏犽)=犿犪狆(ψ犻狏犽-1)=ψ以保证转发一致性,标识符映射可采用与Deflection[14]类
似的方法,为表述方便本文采用全局一致性标识.
在不影响理解的情况下,本文中将网络节点等
同于AS节点.对于标识符ψ和其对应转发树ψ也不进行区分,对于转发树ψ(非最佳转发树)中节点对应ψ的路径,也称为该节点的备份路径.
图 2
42 控制平面多转发树构造与更新
MFT2BGP对路由通告、路由决策进行了相应
的修改,如图1中,AS0根据本地策略向3个邻居节
点AS1、AS2、AS3通告前缀时分别分配标识符ψ10、
ψ20、ψ30(简记为ψ1、ψ2、ψ3).各节点(不含AS7、AS8)最终获得多路径如图3所示,其中对更新消息处理
顺序可能导致中间状态不同,但最终收敛结果一致,
形成3个不同转发树,简记为ψ1_犜狉犲犲、ψ2_犜狉犲犲、
ψ3_犜狉犲犲.其中对于AS7仅能通过上行路径(uphill)[19]到达目标前缀,AS6和AS2会导出所有本地合法路
径到AS7,AS7可根据本地策略决定各个路径标识
上的最佳路径.图3表现了协议运行过程,暂时并没
有考虑将具有相同下一跳的路径合并以降低开销以
及加速收敛等优化操作.其中,图3中“”表示发送更新消息,下划线“—”表示该节点rib_in发生变
化,路由表中斜体部分表示可以合并的路径,设置最
佳路径标识符“犅犲狊狋”是为了与当前协议兼容,并且
避免由于标识符数量过少而导致部分节点使用次优
路径(如果不考虑“犅犲狊狋”,更容易实现,但是却违反
了标准BGP语义).
图3 MFT2BGP更新消息处理过程示例
当节点检测到最佳路径的下一跳失效后,如果
该节点具有不相交度大于0的备份路径,通过修改
报文头以动态切换到具有不同标识符上的转发树,
实现无中断转发.
4.2.1 前缀通告
在MFT2BGP协议中,AS狏发起前缀通告时,
针对不同的节点对〈狏,狌〉为每条路径分配标识符,狏
的loc_rib发生改变并在通过导出策略后,需将对应
标识符(犪狀狀_狆犻犱)的路径信息发送到邻居节点狌.当
狏的邻居节点数大于可用路径标识符数量,将其余
的邻居AS路径标识符设置为隐藏标识符(犎犻犱犲_
犘犐犇),表示该路径仅可能被部分AS选作最佳路
720210期 胡乔林等:MFT2BGP:基于多转发树的无中断域间路由协议
径,但是并不会传播到全网,从而在暴露的路径数量
以及开销之间进行折衷.如果发起前缀通过的AS
仅有单条路径,如图2(b)所示,此时AS0可以将路
径标识符池[ψ1,ψ2,ψ3]通告给AS1,然后AS1从标识符池中取出标识符并通告给不同邻居,或者AS1
自主对不同邻居分配路径标识符.
通过分配路径标识符使得路由器能够区分、利
用多路径,狏存储的rib_in(狏←狌)、rib_out(狏→狌)、
loc_rib(狏)以及更新报文狌狆犱犪狋犲数据结构修改为映射类型,比如某个完整的更新报文将包括(狆犲犳犻狓,
犘犐犇,犃犛_犘犪狋犺)三个域,分别表示前缀、标识符以及
AS路径.其通告过程如过程1所示,其中省略了
MRAI设置等语句.过程1中第1~3步表示构造原
始的通告路径.第4~10步表示依据路由策略从路
径标识符池中选取路径标识符,并构造对应标识符
的更新消息.第11~13步则表示将包含标识符的更
新消息发送到邻居节点中.
过程1. 路由器狏目标前缀通告过程.
/狏表示发起通告的路由器,狆狉犲犳犻狓为目标前缀,犘犲犲狉狊(狏)表示其邻居列表,犘犐犇_犛犲狋表示可用路径标识符集合,
狌狆犱犪狋犲为路由更新消息/
1.犘狅狉犻犵犻狀··=狆犪狋犺_犻狀犻狋(狆狉犲犳犻狓)//构造通告路径
2.狏.狅狉犻犵犻狀_狉犻犫(狆狉犲犳犻狓)··=犘狅狉犻犵犻狀
3.IF狏.犘犪狋犺_犛犲犾犲犮狋犻狅狀(狆狉犲犳犻狓)==True//检测loc_rib是否改变
4.FOREACH狑∈狆犲犲狉狊(狏)DO
5.IF狏.犲狓狆狅狉狋_狆狅犾犻犮狔(狑,狆狉犲犳犻狓,狅狉犻犵犻狀_狆犪狋犺)==True
&&狏.犵犲狋_犾犻狀犽(狑)≠down//检测到达对应邻居节点的路径无失效且能通过导出策略
6.IF犘犐犇_犛犲狋==
7. 犪狀狀_狆犻犱··=犎犻犱犲_犘犐犇
8.ELSE
9. 犪狀狀_狆犻犱··=犘犐犇_犛犲狋.狆狅狆()//获得路径标识符
10.ENDIF
11.狌狆犱犪狋犲=狏.犾狅犮_狉犻犫[犪狀狀_狆犻犱]//根据标识符构造更新消息
12.狏.犲狓狆狅狉狋_犪犮狋犻狅狀(犪狀狀_狆犲犲狉,狆狉犲犳犻狓,狌狆犱犪狋犲)
13.狏.狊犲狀犱_狌狆犱犪狋犲(狑,犪狀狀_狆犻犱,狌狆犱犪狋犲)//发送更新报文到狑
14.ENDIF
15.ENDFOR
16.ENDIF
4.2.2 路由更新
节点接收到路由更新消息后,将启动路由更新
发送的过程,其服从SPVP模型[20].如过程2所示,
其中第1~4步表示狏接收到狌更新报文以后,狏根
据导入策略对更新报文进行过滤.第5~9步中,狏
从更新报文中提取所有路径标识符对应的路径信
息,狏更新所保存的rib_in(狏←狌).第10~13步中狏
调用本地路径选择过程,使用秩函数λ狏犫犲狊狋从所有可
行路径中选择最佳路径,然后为每个路径标识符计
算新的最佳路径,并最终下载到FIB中.其中在过
程2中,狏中具有标识符ψ犻的路径集合表示为犘狏ψ犻,
βψ犻表示对应标识符的最佳路径,令λ狏ψ犻表示对应路径标识符的秩函数,要求选择最大不相交多样性路径.
过程2. 路由器狏路径选择过程.
1.IF犾狅狅狆_犱犲狋犲犮狋犻狅狀(狌狆犱犪狋犲)==True //环路检测
2. RETURN
3.狏.犻犿狆狅狉狋_狆狅犾犻犮狔(狌,狌狆犱犪狋犲)
//根据导入策略对狌狆犱犪狋犲报文进行过滤并修改路径属性
4.狏.犻犿狆狅狉狋_犪犮狋犻狅狀(狌,狌狆犱犪狋犲)
5.FOREACH(犘犐犇,犘犪狋犺)∈狌狆犱犪狋犲[狆狉犲犳犻狓]DO
//遍历狌狆犱犪狋犲中所有标识符对应的路径信息
6. IF犘犪狋犺==
7. Del狏.狆犲犲狉狊[狌].rib_in[狆狉犲犳犻狓][犘犐犇]
8. ELSE
9. 狏.狆犲犲狉狊[狌].rib_in[狆狉犲犳犻狓][犘犐犇]··=犘犪狋犺
//狏更新对应的rib_in(狏←狌)
10.狅犾犱_狉犻犫=犆狅狆狔(狏.loc_rib[狆狉犲犳犻狓])//复制原有loc_rib
11.β犫犲狊狋··=max(λ狏犫犲狊狋(∪犘狏ψ犻))//从所有路径标识符中选择最佳路径
12. 狏.loc_rib[狆狉犲犳犻狓][犫犲狊狋]··=β犫犲狊狋13.犻狀狊狋犪犾犾_犉犐犅(β犫犲狊狋)14.FOREACHψ犻∈犘犐犇_犛犲狋DO
15. βψ犻=··=max(λ狏ψ犻(犘犪狋犺狏ψ犻))//为每个路径标识符选择对应的最佳路径,且满足路径多样性要求
16. 狏.loc_rib[狆狉犲犳犻狓][ψ犻]··=βψ犻17. 犻狀狊狋犪犾犾_犉犐犅(βψ犻)18.IF狅犾犱_狉犻犫≠狏.loc_rib[狆狉犲犳犻狓]//如果loc_rib改变,则将向每个狆犲犲狉发送更新消息
19. RETURNTrue,THEN狊犲狀犱_狌狆犱犪狋犲(狆犲犲狉狊(狏))
20.ELSE
21. RETURNFalse
43 多转发树下的加速收敛
与标准BGP协议构造单个以犱为根的转发树
相比,MFT2BGP在构造多转发树时,为了传播隐
藏路径也相应增加了一定的开销.MFT2BGP则将
EPIC[8]的思想扩展到多路径场景以加速协议收敛
(简称MFT2EPIC).MFT2EPIC主要针对各标识
符上的路径之间存在的依赖性,在每条标识符路径
上添加不同的序列号(犳犲狊狀)进行区别,即犳犲狊狀=
(〈狓,狔〉:犖)表示链路两边节点有序对与序列号的
组合.即完整的更新消息包含[狆犲犳犻狓,犘犐犇]+
[犃犛_犘犪狋犺]+{犳犲狊狀犔犻狊狋},犳犲狊狀犔犻狊狋包含对应犃犛_犘犪狋犺
中的犳犲狊狀列表.当出现链路失效(或更改策略)撤销
[狆犲犳犻狓,ψ]相关路径时,狌发送的撤销消息中包含
犳犲狊狀犔犻狊狋1信息,令犳犲狊狀犔犻狊狋1=[(〈犪1,犫1〉,狀1),(〈犪2,
犫2〉,狀2),…,(〈犪犽,犫犽〉,狀犽)],狏接收撤销消息后,狏可
8202 计 算 机 学 报 2012年
利用撤销消息中的犳犲狊狀犔犻狊狋信息作废其它邻居节点通告的所有标识符上的非法路径,设狏存储的某
条路径犘对应的犳犲狊狀犔犻狊狋2=[〈犪′1,犫′1〉,狀1),〈犪′2,
犫′2〉,狀2),…,〈犪′犾,犫′犾〉,狀′犾)],且犽犾.如果存在(犪犻==
犪′犻)∧(犫犻==犫′犻)∧(狀犻==狀′犻)),犻=1,2,…,犽,即
犳犲狊狀犔犻狊狋2与撤销路径犳犲狊狀犔犻狊狋1相关,此时可以快速作废非法路径犘,从而加速收敛并消除收敛过程中
可能的环路.
44 瞬时失效抑制在不影响转发连续的情况下,可以利用多路径
压制瞬时失效以实现故障隔离能力,避免频繁收敛
带来的路由震荡,从而降低控制平面的扰动.基本思
想是当最佳路径失效后,如果备份路径具有不同的
下一跳,则并不发送更新消息,并且设置合理定时器
(绝大多数BGP故障将会在10min内恢复[24],可据
此设置默认定时器).如果定时器超时则需要发送路
由更新消息,触发路由重新收敛.比如狌检测到路径
标识符ψ对应的路径失效,如果狌仍然具有其它可行转发树对应的路径,在不影响持续转发的情况下,
狌可对与ψ相关的失效消息进行抑制,将该策略称为SUP(SuppressallUPdatemessage).
SUP策略将会使得部分节点在压制失效后可
能使用非最佳路径,比如图1中链路AS0AS3失效
后,将导致AS3、AS4、AS5的最佳路径发生变化,如
果AS3压制失效信息,在消息压制期间,将会使得
受到失效影响的节点AS3、AS4、AS5到达目标的跳
数增加.为此,设置新的路由策略SNUM(Suppress
NonBestUpdateMessage),即狌在检测到失效后,如果其狌的最佳路径改变,狌在利用备份路径转发
的同时也发送更新消息,如图1中AS0AS3失效
后,AS3将发送与ψ3相关的路由更新消息,但是由于ψ3并不改变图1中AS1、AS2、AS6的最佳路径,因此,AS5可以安全压制更新路由消息,不再进一
步向AS6发送消息,并避免持续使用次优路径.
45 报文转发过程为了保证转发一致性,需要修改报文头格式并
增加路径标识符ψ,通常可以在IP报文头中添加额外的shim报文头[14],或者利用现有IP报文头中
TOS或DSCP域,通过报文头中标识符ψ指示报文当前所采用的转发树.
在链路失效时,失效检测节点具有特殊的角色,
失效节点在查找备份可用转发树的同时,还需要将
报文头中的路径标识符修改为所切换的转发树标识
符.在单链路失效时,由于转发树中对应的所有节点
转发视图具有一致性,在节点间无需协调的情况下,
检测失效的节点仅需要发起本地重路由即可保证无
环转发.
当出现节点失效、多链路失效时,以及采用瞬时
失效抑制,将会造成各个AS节点之间转发视图不
一致,单失效下的转发机制并不能充分利用已经获
得的冗余路径,而且还可能出现转发环路,因此还需
要信令机制以避免环路.如图1中,如果AS2AS0
和AS1AS0同时断开,如果AS2检测到失效后采
用图3中标识符为ψ1的路径,修改报文头标识符为
ψ1,并将报文转发到AS2;同时,由于AS2发现AS2AS0断开,由于AS1与AS2之间无协调,如果
AS1选择ψ2路径,将导致AS1和AS2之间形成环路,在这种多失效场景下必须利用辅助信息才能无
环转发.
为了充分利用已获得的多转发树,MFT2BGP
在报文中添加“报文经历信息”犝狊犲犱_犘犐犇,表示报
文已经使用过的转发树.如图2(b)中所示,节点在
接收到报文后,提取报文头中犝狊犲犱_犘犐犇信息以避
免重复选择同一转发树,该信息存储实际不超过
2bits.
具体报文转发如过程3所示,其中犅犲狊狋_犜狉犲犲
表示最佳转发树对应的路径,其下一跳表示为
犫犲狊狋_狀犺狅狆(犱,犅犲狊狋_犜狉犲犲),而根据路径标识符ψ形成的转发树为ψ_犜狉犲犲,其下一跳表示为犫犲狊狋_狀犺狅狆(犱,
ψ_犜狉犲犲),犳狅狉狑犪狉犱_狆犪犮犽犲狋(狀犺狅狆,狋狉犲犲)表示根据对应转发树转发报文,犆犺犪狀犵犲_犺犲犪犱犲狉(狋狉犲犲,狋狉犪狀狊犻犲狀狋)表示修改报文头中的路径标识符为特定的转发树,
并且设置报文进入失效转发模式.
过程3. 报文转发过程.
1.狀犺狅狆··=犅犲狊狋_狀犺狅狆(犱,狆犪犮犽犲狋.犮狌狉狉犲狀狋_犘犐犇)//按指定标
识符转发
2.IF犱≠狀犺狅狆
3.IF狏.get_link(狀犺狅狆)==犝犘
4.犳狅狉狑犪狉犱_狆犪犮犽犲狋(狀犺狅狆,狆犪犮犽犲狋.犮狌狉狉犲狀狋_犘犐犇)
5.ELSE
6.FOREACH(犘犐犇,犃犛_犘犪狋犺)∈狏.loc_rib[狆狉犲犳犻狓]DO
7. IF犘犐犇notin狆犪犮犽犲狋.犝狊犲犱_犘犐犇and犘犐犇≠犅犲狊狋_犜狉犲犲
8.IF犃犛_犘犪狋犺.狏犪犾犻犱==False//如果犘犐犇对应的犃犛_犘犪狋犺
是非法路径,需要将其加入报文犝狊犲犱_犘犐犇中
9. 狆犪犮犽犲狋.犃犱犱_犝狊犲犱_犘犐犇(犘犐犇)
10. CONTINUE
11.ENDIF
12.(狀犲狑犺狅狆,狀犲狑_狋狉犲犲)··=犳犻狀犱_犅犲狊狋_犘犐犇_狀犺狅狆(犱,犘犐犇)
//根据策略从所有可行标识符中选择路径
13.ENDIF
14.IF狀犲狑犺狅狆≠and狏.get_link(狀犲狑犺狅狆)≠Down
15. 犆犺犪狀犵犲_犺犲犪犱犲狉(狀犲狑_狋狉犲犲,狋狉犪狀狊犻犲狀狋)
920210期 胡乔林等:MFT2BGP:基于多转发树的无中断域间路由协议
16. 狆犪犮犽犲狋.犃犱犱_犝狊犲犱_犘犐犇(狀犲狑_狋狉犲犲)
17. 犳狅狉狑犪狉犱_狆犪犮犽犲狋(狀犲狑犺狅狆,狀犲狑_狋狉犲犲)
18.ELSE
19. IF狏.loc_rib[狆狉犲犳犻狓][犅犲狊狋_犜狉犲犲].狏犪犾犻犱==True
//在无对应路径标识符时,如果犅犲狊狋_犜狉犲犲
可行则通过犅犲狊狋_犜狉犲犲转发
20. 狀犺狅狆··=犅犲狊狋_狀犺狅狆(犱,狆犪犮犽犲狋.犮狌狉狉犲狀狋_犘犐犇)
21. 犳狅狉狑犪狉犱_狆犪犮犽犲狋(狀犺狅狆,狆犪犮犽犲狋.犮狌狉狉犲狀狋_犘犐犇)
22. ELSE
23. 犇狉狅狆狆犪犮犽犲狋
24. ENDIF
25.ELSE
26.犳狅狉狑犪狉犱_狊狌犮犮犲狊狊()
27.ENDIF
过程3中的第1~4步,报文依据对应标识符转发.第6~12步在未使用过的转发树中选择备份路径(瞬时失效中优先选择非犅犲狊狋_犜狉犲犲以降低协议
动态性的影响),需要说明的是,当节点具有多个备
份转发树时,节点可以根据策略选择最短路径树
犛犜犉(或者固定优先选择某个特定标识的转发树
犛犘犜[16],并且将已失效转发树标识加入报文中的
犝狊犲犱_犘犐犇域中).第14~17步中,节点将根据修改后的转发树标识进行转发.第19~21步中,当节点在无可用转发树时,则尝试使用犅犲狊狋_犜狉犲犲转发.
该转发过程可以有效解决多链路失效下的转发
环路,比如在图1中,当节点失效引起AS2AS0以
及AS1AS0断开后,报文到达AS2后,其犅犲狊狋、ψ2皆失效,如果AS2选择了ψ1将报文转发到AS1,AS1将通过报文中犝狊犲犱_犘犐犇以及当前链路状况,
仅能选择标识符ψ3,最后通过ψ3成功转发报文.当路径标识符数量为犽时,为了表示报文头的状态,其
报文头开销的最大长度约为1+2lg(犽)bits.
5 协议属性分析
51 协议收敛属性
定理1. 对于给定的SPVP实例犣,如果它不含DisputeWhee[20],那么MFT2BGP最终收敛;且在路由收敛期间不会出现瞬时环路.
证明. DisputeWheel[20]的定义略,本文将
SPVP扩展到多路径路由.与标准BGP不同,狏具有
多条到达目标AS0的路径,狏采用路径标识符ψ进行区分,路由更新消息中包含ψ以及AS_Path路径信息.狏的最佳路径标识符β犫犲狊狋将从狏的可行路径集合犘狏,即从rib_in(狏←狆犲犲狉狊(狏))中选择,因此在同样的拓扑、策略下,如果SPVP在无DisputeWheel的情况下收敛,那么MFT2BGP中最佳路径β犫犲狊狋上
也一定收敛.
其次,对于路径标识符ψ犻,狏在路由决策过程中计算ψ犻(除最佳路径β犫犲狊狋)路径时与ψ犼(犻≠犼)的路径隔离,即在ψ犻上其可行路径集合即仅在犌ψ犻犌中选择路径,显然,如果SPVP在拓扑犌中无Dispute
Wheel,犌ψ犻对犌删除了部分边,犌ψ犻也不会含有DisputeWheel,那么MFT2BGP中标识符为ψ犻的路径βψ犻在犌ψ犻上也一定收敛. 证毕.52 报文转发属性
引理1. 对于任意节点狌,如果在链路犲失效前,其最佳路径上包含犲,在BGP协议中最终收敛
能够得到不含犲的路径,那么MFT2BGP保证狌存
在某条标识符ψ的路径不通过犲.证明. 首先,显然当MFT2BGP使用充分数量的路径标识符时,总能获得底层拓扑中服从策略
多样性路径,并形成多转发树.设最佳转发树(犅犲狊狋_
犜狉犲犲)中失效链路犲的失效根节点为狇,设犲失效之前,π犅犲狊狋(狌,犱)=犘犫犲狊狋=(狌,狏1,狏2,…,狏狀)·π(狇,犱),且π(狇,犱)=(狇,狑1,狑2,…,狑犿,犱);在犲失效之后如果BGP协议收敛能够使狌获得到达犱的路径为
犘犫犪犮犽狌狆=(狌,狕1,狕2,…,狕狋,犱),即狌在失效前、后的最后一跳分别为狑犿和狕狋.下面证明MFT2BGP能够获得多样性路径.
(1)如果狑犿≠狕狋,根据前缀通告过程,AS0发起前缀通告时将会针对每个邻居节点狑犿、狕狋分配不同的路径标识符ψ犻、ψ犼(犻≠犼)进行区分;节点狕狋到达犱的路径必不包含失效链路犲.因此,狕狋需要将ψ犼的路径通告给狕狋-1,依次类推,可知狌将会存在ψ犻、ψ犼上的多样性路径.同样,通过归纳法证明,狌将ψ犼路径通告给狏1,任意狏犻(狀>犻1)中存在某条标识符ψ犼的路径不通过犲,且最终狑也将会获得不包含犲的
路径.
(2)如果狑犿=狕狋,说明犘犫犲狊狋与犘犫犪犮犽狌狆路径重叠,
AS0仅有一个邻居节点.如果狑犿为每个邻居节点分配标识符,设失效前犘犫犲狊狋路径的标识符为ψ犻,狕狋-1到达犱的路径不包含犲,其标识符为ψ犼.依次类推,可得狌将会存在不经过犲的标识符为ψ犼的路径.对于狏犻(狀>犻1),其证明与上面相同. 证毕.
引理2. 在无失效场景下,报文总在最佳路径上转发;当出现单或多链路失效后引起路由收敛期
间,如果协议获得的多样性路径中存在可行的转发
路径,那么报文不会被丢弃,且不会陷入环路.
证明. 分3种情况证明,即无失效、单链路失效、多链路失效场景.显然,在无失效场景下MFT2
BGP处于收敛状态,狏的最佳路径是对所有可行路
0302 计 算 机 学 报 2012年
径集合犘狏计算得到一致性路径,报文在最佳路径上
安全转发.
其次,当出现单链路犲=(狌,狏1)失效以后,设失效检测节点狌的最佳路径为π犅犲狊狋(狌,犱)=(狌,狏1,
狏2,…,狏狀,犱),当犲失效后,狌切换到路径πψ犻(狌,犱)=(狌,狑1,狑2,…,狑犽,犱),如果犇犻狊犼狅犻狀狋(π犅犲狊狋(狌,犱),
πψ犻(狌,犱))=1,报文将在转发树ψ犻_犜狉犲犲中无环转发.如果0<犇犻狊犼狅犻狀狋(π犅犲狊狋(狌,犱),πψ犻(狌,犱))<1,即π犅犲狊狋(狌,犱)与πψ犻(狌,犱)部分重叠,由MFT2BGP报文转发算法可知必有狏1≠狑1,设π犅犲狊狋(狌,犱)与πψ犻(狌,犱)在某点狏犻=狑犼相交,其中狏犻∈π犅犲狊狋(狌,犱),狑犼∈
πψ犻(狌,犱),1<犻狀,1<犼犽.如果π犅犲狊狋(狏犻,犱)=πψ犻(狑犼,犱),即狏犻中标识符为犅犲狊狋和ψ犻具有同样的路径,由于其任意转发树ψ上转发路径具有一致性,即报文不会回退或环路;而当π犅犲狊狋(狏犻,犱)≠πψ犻(狑犼,犱),即狏犻中标识符为犅犲狊狋和ψ犻具有不同的路径,报文狆在ψ犻可无环转发.出现多链路失效时,根据报文转发过程,具有如
下属性:(1)报文狆不会2次遇到同一个失效链路,该属性主要是由于检测失效的节点会将其失效转发
树的标识符ψ犻加入到报文头中,下行节点选择转发树时将避免ψ犻,这使得狆不会两次遇到同一个失效链路;(2)当出现第犽(犽2)个链路失效后,当前节点狌将根据ψ犽(ψ犽≠ψ犻)转发报文狆,如果在ψ犽不能成功转发,说明出现了新的失效链路,狌将避免使用
狆.犝狊犲犱_犘犐犇,并选择新路径,此时狆要么被成功转发,或由于无可行路径而丢弃. 证毕.
MFT2BGP获得多转发树的同时也一定程度
上增加了计算、存储开销,在不采用路径合并的时
候,其最大存储开销线性增加.根据文献[25]的结
论,硬件的发展仍然满足Moore’s定律,其多路径
计算、存储带来的开销是在可承受范围之内,且如果
将同一前缀的多标识符路径进行合并到单个转发
表,其存储开销将会进一步减低.
由于互联网AS拓扑具有幂率特性,其平均AS
跳数为4,可证MFT2BGP增加转发路径的长度非
常小,在本文后实验中也证明了这一点.
6 性能评价
为验证MFT2BGP性能,本文对轻量级Sim
BGP①进行扩展,实现了所有BGP相关的重要特
征.根据CAIDA②的数据分析可知当前AS数量为
31212,链路数量为60052,多宿主AS占总数的
53.4%,由于其规模过大,采用Dimitropoulos[26]根
据CAIDA数据标注推断的AS级Internetlike拓
扑图,该拓扑具有AS之间的商业关系以及Internet
的复杂结构特征,Splicing[11]也使用了该拓扑.本文
采用的800节点的拓扑如图4所示,链路数量为
1582,协议模拟参数如表1所示.实验对MFT2
BGP在各种场景下的收敛时间、消息数进行比较;
为验证MFT2BGP的无中断转发的性能,还从平均
AS瞬时失效率、平均转发中断时间、路径伸展度等
方面进行比较.
图4 800AS节点拓扑
表1 实验参数设置
参数 默认值
MRAI 30s(Peerbased)
SSLD,WRATE True,False导入导出策略 GaoRexford其它设置 基于标准BGP
MRAI抖动 [0.75,1]MRAI链路队列延迟 [0.01,0.1]ms
FIB处理更新延迟[0.001,0.01]ms默认PID数量 2
61 多转发树构造开销
该场景中主要针对多宿主StubAS发起前缀
通告,测试其收敛时间以及消息数量.在BGP实现
中MRAI通常设置为PeerBased.由于源节点在发
起通告时,所有节点并没有对其邻居设置MRAI,为
保证模拟的真实性,降低PeerBased的影响,因此
设置发送消息等待时间为[0,MRAI]随机分布,以
此作为背景MRAI.
(1)当使用路径标识符数量为2时,随机选择
150个多宿主(犘狉狅狏犻犱犲狉2)的AS共测试648次.
收敛时间、消息数量累积分布概率如图5(a)、图5
(b)所示,与BGP相比,收敛时间增加仅约4%,总
体消息数量增加约20%,以合理的开销获得了多样
性路径.MFT2BGP在前缀通告时消息数量有所增
加,这是由于为了将隐藏合法路径暴露给其它AS,
而收敛时间与BGP相比几乎无增加,这是由于不同
标识符上的收敛具有相对隔离性质,而BGP收敛时
间主要与网络直径、MRAI设置等因素相关[27],理
论上收敛时间为max{ψ1_犪狀狀,ψ2_犪狀狀,犅犲狊狋},其中
ψ犻_犪狀狀为对应标识符上的收敛时间.此外MFT2
BGP中MRAI采用PeerBased设置,由于ψ1、ψ2会相互影响,也一定程度上会限制更新消息传播速度,
稍微增加收敛时间.
130210期 胡乔林等:MFT2BGP:基于多转发树的无中断域间路由协议
①
②
simBGP:AlightweighteventdrivenBGPsimulator.http://www.bgpvista.com/simbgp.phpCAIDAASrelationships(20090429).http://www.caida.org/data/request_user_info_forms/as_relationships.xml
图5 标识符数量为2时的构造开销
(2)当使用路径标识符数量为3时,随机选择
71个多宿主(犘狉狅狏犻犱犲狉3)测试214次.收敛时间、消息数量累积分布概率如图6(a)、图6(b)所示,其
收敛时间仅增加10%,总体消息数量增加40%,但
考虑到每个节点获得的路径数量将会达到3,此开
销仍然在合理范围内.
图6 标识符数量为3时的构造开销
MFT2BGP在初始化时,带来了一定的消息开
销,但这种开销也仅出现在多转发树的初始构造中.
62 单失效下协议性能
针对单链路失效,测试了边缘链路、核心链路失
效两种场景.
(1)在边缘链路失效中,随机选择300个多宿
主AS(犘狉狅狏犻犱犲狉2),断开多宿主AS与其中的一
个犘狉狅狏犻犱犲狉的链路(这是最极端情况),共进行了
650次实验,分别测试了BGP、GhostFlushing[7]、
EPIC[8]、MFT2BGP以及加速收敛的MFT2EPIC.
图7 单失效下控制平面开销
从图7