一種隊列調(diào)度方法、裝置及系統(tǒng)的制作方法
【專利摘要】為了解決當(dāng)報文轉(zhuǎn)發(fā)量過大時當(dāng)前技術(shù)存在的網(wǎng)絡(luò)堵塞問題,本發(fā)明提供了一種隊列調(diào)度方法、裝置及系統(tǒng)。該裝置包括:用于在隊列中設(shè)置至少一個子隊列的設(shè)置單元,用于接收報文并轉(zhuǎn)交歸隊單元進行分隊處理的接收單元,用于獲取報文的下一跳地址并將該報文增加到與其下一跳地址對應(yīng)子隊列中的歸隊單元及用于轉(zhuǎn)發(fā)報文的轉(zhuǎn)發(fā)單元。本發(fā)明通過將報文歸隊到與其下一跳地址對應(yīng)的子隊列中,實現(xiàn)了根據(jù)報文下一跳地址歸隊的目的;在報文轉(zhuǎn)發(fā)時,僅需讀取一次子隊列的目的地址,不再需要逐個讀取其報文的目的地址,就可以實現(xiàn)子隊列中報文的轉(zhuǎn)發(fā),減輕了路由器的工作負擔(dān),實現(xiàn)了一次處理即可轉(zhuǎn)發(fā)多個報文的功能,提高了路由器的轉(zhuǎn)發(fā)效率。
【專利說明】一種隊列調(diào)度方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種隊列調(diào)度方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)前網(wǎng)絡(luò)處理的數(shù)據(jù)量越來越大,網(wǎng)路堵塞極為常見,堵塞使用戶不能及時獲得資源,是造成服務(wù)性能下降的源頭。網(wǎng)絡(luò)發(fā)生擁塞時必須對其進行管理和控制,常見方法是使用隊列技術(shù)。
[0003]現(xiàn)有排隊技術(shù)一般是使用優(yōu)先級SP、加權(quán)循環(huán)WRR、查分加權(quán)循環(huán)DWRR等技術(shù),或者其中兩者結(jié)合在一起使用;但是,在現(xiàn)有技術(shù)中,路由器是以單個報文為單位進行轉(zhuǎn)發(fā)的。由于路由器對一個報文或數(shù)據(jù)包的處理過程一般包括分類、轉(zhuǎn)發(fā)等階段,然后將每個數(shù)據(jù)包逐個修改并封裝成二層幀信息后發(fā)送到該報文的目的地址,在這個過程中,路由器需要進行各模塊的功能轉(zhuǎn)換和功能恢復(fù)處理,這是需要一個時間的;因為上述的原因,以單個報文為轉(zhuǎn)發(fā)單位的隊列調(diào)度技術(shù),就會存在當(dāng)報文轉(zhuǎn)發(fā)量過大時,導(dǎo)致路由器功能切換耗時過大,進一步引發(fā)網(wǎng)絡(luò)接口堵塞的問題。
[0004]隨著網(wǎng)絡(luò)技術(shù)日益發(fā)展,報文轉(zhuǎn)發(fā)量過大的現(xiàn)象經(jīng)常發(fā)生,如何解決報文轉(zhuǎn)發(fā)量過大造成的網(wǎng)絡(luò)堵塞是本領(lǐng)域的技術(shù)人員亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]為了解決當(dāng)前隊列調(diào)度技術(shù)因進行單個報文轉(zhuǎn)發(fā)所存在的路由器功能切換頻繁造成的轉(zhuǎn)發(fā)量過大時網(wǎng)絡(luò)堵塞的問題,本發(fā)明提供了一種隊列調(diào)度方法、裝置及系統(tǒng)。
[0006]本發(fā)明提供了一種隊列調(diào)度方法,應(yīng)用于隊列包括至少一個子隊列時,報文的歸隊及轉(zhuǎn)發(fā),在一個實施例中,該方法包括歸隊步驟和轉(zhuǎn)發(fā)步驟;其中,歸隊步驟包括:
[0007]接收報文;
[0008]獲取該報文的下一跳地址;
[0009]將該報文增加到與其下一跳地址對應(yīng)的子隊列中。
[0010]進一步的,上述方法在獲取報文的下一跳地址之后還包括:對報文進行報文參數(shù)修改的步驟;報文參數(shù)為該報文頭部字段參數(shù)中的一種或多種。
[0011]進一步的,上述方法還包括在子隊列中設(shè)置用于攜帶該子隊列中報文數(shù)目及報文總長度信息的標(biāo)頭的步驟;將報文增加到與其下一跳地址對應(yīng)的子隊列中的具體步驟為:
[0012]提取子隊列的標(biāo)頭;
[0013]更新標(biāo)頭攜帶的報文數(shù)目及報文總長度信息;
[0014]將報文增加到子隊列。
[0015]進一步的,上述方法中的轉(zhuǎn)發(fā)步驟包括:
[0016]選擇一個轉(zhuǎn)發(fā)的子隊列;
[0017]獲取子隊列的目的地址;
[0018]將該子隊列中的報文發(fā)送到其目的地址對應(yīng)的設(shè)備。[0019]進一步的,當(dāng)隊列包括至少兩個子隊列時,上述的隊列調(diào)度方法還包括:在進行子隊列轉(zhuǎn)發(fā)的同時,對新接收到的報文執(zhí)行歸隊處理。
[0020]進一步的,上述方法中的轉(zhuǎn)發(fā)步驟是將子隊列中的所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
[0021]進一步的,上述方法還包括設(shè)置子隊列優(yōu)先級的步驟;在轉(zhuǎn)發(fā)步驟中,優(yōu)先選擇優(yōu)先級高的子隊列。
[0022]為了應(yīng)用本發(fā)明提供的隊列調(diào)度方法,本發(fā)明也提供了一個隊列調(diào)度裝置;在一個實施例中,該裝置包括:設(shè)置單元、接收單元、歸隊單元及轉(zhuǎn)發(fā)單元;其中,
[0023]設(shè)置單元用于在隊列中設(shè)置至少一個子隊列;
[0024]接收單元用于接收報文,并轉(zhuǎn)交歸隊單元進行分隊處理;
[0025]歸隊單元用于獲取報文的下一跳地址,并將該報文增加到與其下一跳地址對應(yīng)的子隊列中;
[0026]轉(zhuǎn)發(fā)單元用于轉(zhuǎn)發(fā)報文。
[0027]在一個實施例中,上述實施例中的轉(zhuǎn)發(fā)單元還用于選擇一個轉(zhuǎn)發(fā)的子隊列進行轉(zhuǎn)發(fā)處理,獲取子隊列的目的信息,并將該子隊列中的報文發(fā)送到其目的信息對應(yīng)的設(shè)備。
[0028]在一個實施例中,在上述實施例中,當(dāng)隊列包括至少兩個子隊列,且轉(zhuǎn)發(fā)單元在轉(zhuǎn)發(fā)子隊列時,歸隊單元還用于對新接收到的報文執(zhí)行歸隊處理。
[0029]同時,本發(fā)明也提供的一種隊列調(diào)度系統(tǒng),在一個實施例中,該隊列調(diào)度系統(tǒng)包括至少一個報文發(fā)送裝置、至少一個報文接收裝置,及至少一個上述實施例中的隊列調(diào)度裝置;隊列調(diào)度裝置用于接收報文發(fā)送裝置發(fā)送的報文,并將報文轉(zhuǎn)發(fā)到報文接收裝置。
[0030]通過本發(fā)明的實施,提供了一種新的隊列調(diào)度技術(shù),該技術(shù)在報文排隊階段通過將報文歸隊到與該報文下一跳地址對應(yīng)的子隊列中,實現(xiàn)了根據(jù)報文下一跳地址分類歸隊的目的,使得在一個子隊列中僅存在與該子隊列的目的信息匹配的報文;
[0031]進一步的,在報文轉(zhuǎn)發(fā)時,僅需讀取一次子隊列的目的地址,不再需要逐個讀取報文的目的地址,就可以實現(xiàn)子隊列中報文的轉(zhuǎn)發(fā),減輕了路由器的工作負擔(dān),實現(xiàn)了一次處理即可轉(zhuǎn)發(fā)多個報文的功能,提高了路由器的轉(zhuǎn)發(fā)效率。
【專利附圖】
【附圖說明】
[0032]圖1為本發(fā)明一實施例中隊列調(diào)度系統(tǒng)I的結(jié)構(gòu)示意圖;
[0033]圖2為圖1所示隊列調(diào)度系統(tǒng)I中的隊列調(diào)度裝置12的結(jié)構(gòu)示意圖;
[0034]圖3為本發(fā)明一實施例中隊列調(diào)度方法的流程示意圖。
【具體實施方式】
[0035]下面通過【具體實施方式】結(jié)合附圖的方式對本發(fā)明做出進一步的詮釋說明。
[0036]為了解決當(dāng)前隊列調(diào)度技術(shù)因進行單個報文轉(zhuǎn)發(fā)所存在的路由器功能切換頻繁造成的轉(zhuǎn)發(fā)量過大時網(wǎng)絡(luò)堵塞的問題,本發(fā)明在報文轉(zhuǎn)發(fā)隊列中設(shè)置至少一個子隊列的基礎(chǔ)上,提供了一種隊列調(diào)度方法;該隊列調(diào)度方法首先將具備相同下一跳轉(zhuǎn)發(fā)地址的報文歸隊到同一子隊列中,實現(xiàn)了在進行報文轉(zhuǎn)發(fā)的時間,僅需讀取子隊列的目的地址而不再需要一一讀取報文的目的地址就可以將該子隊列中報文轉(zhuǎn)發(fā)到達其目的地址的下一跳地址的功能;進而,一次性已讀取目的地址的子隊列中的全部或多個報文,實現(xiàn)多個報文轉(zhuǎn)發(fā)僅需要進行一次的功能切換的目的,減少了路由器中相關(guān)模塊的功能切換/恢復(fù)的次數(shù)及時間,增加了路由器的處理效率。
[0037]圖1為本發(fā)明一個實施例中隊列調(diào)度系統(tǒng)I的結(jié)構(gòu)示意圖;從圖1中可以看出:在該實施例中,本發(fā)明提供的隊列調(diào)度系統(tǒng)I包括至少一個報文發(fā)送裝置11、至少一個隊列調(diào)度裝置12、至少一個報文接收裝置13 ;報文發(fā)送裝置11用于產(chǎn)生和/或發(fā)送報文,報文接收裝置13用于接收和/或轉(zhuǎn)發(fā)報文,隊列調(diào)度裝置12用于接收報文發(fā)送裝置11發(fā)送的報文,并將報文轉(zhuǎn)發(fā)到報文接收裝置13。
[0038]在上述實施例中,報文發(fā)送裝置11可以是服務(wù)應(yīng)用提供商等,報文接收裝置13可以是移動終端或PC終端等,隊列調(diào)度裝置12可以是路由器或網(wǎng)絡(luò)交換機等;可以預(yù)見的是,由于隊列調(diào)度裝置12同時具備報文接收及轉(zhuǎn)發(fā)功能,在其他實施例中,隊列調(diào)度裝置12也可以替換報文發(fā)送裝置11或報文接收裝置13實現(xiàn)其報文的發(fā)送或接收功能。
[0039]為了解決當(dāng)前隊列調(diào)度技術(shù)因進行單個報文轉(zhuǎn)發(fā)所存在的路由器功能切換頻繁造成的報文轉(zhuǎn)發(fā)量過大時網(wǎng)絡(luò)堵塞的問題,本發(fā)明對現(xiàn)有的隊列調(diào)度裝置12進行了改進,改進后的隊列調(diào)度裝置12的結(jié)構(gòu)示意圖如所示圖2 ;
[0040]由圖2可知,在一個實施方式中,本發(fā)明提供的隊列調(diào)度裝置12包括:依次連接的設(shè)置單元121、接收單元122、歸隊單元123和轉(zhuǎn)發(fā)單元124 ;其中,
[0041]設(shè)置單元121用于在隊列中設(shè)置至少一個子隊列;
[0042]接收單元122用于接收報文,并將接收到的報文傳送到歸隊單元123進行歸隊處理;
[0043]歸隊單元123用于獲取報文的下一跳地址;并將該報文增加到與其下一跳地址對應(yīng)的子隊列中,以及將子隊列傳送到轉(zhuǎn)發(fā)單元124進行轉(zhuǎn)發(fā);
[0044]轉(zhuǎn)發(fā)單元124用于轉(zhuǎn)發(fā)報文。
[0045]進一步的,在其他實施例中,上述實施例的設(shè)置單元121、接收單元122、歸隊單元123和轉(zhuǎn)發(fā)單元124按照如下記載進行工作:
[0046]設(shè)置單元121在隊列中設(shè)置子隊列的具體方式是:在該隊列調(diào)度裝置12接收到的所有報文形成的轉(zhuǎn)發(fā)隊列中,設(shè)置多個子隊列,子隊列與該隊列調(diào)度裝置12的報文轉(zhuǎn)發(fā)路徑的下一跳轉(zhuǎn)發(fā)設(shè)備,即報文接收裝置13 —一對應(yīng),且設(shè)置子隊列的目的地址為該子隊列對應(yīng)的報文接收裝置13的唯一標(biāo)識信息;如第一子隊列的目的信息為第一報文接收裝置13的MAC信息,這樣就建立了子隊列與下一跳轉(zhuǎn)發(fā)設(shè)備(報文接收裝置13)的對應(yīng)關(guān)系,由此可知,子隊列與該隊列調(diào)度裝置12的下一跳設(shè)備的數(shù)目一致,且一一對應(yīng);
[0047]接收單元122用于接收報文發(fā)送裝置11發(fā)送的報文,并將接收到的報文傳送到歸隊單元123進行歸隊處理;
[0048]歸隊單元123獲取報文的下一跳地址的方式可以是對報文進行解析處理,獲取報文的目的地信息,根據(jù)這個目的地信息,查詢路由表,確定該報文的下一跳地址;進而根據(jù)下一跳地址確定該報文的下一跳轉(zhuǎn)發(fā)設(shè)備(報文接收裝置13),根據(jù)確定的下一跳轉(zhuǎn)發(fā)設(shè)備(報文接收裝置13)的唯一標(biāo)識信息,確定需要將該報文增加到哪個子隊列中;并將該報文增加到與其下一跳地址對應(yīng)的子隊列中,以及將子隊列傳送到轉(zhuǎn)發(fā)單元124進行轉(zhuǎn)發(fā);
[0049]轉(zhuǎn)發(fā)單元124在進行報文轉(zhuǎn)發(fā)時,可以選擇是單個報文進行轉(zhuǎn)發(fā),也可以選擇以多個報文/或子隊列中所有報文為單位進行轉(zhuǎn)發(fā)。
[0050]進一步的,在其他實施例中,上述實施例的設(shè)置單元121還用于在子隊列中設(shè)置用于攜帶該子隊列中報文數(shù)目及報文總長度信息的標(biāo)頭;歸隊單元123還用于讀取子隊列的標(biāo)頭,更新標(biāo)頭所攜帶的報文數(shù)目及報文總長度信息,將報文增加到子隊列。這個過程具體的可以是:
[0051]子隊列的報文數(shù)目加一;
[0052]更新子隊列的報文長度;
[0053]將報文增加到子隊列。
[0054]上述處理過程,還可以包括:更新子隊列的可用報文長度。
[0055]進一步的,在其他實施例中,上述實施例的設(shè)置單元121還用于在子隊列中設(shè)置用于攜帶該子隊列可用報文長度信息的標(biāo)頭;歸隊單元123還用于讀取子隊列的標(biāo)頭,判斷標(biāo)頭所攜帶的子隊列可用報文長度是否大于需要增加到該子隊列的報文的報文長度,當(dāng)子隊列可用報文長度大于需要增加到該子隊列的報文的報文長度時,才將該報文增加到該子隊列中。這個判斷過程具體可以是:
[0056]歸隊單元123判斷該子隊列的可用報文長度是否不小于報文的報文長度;子隊列的可用報文長度是該子隊列總共可容納的報文長度減去該子隊列中所有報文的報文長度之后得到的;該子隊列總共可容納的報文長度可以根據(jù)該報文的下一跳轉(zhuǎn)發(fā)設(shè)備(報文接收裝置13)的處理能力和/或網(wǎng)絡(luò)通信狀態(tài)和/或本隊列調(diào)度裝置12的轉(zhuǎn)發(fā)能力進行計算并設(shè)置,因此,各個子隊列的總共可容納的報文長度可能并不相同;
[0057]是,則該報文可以增加到該子隊列;
[0058]否,則該報文不可以增加到該子隊列,丟棄該報文。
[0059]進一步的,在其他實施例中,上述實施例的歸隊單元123在獲取報文的下一跳地址之后,還用于對報文進行報文參數(shù)修改,報文參數(shù)為該報文頭部字段(header field)參數(shù)中的一種或多種,如該報文頭部字段(header field)參數(shù)中的TTL參數(shù)、CRC參數(shù)、MAC參數(shù)等參數(shù);其中,TTL(Time To Live)參數(shù)是IP協(xié)議包中的一個值,它告訴網(wǎng)絡(luò),數(shù)據(jù)包在網(wǎng)絡(luò)中的時間是否太長而應(yīng)被丟棄,CRC(Cyclic Redundancy Check)參數(shù)是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定,MAC (Media Access Control)參數(shù)又稱為MAC地址或硬件地址,用來定義網(wǎng)絡(luò)設(shè)備的位置;這些參數(shù)都是現(xiàn)有技術(shù)中的常用名詞,其修改規(guī)則不再贅述。
[0060]進一步的,在其他實施例中,上述實施例的轉(zhuǎn)發(fā)單元124用于選擇一個轉(zhuǎn)發(fā)的子隊列進行轉(zhuǎn)發(fā)處理,獲取該子隊列的目的地址,并將隊列中的至少一個報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
[0061]進一步的,在其他實施例中,上述實施例的轉(zhuǎn)發(fā)單元124用于選擇一個轉(zhuǎn)發(fā)的子隊列進行轉(zhuǎn)發(fā)處理,獲取該子隊列的目的地址,并將隊列中的所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
[0062]在上述兩個實施例中,轉(zhuǎn)發(fā)單元124轉(zhuǎn)發(fā)報文的方式具體的可以是:
[0063]檢測子隊列的標(biāo)頭,獲取對應(yīng)的目的地址,
[0064]根據(jù)標(biāo)頭攜帶的該子隊列的報文數(shù)目及報文長度信息,將子隊列的至少一個和/或所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備,如第一報文接收裝置13等。[0065]上述處理過程,還可以包括:重置該子隊列標(biāo)頭所攜帶的報文數(shù)目及報文總長度信息,進行下一子隊列的報文轉(zhuǎn)發(fā)流程。
[0066]進一步的,在其他實施例中,當(dāng)隊列包括至少兩個子隊列,且轉(zhuǎn)發(fā)單元124在轉(zhuǎn)發(fā)子隊列時,歸隊單元123還用于對接收單元122新接收到的報文執(zhí)行歸隊處理。由于在現(xiàn)有的隊列調(diào)度技術(shù)中,數(shù)據(jù)包或報文進入隊列之后到被轉(zhuǎn)發(fā)之前這段時間內(nèi)沒有進行任何的處理,大大的浪費了時間,也即導(dǎo)致了路由器處理效率的降低;為了合理的利用這個等待轉(zhuǎn)發(fā)的時間段,本申請也提供了一種處理機制,本發(fā)明提供了這種并行的處理機制,在路由器進行報文轉(zhuǎn)發(fā)的同時,還能對新接收到的報文進行歸隊(分類及修改)處理,其可以由路由器的協(xié)處理器來實現(xiàn)。
[0067]進一步的,在其他實施例中,上述實施例的設(shè)置單元121還用于設(shè)置各個子隊列的優(yōu)先級,轉(zhuǎn)發(fā)單元124還用于優(yōu)先選擇優(yōu)先級高的子隊列進行轉(zhuǎn)發(fā)處理;設(shè)置單元121設(shè)置子隊列優(yōu)先級的方式包括但不局限于優(yōu)先級SP、加權(quán)循環(huán)WRR、查分加權(quán)循環(huán)DWRR等技術(shù),當(dāng)設(shè)置單元121設(shè)置了各個子隊列的優(yōu)先級之后,轉(zhuǎn)發(fā)單元124就按照各子隊列的優(yōu)先級及預(yù)定規(guī)則選擇需要發(fā)送的子隊列,將其選擇的子隊列中的至少一個報文發(fā)送到該子隊列對應(yīng)的下一跳轉(zhuǎn)發(fā)設(shè)備(報文接收裝置13)。
[0068]可預(yù)見的是,在各個功能模塊不沖突的情況下,上述所有實施例中的功能模塊的功能可以進行組合使用。
[0069]在上述對圖1及圖2中各功能模塊進行了說明之后,結(jié)合圖3說明本申請?zhí)峁┑年犃姓{(diào)度方法的實施步驟。
[0070]圖3為本發(fā)明一實施例中隊列調(diào)度方法的流程圖;從圖3可知,在該實施例中,本發(fā)明提供的隊列調(diào)度方法包括以下步驟:
[0071]步驟301:接收報文。
[0072]接收單元122接收報文,并傳送到歸隊單元123。
[0073]步驟302:獲取報文的下一跳地址。
[0074]歸隊單元123獲取報文的下一跳地址的方式可以為:獲取報文的目的地址,根據(jù)目的地址查找路由表,確定報文的下一跳地址。
[0075]在獲取報文的下一跳地址之后還包括:對報文進行報文參數(shù)修改的步驟;報文參數(shù)為該報文頭部字段(header field)參數(shù)中的一種或多種。
[0076]步驟303:將報文增加到該子隊列。
[0077]將報文增加到子隊列之前,還包括判斷報文是否可以增加到與下一跳地址對應(yīng)的子隊列的步驟;具體的為,判斷報文的報文長度是否不大于子隊列的可用報文長度;是,則報文可以增加到子隊列;否,則報文不可以增加到該子隊列。
[0078]將報文增加到與其下一跳地址對應(yīng)的子隊列中的具體步驟為:提取子隊列的標(biāo)頭,子隊列的標(biāo)頭用于攜帶該子隊列中報文數(shù)目及報文總長度信息;更新標(biāo)頭攜帶的報文數(shù)目及報文總長度信息;將報文增加到子隊列。具體的,可以是:
[0079]子隊列的報文數(shù)目加一;
[0080]更新子隊列的報文長度;
[0081]將報文增加到子隊列。
[0082]進一步的,將報文增加到子隊列之后還包括:更新子隊列的可用報文長度的步驟。[0083]步驟304:轉(zhuǎn)發(fā)子隊列的至少一個報文。
[0084]轉(zhuǎn)發(fā)單元124轉(zhuǎn)發(fā)報文的轉(zhuǎn)發(fā)步驟包括:
[0085]選擇一個子隊列作為轉(zhuǎn)發(fā)的目標(biāo)子隊列;
[0086]獲取該子隊列的目的地址;
[0087]將隊列中的至少一個報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
[0088]進一步的,可以將隊列中的所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
[0089]講一半的,當(dāng)子隊列設(shè)置有優(yōu)先級時,優(yōu)先選擇優(yōu)先級高的子隊列作為轉(zhuǎn)發(fā)的目標(biāo)。
[0090]進一步的,當(dāng)隊列包括至少兩個子隊列時,隊列調(diào)度方法還包括:在進行子隊列轉(zhuǎn)發(fā)的同時,對新接收到的報文執(zhí)行歸隊處理。
[0091]為了更好的說明本申請思想,下面結(jié)合實際生活做進一步的說明。
[0092]現(xiàn)結(jié)合圖1至3進行說明,在該實施例中,隊列調(diào)度裝置12包括設(shè)置單元121、接收單元122、歸隊單元123、轉(zhuǎn)發(fā)單元124 ;為便于說明,做如下設(shè)定,在隊列調(diào)度系統(tǒng)I中存在8個下一跳設(shè)備,即8個報文接收裝置13 ;下面說明該隊列調(diào)度裝置12的工作流程:
[0093]第一步:設(shè)置子隊列。
[0094]設(shè)置單元121根據(jù)路由器的下一跳設(shè)備(報文接收裝置13)個數(shù)在報文隊列中設(shè)置子隊列個數(shù),建立子隊列與網(wǎng)絡(luò)接口的對應(yīng)關(guān)系,子隊列I對應(yīng)于第一個報文接收裝置13,……,子隊列N對應(yīng)于第N個報文接收裝置13,根據(jù)第N個報文接收裝置13的處理能力設(shè)置子隊列N的標(biāo)頭,該標(biāo)頭攜帶該子隊列當(dāng)前容納的報文數(shù)目M及報文總長度L,且子隊列N的目的信息為第N個報文接收裝置13。
[0095]第二步:接收報文,并獲取報文的下一跳地址,該下一跳地址也就是該路由器的下一跳設(shè)備(報文接收裝置13)的標(biāo)號。
[0096]接收單元122接收報文i,并傳送到歸隊單元123,歸隊單元123提取報文i的目的地址,根據(jù)這個目的地址確定該報文i的下一跳地址。
[0097]第三步:判斷報文是否可以增加到與轉(zhuǎn)發(fā)地址對應(yīng)的子隊列。
[0098]歸隊單元123根據(jù)報文i的下一跳地址獲取接收該報文i的下一跳設(shè)備(報文接收裝置13)i,判斷報文i是否可增加到與下一跳設(shè)備i對應(yīng)的子隊列i中,具體的,判斷方式可以是比較報文i的報文長度Ii與子隊列i的可用報文長度Λ L,當(dāng)Λ L≥Ii時,報文i可增加到子隊列i中,其中AL由子隊列i中的數(shù)據(jù)包數(shù)量M、報文總長度L及該子隊列i的下一跳設(shè)備i的處理能力共同決定;否則,報文i不可增加到子隊列i中。
[0099]第四步:將報文i增加到子隊列i中。
[0100]具體的為:歸隊單元123將子隊列i所包含的報文數(shù)目M’更新為M’+l ;歸隊單元123將子隊列i所包含的報文長度L’更新為L’ +Ii ;歸隊單元123將報文i增加到子隊列i中。
[0101]進一步的,還可以包括:
[0102]歸隊單元123將子隊列i可用報文長度Λ L更新為Λ L -1”此時,假設(shè)子隊列I中存在8個報文,子隊列2中存在12個報文,......,子隊列N中存在η個報文。
[0103]第五步:選擇一個子隊列進行轉(zhuǎn)發(fā)。
[0104]根據(jù)循環(huán)原則或者優(yōu)先級原則,選擇子隊列K進行轉(zhuǎn)發(fā),這里假設(shè)Κ=3。在轉(zhuǎn)發(fā)子隊列3的同時,如果接收單元122新接收到了報文,則將報文進行分類及修改,并對應(yīng)的添加除去子隊列3之外的其他的某個子隊列中。
[0105]第六步:轉(zhuǎn)發(fā)報文數(shù)據(jù)。
[0106]轉(zhuǎn)發(fā)單元124檢測子隊列K的標(biāo)頭及對應(yīng)的目的地址,獲取下一跳設(shè)備(報文接收裝置13) K ;
[0107]轉(zhuǎn)發(fā)單元124根據(jù)標(biāo)頭信息攜帶的該子隊列的報文數(shù)目M,及報文長度L’信息,將子隊列的至少一個或所有報文轉(zhuǎn)發(fā)到目的地址;如將子隊列I中的8個報文,子隊列2中的12個報文,……,子隊列N中的η個報文一次性轉(zhuǎn)發(fā)到各自對應(yīng)的下一跳設(shè)備上,如將子隊列i中的至少一個或全部報文轉(zhuǎn)發(fā)到子隊列i對應(yīng)的第i個下一跳設(shè)備(報文接收裝置13)K上。
[0108]進一步的,還可以包括:
[0109]轉(zhuǎn)發(fā)單元13將子隊列K可用報文長度Λ L、報文數(shù)目M及報文長度L重置為初始值;并進行子隊列(Κ+1)的報文轉(zhuǎn)發(fā)操作。
[0110]在上述實施例中,歸隊單元123、轉(zhuǎn)發(fā)單元124的功能由路由器的協(xié)處理器來實現(xiàn)。
[0111]本申請?zhí)峁┑年犃姓{(diào)度技術(shù)的有益效果至少包括: [0112]在上述方案中,子隊列I的所有報文只進行了一次路由解析操作,省去了額外7次的路由匹配過程,子隊列2的所有報文只進行了一次路由解析操作,省去了額外11次的路由匹配過程,同理,子隊列N省去了額外η-l次的路由匹配過程,這不但加快了報文的轉(zhuǎn)發(fā)效率,也大大減輕了路由器繁重的路由匹配工作;
[0113]進一步的,檢測單元在報文等待轉(zhuǎn)發(fā)的時間段內(nèi),對子隊列中的所有報文進行分類修改處理操作即歸隊操作,合理的利用了時間,大大的增加了路由器的工作效率;
[0114]在可編程路由器越來越普及的前提下,尤其是相關(guān)可編程協(xié)處理器的應(yīng)用,這種轉(zhuǎn)發(fā)模式的改進帶來的效益會越來越高;采用本申請?zhí)峁┑年犃姓{(diào)度方法及裝置,與現(xiàn)有技術(shù)相比,減少了隊列調(diào)度模塊的現(xiàn)場切換/恢復(fù)時間,提高了路由器的轉(zhuǎn)發(fā)效率。
[0115]同時,本申請為了實現(xiàn)上述實施例中提供的隊列調(diào)度方法,在可編程路由器的基礎(chǔ)上,提供了一種計算機應(yīng)用程序,該程序用于實現(xiàn)本申請?zhí)峁┑年犃姓{(diào)度方法中的歸隊步驟和轉(zhuǎn)發(fā)步驟;示例如下:
[0116]實現(xiàn)歸隊步驟的程序:
[0117]1: DA — Destination Address
[0118]2: next hop — I ookup (DA)
[0119]3:1fpacketsize<free size [next hop]then
[0120]4: number [next hop] ++
[0121]5:length[next hop] 一 length[next hop]+packetsize
[0122]6: Add packet to queue next hop
[0123]7:freesize[next hop] 一 queuesize-length[next hop]
[0124]8: end if
[0125]實現(xiàn)轉(zhuǎn)發(fā)步驟的程序:
[0126]1:while queue>0do[0127]2:next_hop 一 get interface(queue)
[0128]3: number — get number(queue)
[0129]4: forwarding(next_hop, length, number)
[0130]5: dequeue(queue)
[0131]6: queue — queue-1
[0132]7:end while
[0133]可以預(yù)見的是,上述計算機程序僅是實現(xiàn)本申請隊列調(diào)度方法的一種較佳實施例,在上述代碼的基礎(chǔ)上進行的修改或替換或改進,都屬于本申請的保護范圍。
[0134]進一步的,本申請?zhí)峁┝艘环N存儲介質(zhì),該存儲介質(zhì)用于存儲上述實施例中提供的實現(xiàn)本申請?zhí)峁┑年犃姓{(diào)度技術(shù)的計算機應(yīng)用程序;在其他實施例中,該存儲介質(zhì)為⑶、DV⑶、U盤等移動存儲介質(zhì)。
[0135]以上僅是本申請的【具體實施方式】而已,并非對本申請做任何形式上的限制,凡是依據(jù)本申請的技術(shù)實質(zhì)對以上實施方式所做的任意簡單修改、等同變化或修飾,均仍屬于本申請技術(shù)方案的保護范圍。
【權(quán)利要求】
1.一種隊列調(diào)度方法,其特征在于,所述隊列調(diào)度方法包括將報文進行歸隊處理的歸隊步驟,及對子隊列中報文進行轉(zhuǎn)發(fā)處理的轉(zhuǎn)發(fā)步驟;其中,所述歸隊步驟包括: 接收報文; 獲取所述報文的下一跳地址; 將所述報文增加到與其下一跳地址對應(yīng)的子隊列中。
2.如權(quán)利要求1所述的隊列調(diào)度方法,其特征在于,在獲取所述報文的下一跳地址之后,所述隊列調(diào)度方法還包括:對所述報文進行報文參數(shù)修改的步驟;所述報文參數(shù)為該報文頭部字段參數(shù)中的一種或多種。
3.如權(quán)利要求1所述的隊列調(diào)度方法,其特征在于,所述隊列調(diào)度方法還包括在子隊列中設(shè)置用于攜帶該子隊列中報文數(shù)目及報文總長度信息的標(biāo)頭的步驟;將所述報文增加到與其下一跳地址對應(yīng)的子隊列中的具體步驟為: 提取所述子隊列的標(biāo)頭; 更新所述標(biāo)頭攜帶的報文數(shù)目及報文總長度信息; 將所述報文增加到所述子隊列。
4.如權(quán)利要求1至3任一項所述的隊列調(diào)度方法,其特征在于,所述轉(zhuǎn)發(fā)步驟包括: 選擇一個轉(zhuǎn)發(fā)的子隊 列; 獲取所述子隊列的目的地址; 將所述隊列中的至少一個報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
5.如權(quán)利要求4所述的隊列調(diào)度方法,其特征在于,當(dāng)隊列包括至少兩個子隊列時,所述隊列調(diào)度方法還包括:在進行所述子隊列轉(zhuǎn)發(fā)的同時,對新接收到的報文執(zhí)行歸隊處理。
6.如權(quán)利要求4所述的隊列調(diào)度方法,其特征在于,所述轉(zhuǎn)發(fā)步驟是將所述子隊列中的所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
7.如權(quán)利要求4所述的隊列調(diào)度方法,其特征在于,所述隊列調(diào)度方法還包括設(shè)置子隊列優(yōu)先級的步驟;在轉(zhuǎn)發(fā)步驟中,優(yōu)先選擇優(yōu)先級高的子隊列。
8.一種隊列調(diào)度裝置,其特征在于,所述隊列調(diào)度裝置包括依次連接的設(shè)置單元、接收單元、歸隊單元及轉(zhuǎn)發(fā)單元;其中, 所述設(shè)置單元用于在隊列中設(shè)置至少一個子隊列; 所述接收單元用于接收并轉(zhuǎn)交報文到歸隊單元進行歸隊處理; 所述歸隊單元用于獲取報文的下一跳地址,并將該報文增加到與其下一跳地址對應(yīng)的子隊列中; 所述轉(zhuǎn)發(fā)單元用于報文歸隊后,轉(zhuǎn)發(fā)子隊列中的報文。
9.如權(quán)利要求8所述的隊列調(diào)度裝置,其特征在于,所述歸隊單元在獲取所述報文的下一跳地址之后,還用于對所述報文進行報文參數(shù)修改;所述報文參數(shù)為該報文頭部字段參數(shù)中的一種或多種。
10.如權(quán)利要求8所述的隊列調(diào)度裝置,其特征在于,所述設(shè)置單元還用于在子隊列中設(shè)置用于攜帶該子隊列中報文數(shù)目及報文總長度信息的標(biāo)頭;所述歸隊單元還用于讀取所述子隊列的標(biāo)頭,更新所述標(biāo)頭所攜帶的報文數(shù)目及報文總長度信息,將所述報文增加到所述子隊列。
11.如權(quán)利要求8至10任一項所述的隊列調(diào)度裝置,其特征在于,所述轉(zhuǎn)發(fā)單元用于選擇一個轉(zhuǎn)發(fā)的子隊列進行轉(zhuǎn)發(fā)處理,獲取該子隊列的目的地址,并將所述隊列中的至少一個報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
12.如權(quán)利要求11所述的隊列調(diào)度裝置,其特征在于,當(dāng)隊列包括至少兩個子隊列,且所述轉(zhuǎn)發(fā)單元在轉(zhuǎn)發(fā)所述子隊列時,所述歸隊單元還用于對新接收到的報文執(zhí)行歸隊處理。
13.如權(quán)利要求11所述的隊列調(diào)度裝置,其特征在于,所述轉(zhuǎn)發(fā)單元還用于將所述子隊列中的所有報文轉(zhuǎn)發(fā)到其目的地址對應(yīng)的設(shè)備。
14.如權(quán)利要求11所述的隊列調(diào)度方法,其特征在于,所述設(shè)置單元還用于設(shè)置子隊列的優(yōu)先級;所述轉(zhuǎn)發(fā)單元還用于優(yōu)先選擇優(yōu)先級高的子隊列進行轉(zhuǎn)發(fā)處理。
15.一種隊列調(diào)度系統(tǒng),包括至少一個報文發(fā)送裝置及至少一個報文接收裝置;其特征在于,還包括至少一個如權(quán)利要求8至14任一項所述的隊列調(diào)度裝置;所述隊列調(diào)度裝置用于接收所述報文發(fā)送裝置發(fā)送的報`文,并將所述報文轉(zhuǎn)發(fā)到所述報文接收裝置。
【文檔編號】H04L12/863GK103795648SQ201210422828
【公開日】2014年5月14日 申請日期:2012年10月30日 優(yōu)先權(quán)日:2012年10月30日
【發(fā)明者】韓來權(quán) 申請人:中興通訊股份有限公司