專利名稱:路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及路由器轉(zhuǎn)發(fā)過程的驅(qū)動(dòng)方法,具體地說,涉及一種提高路由器接口驅(qū)動(dòng)發(fā)送和接收過程中轉(zhuǎn)發(fā)效率的方法。
路由器作為網(wǎng)絡(luò)互聯(lián)過程的重要設(shè)備負(fù)責(zé)相關(guān)聯(lián)的網(wǎng)絡(luò)之間的數(shù)據(jù)交換動(dòng)作,即在相關(guān)網(wǎng)絡(luò)之間實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送。這當(dāng)中,路由器對(duì)數(shù)據(jù)的一般處理過程包括路由器自一個(gè)網(wǎng)絡(luò)的端口接收該網(wǎng)絡(luò)傳送的數(shù)據(jù),具體地說,路由器內(nèi)作為接口單板的物理層接收并處理所述數(shù)據(jù)后,被處理的數(shù)據(jù)作為數(shù)據(jù)包被送至路由器內(nèi)的數(shù)據(jù)鏈路層;數(shù)據(jù)鏈路層處理該數(shù)據(jù)包,然后將處理后的數(shù)據(jù)包傳送至網(wǎng)絡(luò)協(xié)議層,進(jìn)行對(duì)所述數(shù)據(jù)包進(jìn)行路由協(xié)議處理,找到該數(shù)據(jù)包的目的地址,重新將經(jīng)過如上多級(jí)處理的數(shù)據(jù)包再回送至所述數(shù)據(jù)鏈路層;數(shù)據(jù)鏈路層重新處理被會(huì)送的數(shù)據(jù)包,并重新處理后再回送至其述物理層,物理層作為網(wǎng)絡(luò)間的傳送接口,將上述處理的數(shù)據(jù)自其端口發(fā)送至另一相關(guān)網(wǎng)絡(luò),從而實(shí)現(xiàn)數(shù)據(jù)在網(wǎng)絡(luò)間的傳送。
上述過程可如
圖1所示,圖中虛線內(nèi)的部分表示路由器的接口部分。
從圖1可知,路由器接口單板負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收。接口驅(qū)動(dòng)轉(zhuǎn)發(fā)的效率直接關(guān)系路由器轉(zhuǎn)發(fā)的效率。在一般接口驅(qū)動(dòng)的發(fā)送和接收過程中,若遇到硬件忙(例如一般路由器上普通串口模塊),則認(rèn)為轉(zhuǎn)發(fā)失敗,終止本次數(shù)據(jù)包的處理,終止物理過程為在發(fā)送情況下,若遇到硬件忙,則給上層調(diào)用函數(shù)返回失敗,接口發(fā)送函數(shù)不再做其他處理,終止本次發(fā)送。在接收情況下,若遇到硬件忙,則丟棄本次接收數(shù)據(jù),接收函數(shù)不再做其他處理,終止本次接收。若在發(fā)送過程中遇到硬件忙,則由上層軟件以后重新發(fā)送;若在接收過程中遇到硬件忙,則丟棄本次接收的數(shù)據(jù)包。例如,一般路由器的普通串口模塊一般就是按照上述過程來處理轉(zhuǎn)發(fā)過程中的硬件忙的。這種現(xiàn)有技術(shù)的處理方法雖然具有簡(jiǎn)單、可靠等優(yōu)點(diǎn),但其明顯缺點(diǎn)在于這種路由器接口的轉(zhuǎn)發(fā)效率不高。
本發(fā)明的目的是針對(duì)一般處理方法的缺點(diǎn)作出的改進(jìn),提供一種控制路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法,可提高所示接口轉(zhuǎn)發(fā)的效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法,包括以下步驟在路由器端口處分別設(shè)立存儲(chǔ)待處理數(shù)據(jù)的發(fā)送和接收緩沖隊(duì)列;在硬件閑時(shí)由驅(qū)動(dòng)程序?qū)⒕彌_隊(duì)列中的數(shù)據(jù)轉(zhuǎn)發(fā)。
其中,發(fā)送和接收緩沖隊(duì)列是先進(jìn)先出緩沖隊(duì)列。
采用本發(fā)明的路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法,可借助接收緩沖隊(duì)列或發(fā)送緩沖隊(duì)列存儲(chǔ)數(shù)據(jù),而不使待轉(zhuǎn)發(fā)處理的數(shù)據(jù)被終止或丟棄,從而提高網(wǎng)絡(luò)間的數(shù)據(jù)轉(zhuǎn)發(fā)效率。與現(xiàn)有技術(shù)路由器的數(shù)據(jù)轉(zhuǎn)發(fā)過程相比,采用本發(fā)明控制方法的路由器的數(shù)據(jù)轉(zhuǎn)發(fā)效率可提高20%左右。
以下結(jié)合附圖通過具體實(shí)施例進(jìn)一步詳細(xì)描述本發(fā)明路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法,其中圖1是現(xiàn)有技術(shù)路由器數(shù)據(jù)接/發(fā)送的轉(zhuǎn)發(fā)流程圖;圖2是說明本發(fā)明路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程控制方法一種實(shí)施例的轉(zhuǎn)發(fā)流程圖。
圖2是本發(fā)明路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程方法的一個(gè)實(shí)施例的轉(zhuǎn)發(fā)流程圖,包括以下步驟;接收緩沖隊(duì)列處理待轉(zhuǎn)發(fā)數(shù)據(jù)包并維護(hù)數(shù)據(jù)包標(biāo)志(S1),同時(shí),判斷路由器硬件是否“忙”(S2),并且當(dāng)判斷為“忙”時(shí),則將該待轉(zhuǎn)發(fā)數(shù)據(jù)包存入所述接收緩沖隊(duì)列(S3),而如果判斷硬件“不忙”,則啟動(dòng)硬件轉(zhuǎn)發(fā)功能(S4),實(shí)現(xiàn)由驅(qū)動(dòng)程序使數(shù)據(jù)經(jīng)接收緩沖隊(duì)列送至路由器的物理層,并依次經(jīng)過路由器中的數(shù)據(jù)鏈路層和網(wǎng)絡(luò)協(xié)議層,以及相反路徑,經(jīng)與路由器發(fā)送端口相連的發(fā)送緩沖隊(duì)列轉(zhuǎn)發(fā)數(shù)據(jù),即圖2中所示的步驟S5,從而結(jié)束轉(zhuǎn)發(fā)過程。
本實(shí)施例中所述的接收緩沖隊(duì)列和發(fā)送收緩沖隊(duì)列可為“先進(jìn)先出優(yōu)先權(quán)緩沖隊(duì)列”。發(fā)送和接收緩沖隊(duì)列為優(yōu)先權(quán)隊(duì)列。對(duì)于高密度接口模塊(即一個(gè)接口模塊上有多個(gè)接口),不同接口的優(yōu)先權(quán)可以不一樣(比如有些接口連接重要客戶)。不同通道的優(yōu)先權(quán)可以由路由器配置管理人員設(shè)定。當(dāng)轉(zhuǎn)發(fā)過程中遇到硬件忙時(shí),將對(duì)應(yīng)轉(zhuǎn)發(fā)通道的通道號(hào)以及該通道的優(yōu)先權(quán)作為一個(gè)記錄存入隊(duì)列。當(dāng)硬件閑時(shí),檢查先進(jìn)先出優(yōu)先權(quán)隊(duì)列,首先處理優(yōu)先權(quán)級(jí)別高的通道;當(dāng)優(yōu)先權(quán)相同時(shí),按先進(jìn)先出的原則處理具有相同優(yōu)先權(quán)的各個(gè)通道。某個(gè)通道處理完畢后,該通道號(hào)對(duì)應(yīng)的記錄刪除。
通道硬件是否“忙”的檢測(cè)是通過讀取接口模塊上通信控制器相應(yīng)寄存器狀態(tài)的方式來實(shí)現(xiàn)的。在每次轉(zhuǎn)發(fā)前,都必須首先讀取對(duì)應(yīng)通信控制器的寄存器狀態(tài),若狀態(tài)為“閑”,則直接啟動(dòng)轉(zhuǎn)發(fā);若狀態(tài)為“忙”,則按照本專利描述的方法將對(duì)應(yīng)通道存入先進(jìn)先出優(yōu)先權(quán)隊(duì)列,等待處理。
由上可見,本發(fā)明的方法與現(xiàn)有技術(shù)處理方法的區(qū)別在于現(xiàn)有技術(shù)的處理方法是遇到硬件忙時(shí)終止本次發(fā)送或接收處理,判斷為該次發(fā)送或接收失敗,而本發(fā)明的處理方法是遇到硬件“忙”時(shí),并不終止該次發(fā)送或接收處理,而是將待發(fā)送或待接收處理的數(shù)據(jù)放入分別設(shè)置的隊(duì)列中,在硬件“閑”時(shí),再由接口驅(qū)動(dòng)軟件將數(shù)據(jù)發(fā)送或接收過程處理完畢。
考慮到硬件忙只是一個(gè)暫時(shí)的現(xiàn)象,在發(fā)送和接收過程中,若遇到硬件忙,并不等于發(fā)送和接收失敗。若將待處理的數(shù)據(jù)放入分別設(shè)立的接收緩沖隊(duì)列和發(fā)送緩沖隊(duì)列,由驅(qū)動(dòng)程序在硬件閑時(shí)再轉(zhuǎn)發(fā)所述緩沖隊(duì)列中的數(shù)據(jù)。以如此的方式可以將轉(zhuǎn)發(fā)過程中遇到硬件忙的數(shù)據(jù)正確地轉(zhuǎn)發(fā),避免了在發(fā)送過程中上層軟件的重發(fā)和在接收過程中的丟棄數(shù)據(jù)包。
權(quán)利要求
1.一種路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的方法,包括以下步驟在路由器端口處分別設(shè)立存儲(chǔ)待處理數(shù)據(jù)的發(fā)送和接收緩沖隊(duì)列;在硬件閑時(shí)由驅(qū)動(dòng)程序?qū)⒕彌_隊(duì)列中的數(shù)據(jù)轉(zhuǎn)發(fā)。
2.按權(quán)利要求1所述的方法,其特征在于所述的發(fā)送和接收緩沖隊(duì)列是有多個(gè)接口的高密度接口模塊。
3.按權(quán)利要求2所述的方法,其特征在于多個(gè)接口具有不同的的優(yōu)先權(quán)。
4.按照權(quán)利要求3所述的方法,其特征在于所述發(fā)送緩沖隊(duì)列和接收緩沖隊(duì)列是先進(jìn)先出優(yōu)先權(quán)緩沖隊(duì)列。
5.按權(quán)利要求4所述的方法,其特征在于當(dāng)優(yōu)先權(quán)相同時(shí),按照先進(jìn)先出的原則處理信號(hào)。
全文摘要
一種路由器接口驅(qū)動(dòng)轉(zhuǎn)發(fā)過程的控制方法,包括以下步驟:在路由器端口處分別設(shè)立存儲(chǔ)待處理數(shù)據(jù)的發(fā)送和接收緩沖隊(duì)列;在硬件閑時(shí)由驅(qū)動(dòng)程序?qū)⒕彌_隊(duì)列中的數(shù)據(jù)轉(zhuǎn)發(fā)。本發(fā)明的方法可使路由器的轉(zhuǎn)發(fā)效率提高20%。
文檔編號(hào)H04L12/56GK1377194SQ0111252
公開日2002年10月30日 申請(qǐng)日期2001年3月27日 優(yōu)先權(quán)日2001年3月27日
發(fā)明者袁星衛(wèi) 申請(qǐng)人:華為技術(shù)有限公司