本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及ospf協(xié)議在窄帶鏈路控制更新報(bào)文發(fā)送的方法和設(shè)備。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,以ip為基礎(chǔ)的數(shù)據(jù)業(yè)務(wù)在網(wǎng)絡(luò)中的比重也越來(lái)越大。未來(lái)的網(wǎng)絡(luò)將是一種以ip為核心的寬帶的融合網(wǎng)絡(luò)。但是在一些窄帶鏈路如衛(wèi)星鏈路仍要支持多種ip業(yè)務(wù)的應(yīng)用需求,因此需要進(jìn)行ip路由選擇的能力。
路由協(xié)議為ip數(shù)據(jù)包提供選路功能,其選路過(guò)程實(shí)現(xiàn)的好壞直接影響整個(gè)網(wǎng)絡(luò)的效率。其中,開(kāi)放最短路徑優(yōu)先(openshortestpathfirst,ospf)是基于鏈路狀態(tài)的協(xié)議,作為主用單播路由協(xié)議,ospf路由器之間要先建立鄰接關(guān)系。在建立鄰接關(guān)系時(shí),會(huì)涉及以下五種報(bào)文類型。
1.hello報(bào)文:主要用于建立和維護(hù)ospf鄰居關(guān)系。路由器周期性地使用組播地址224.0.0.5發(fā)送hello報(bào)文給鄰居路由器。
2.dd報(bào)文(databasedescriptionpacket,dd),鏈路狀態(tài)數(shù)據(jù)庫(kù)描述信息,描述鏈路狀態(tài)數(shù)據(jù)庫(kù)中的鏈路狀態(tài)通告(linkstateadvertisement,lsa)頭部信息。相鄰路由器之間相互發(fā)送dd報(bào)文,通知對(duì)方自己所擁有的lsa。dd報(bào)文這樣做是為了減少路由器之間報(bào)文交互量。
3.請(qǐng)求報(bào)文:鏈路狀態(tài)請(qǐng)求報(bào)文(linkstaterequestpacket,lsr),向鄰居請(qǐng)求本地沒(méi)有或者比本地新的lsa。
4.更新報(bào)文(linkstateupdatepacket,lsu),lsu報(bào)文主要是鏈路狀態(tài)更新的內(nèi)容,用于向?qū)Ψ铰酚善靼l(fā)送所需要的lsa,內(nèi)容可以是一條或多條lsa。
5.確認(rèn)報(bào)文(linkstateacknowledgmentpacket,lsack),lsack報(bào)文主要用于對(duì)lsu進(jìn)行確認(rèn)。報(bào)文的內(nèi)容是待確認(rèn)的lsa的頭部信息。
其工作原理如下:將自治系統(tǒng)劃分為骨干區(qū)域和非骨干區(qū)域,采用區(qū)域號(hào)進(jìn)行標(biāo)識(shí)。圖1為自治系統(tǒng)區(qū)域示意圖在自治系統(tǒng)中每一臺(tái)運(yùn)行ospf的路由器收集各自的接口、鄰接信息形成鏈路狀態(tài)通告,通過(guò)泛洪算法在同一個(gè)區(qū)域同步各自的鏈路狀態(tài),使得在同一個(gè)區(qū)域維護(hù)相同的鏈路狀態(tài)數(shù)據(jù)庫(kù)。路由器以自己為根,根據(jù)鏈路狀態(tài)數(shù)據(jù)庫(kù),生成最短路徑樹(shù),從而計(jì)算出自己到區(qū)域內(nèi)部各可達(dá)網(wǎng)絡(luò)的最佳路由。
要想使在窄帶鏈路上運(yùn)行ospf需要進(jìn)行必要改進(jìn)。ospf協(xié)議在鄰接關(guān)系建立過(guò)程中,通過(guò)dd報(bào)文、lsr報(bào)文、lsu報(bào)文和lsack報(bào)文交互完成鏈路狀態(tài)數(shù)據(jù)庫(kù)同步。當(dāng)路由節(jié)點(diǎn)和路由條目過(guò)多且鄰居之間路由差異較大的時(shí)候,大量的lsa被封裝成更新報(bào)文在具備鄰接關(guān)系的路由節(jié)點(diǎn)之間進(jìn)行報(bào)文交互,這樣可能導(dǎo)致鏈路設(shè)備擁塞,而鏈路擁塞又引起ospf協(xié)議不能正常交互、路由不收斂等問(wèn)題。因此,如何使ospf協(xié)議在不影響其他業(yè)務(wù)數(shù)據(jù)的情況下運(yùn)行在窄帶鏈路成為目前急需解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述問(wèn)題,本發(fā)明提出了一種窄帶鏈路上控制更新報(bào)文發(fā)送的方法,應(yīng)用于ospf路由協(xié)議,且路由設(shè)備之間通過(guò)窄帶鏈路設(shè)備進(jìn)行互聯(lián),實(shí)現(xiàn)本發(fā)明的控制方法包括:
路由設(shè)備與鏈路設(shè)備通過(guò)自定義協(xié)議進(jìn)行交互,獲取鏈路設(shè)備的數(shù)據(jù)傳輸速率;
在創(chuàng)建ospf接口時(shí),為該接口建立一個(gè)更新報(bào)文隊(duì)列,用于緩存更新報(bào)文;
根據(jù)獲取的鏈路設(shè)備的數(shù)據(jù)傳輸速率和該接口最大傳輸單元(maximumtransmissionunit,mtu),計(jì)算該接口下鏈路設(shè)備所允許的最大報(bào)文發(fā)送個(gè)數(shù);
發(fā)送更新報(bào)文時(shí)通過(guò)鏈路設(shè)備允許的最大報(bào)文發(fā)送個(gè)數(shù)控制更新報(bào)文發(fā)送數(shù)量,并依據(jù)上個(gè)周期更新報(bào)文發(fā)送的成功率動(dòng)態(tài)調(diào)整報(bào)文發(fā)送速率,通過(guò)對(duì)更新報(bào)文發(fā)送流量進(jìn)行平滑,調(diào)節(jié)報(bào)文發(fā)送流量有效避免報(bào)文在鏈路設(shè)備擁塞;
一種窄帶鏈路控制更新報(bào)文發(fā)送的設(shè)備,該設(shè)備包括協(xié)商模塊、計(jì)算模塊、統(tǒng)計(jì)模塊和發(fā)送模塊,其中:
協(xié)商模塊,用于動(dòng)態(tài)獲取窄帶鏈路設(shè)備的數(shù)據(jù)傳輸速率;
計(jì)算模塊,用于計(jì)算鏈路設(shè)備所允許發(fā)送的最大報(bào)文個(gè)數(shù);
統(tǒng)計(jì)模塊,統(tǒng)計(jì)更新報(bào)文發(fā)送的成功率;
發(fā)送模塊,對(duì)更新報(bào)文發(fā)送流量進(jìn)行平滑,調(diào)節(jié)報(bào)文發(fā)送流量;
本發(fā)明的有效技術(shù)成果是在不影響現(xiàn)有組網(wǎng)的情況下,通過(guò)控制ospf協(xié)議的更新報(bào)文,將報(bào)文錯(cuò)峰發(fā)送,避免報(bào)文量瞬間達(dá)到窄帶鏈路設(shè)備的峰值引起鏈路擁塞的問(wèn)題,有效保證協(xié)議報(bào)文收發(fā)和業(yè)務(wù)數(shù)據(jù)正常轉(zhuǎn)發(fā)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一個(gè)簡(jiǎn)單地介紹。
圖1、自治系統(tǒng)示意圖;
圖2、窄帶鏈路組網(wǎng)示意圖;
圖3、模塊關(guān)系圖;
圖4、處理流程圖;
圖5、路由設(shè)備與鏈路設(shè)備自定義報(bào)文格式。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,參照附圖對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明提供的方法包括:路由設(shè)備通過(guò)自定義協(xié)議獲取鏈路設(shè)備的數(shù)據(jù)傳輸速率,然后根據(jù)數(shù)據(jù)傳輸速率和與鏈路設(shè)備互連的接口mtu,計(jì)算鏈路設(shè)備所允許的最大報(bào)文發(fā)送個(gè)數(shù),控制ospf協(xié)議每次發(fā)送的更新報(bào)文數(shù)量,避免報(bào)文在瞬間達(dá)到鏈路設(shè)備的峰值從而引起鏈路擁塞,同時(shí)根據(jù)上個(gè)周期更新報(bào)文發(fā)送的成功率調(diào)整更新報(bào)文的發(fā)送速率將報(bào)文錯(cuò)行發(fā)送。采用本發(fā)明的技術(shù)在不影響路由協(xié)議功能基礎(chǔ)上,能夠增強(qiáng)路由協(xié)議在窄帶鏈路的穩(wěn)定性,避免鏈路擁塞。
下面對(duì)上述方法進(jìn)行詳細(xì)描述,圖4為本發(fā)明實(shí)施提供的方法流程圖,該方法可以包括以下步驟:
1.鏈路設(shè)備在接入路由設(shè)備時(shí),主動(dòng)發(fā)送“識(shí)別請(qǐng)求消息”。路由設(shè)備的協(xié)商模塊在接收到“識(shí)別請(qǐng)求消息”后,路由設(shè)備從該消息中提取鏈路設(shè)備的ip地址、鏈路設(shè)備數(shù)據(jù)傳輸速率等信息。并發(fā)送“識(shí)別確認(rèn)消息”進(jìn)行應(yīng)答。在相關(guān)信息獲取后,后續(xù)利用周期性消息來(lái)維持設(shè)備之間的關(guān)系,實(shí)時(shí)獲取鏈路設(shè)備數(shù)據(jù)傳輸速率。具體報(bào)文格式如圖5所示;
2.協(xié)商模獲取到鏈路設(shè)備的數(shù)據(jù)傳輸速率后,同時(shí)獲取到與該鏈路設(shè)備互連接口mtu,將這兩個(gè)信息通知給計(jì)算模塊;
3.計(jì)算模塊在獲取到這兩個(gè)信息后,計(jì)算出該接口的所允許的最大發(fā)送報(bào)文個(gè)數(shù);
4.計(jì)算模塊將計(jì)算的最大發(fā)送報(bào)文個(gè)數(shù)通知給ospf模塊;
5.ospf協(xié)議運(yùn)行過(guò)程中,若接口啟動(dòng)ospf協(xié)議則創(chuàng)建更新報(bào)文隊(duì)列,用于對(duì)更新報(bào)文進(jìn)行流量控制。在鄰接建立過(guò)程中進(jìn)行初始同步和增量同步發(fā)送更新報(bào)文時(shí),從接口更新報(bào)文隊(duì)列獲取報(bào)文,若發(fā)送的報(bào)文個(gè)數(shù)大于該接口的最大發(fā)送報(bào)文個(gè)數(shù),按照接口所能允許的最大報(bào)文個(gè)數(shù)發(fā)送更新報(bào)文,然后啟動(dòng)一個(gè)新的工作隊(duì)列在下一個(gè)發(fā)送周期內(nèi)繼續(xù)發(fā)送剩余報(bào)文,直到發(fā)送完所有報(bào)文;否則,在該周期內(nèi)將更新報(bào)文從接口上發(fā)送出去;
6.根據(jù)上個(gè)周期內(nèi)報(bào)文發(fā)送的成功率,動(dòng)態(tài)調(diào)整報(bào)文發(fā)送速率,目的將報(bào)文錯(cuò)行發(fā)送,避免瞬間報(bào)文量達(dá)到鏈路設(shè)備的峰值從而引起鏈路擁塞。具體處理是統(tǒng)計(jì)本接口下所有鄰居的重傳列表的重傳個(gè)數(shù),若重傳個(gè)數(shù)大于預(yù)先設(shè)置的最大閾值,則增大報(bào)文發(fā)送時(shí)間間隔;否則,減少報(bào)文發(fā)送時(shí)間間隔;
相應(yīng)的,本發(fā)明還提供了一種窄帶鏈路控制更新報(bào)文的設(shè)備,該設(shè)備包括協(xié)商模塊、計(jì)算模塊、統(tǒng)計(jì)模塊和發(fā)送模塊,其中:
協(xié)商模塊,用于動(dòng)態(tài)獲取窄帶鏈路設(shè)備的數(shù)據(jù)傳輸速率;
計(jì)算模塊,用于計(jì)算鏈路設(shè)備所允許發(fā)送的最大報(bào)文個(gè)數(shù);
統(tǒng)計(jì)模塊,統(tǒng)計(jì)更新報(bào)文發(fā)送的成功率;
發(fā)送模塊,對(duì)更新報(bào)文發(fā)送流量進(jìn)行平滑,調(diào)節(jié)報(bào)文發(fā)送流量。