一種實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)傳輸控制領(lǐng)域,尤其涉及一種實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)容量的不斷升級(jí),路由器中支持的接口數(shù)量越來越多,靈活性的要求也越來越高,以適應(yīng)不同應(yīng)用場(chǎng)景的需要;不同的應(yīng)用場(chǎng)景要求接入的接口組合可能不同,這就要求當(dāng)前設(shè)計(jì)必須支持可能應(yīng)用場(chǎng)景的所有接口。對(duì)于多接口的同時(shí)接入,需要給每個(gè)接入的接口分配一個(gè)獨(dú)享的緩存,以實(shí)現(xiàn)數(shù)據(jù)的同時(shí)緩存接收;但如果給所有支持的接口都分配一塊獨(dú)享的緩存,則勢(shì)必造成緩存的數(shù)量和容量增大,在緩存容量一定的情況下往往會(huì)限制路由器所支持接口的數(shù)量。因此,有效的利用和共享接口的緩存對(duì)于路由器支持更多的接口具有重要意義。
[0003]為了達(dá)到使用更少的緩存來支持更多接口的目的,目前常用的緩存共享方式為基于鏈表方式的緩存共享結(jié)構(gòu)。但是,在多接口同時(shí)接入的情況下,使用鏈表方式的緩存共享結(jié)構(gòu),無法準(zhǔn)確的限制輸入接口的流量。這將導(dǎo)致所有接口的發(fā)包和停止發(fā)包操作均為同步,造成系統(tǒng)流量一直在突發(fā)和動(dòng)蕩,給系統(tǒng)的穩(wěn)定性帶來很大損害。其中,所謂限制輸入接口的流量,就是當(dāng)接口的接收緩存存儲(chǔ)量達(dá)到一定的閾值時(shí),需要向輸入的接口進(jìn)行反壓,要求其減少數(shù)據(jù)量的輸入,以免導(dǎo)致緩存溢出。
【發(fā)明內(nèi)容】
[0004]為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法和裝置。
[0005]為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0006]本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法,該方法包括:
[0007]預(yù)先或在系統(tǒng)運(yùn)行時(shí),設(shè)置應(yīng)用時(shí)所需接入的接口與空閑的緩存塊的對(duì)接關(guān)系,之后將所述接口輸入的數(shù)據(jù)包傳輸?shù)剿鼍彺鎵K中;系統(tǒng)運(yùn)行時(shí),如果所需接入的接口需要增加、撤銷或變更,則實(shí)時(shí)調(diào)整所述變化的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系。
[0008]其中,所述如果所需接入的接口需要增加、撤銷或變更,則實(shí)時(shí)調(diào)整所述變化的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系,包括:
[0009]如果需要增加新的接口,則檢測(cè)系統(tǒng)中的空閑的緩存塊,并設(shè)置所述新接口與檢測(cè)到的空閑的緩存塊的對(duì)接關(guān)系;
[0010]如果有接口在運(yùn)行過程中需撤銷,則解除所述待撤銷的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系;
[0011]如果有接口在運(yùn)行過程中需變更,則先解除當(dāng)前需替換的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系,并設(shè)置變更后的新接口與替換前的接口對(duì)應(yīng)的緩存塊的對(duì)接關(guān)系。
[0012]優(yōu)選的,該方法還包括:
[0013]設(shè)置需接入的接口 /新接口與空閑的緩存塊的對(duì)接關(guān)系后,檢測(cè)當(dāng)前接口所輸入數(shù)據(jù)包的起始位置,確定檢查到此位置時(shí),使所述緩存塊開始接收所述數(shù)據(jù)包。
[0014]優(yōu)選的,該方法還包括:
[0015]如果所需接入的接口需要撤銷,則需檢測(cè)當(dāng)前數(shù)據(jù)包的結(jié)束位置,確定檢查到此位置時(shí),開始解除所述待撤銷的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系。
[0016]優(yōu)選的,該方法還包括:
[0017]設(shè)置每個(gè)需接入的接口的工作模式,并在系統(tǒng)運(yùn)行時(shí)選擇符合接口的工作模式的報(bào)文進(jìn)行傳輸。
[0018]優(yōu)選的,該方法還包括:
[0019]對(duì)從所述接口傳輸?shù)剿鼍彺鎵K中的數(shù)據(jù)包進(jìn)行檢測(cè),將不符合檢測(cè)規(guī)則的數(shù)據(jù)包丟棄;將符合檢測(cè)規(guī)則的數(shù)據(jù)包存儲(chǔ)于所述緩存塊中,供后續(xù)調(diào)度輸出。
[0020]優(yōu)選的,該方法還包括:
[0021]實(shí)時(shí)檢測(cè)緩存塊與已接入的接口間的對(duì)接關(guān)系,如果所述緩存塊已接入的接口不是一一對(duì)應(yīng)的關(guān)系,則發(fā)出告警。
[0022]本發(fā)明實(shí)施例還提供了一種實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的裝置,該裝置包括:
[0023]緩存動(dòng)態(tài)配置模塊,用于預(yù)先或在系統(tǒng)運(yùn)行時(shí),設(shè)置應(yīng)用時(shí)所需接入的接口與空閑的緩存塊的對(duì)接關(guān)系,之后將所述接口輸入的數(shù)據(jù)包傳輸?shù)剿鼍彺鎵K中;
[0024]還用于在系統(tǒng)運(yùn)行時(shí),確定所需接入的接口需要增加、撤銷或變更時(shí),實(shí)時(shí)調(diào)整所述變化的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系。
[0025]優(yōu)選的,該裝置還包括:
[0026]接口模式選擇模塊,用于設(shè)置每個(gè)需接入的接口的工作模式,并在系統(tǒng)運(yùn)行時(shí)選擇符合接口的工作模式的報(bào)文進(jìn)行傳輸。
[0027]優(yōu)選的,該裝置還包括:
[0028]緩存檢測(cè)模塊,用于對(duì)從所述接口傳輸?shù)剿鼍彺鎵K中的數(shù)據(jù)包進(jìn)行檢測(cè),將不符合檢測(cè)規(guī)則的數(shù)據(jù)包丟棄;將符合檢測(cè)規(guī)則的數(shù)據(jù)包存儲(chǔ)于所述緩存塊中,供后續(xù)調(diào)度輸出。
[0029]優(yōu)選的,該裝置還包括:
[0030]動(dòng)態(tài)配置保護(hù)模塊,用于實(shí)時(shí)檢測(cè)緩存塊與已接入的接口間的對(duì)接關(guān)系,確定所述緩存塊已接入的接口不是一一對(duì)應(yīng)的關(guān)系時(shí),則發(fā)出告警。
[0031]本發(fā)明實(shí)施例提供的實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法和裝置,預(yù)先或在系統(tǒng)運(yùn)行時(shí),設(shè)置應(yīng)用時(shí)所需接入的接口與空閑的緩存塊的對(duì)接關(guān)系,之后將所述接口輸入的數(shù)據(jù)包傳輸?shù)剿鼍彺鎵K中;系統(tǒng)運(yùn)行時(shí),如果所需接入的接口需要增加、撤銷或變更,則實(shí)時(shí)調(diào)整所述變化的接口與對(duì)應(yīng)緩存塊的對(duì)接關(guān)系??梢姡景l(fā)明實(shí)施例根據(jù)系統(tǒng)需接入接口的情況,動(dòng)態(tài)修改緩存塊和接口之間的對(duì)接關(guān)系,達(dá)到使用更少緩存支持更多接口的目的,可實(shí)現(xiàn)緩存動(dòng)態(tài)共享。這樣,當(dāng)系統(tǒng)的接口接入的拓?fù)浣Y(jié)構(gòu)需要?jiǎng)討B(tài)調(diào)整時(shí),不需要停止或者重啟就可以直接完成緩存塊和新接口的對(duì)接,達(dá)到系統(tǒng)數(shù)據(jù)的平穩(wěn)過渡;同時(shí),可以在緩存?zhèn)€數(shù)有限的情況下支持更多的接口,以滿足多種不同場(chǎng)景的需求。
【附圖說明】
[0032]在附圖(其不一定是按比例繪制的)中,相似的附圖標(biāo)記可在不同的視圖中描述相似的部件。具有不同字母后綴的相似附圖標(biāo)記可表示相似部件的不同示例。附圖以示例而非限制的方式大體示出了本文中所討論的各個(gè)實(shí)施例。
[0033]圖1為本發(fā)明實(shí)施例所述實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法實(shí)現(xiàn)流程示意圖;
[0034]圖2為本發(fā)明實(shí)施例所述基于鏈表方式的緩存共享結(jié)構(gòu)示意圖;
[0035]圖3為本發(fā)明實(shí)施例所述接口緩存動(dòng)態(tài)分配的緩存共享結(jié)構(gòu)示意圖;
[0036]圖4為本發(fā)明實(shí)施例所述接口緩存動(dòng)態(tài)分配的多輸入輸出交叉矩陣結(jié)構(gòu)示意圖;
[0037]圖5為一種應(yīng)用場(chǎng)景下本發(fā)明實(shí)施例所述實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的方法實(shí)現(xiàn)流程不意圖;
[0038]圖6為實(shí)際應(yīng)用中本發(fā)明實(shí)施例所述緩存塊和接口對(duì)接關(guān)系不意圖;
[0039]圖7為本發(fā)明實(shí)施例所述實(shí)現(xiàn)接口緩存動(dòng)態(tài)分配的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0040]為了便于理解,首先對(duì)鏈表方式的緩存共享結(jié)構(gòu)進(jìn)行介紹。
[0041]鏈表方式的緩存共享結(jié)構(gòu)首先根據(jù)共享緩存的使用情況,向路由器申請(qǐng)一定的存儲(chǔ)空間,當(dāng)有剩余的存儲(chǔ)空間可以存放數(shù)據(jù)時(shí),就將數(shù)據(jù)實(shí)體按照一定規(guī)律存入到共享緩存中,同時(shí)將數(shù)據(jù)在共享緩存中的存儲(chǔ)地址等信息放入到一個(gè)鏈表中,只要當(dāng)前的共享緩存還有剩余空間的時(shí)候,就可以允許新的數(shù)據(jù)進(jìn)入,這樣充分的利用了總的緩存空間;當(dāng)數(shù)據(jù)需要從共享緩存中調(diào)度出來的時(shí)候,根據(jù)鏈表里面的地址信息將數(shù)據(jù)從共享緩存中讀出,然后將此數(shù)據(jù)占用的緩存空間地址釋放出來供新數(shù)據(jù)使用。根據(jù)系統(tǒng)的難易程度,可使用單條鏈表或者多條鏈表來控制整個(gè)共享操作,鏈表方式的緩存共享方式可增加緩存利用率。但是鏈表方式的緩存共享結(jié)構(gòu)最大的問題是只能實(shí)現(xiàn)數(shù)據(jù)的串行進(jìn)入,即數(shù)據(jù)只能一個(gè)一個(gè)按照順序被存入共享緩存中,當(dāng)一個(gè)系統(tǒng)有多個(gè)接口同時(shí)接入時(shí),勢(shì)必要先將多個(gè)接口的數(shù)據(jù)先進(jìn)行匯聚,按照一定輪詢方式選出其中的I路作為輸出,然后才能進(jìn)行鏈表方式的數(shù)據(jù)共享,匯聚操作勢(shì)必要在共享緩存之前增加一級(jí)緩存,增加了前級(jí)的實(shí)現(xiàn)難度。
[0042]使用鏈表方式的緩存共享結(jié)構(gòu)時(shí),由于所有接口的數(shù)據(jù)的存儲(chǔ)空間是共享的,當(dāng)總緩存中的存儲(chǔ)門限達(dá)到一定閾值門限需要向輸入接口進(jìn)行反壓時(shí),無法準(zhǔn)確知道突發(fā)的數(shù)據(jù)是從哪個(gè)接口傳輸來的,因此無法向這個(gè)接口進(jìn)行反壓,讓其減少