本發(fā)明涉及通信技術(shù),尤其涉及一種優(yōu)先發(fā)送/接收HELLO報(bào)文的方法及路由設(shè)備。
背景技術(shù):
通信網(wǎng)絡(luò)中的很多協(xié)議都是通過HELLO報(bào)文機(jī)制來建立鄰居關(guān)系,如路由協(xié)議中的邊界網(wǎng)關(guān)協(xié)議(BGP,Border Gateway Protocol)、開放式最短路徑優(yōu)先(OSPF,Open Shortest Path First)、中間系統(tǒng)-中間系統(tǒng)(IS-IS,Intermediate System-to-Intermediate System)等。具體地,HELLO報(bào)文攜帶本地的相關(guān)屬性信息,終端雙方通過發(fā)送HELLO報(bào)文來發(fā)現(xiàn)對(duì)方,接收到對(duì)端發(fā)來的HELLO報(bào)文時(shí),對(duì)HELLO報(bào)文進(jìn)行有效性檢查,各個(gè)參數(shù)如果匹配的情況下終端會(huì)記錄下HELLO報(bào)文發(fā)送端這個(gè)鄰居關(guān)系。
鄰居雙方會(huì)協(xié)商約定一定時(shí)間間隔內(nèi)如果沒有接收到鄰居對(duì)方發(fā)來的HELLO報(bào)文時(shí)認(rèn)為鄰居已經(jīng)不存在,需要將鄰居關(guān)系刪除,那么鄰居通告過來的信息也會(huì)刪除。
鄰居關(guān)系建立完成后鄰居雙方還會(huì)交互協(xié)議其他類型的報(bào)文,用以交換雙方各自擁有的信息,在此過程中HELLO報(bào)文還是需要定期發(fā)送以及時(shí)通知鄰居對(duì)方本端的存在。通常情況下,協(xié)議的HELLO報(bào)文和其他報(bào)文都是相同優(yōu)先級(jí)處理,從而可能出現(xiàn)處理器非常忙碌而沒有及時(shí)接收或發(fā)送HELLO報(bào)文的情況,一定的時(shí)間間隔后沒有及時(shí)收到鄰居的HELLO報(bào)文會(huì)將鄰居關(guān)系刪除,并且將鄰居通告的所有信息置為無效,進(jìn)而可能影響路由表等。如圖1所示,路由器1和路由器2協(xié)商四個(gè)HELLO報(bào)文間隔內(nèi)如果接收不到對(duì)方發(fā)來的HELLO報(bào)文后會(huì)將對(duì)端刪除。路由器1接收到路由器2通告過來的路由信 息,路由器2由于本地處理器忙碌導(dǎo)致四個(gè)HELLO報(bào)文間隔內(nèi)沒有發(fā)出HELLO報(bào)文,接著根據(jù)先前協(xié)商的約定,路由器1會(huì)將路由器2這個(gè)鄰居刪除,并且也會(huì)將路由器2先前通告的路由信息刪除,進(jìn)而影響本地的路由轉(zhuǎn)發(fā)表。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種優(yōu)先發(fā)送/接收HELLO報(bào)文的方法及路由設(shè)備。
本發(fā)明實(shí)施例提供的優(yōu)先發(fā)送HELLO報(bào)文的方法包括:
當(dāng)發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列;
當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述方法還包括:
當(dāng)處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),檢測(cè)優(yōu)先發(fā)送隊(duì)列中是否添加有新的發(fā)送請(qǐng)求;
當(dāng)檢測(cè)到優(yōu)先發(fā)送隊(duì)列中添加有新的發(fā)送請(qǐng)求時(shí),中斷對(duì)普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求的處理,并處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,包括:將優(yōu)先發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去;
所述處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,包括:將普通發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去。
本發(fā)明另一實(shí)施例提供的優(yōu)先接收HELLO報(bào)文的方法包括
當(dāng)接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文添加至優(yōu)先接收隊(duì)列;當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文添加至普通接收隊(duì)列;
當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文;當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),處理普通接收隊(duì)列中的報(bào)文。
在本發(fā)明一實(shí)施例中,所述方法還包括:
當(dāng)處理普通接收隊(duì)列中的報(bào)文時(shí),檢測(cè)優(yōu)先接收隊(duì)列中是否添加有新的報(bào)文;
當(dāng)檢測(cè)到優(yōu)先接收隊(duì)列中添加有新的報(bào)文時(shí),中斷對(duì)普通接收隊(duì)列中的報(bào)文的處理,并處理優(yōu)先接收隊(duì)列中的報(bào)文。
在本發(fā)明一實(shí)施例中,所述處理優(yōu)先接收隊(duì)列中的報(bào)文,包括:將優(yōu)先接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理;
所述處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,包括:將普通接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理。
本發(fā)明實(shí)施例提供的路由設(shè)備包括:
第一檢測(cè)單元,用于當(dāng)發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
優(yōu)先發(fā)送單元,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;
普通發(fā)送單元,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列;
處理單元,用于當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述路由設(shè)備還包括:
第二檢測(cè)單元,用于當(dāng)處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),檢測(cè)優(yōu)先發(fā)送隊(duì)列中是否添加有新的發(fā)送請(qǐng)求;
所述處理單元,還用于當(dāng)檢測(cè)到優(yōu)先發(fā)送隊(duì)列中添加有新的發(fā)送請(qǐng)求時(shí),中斷對(duì)普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求的處理,并處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述處理單元包括:
優(yōu)先處理子單元,用于將優(yōu)先發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去;
普通處理子單元,用于將普通發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去。
本發(fā)明另一實(shí)施例提供的路由設(shè)備包括:
第一檢測(cè)單元,用于當(dāng)接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
優(yōu)先接收單元,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文添加至優(yōu)先接收隊(duì)列;
普通接收單元,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文添加至普通接收隊(duì)列;
處理單元,用于當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文;當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),處理普通接收隊(duì)列中的報(bào)文。
在本發(fā)明一實(shí)施例中,所述路由設(shè)備還包括:
第二檢測(cè)單元,用于當(dāng)處理普通接收隊(duì)列中的報(bào)文時(shí),檢測(cè)優(yōu)先接收隊(duì)列中是否添加有新的報(bào)文;
所述處理單元,還用于當(dāng)檢測(cè)到優(yōu)先接收隊(duì)列中添加有新的報(bào)文時(shí),中斷對(duì)普通接收隊(duì)列中的報(bào)文的處理,并處理優(yōu)先接收隊(duì)列中的報(bào)文
在本發(fā)明一實(shí)施例中,所述處理單元包括:
優(yōu)先處理子單元,用于將優(yōu)先接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理;
普通處理子單元,用于將普通接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理。
本發(fā)明實(shí)施例的技術(shù)方案中,HELLO報(bào)文的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的優(yōu)先級(jí),相應(yīng)地,HELLO報(bào)文收發(fā)處理的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的收發(fā)處理。為此,針對(duì)報(bào)文的發(fā)送,初始化兩個(gè)優(yōu)先級(jí)不同的發(fā)送隊(duì)列,分別為:優(yōu)先發(fā)送隊(duì)列、普通發(fā)送隊(duì)列。當(dāng)發(fā)送報(bào)文時(shí),首先檢測(cè)該報(bào)文是否為HELLO報(bào)文。是時(shí),則將報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;否時(shí),則將報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列。當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),再處理普通發(fā)送隊(duì)列中的發(fā)送 請(qǐng)求。與報(bào)文的發(fā)送同理,對(duì)于報(bào)文的接收也初始化兩個(gè)不同的接收隊(duì)列,分別為:優(yōu)先接收隊(duì)列、普通接收隊(duì)列。當(dāng)接收到報(bào)文時(shí),首先檢測(cè)該報(bào)文是否為HELLO報(bào)文。是時(shí),則將報(bào)文添加至優(yōu)先接收隊(duì)列;否時(shí),則將報(bào)文添加至普通接收隊(duì)列。當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文。當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),再處理普通接收隊(duì)列中的報(bào)文。本發(fā)明實(shí)施例針對(duì)報(bào)文收發(fā)過程中賦予HELLO報(bào)文更高的處理優(yōu)先級(jí),在處理器忙碌的情況下使得HELLO報(bào)文能夠優(yōu)先得到處理,從而不會(huì)因?yàn)镠ELLO報(bào)文接收不及時(shí)而導(dǎo)致鄰居斷開鏈接。
附圖說明
圖1為報(bào)文收發(fā)示意圖;
圖2為本發(fā)明實(shí)施例一的優(yōu)先發(fā)送HELLO報(bào)文的方法的流程示意圖;
圖3為本發(fā)明實(shí)施例二的優(yōu)先接收HELLO報(bào)文的方法的流程示意圖;
圖4為本發(fā)明實(shí)施例一的路由設(shè)備的結(jié)構(gòu)組成示意圖;
圖5為本發(fā)明實(shí)施例二的路由設(shè)備的結(jié)構(gòu)組成示意圖;
圖6為本發(fā)明實(shí)施例三的路由設(shè)備的結(jié)構(gòu)組成示意圖。
具體實(shí)施方式
為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明實(shí)施例。
圖2為本發(fā)明實(shí)施例一的優(yōu)先發(fā)送HELLO報(bào)文的方法的流程示意圖,本示例中的優(yōu)先發(fā)送HELLO報(bào)文的方法應(yīng)用于路由設(shè)備,如圖2所示,所述優(yōu)先發(fā)送HELLO報(bào)文的方法包括以下步驟:
步驟201:當(dāng)發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文。
本發(fā)明實(shí)施例中,所述路由設(shè)備為路由器等通訊設(shè)備。
本發(fā)明實(shí)施例中,HELLO報(bào)文的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的優(yōu)先級(jí),相應(yīng) 地,HELLO報(bào)文收發(fā)處理的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的收發(fā)處理。為此,針對(duì)報(bào)文的發(fā)送,初始化兩個(gè)優(yōu)先級(jí)不同的發(fā)送隊(duì)列,分別為:優(yōu)先發(fā)送隊(duì)列、普通發(fā)送隊(duì)列。
當(dāng)路由設(shè)備發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文。具體地,路由設(shè)備中的業(yè)務(wù)發(fā)送模塊將需要發(fā)送的報(bào)文封裝完成后交予發(fā)送模塊,發(fā)送模塊接收到報(bào)文的發(fā)送請(qǐng)求后,檢查該發(fā)送請(qǐng)求的報(bào)文是否為HELLO報(bào)文,這里,依據(jù)對(duì)應(yīng)協(xié)議報(bào)文類型字段的檢查確定報(bào)文是否為HELLO報(bào)文,例如,OSPF的HELLO報(bào)文對(duì)應(yīng)的類型字段為1。
步驟202:當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列。
本發(fā)明實(shí)施例中,優(yōu)先發(fā)送隊(duì)列的優(yōu)先級(jí)高于普通發(fā)送隊(duì)列的優(yōu)先級(jí)。
步驟203:當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
本發(fā)明實(shí)施例中,處理發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),首先處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,將優(yōu)先發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去,只有當(dāng)優(yōu)先發(fā)送隊(duì)列中所有的發(fā)送請(qǐng)求處理完成后,才開始處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,具體為將普通發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去。這樣可以保證優(yōu)先發(fā)送隊(duì)列中的HELLO報(bào)文以最高處理優(yōu)先級(jí)發(fā)送出去。
本發(fā)明實(shí)施例中,當(dāng)處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),檢測(cè)優(yōu)先發(fā)送隊(duì)列中是否添加有新的發(fā)送請(qǐng)求;當(dāng)檢測(cè)到優(yōu)先發(fā)送隊(duì)列中添加有新的發(fā)送請(qǐng)求時(shí),中斷對(duì)普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求的處理,并處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。具體地,在處理普通發(fā)送隊(duì)列過程中,如果有新的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列中,則中斷普通發(fā)送隊(duì)列的發(fā)送請(qǐng)求處理,轉(zhuǎn)去處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求,處理完畢后繼續(xù)上一次被中斷的普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求處理。這種搶占式的處理方式可以保證HELLO報(bào)文始終以最高優(yōu)先級(jí)發(fā)送出去。
本發(fā)明實(shí)施例的技術(shù)方案中,HELLO報(bào)文的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的優(yōu) 先級(jí),相應(yīng)地,HELLO報(bào)文收發(fā)處理的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的收發(fā)處理。為此,針對(duì)報(bào)文的發(fā)送,初始化兩個(gè)優(yōu)先級(jí)不同的發(fā)送隊(duì)列,分別為:優(yōu)先發(fā)送隊(duì)列、普通發(fā)送隊(duì)列。當(dāng)發(fā)送報(bào)文時(shí),首先檢測(cè)該報(bào)文是否為HELLO報(bào)文。是時(shí),則將報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;否時(shí),則將報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列。當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),再處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
圖3為本發(fā)明實(shí)施例二的優(yōu)先接收HELLO報(bào)文的方法的流程示意圖,本示例中的優(yōu)先接收HELLO報(bào)文的方法應(yīng)用于路由設(shè)備,如圖3所示,所述優(yōu)先接收HELLO報(bào)文的方法包括以下步驟:
步驟301:當(dāng)接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文。
本發(fā)明實(shí)施例中,所述路由設(shè)備為路由器等通訊設(shè)備。
本發(fā)明實(shí)施例中,HELLO報(bào)文的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的優(yōu)先級(jí),相應(yīng)地,HELLO報(bào)文收發(fā)處理的優(yōu)先級(jí)高于其他協(xié)議報(bào)文的收發(fā)處理。為此,針對(duì)報(bào)文的接收,初始化兩個(gè)優(yōu)先級(jí)不同的接收隊(duì)列,分別為:優(yōu)先接收隊(duì)列、普通接收隊(duì)列。
當(dāng)路由設(shè)備接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文。具體地,路由設(shè)備底層將接收到的報(bào)文交予接收模塊,接收模塊接收到底層提交的報(bào)文后,檢查該報(bào)文是否為HELLO報(bào)文,如果是HELLO報(bào)文,則將報(bào)文添加至優(yōu)先接收隊(duì)列;如果不是HELLO報(bào)文,則將報(bào)文添加至普通接收隊(duì)列。判斷是否為HELLO報(bào)文的方法主要依據(jù)對(duì)應(yīng)協(xié)議報(bào)文類型字段的檢查,例如,OSPF的HELLO報(bào)文對(duì)應(yīng)的類型字段為1。
步驟302:當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文添加至優(yōu)先接收隊(duì)列;當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文添加至普通接收隊(duì)列。
本發(fā)明實(shí)施例中,優(yōu)先接收隊(duì)列的優(yōu)先級(jí)高于普通接收隊(duì)列的優(yōu)先級(jí)。
步驟303:當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文;當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),處理普通接收隊(duì)列中的報(bào)文。
本發(fā)明實(shí)施例中,處理接收隊(duì)列中的報(bào)文,首先處理優(yōu)先接收隊(duì)列中的報(bào)文,將優(yōu)先接收隊(duì)列中的每個(gè)報(bào)文提交至對(duì)應(yīng)業(yè)務(wù)模塊,例如OSPF的HELLO報(bào)文提交至OSPF業(yè)務(wù)模塊,ISIS的HELLO報(bào)文則提交至ISIS業(yè)務(wù)模塊;只有當(dāng)優(yōu)先接收隊(duì)列中所有報(bào)文處理完成后,才開始處理普通接收隊(duì)列中的報(bào)文。這樣可以保證優(yōu)先接收隊(duì)列中的HELLO報(bào)文以最高處理優(yōu)先級(jí)交由對(duì)應(yīng)業(yè)務(wù)模塊,從而保證對(duì)應(yīng)鄰居時(shí)間得到及時(shí)更新,而不會(huì)可能因?yàn)闆]有及時(shí)接收到HELLO報(bào)文而導(dǎo)致鄰居關(guān)系刪除。
在處理普通接收隊(duì)列過程中,如果有新的報(bào)文添加至優(yōu)先接收隊(duì)列中時(shí),則中斷普通接收隊(duì)列的報(bào)文處理,轉(zhuǎn)去處理優(yōu)先接收隊(duì)列中的報(bào)文,處理完畢后繼續(xù)上一次被中斷的普通接收隊(duì)列中的報(bào)文接收處理。這種搶占式的處理方式可以保證HELLO報(bào)文始終以最高優(yōu)先級(jí)交由對(duì)應(yīng)業(yè)務(wù)模塊,從而保證對(duì)應(yīng)鄰居時(shí)間可以得到及時(shí)更新,而不會(huì)可能因?yàn)闆]有及時(shí)接收到HELLO而導(dǎo)致鄰居關(guān)系刪除。
圖4為本發(fā)明實(shí)施例一的路由設(shè)備的結(jié)構(gòu)組成示意圖,如圖4所示,所述路由設(shè)備包括:
第一檢測(cè)單元41,用于當(dāng)發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
優(yōu)先發(fā)送單元42,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;
普通發(fā)送單元43,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列;
處理單元44,用于當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述路由設(shè)備還包括:
第二檢測(cè)單元45,用于當(dāng)處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),檢測(cè)優(yōu)先發(fā)送隊(duì)列中是否添加有新的發(fā)送請(qǐng)求;
所述處理單元44,還用于當(dāng)檢測(cè)到優(yōu)先發(fā)送隊(duì)列中添加有新的發(fā)送請(qǐng)求 時(shí),中斷對(duì)普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求的處理,并處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述處理單元44包括:
優(yōu)先處理子單元441,用于將優(yōu)先發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去;
普通處理子單元442,用于將普通發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖4所示的路由設(shè)備中的各單元及其子單元的實(shí)現(xiàn)功能可參照前述優(yōu)先發(fā)送/接收HELLO報(bào)文的方法的相關(guān)描述而理解。圖4所示的路由設(shè)備中的各單元及其子單元的功能可通過運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過具體的邏輯電路而實(shí)現(xiàn)。
圖5為本發(fā)明實(shí)施例二的路由設(shè)備的結(jié)構(gòu)組成示意圖,如圖2所示,所述路由設(shè)備包括:
第一檢測(cè)單元51,用于當(dāng)接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
優(yōu)先接收單元52,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文添加至優(yōu)先接收隊(duì)列;
普通接收單元53,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文添加至普通接收隊(duì)列;
處理單元54,用于當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文;當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),處理普通接收隊(duì)列中的報(bào)文。
在本發(fā)明一實(shí)施例中,所述路由設(shè)備還包括:
第二檢測(cè)單元55,用于當(dāng)處理普通接收隊(duì)列中的報(bào)文時(shí),檢測(cè)優(yōu)先接收隊(duì)列中是否添加有新的報(bào)文;
所述處理單元54,還用于當(dāng)檢測(cè)到優(yōu)先接收隊(duì)列中添加有新的報(bào)文時(shí),中斷對(duì)普通接收隊(duì)列中的報(bào)文的處理,并處理優(yōu)先接收隊(duì)列中的報(bào)文
在本發(fā)明一實(shí)施例中,所述處理單元54包括:
優(yōu)先處理子單元541,用于將優(yōu)先接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù) 模塊進(jìn)行處理;
普通處理子單元542,用于將普通接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖5所示的路由設(shè)備中的各單元及其子單元的實(shí)現(xiàn)功能可參照前述優(yōu)先發(fā)送/接收HELLO報(bào)文的方法的相關(guān)描述而理解。圖5所示的路由設(shè)備中的各單元及其子單元的功能可通過運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過具體的邏輯電路而實(shí)現(xiàn)。
圖6為本發(fā)明實(shí)施例三的路由設(shè)備的結(jié)構(gòu)組成示意圖,如圖6所示,所述路由設(shè)備包括:
第一檢測(cè)單元61,用于當(dāng)發(fā)送報(bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
優(yōu)先發(fā)送單元62,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至優(yōu)先發(fā)送隊(duì)列;
普通發(fā)送單元63,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文的發(fā)送請(qǐng)求添加至普通發(fā)送隊(duì)列;
處理單元64,用于當(dāng)優(yōu)先發(fā)送隊(duì)列中有發(fā)送請(qǐng)求時(shí),處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求;當(dāng)優(yōu)先發(fā)送隊(duì)列中無發(fā)送請(qǐng)求時(shí),處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述路由設(shè)備還包括:
第二檢測(cè)單元65,用于當(dāng)處理普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求時(shí),檢測(cè)優(yōu)先發(fā)送隊(duì)列中是否添加有新的發(fā)送請(qǐng)求;
所述處理單元64,還用于當(dāng)檢測(cè)到優(yōu)先發(fā)送隊(duì)列中添加有新的發(fā)送請(qǐng)求時(shí),中斷對(duì)普通發(fā)送隊(duì)列中的發(fā)送請(qǐng)求的處理,并處理優(yōu)先發(fā)送隊(duì)列中的發(fā)送請(qǐng)求。
在本發(fā)明一實(shí)施例中,所述處理單元64包括:
優(yōu)先處理子單元641,用于將優(yōu)先發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文發(fā)送出去;
普通處理子單元642,用于將普通發(fā)送隊(duì)列中的每個(gè)發(fā)送請(qǐng)求對(duì)應(yīng)的報(bào)文 發(fā)送出去。
所述第一檢測(cè)單元61,還用于當(dāng)接收?qǐng)?bào)文時(shí),檢測(cè)該報(bào)文是否為HELLO報(bào)文;
所述路由設(shè)備還包括:
優(yōu)先接收單元66,用于當(dāng)所述報(bào)文是HELLO報(bào)文時(shí),將所述報(bào)文添加至優(yōu)先接收隊(duì)列;
普通接收單元67,用于當(dāng)所述報(bào)文不是HELLO報(bào)文時(shí),將所述報(bào)文添加至普通接收隊(duì)列;
所述處理單元64,還用于當(dāng)優(yōu)先接收隊(duì)列中有報(bào)文時(shí),處理優(yōu)先接收隊(duì)列中的報(bào)文;當(dāng)優(yōu)先接收隊(duì)列中無報(bào)文時(shí),處理普通接收隊(duì)列中的報(bào)文。
所述第二檢測(cè)單元65,還用于當(dāng)處理普通接收隊(duì)列中的報(bào)文時(shí),檢測(cè)優(yōu)先接收隊(duì)列中是否添加有新的報(bào)文;
所述處理單元64,還用于當(dāng)檢測(cè)到優(yōu)先接收隊(duì)列中添加有新的報(bào)文時(shí),中斷對(duì)普通接收隊(duì)列中的報(bào)文的處理,并處理優(yōu)先接收隊(duì)列中的報(bào)文
所述優(yōu)先處理子單元641,還用于將優(yōu)先接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理;
所述普通處理子單元642,還用于將普通接收隊(duì)列中的每個(gè)報(bào)文發(fā)送至對(duì)應(yīng)業(yè)務(wù)模塊進(jìn)行處理。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖6所示的路由設(shè)備中的各單元及其子單元的實(shí)現(xiàn)功能可參照前述優(yōu)先發(fā)送/接收HELLO報(bào)文的方法的相關(guān)描述而理解。圖6所示的路由設(shè)備中的各單元及其子單元的功能可通過運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過具體的邏輯電路而實(shí)現(xiàn)。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦 合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。