專利名稱:一種報(bào)文發(fā)送的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是指一種報(bào)文發(fā)送的方法和裝置。
背景技術(shù):
在通信網(wǎng)絡(luò)中,各個(gè)網(wǎng)絡(luò)中的主機(jī)通過(guò)路由器與網(wǎng)絡(luò)中的各類設(shè)備進(jìn)行通信。各個(gè)主機(jī)上都會(huì)設(shè)置一條路由,即設(shè)置網(wǎng)關(guān),當(dāng)主機(jī)與外網(wǎng)通信時(shí),用于指向下一跳所到達(dá)的路由器。當(dāng)網(wǎng)絡(luò)中使用單個(gè)路由器與外網(wǎng)通信時(shí),如果此路由器發(fā)生故障,該網(wǎng)絡(luò)中所有以此路由器為路由的實(shí)現(xiàn)下一跳的主機(jī)將斷掉與外網(wǎng)的通信,從而造成較大范圍的通信中斷。為了避免上述問(wèn)題的發(fā)生,互聯(lián)工程任務(wù)組(IETF,The Internet Engineering Task Force)制定了虛擬路由器冗余協(xié)議(Virtual Router Redundancy Protocol,VRRP),用于解決網(wǎng)絡(luò)中配置單個(gè)路由器時(shí)所容易造成的大范圍通信中斷的問(wèn)題。
VRRP技術(shù)是將系統(tǒng)中多臺(tái)路由器組成一個(gè)VRRP組,對(duì)于VRRP組設(shè)置一個(gè)虛擬缺省網(wǎng)關(guān)地址。在任何時(shí)刻,一個(gè)組中只有控制虛擬網(wǎng)關(guān)地址的路由器是處于主用狀態(tài)(Master)的活動(dòng)路由器,由它來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)包,其它路由器則均處于備用狀態(tài)(Backup)。如果活動(dòng)路由器發(fā)生了故障,它將選擇組中一個(gè)優(yōu)先權(quán)最高的處于備用狀態(tài)的冗余備份路由器來(lái)替代活動(dòng)路由器。由于網(wǎng)絡(luò)內(nèi)的終端配置了VRRP虛擬網(wǎng)關(guān)地址,發(fā)生故障時(shí),虛擬缺省網(wǎng)關(guān)沒(méi)有改變,主機(jī)仍然與網(wǎng)絡(luò)保持連接,網(wǎng)絡(luò)將不會(huì)受到單點(diǎn)故障的影響。通過(guò)將上述VRRP技術(shù)應(yīng)用于作為靜態(tài)配置缺省網(wǎng)關(guān)的第三層交換機(jī)上,能夠?yàn)橥ㄟ^(guò)缺省網(wǎng)關(guān)進(jìn)行廣域網(wǎng)接入或訪問(wèn)其它局域網(wǎng)的終端系統(tǒng)提供了更快、更有效的冗余容錯(cuò)能力,而且,VRRP技術(shù)也已不在僅僅局限于應(yīng)用在路由器上,而是逐步引入到大規(guī)模的交換網(wǎng)中應(yīng)用,以實(shí)現(xiàn)高可靠性的第三層交換的冗余備份。
以下,對(duì)VRRP技術(shù)進(jìn)行詳細(xì)說(shuō)明。參見(jiàn)圖1,圖1是采用VRRP技術(shù)的網(wǎng)絡(luò)示意圖。網(wǎng)絡(luò)中采用VRRP技術(shù)時(shí),將局域網(wǎng)中的一組路由器組成一個(gè)虛擬路由器,稱為一個(gè)虛擬備份組。該備份組中包括一個(gè)處于Master狀態(tài)的路由器和若干個(gè)處于Backup狀態(tài)的路由器。其中,處于Master狀態(tài)的路由器地址為10.11.113.61,處于Backup狀態(tài)路由器的地址為10.11.11.62,且該虛擬備份組擁有自己的虛擬IP地址10.11.113.65,該虛擬地址可以和備份組內(nèi)的某個(gè)路由器的地址相同。局域網(wǎng)內(nèi)的主機(jī)無(wú)需知道備份組中處于主用或備用狀態(tài)的路由器的IP地址,而是僅知道虛擬路由器的地址10.11.11.65,并將自身網(wǎng)關(guān)地址設(shè)置為該虛擬路由器的地址。局域網(wǎng)內(nèi)主機(jī)通過(guò)該虛擬路由器的地址與其它網(wǎng)絡(luò)上的設(shè)備進(jìn)行通信。
在應(yīng)用VRRP技術(shù)的過(guò)程中,作為VRRP Master的設(shè)備需要每隔VRRP廣告報(bào)文的發(fā)送間隔時(shí)間(Advertisement Interval)向網(wǎng)絡(luò)中作為VRRP Backup的各個(gè)設(shè)備發(fā)送VRRP廣告(Advertisement)報(bào)文,且該VRRP廣告報(bào)文發(fā)送間隔時(shí)間均較短,一般默認(rèn)為1秒鐘。與此同時(shí),當(dāng)前的高端網(wǎng)絡(luò)設(shè)備大都支持?jǐn)?shù)十個(gè)甚至幾百個(gè)VRRP虛擬備份組,每個(gè)虛擬備份組都需要通過(guò)定時(shí)發(fā)送自己的Advertisement報(bào)文來(lái)維持自身的協(xié)議運(yùn)行。圖2示出了現(xiàn)有技術(shù)中實(shí)現(xiàn)Advertisement報(bào)文定時(shí)發(fā)送的一種方式。參見(jiàn)圖2,為了實(shí)現(xiàn)報(bào)文定時(shí)發(fā)送,首先,每個(gè)VRRP備份組在路由器的定時(shí)觸發(fā)單元202中創(chuàng)建VRRP備份組定時(shí)器;定時(shí)器觸發(fā)源201以毫秒級(jí)的速度向定時(shí)觸發(fā)單元202發(fā)送觸發(fā)消息,定時(shí)觸發(fā)單元202檢測(cè)創(chuàng)建的備份組定時(shí)器是否超時(shí),如果超時(shí),則向VRRP任務(wù)單元203發(fā)送定時(shí)器超時(shí)消息;VRRP任務(wù)單元203處理所有定時(shí)器超時(shí)消息,根據(jù)該消息發(fā)送VRRP廣告報(bào)文。
如上所述的方式雖然能夠?qū)崿F(xiàn)廣告報(bào)文的定時(shí)發(fā)送,但是具有如下問(wèn)題如果所有備份組在幾乎相同的時(shí)間均向定時(shí)觸發(fā)單元202創(chuàng)建超時(shí)時(shí)間相同的備份組定時(shí)器,則會(huì)在同一時(shí)間觸發(fā)大量備份組超時(shí)消息,這樣VRRP任務(wù)單元203就會(huì)在一瞬間發(fā)送大量VRRP廣告報(bào)文,從導(dǎo)致發(fā)送設(shè)備和接收設(shè)備上的CPU處理不及時(shí)的情況。這種情況在核心高端/匯聚層以太網(wǎng)交換機(jī)上非常容易出現(xiàn),一旦流量達(dá)到CPU的報(bào)文處理極限,就會(huì)造成報(bào)文丟失,VRRP虛擬備份組中的各個(gè)路由器在Master和Backup之間來(lái)回振蕩切換無(wú)法穩(wěn)定,從而導(dǎo)致網(wǎng)絡(luò)狀態(tài)不穩(wěn)定甚至整個(gè)網(wǎng)絡(luò)癱瘓。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明在于提供一種報(bào)文發(fā)送的方法和裝置,以解決上述各個(gè)備份組在同一時(shí)間發(fā)送大量報(bào)文造成網(wǎng)絡(luò)狀態(tài)不穩(wěn)定的問(wèn)題。
為解決上述問(wèn)題,本發(fā)明提供一種報(bào)文發(fā)送的方法,包括將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中,步驟A1在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合,將與當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
其中,所述將備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中包括步驟A0根據(jù)預(yù)先設(shè)定的閾值將所述備份組定時(shí)器劃分至對(duì)應(yīng)于不同觸發(fā)時(shí)間的備份組定時(shí)器集合中。
其中,所述不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng),步驟A0為在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的N個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中;其中,備份組超時(shí)鏈表索引表中的各個(gè)索引值為有序序列,N為所述閾值。
其中,所述觸發(fā)為順序觸發(fā),步驟A1包括步驟A11定時(shí)器定時(shí)觸發(fā),觸發(fā)所述當(dāng)前索引相對(duì)應(yīng)的備份組定時(shí)器集合;步驟A12觸發(fā)后向報(bào)文發(fā)送單元發(fā)送通知消息,報(bào)文發(fā)送單元根據(jù)該消息,將當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去;步驟A13將所述備份組超時(shí)鏈表索引表中當(dāng)前索引位置順序向后移動(dòng)一位,以及,根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將步驟A11中所觸發(fā)的超時(shí)鏈表的索引值更新,使該超時(shí)鏈表對(duì)應(yīng)更新后的索引;然后返回步驟A11,直至報(bào)文發(fā)送結(jié)束。
其中,在該方法之前進(jìn)一步包括根據(jù)所述定時(shí)器定時(shí)觸發(fā)間隔、報(bào)文發(fā)送周期確定所述閾值。
其中,采用手工方式為不同的備份組配置報(bào)文發(fā)送周期,或?yàn)楦鱾€(gè)備份組隨機(jī)分配報(bào)文發(fā)送周期。
其中,步驟A1中,將備份組的報(bào)文發(fā)送出去為判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的值,如果是,則在當(dāng)前發(fā)送部分所述備份組的報(bào)文,經(jīng)過(guò)延時(shí)后,發(fā)送剩余的所述備份組的報(bào)文。
其中,所述報(bào)文為虛擬路由器冗余協(xié)議廣告Advertisement報(bào)文。
本發(fā)明還提供一種報(bào)文發(fā)送的裝置,包括分組單元,用于將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中;定時(shí)觸發(fā)單元,用于在不同時(shí)刻分別觸發(fā)分組單元中不同的備份組定時(shí)器集合;報(bào)文發(fā)送單元,用于將當(dāng)前所觸發(fā)的備份組定時(shí)器所對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
其中,所述分組單元用于在根據(jù)預(yù)先設(shè)定的閾值將所述備份組定時(shí)器劃分至對(duì)應(yīng)于不同觸發(fā)時(shí)間的備份組定時(shí)器集合中;其中,所述分組單元用于將不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng)在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的N個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中;其中,備份組超時(shí)鏈表索引表中的各個(gè)索引值為有序序列,N為所述閾值。
其中,所述分組單元用于在定時(shí)觸發(fā)單元觸發(fā)所述當(dāng)前索引相對(duì)應(yīng)的備份組定時(shí)器后,向報(bào)文發(fā)送單元發(fā)送通知消息;并將所述備份組超時(shí)鏈表索引表中當(dāng)前索引位置順序向后移動(dòng)一位,以及,根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將步驟A11中所觸發(fā)的超時(shí)鏈表的索引值更新,使該超時(shí)鏈表對(duì)應(yīng)更新后的索引,報(bào)文發(fā)送單元用于根據(jù)分組單元發(fā)送的消息,將當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去,直至報(bào)文發(fā)送結(jié)束。
其中,所述分組單元還用于根據(jù)所述定時(shí)觸發(fā)單元的定時(shí)觸發(fā)間隔、報(bào)文發(fā)送周期確定所述閾值。
其中,所述分組單元用于采用手工方式為不同的備份組配置報(bào)文發(fā)送周期,或?yàn)楦鱾€(gè)備份組隨機(jī)分配報(bào)文發(fā)送周期。
其中,所述報(bào)文發(fā)送單元用于在發(fā)送報(bào)文前判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的值,如果是,則在當(dāng)前發(fā)送部分所述備份組的報(bào)文,經(jīng)過(guò)延時(shí)后,發(fā)送剩余的所述備份組的報(bào)文。
可見(jiàn),本發(fā)明的方法將所有創(chuàng)建的備份組定時(shí)器按照預(yù)定的閾值劃分為各個(gè)不同備份組定時(shí)器集合;在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合,將與當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。這樣,可以控制同一時(shí)刻發(fā)送的備份組的廣告報(bào)文數(shù)量,從而避免在網(wǎng)絡(luò)中造成擁塞;而且,在本發(fā)明中,在備份組定時(shí)器集合每次被觸發(fā)后,將超時(shí)鏈表中當(dāng)前索引位置順序向后移動(dòng)一位,并根據(jù)報(bào)文發(fā)送周期以及定時(shí)觸發(fā)單元定時(shí)觸發(fā)間隔,將相應(yīng)的后續(xù)索引位置指向最近一次觸發(fā)的備份組定時(shí)器集合,形成循環(huán)發(fā)送,以滿足網(wǎng)絡(luò)中報(bào)文定時(shí)發(fā)送的要求。
進(jìn)一步的,當(dāng)有多組報(bào)文在同一時(shí)刻發(fā)送從而超出當(dāng)前發(fā)送報(bào)文能力時(shí),本發(fā)明還可以限制每次發(fā)送報(bào)文的數(shù)量,從而進(jìn)一步避免瞬間發(fā)送大量報(bào)文所容易造成的網(wǎng)絡(luò)狀態(tài)的不穩(wěn)定的問(wèn)題。
圖1是采用VRRP技術(shù)的網(wǎng)絡(luò)示意圖;圖2是網(wǎng)絡(luò)中發(fā)送VRRP廣告報(bào)文的示意圖;圖3是本發(fā)明方法的流程圖;圖4是應(yīng)用本發(fā)明方法的網(wǎng)絡(luò)示意圖;圖5是網(wǎng)絡(luò)中使用本發(fā)明的方法發(fā)送VRRP廣告報(bào)文的裝置圖;圖6是本發(fā)明的裝置圖。
具體實(shí)施例方式
在本發(fā)明中,將備份組定時(shí)器劃分至各個(gè)集合中,并在不同時(shí)刻觸發(fā)相應(yīng)的備份組定時(shí)器集合,從而實(shí)現(xiàn)在不同時(shí)刻分別發(fā)送對(duì)應(yīng)的備份組報(bào)文,使得同一時(shí)刻發(fā)送報(bào)文的數(shù)量得以控制。
下面結(jié)合附圖詳細(xì)說(shuō)明在本發(fā)明的方法,參見(jiàn)圖3,步驟S301將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中;將網(wǎng)絡(luò)中為各個(gè)備份組創(chuàng)建的備份組定時(shí)器劃分至各個(gè)集合中,也就是將各個(gè)備份組定時(shí)器分組,每組中包含的備份組定時(shí)器個(gè)數(shù)不超過(guò)預(yù)定的閾值,并且,將每一組中的備份組定時(shí)器以一個(gè)超時(shí)鏈表的形式進(jìn)行保存,每個(gè)超時(shí)鏈表和備份組超時(shí)鏈表索引表中的一個(gè)索引相對(duì)應(yīng),超時(shí)鏈表中各個(gè)節(jié)點(diǎn)分別保存對(duì)應(yīng)的備份組定時(shí)器。
步驟S302在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合,將與當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
各個(gè)備份組定時(shí)器以超時(shí)鏈表的形式保存后,按照備份組超時(shí)鏈表索引表順序觸發(fā)各個(gè)索引相對(duì)應(yīng)的各個(gè)超時(shí)鏈表中的各個(gè)備份組定時(shí)器,定時(shí)觸發(fā)間隔根據(jù)網(wǎng)絡(luò)要求可以進(jìn)行調(diào)節(jié),在每次觸發(fā)超時(shí)鏈表中的各個(gè)備份組定時(shí)器后,將超時(shí)鏈表中當(dāng)前索引位置順序向后移動(dòng)一位,并根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將所觸發(fā)的超時(shí)鏈表相應(yīng)的索引值更新,即,將相應(yīng)的后續(xù)索引位置指向剛觸發(fā)過(guò)的超時(shí)鏈表,同時(shí)發(fā)送與超時(shí)鏈表中備份組定時(shí)器相應(yīng)的備份組的廣告報(bào)文。
上述對(duì)于本發(fā)明的描述給出了本發(fā)明方法的主要過(guò)程,下面詳細(xì)描述本發(fā)明在網(wǎng)絡(luò)中具體應(yīng)用的一個(gè)優(yōu)選實(shí)施例。
為了更好的說(shuō)明本發(fā)明的優(yōu)選實(shí)施例,下面對(duì)本發(fā)明一個(gè)應(yīng)用環(huán)境進(jìn)行簡(jiǎn)單介紹。
參見(jiàn)圖4,圖4是應(yīng)用本發(fā)明的一個(gè)網(wǎng)絡(luò)環(huán)境的示意圖,當(dāng)前網(wǎng)絡(luò)中的用戶被分成從1到s共s個(gè)用戶組,分屬于相對(duì)應(yīng)的s個(gè)不同虛擬局域網(wǎng)1到s。s個(gè)用戶組彼此之間廣播域相互隔離,無(wú)法直接互訪。s個(gè)用戶組通過(guò)路由器組401中的路由器1、路由器2、路由器3接入互聯(lián)網(wǎng)。路由器1、路由器2、路由器3之間通過(guò)以太網(wǎng)402相連,為便于管理,保證鏈路的可靠性,由路由器1、路由器2、路由器3組成s個(gè)VRRP備份組,并在路由器1、路由器2、路由器3上分別配置VRRP備份組1到s。假設(shè)路由器1在s個(gè)備份組中均處于Master狀態(tài),路由器2、路由器3的狀態(tài)均處于Backup。因此s個(gè)用戶組的報(bào)文均通過(guò)路由器1轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)。
由于VRRP備份組1至s在路由器1上時(shí),路由器1的狀態(tài)均為Master。因此每個(gè)VRRP備份組均需要定時(shí)發(fā)送VRRP廣告報(bào)文,當(dāng)發(fā)送s個(gè)備份組的VRRP廣告報(bào)文的報(bào)文發(fā)送周期,即Advertisement Interval為1s時(shí),在一定時(shí)間內(nèi)平均每秒路由器1就要將s份VRRP廣告報(bào)文發(fā)送至處于Backup狀態(tài)下的路由器2和路由器3,以通知路由器2和路由器3,現(xiàn)處于Master狀態(tài)下的路由器1運(yùn)行正常。
在路由器1上創(chuàng)建上述s個(gè)VRRP備份組時(shí),如果這s個(gè)VRRP備份組同時(shí)創(chuàng)建,則會(huì)同時(shí)超時(shí),這樣路由器1就會(huì)同時(shí)發(fā)送s份VRRP廣告報(bào)文給路由器2和路由器3。如果s的取值較小,此時(shí)對(duì)網(wǎng)絡(luò)造成的沖擊影響較?。蝗绻藭r(shí)配置VRRP備份組較大時(shí),如上百個(gè)甚至上千個(gè)VRRP備份組,此時(shí)整個(gè)以太網(wǎng)中就會(huì)充滿VRRP廣告報(bào)文,路由器1可能無(wú)法在同一時(shí)間發(fā)送出全部s份VRRP廣告報(bào)文,路由器2和路由器3由于處理不及時(shí),對(duì)收到的大量的VRRP報(bào)文丟包,造成系統(tǒng)的不穩(wěn)定,同時(shí)也會(huì)造成以太網(wǎng)內(nèi)的短暫阻塞。造成上面的根本原因在于VRRP廣告報(bào)文的突發(fā)性。
因此,在創(chuàng)建路由器1上的s個(gè)備份組時(shí),需要為每個(gè)VRRP備份組創(chuàng)建一個(gè)定時(shí)器,為避免在同一時(shí)間創(chuàng)建超時(shí)時(shí)間完全相同備份組定時(shí)器,可采用本發(fā)明的方法創(chuàng)建各個(gè)備份組定時(shí)器。下面詳細(xì)描述創(chuàng)建備份組定時(shí)器和發(fā)送VRRP廣告報(bào)文的過(guò)程。
在圖4所述的應(yīng)用環(huán)境下,參見(jiàn)圖5,本發(fā)明一優(yōu)選實(shí)施例中,采用如下方式實(shí)現(xiàn)本發(fā)明在路由器1中的VRRP備份組定時(shí)器處理單元503依賴于定時(shí)觸發(fā)單元502的定時(shí)觸發(fā),定時(shí)器觸發(fā)源501每次以毫秒級(jí)觸發(fā)定時(shí)觸發(fā)單元502,定時(shí)觸發(fā)單元502進(jìn)行計(jì)時(shí),并以預(yù)定時(shí)間間隔觸發(fā)VRRP備份組定時(shí)器處理單元503。其中,預(yù)定的時(shí)間間隔可以根據(jù)網(wǎng)絡(luò)情況進(jìn)行調(diào)節(jié),一般為50ms,也可以調(diào)節(jié)為20ms或30ms等時(shí)間間隔。VRRP備份組定時(shí)器處理單元503每次收到由定時(shí)觸發(fā)單元502以預(yù)定時(shí)間間隔50ms的觸發(fā)后,對(duì)超時(shí)鏈表中備份組定時(shí)器進(jìn)行超時(shí)處理。
對(duì)于同一時(shí)間需要發(fā)送廣告報(bào)文的備份組,網(wǎng)絡(luò)中VRRP的各個(gè)備份組創(chuàng)建定時(shí)器時(shí),不是向定時(shí)觸發(fā)單元502直接創(chuàng)建,而是向VRRP備份組定時(shí)器處理單元503去創(chuàng)建,這樣能夠?qū)浞萁M定時(shí)器的超時(shí)個(gè)數(shù)進(jìn)行控制。所創(chuàng)建的不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng)。在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的n個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中。如超時(shí)鏈表1中保存的備份組1至n的定時(shí)器,鏈表4中保存的備份組m至k的定時(shí)器,每個(gè)鏈表中保存的備份組定時(shí)器個(gè)數(shù)均不超過(guò)n。這樣每次觸發(fā)后,VRRP任務(wù)單元504每次發(fā)送n份VRRP廣告報(bào)文。為不影響VRRP備份組的正常運(yùn)行,下一組超時(shí)鏈表的超時(shí)時(shí)間和上一組超時(shí)鏈表的超時(shí)時(shí)間相差為毫秒級(jí),這樣備份組報(bào)文的發(fā)送能夠保證以Advertisement Interval發(fā)送,同時(shí)又不會(huì)在同一時(shí)間內(nèi)發(fā)送所有創(chuàng)建的備份組廣告報(bào)文。
例如,各個(gè)備份組發(fā)送廣告報(bào)文的Advertisement Interval為1s,以定時(shí)器觸發(fā)間隔為50ms的速度觸發(fā)備份組超時(shí)鏈表索引表中的各個(gè)索引。在觸發(fā)完索引為1的超時(shí)鏈表1后,VRRP備份組定時(shí)器處理單元503將索引位置向后移一位,即移動(dòng)到索引位置2處,在50ms后觸發(fā)超時(shí)鏈表2;同時(shí)將超時(shí)鏈表1的索引值更新,更新的過(guò)程如下根據(jù)定時(shí)器觸發(fā)間隔、Advertisement Interval來(lái)預(yù)先設(shè)定。如Advertisement Interval為1s,定時(shí)器觸發(fā)間隔為50ms,1000ms/50ms=20,將得到的20與超時(shí)鏈表1的索引值1相加,將超時(shí)鏈表1的索引值更新為21,即,將21的超時(shí)鏈表位置指向剛觸發(fā)過(guò)的超時(shí)鏈表1的備份組定時(shí)器集合。
在更新的同時(shí)向VRRP任務(wù)單元504發(fā)送備份組定時(shí)器超時(shí)消息,VRRP任務(wù)單元504發(fā)送備份組1至n的備份組廣告報(bào)文。當(dāng)定時(shí)觸發(fā)單元502以50ms的定時(shí)觸發(fā)間隔逐個(gè)觸發(fā)超時(shí)鏈表時(shí),超時(shí)鏈表21中的1至n個(gè)備份組的定時(shí)器在1s后再次觸發(fā),VRRP任務(wù)單元504發(fā)送備份組1至n的VRRP廣告報(bào)文,這樣就可將各備份組的廣告報(bào)文以Advertisement Interval循環(huán)發(fā)送。對(duì)于AdvertisementInterval,可以預(yù)先設(shè)定各個(gè)備份組的Advertisement Interval或隨機(jī)生成。
對(duì)于每個(gè)超時(shí)鏈表中的備份組定時(shí)器個(gè)數(shù)n,可以根據(jù)定時(shí)器觸發(fā)間隔、Advertisement Interval來(lái)預(yù)先設(shè)定。如Advertisement Interval為1s,定時(shí)器觸發(fā)間隔為50ms,1000ms/50ms=20,如果需要?jiǎng)?chuàng)建100個(gè)備份組定時(shí)器,100/20=5,則n的值需要大于或等于5。
當(dāng)系統(tǒng)在初始化時(shí)或者當(dāng)前比較繁忙時(shí),VRRP備份組定時(shí)器處理單元503可能很長(zhǎng)時(shí)間才得到調(diào)度,這樣可能造成VRRP備份組定時(shí)器處理單元503中的多個(gè)超時(shí)鏈表超時(shí),當(dāng)VRRP備份組定時(shí)器處理單元503得到調(diào)度時(shí),會(huì)將大量的備份組定時(shí)器超時(shí)消息發(fā)給VRRP任務(wù)單元504處理,這樣仍然會(huì)造成發(fā)送大量備份組的廣告報(bào)文。因此,VRRP任務(wù)單元504每次記錄處理消息的個(gè)數(shù),并判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的閾值t,如果是,則發(fā)送部分備份組的廣告報(bào)文,未發(fā)送的備份組的廣告報(bào)文將不再繼續(xù)處理,釋放出對(duì)CPU的控制權(quán),經(jīng)過(guò)延時(shí)后,等到再次得到調(diào)度時(shí),發(fā)送剩余的所述備份組的廣告報(bào)文。這樣能夠避免同一時(shí)刻發(fā)送大量的VRRP廣告報(bào)文,造成系統(tǒng)的不穩(wěn)定。
本發(fā)明還提供一種一種報(bào)文發(fā)送的裝置,包括分組單元601,用于將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中;定時(shí)觸發(fā)單元602,用于在不同時(shí)刻分別觸發(fā)分組單元601中不同的備份組定時(shí)器集合;報(bào)文發(fā)送單元603,用于在定時(shí)觸發(fā)單元602觸發(fā)后,將與當(dāng)前所觸發(fā)的備份組定時(shí)器集合中,各個(gè)備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
本發(fā)明的裝置中,分組單元601用于在根據(jù)預(yù)先設(shè)定的閾值將所述備份組定時(shí)器劃分至對(duì)應(yīng)于不同觸發(fā)時(shí)間的備份組定時(shí)器集合中;本發(fā)明的裝置中,分組單元601用于將不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng)在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的N個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中;其中,備份組超時(shí)鏈表索引表中的各個(gè)索引值為有序序列,N為所述閾值。
本發(fā)明的裝置中,所述分組單元601用于在定時(shí)觸發(fā)單元602觸發(fā)所述當(dāng)前索引相對(duì)應(yīng)的備份組定時(shí)器后,向報(bào)文發(fā)送單元603發(fā)送通知消息;
并將所述備份組超時(shí)鏈表索引表中當(dāng)前索引位置順序向后移動(dòng)一位,和,根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將步驟A11中所觸發(fā)的超時(shí)鏈表的索引值更新,使該超時(shí)鏈表對(duì)應(yīng)更新后的索引,報(bào)文發(fā)送單元603用于根據(jù)分組單元601發(fā)送的消息,將當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去,直至報(bào)文發(fā)送結(jié)束。
本發(fā)明的裝置中,所述分組單元601還用于根據(jù)所述定時(shí)觸發(fā)單元602的定時(shí)觸發(fā)間隔、報(bào)文發(fā)送周期確定所述閾值。
本發(fā)明的裝置中,所述分組單元601用于采用手工方式為不同的備份組配置報(bào)文發(fā)送周期,或?yàn)楦鱾€(gè)備份組隨機(jī)分配報(bào)文發(fā)送周期。
本發(fā)明的裝置中,報(bào)文發(fā)送單元603用于在發(fā)送報(bào)文前判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的值,如果是,則在當(dāng)前發(fā)送部分所述備份組的報(bào)文,經(jīng)過(guò)延時(shí)后,發(fā)送剩余的所述備份組的報(bào)文。
結(jié)合本發(fā)明中實(shí)施例的各個(gè)單元,對(duì)于本發(fā)明的裝置,定時(shí)觸發(fā)單元602實(shí)現(xiàn)的觸發(fā)功能是實(shí)施例中所描述的定時(shí)觸發(fā)單元502所實(shí)現(xiàn)的功能;報(bào)文發(fā)送單元603所實(shí)現(xiàn)的功能是實(shí)施例中所描述的VRRP任務(wù)單元504所實(shí)現(xiàn)的功能;分組單元601實(shí)現(xiàn)的功能是實(shí)施例中所描述的VRRP備份組定時(shí)器處理單元502所實(shí)現(xiàn)的功能。
對(duì)于本發(fā)明的方法和裝置,可以在各類網(wǎng)絡(luò)中得到拓展應(yīng)用,所發(fā)送的報(bào)文沒(méi)有局限性,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報(bào)文發(fā)送的方法,其特征在于,將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中,該方法包括步驟A1在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合,將與當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中包括步驟A0根據(jù)預(yù)先設(shè)定的閾值將所述備份組定時(shí)器劃分至對(duì)應(yīng)于不同觸發(fā)時(shí)間的備份組定時(shí)器集合中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng),步驟A0為在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的N個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中;其中,備份組超時(shí)鏈表索引表中的各個(gè)索引值為有序序列,N為所述閾值。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述觸發(fā)為順序觸發(fā),步驟A1包括步驟A11定時(shí)器定時(shí)觸發(fā),觸發(fā)所述當(dāng)前索引相對(duì)應(yīng)的備份組定時(shí)器集合;步驟A12觸發(fā)后向報(bào)文發(fā)送單元發(fā)送通知消息,報(bào)文發(fā)送單元根據(jù)該消息,將當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去;步驟A13將所述備份組超時(shí)鏈表索引表中當(dāng)前索引位置順序向后移動(dòng)一位,以及,根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將步驟A11中所觸發(fā)的超時(shí)鏈表的索引值更新,使該超時(shí)鏈表對(duì)應(yīng)更新后的索引;然后返回步驟A11,直至報(bào)文發(fā)送結(jié)束。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在該方法之前進(jìn)一步包括根據(jù)所述定時(shí)器定時(shí)觸發(fā)間隔、報(bào)文發(fā)送周期確定所述閾值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,采用手工方式為不同的備份組配置報(bào)文發(fā)送周期,或?yàn)楦鱾€(gè)備份組隨機(jī)分配報(bào)文發(fā)送周期。
7.根據(jù)權(quán)利要求1~6任意一項(xiàng)所述的方法,其特征在于,步驟A1中,將備份組的報(bào)文發(fā)送出去為判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的值,如果是,則在當(dāng)前發(fā)送部分所述備份組的報(bào)文,經(jīng)過(guò)延時(shí)后,發(fā)送剩余的所述備份組的報(bào)文。
8.根據(jù)權(quán)利要求1~6任意一項(xiàng)所述的方法,其特征在于,所述報(bào)文為虛擬路由器冗余協(xié)議廣告Advertisement報(bào)文。
9.一種報(bào)文發(fā)送的裝置,其特征在于,包括分組單元,用于將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中;定時(shí)觸發(fā)單元,用于在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合;報(bào)文發(fā)送單元,用于將當(dāng)前所觸發(fā)的備份組定時(shí)器所對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述分組單元用于在根據(jù)預(yù)先設(shè)定的閾值將所述備份組定時(shí)器劃分至對(duì)應(yīng)于不同觸發(fā)時(shí)間的備份組定時(shí)器集合中。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述分組單元用于將不同的備份組定時(shí)器集合分別以超時(shí)鏈表保存,且各個(gè)超時(shí)鏈表順序與備份組超時(shí)鏈表索引表中的各個(gè)索引相對(duì)應(yīng)在創(chuàng)建備份組定時(shí)器時(shí),判斷新創(chuàng)建的備份組定時(shí)器是否會(huì)和已經(jīng)創(chuàng)建的超時(shí)鏈表中的N個(gè)備份組定時(shí)器在同一時(shí)刻超時(shí)觸發(fā),如果是,則將該新創(chuàng)建的備份組定時(shí)器劃分至下一索引相對(duì)應(yīng)的超時(shí)鏈表中;其中,備份組超時(shí)鏈表索引表中的各個(gè)索引值為有序序列,N為所述閾值。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述分組單元用于在定時(shí)觸發(fā)單元觸發(fā)所述當(dāng)前索引相對(duì)應(yīng)的備份組定時(shí)器后,向報(bào)文發(fā)送單元發(fā)送通知消息;并將所述備份組超時(shí)鏈表索引表中當(dāng)前索引位置順序向后移動(dòng)一位,以及,根據(jù)報(bào)文發(fā)送周期以及定時(shí)器定時(shí)觸發(fā)間隔,將步驟A11中所觸發(fā)的超時(shí)鏈表的索引值更新,使該超時(shí)鏈表對(duì)應(yīng)更新后的索引;報(bào)文發(fā)送單元用于根據(jù)分組單元發(fā)送的消息,將當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去,直至報(bào)文發(fā)送結(jié)束。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述分組單元還用于根據(jù)所述定時(shí)觸發(fā)單元的定時(shí)觸發(fā)間隔、報(bào)文發(fā)送周期確定所述閾值。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述分組單元用于采用手工方式為不同的備份組配置報(bào)文發(fā)送周期,或?yàn)楦鱾€(gè)備份組隨機(jī)分配報(bào)文發(fā)送周期。
15.根據(jù)權(quán)利要求9-14任意一項(xiàng)所述的裝置,其特征在于,所述報(bào)文發(fā)送單元用于在發(fā)送報(bào)文前判斷當(dāng)前所發(fā)送的報(bào)文數(shù)量是否超過(guò)預(yù)先設(shè)定的值,如果是,則在當(dāng)前發(fā)送部分所述備份組的報(bào)文,經(jīng)過(guò)延時(shí)后,發(fā)送剩余的所述備份組的報(bào)文。
全文摘要
本發(fā)明公開(kāi)了一種報(bào)文發(fā)送的方法和裝置。本發(fā)明的方法包括將至少兩個(gè)備份組定時(shí)器劃分至不同的備份組定時(shí)器集合中,并在不同時(shí)刻分別觸發(fā)不同的備份組定時(shí)器集合,將與當(dāng)前所觸發(fā)的備份組定時(shí)器相對(duì)應(yīng)的備份組的報(bào)文發(fā)送出去。這樣每次發(fā)送的備份組的廣告報(bào)文數(shù)量在網(wǎng)絡(luò)中不會(huì)造成擁塞,當(dāng)有多組報(bào)文一同發(fā)送時(shí),限制每次發(fā)送的最大發(fā)送報(bào)文數(shù)量閾值,未發(fā)送出的報(bào)文延時(shí)后發(fā)送,從而避免了瞬間發(fā)送大量報(bào)文造成的網(wǎng)絡(luò)狀態(tài)的不穩(wěn)定。本發(fā)明的裝置包括報(bào)文發(fā)送單元、定時(shí)觸發(fā)單元、分組單元。
文檔編號(hào)H04L29/06GK1921454SQ20061013973
公開(kāi)日2007年2月28日 申請(qǐng)日期2006年9月22日 優(yōu)先權(quán)日2006年9月22日
發(fā)明者王波 申請(qǐng)人:杭州華為三康技術(shù)有限公司