一種實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)包更新的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及路由交換技術(shù),尤指一種實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)包(LSP)更新的方法及裝置。
【背景技術(shù)】
[0002]鏈路狀態(tài)數(shù)據(jù)包(LSP)包含了由鏈接狀態(tài)路由協(xié)議(ISIS)路由器產(chǎn)生的描述其周?chē)h(huán)境的路由信息;LSP由包頭和類(lèi)型長(zhǎng)度內(nèi)容(TLV)字段組成,用于在ISIS節(jié)點(diǎn)間發(fā)布路由選擇信息,路由器把LSP通告給所有鄰居,從而生成本地鏈路狀態(tài)信息;路由器接收其他鄰居通告的LSP,復(fù)制后進(jìn)行通告,從而獲得整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔ⅰ?br>[0003]在ISIS系統(tǒng)運(yùn)行時(shí),鄰接關(guān)系up/down、接口使能ISIS、引入的互聯(lián)網(wǎng)協(xié)議(IP)路由發(fā)生變化、區(qū)域間的IP路由發(fā)生變化、修改度量(metr i c)值、定時(shí)刷新等都會(huì)觸發(fā)LSP更新;LSP更新時(shí),所有LSP分片都會(huì)重組更新,導(dǎo)致LSP洪泛負(fù)載,消耗本端設(shè)備和遠(yuǎn)端設(shè)備的中央處理器(CPU),造成系統(tǒng)運(yùn)行緩慢。當(dāng)LSP分片數(shù)量很多時(shí),LSP周期刷新會(huì)造成網(wǎng)絡(luò)瞬間發(fā)出大量的LSP更新,網(wǎng)絡(luò)壓力瞬間加大,甚至?xí)霈F(xiàn)長(zhǎng)時(shí)間占用CPU而掛死的問(wèn)題。
[0004]綜上,現(xiàn)有的LSP更新的方法,存在洪泛負(fù)載的問(wèn)題,影響系統(tǒng)運(yùn)行速度;LSP分片多時(shí),還存在長(zhǎng)時(shí)間占用CPU而出現(xiàn)掛死的情況,影響系統(tǒng)正常通信。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問(wèn)題,本發(fā)明提供一種實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)包更新的方法及裝置,能夠避免LSP洪泛負(fù)載,提高系統(tǒng)運(yùn)行速度。
[0006]為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)包更新的方法,包括:
[0007]按照分類(lèi)策略劃分系統(tǒng)的鏈路狀態(tài)數(shù)據(jù)包LSP分片為兩個(gè)以上分片類(lèi)型,并確定進(jìn)行LSP更新時(shí)各分片類(lèi)型相應(yīng)的類(lèi)型長(zhǎng)度內(nèi)容TLV類(lèi)型;
[0008]LSP更新時(shí),根據(jù)待更新的TLV信息的TLV類(lèi)型確定對(duì)應(yīng)的分片類(lèi)型;
[0009]從確定的分片類(lèi)型中選擇LSP分片進(jìn)行TLV信息的更新;
[0010]所述LSP更新包括:添加TLV信息、和/或刪除TLV信息、和/或修改TLV信息。
[0011]進(jìn)一步地,劃分系統(tǒng)的LSP分片為兩個(gè)以上分片類(lèi)型包括:
[0012]將所述系統(tǒng)的LSP分片劃分為三個(gè)所述分片類(lèi)型,且第一分片類(lèi)型由LSPO分片構(gòu)成,用于需存儲(chǔ)于LSPO分片的TLV信息的更新;第二分片類(lèi)型由除LSPO分片之外的預(yù)設(shè)個(gè)數(shù)的LSP分片構(gòu)成,用于進(jìn)行包括系統(tǒng)自身配置的IP前綴的TLV信息的更新;第三分片類(lèi)型由剩余的LSP分片構(gòu)成,用于進(jìn)行包括路由滲透和路由重發(fā)布的IP前綴的TLV信息的更新。
[0013]進(jìn)一步地,分片類(lèi)型劃分后,該方法還包括:對(duì)各分片類(lèi)型的LSP分片,按照LSP分片的剩余空間進(jìn)行組織。
[0014]進(jìn)一步地,對(duì)各分片類(lèi)型的LSP分片按照LSP分片的剩余空間進(jìn)行組織具體包括:
[0015]對(duì)所述第一分片類(lèi)型的LSP分片記錄LSPO分片的剩余空間;
[0016]創(chuàng)建所述第二分片類(lèi)型的第二空間鏈表,將所述第二分片類(lèi)型各LSP分片按照剩余空間由小到大的順序加入創(chuàng)建的所述第二空間鏈表;通過(guò)創(chuàng)建的第二基數(shù)radix樹(shù)保存第二分片類(lèi)型的各更新的TLV信息與第二分片類(lèi)型各LSP分片的對(duì)應(yīng)關(guān)系;
[0017]創(chuàng)建所述第三分片類(lèi)型的第三空間鏈表,將所述第三分片類(lèi)型各LSP分片按照剩余空間由小到大的順序加入創(chuàng)建的所述第三空間列表;通過(guò)創(chuàng)建的第三radix樹(shù)保存第三分片類(lèi)型的各更新的TLV信息與第三分片類(lèi)型各LSP分片的對(duì)應(yīng)關(guān)系。
[0018]進(jìn)一步地,該方法還包括:LSP周期刷新時(shí),按照預(yù)設(shè)批次分批進(jìn)行LSP周期刷新。
[0019]進(jìn)一步地,所述LSP更新為添加TLV信息和/或刪除TLV信息時(shí),所述進(jìn)行TLV信息的更新包括:
[0020]緩存待添加的TLV信息和/或待刪除的TLV信息;
[0021]按照先進(jìn)行包括系統(tǒng)自身配置的IP前綴的TLV信息的更新,再進(jìn)行包括路由滲透和路由重發(fā)布的IP前綴的TLV信息的更新的順序進(jìn)行更新。
[0022]進(jìn)一步地,當(dāng)所述LSP更新為包括所述路由滲透和路由重發(fā)布的IP前綴的TLV信息的更新時(shí),所述進(jìn)行TLV信息的更新具體包括:
[0023]以預(yù)設(shè)的LSP更新周期,對(duì)該周期內(nèi)緩存的待更新的TLV信息進(jìn)行更新;或,
[0024]當(dāng)待更新的TLV信息的條數(shù)達(dá)到預(yù)設(shè)的更新數(shù)量閾值時(shí),對(duì)待更新的TLV信息進(jìn)行更新。
[0025]進(jìn)一步地,所述進(jìn)行TLV信息的更新具體包括:
[0026]當(dāng)所述LSP更新為添加單個(gè)TLV信息時(shí),從確定的分片類(lèi)型中查找能夠存儲(chǔ)待添加的所述單個(gè)TLV信息的LSP分片,將所述單個(gè)TLV信息加入該LSP分片并更新其剩余空間,重組更新該LSP分片;
[0027]當(dāng)所述LSP更新為添加批量TLV信息時(shí),從確定的分片類(lèi)型中查找能夠存儲(chǔ)待添加的所述批量TLV信息的LSP分片,如果存在滿(mǎn)足所需空間的LSP分片,則將所述批量TLV信息按序加入滿(mǎn)足所需空間的LSP分片中并更新該LSP分片的剩余空間,重組更新該LSP分片;如果不存在滿(mǎn)足所需空間的LSP分片,從確定的分片類(lèi)型中選擇剩余空間最大的LSP分片,按序?qū)⒋砑拥乃雠縏LV信息中的TLV信息逐個(gè)添加到選擇的LSP分片中,直至該LSP分片剩余空間不足時(shí),更新該LSP分片的剩余空間;重新選擇剩余空間最大的LSP分片,繼續(xù)按序?qū)⑺雠縏LV信息中剩余的TLV信息逐個(gè)添加到選擇的LSP分片中,如果選擇的LSP分片的剩余空間滿(mǎn)足剩余的TLV信息的添加,則在添加完剩余的TLV信息時(shí),更新該LSP分片的剩余空間并重組添加了所述批量TLV信息的LSP分片;如果選擇的LSP分片不滿(mǎn)足剩余的TLV信息的添加時(shí),則重新選擇剩余空間最大的LSP分片進(jìn)行剩余的TLV信息的添加,直至所述批量TLV信息中的所有TLV信息均完成添加時(shí),重組更新添加了所述批量TLV信息的LSP分片。
[0028]進(jìn)一步地,進(jìn)行TLV信息的更新具體包括:
[0029]當(dāng)所述LSP更新為刪除單個(gè)TLV信息時(shí),從確定的分片類(lèi)型中確定待刪除的所述單個(gè)TLV信息所在的LSP分片,刪除所述單個(gè)TLV信息并更新該LSP分片的剩余空間,重組更新該LSP分片;
[0030]當(dāng)所述LSP更新為刪除批量TLV信息時(shí),從確定的分片類(lèi)型中確定待刪除的所述批量TLV信息所在的LSP分片,刪除所述批量TLV信息并更新該LSP分片的剩余空間,重組更新該LSP分片。
[0031 ]進(jìn)一步地,進(jìn)行TLV信息的更新具體包括:
[0032]當(dāng)所述LSP更新為修改TLV信息時(shí),從確定的分片類(lèi)型中確定待修改的TLV信息所在的LSP分片,如果所述修改后的TLV信息所需空間小于或等于待修改的TLV信息與待修改的TLV信息所在LSP分片的剩余空間之和,則刪除所述待修改的TLV信息,在所述待修改的TLV信息所在LSP分片上添加所述修改后的TLV信息,更新該LSP分片的剩余空間,重組更新該LSP分片;如果所述修改TLV信息所需空間大于待修改的TLV信息與待修改的TLV信息所在LSP分片的剩余空間之和,則對(duì)所述待修改的TLV信息作為單個(gè)TLV信息進(jìn)行刪除TLV信息的處理,對(duì)所述修改后的TLV信息作為單個(gè)TLV信息進(jìn)行添加TLV信息的處理。
[0033]進(jìn)一步地,LSP更新為添加TLV信息時(shí),當(dāng)確定的分片類(lèi)型中不存在剩余空間能夠滿(mǎn)足存儲(chǔ)待添加的所述TLV信息的LSP分片時(shí),該方法還包括:
[0034]通過(guò)配置的虛擬系統(tǒng)生成添加所述TLV信息所需的LSP分片。
[0035]進(jìn)一步地,配置的虛擬系統(tǒng)不存在時(shí),該方法還包括:
[0036]映射中間系統(tǒng)IS系統(tǒng)接口的介質(zhì)訪(fǎng)問(wèn)控制MA C地址為所述虛擬系統(tǒng)的身份編碼ID,通過(guò)映射的虛擬系統(tǒng)的ID生成所述虛擬系統(tǒng);
[0037]對(duì)生成的虛擬系統(tǒng)采用模式Imodel方式擴(kuò)展生成添加所述TLV信息所需的LSP分片。
[0038]進(jìn)一步地,LSP分片重組更新時(shí),如果LSP分片為空,該方法還包括:將為空的所述LSP分片的剩余生存時(shí)間Remaining Lif etime置O,泛洪該LSP分片以加速該LSP分片的老化。
[0039]進(jìn)一步地,該方法還包括:
[0040]新生成LSP分片時(shí),泛洪新生成的LSP分片,并將新生成的LSP分片加入LSP分片最少的周期刷新批次里,更新該周期刷新批次的LSP分片數(shù)量后,重新進(jìn)行LSP分片數(shù)量排序;
[0041]LSP分片老化時(shí),確定LSP分片所在的周期刷新批次,從該周期刷新批次里刪除該LSP分片,更新該周期刷新批次的LSP分片數(shù)量后,重新進(jìn)行LSP分片數(shù)量排序。
[0042]另一方面,本申請(qǐng)還提供一種實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)包更新的裝置,包括:分類(lèi)單元、確定單元及更新單元;其中,
[0043]分類(lèi)單元,用于按照分類(lèi)策略劃分系統(tǒng)的鏈路狀態(tài)數(shù)據(jù)包LSP分片為兩個(gè)以上分片類(lèi)型,并確定進(jìn)行LSP更新時(shí)各分片類(lèi)型相應(yīng)的類(lèi)型長(zhǎng)度內(nèi)容TLV類(lèi)型;
[0044]確定單元,用于LSP更新時(shí),根據(jù)待更新的TLV信息的TLV類(lèi)型確定對(duì)應(yīng)的分片類(lèi)型;
[0045]更新單元,用于從確定的分片類(lèi)型中選擇LSP分片進(jìn)行TLV信息的更新;
[0046]所述LSP更新包括:添加TLV信息、和/或刪除TLV信息、和/或修改TLV信息。
[0047]進(jìn)一步地,分類(lèi)單元具體用于,
[0048]按照分類(lèi)策略將所述系統(tǒng)的LSP分片劃分為三個(gè)所述分片類(lèi)型,且第一分片類(lèi)型由LSPO分片構(gòu)成,用于需存儲(chǔ)于LSPO分片的TLV信息的更新;第二分片類(lèi)型由除LSPO分片之外的預(yù)設(shè)個(gè)數(shù)的LSP分片構(gòu)成,用于進(jìn)行包括系統(tǒng)自身配置的IP前綴的TLV信息的更新;第三分片類(lèi)型由剩余的LSP分片構(gòu)成,用于進(jìn)行包括路由滲透和路由重發(fā)布的IP前綴的TLV信息的更新。
[0049]進(jìn)一步地,該裝置還包括組織單元,用于所述分片類(lèi)型劃分后,對(duì)各分片類(lèi)型的LSP分片,按照LSP分片的剩余空間進(jìn)行組織。
[0050]進(jìn)一步地,組織單元具體用于,對(duì)所述第一分片類(lèi)型的LSP分片記錄LSPO分片的剩余空間;
[0051]創(chuàng)建所述第二分片類(lèi)型的第二空間鏈表,將所述第二分片類(lèi)型各LSP分片按照剩余空間由小到大的順序加入創(chuàng)建的所述第二空間鏈表;通過(guò)創(chuàng)建的第二基數(shù)radix樹(shù)保存第二分片類(lèi)型的各更新的TLV信息與第二分