本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種緩存管理方法及本端設(shè)備。
背景技術(shù):
在網(wǎng)絡(luò)系統(tǒng)中,路由器或者交換機(jī)中數(shù)據(jù)交換架構(gòu)主要由線卡(Line Card)與交換模塊(Switch Fabric)構(gòu)成,如圖1所示,所述線卡中主要設(shè)置有接口模塊(Interface Module)、包處理模塊(Packet Processor)和交換接入模塊(Switch Access),其中,所述接口模塊可以具體通過SDH成幀器或者以太網(wǎng)物理層加鏈路層芯片實(shí)現(xiàn);所述包處理模塊可以具體通過網(wǎng)絡(luò)處理器(NP)或者基于FPGA的包處理器實(shí)現(xiàn)。
多個(gè)路由器或者交換機(jī)的交換接入模塊和交換模塊組成了交換網(wǎng),通常交換接入模塊與交換模塊之間使用高速串行鏈路實(shí)現(xiàn)互聯(lián),因此,交換網(wǎng)具有健壯性,當(dāng)有某個(gè)交換接入模塊被拔出或者重新插入時(shí),不能影響其他流量。
現(xiàn)有交換網(wǎng)中,交換接入模塊在存儲(chǔ)數(shù)據(jù)包時(shí),會(huì)根據(jù)業(yè)務(wù)類型、優(yōu)先級(jí)等信息對(duì)數(shù)據(jù)包進(jìn)行分類并存儲(chǔ),當(dāng)與存儲(chǔ)的所述數(shù)據(jù)包對(duì)應(yīng)的目的交換接入模塊拔出時(shí),也即與該數(shù)據(jù)包對(duì)應(yīng)的目的端線卡拔出時(shí),使得通往所述目的交換接入模塊的數(shù)據(jù)包沒有路由,此時(shí),通常將此類沒有路由的數(shù)據(jù)包丟棄,但是,由于此類沒有路由的數(shù)據(jù)包在丟棄之前已經(jīng)完成了所述包處理模塊的處理過程,但又不能發(fā)送至目的交換接入模塊,而是被直接丟棄,因此,此類沒有路由的數(shù)據(jù)包占用了本端線卡的內(nèi)存,減慢了本端線卡的處理速度;進(jìn)一步地即使此類沒有路由的數(shù)據(jù)包被全部緩存,并發(fā)送至交互模塊,則當(dāng)目的交換接入模塊重新插入時(shí),且當(dāng)緩存中存有大量發(fā)往該目的交換接入模塊的數(shù)據(jù)包時(shí),這些數(shù)據(jù)包會(huì)重新獲得路由,并發(fā)送至該目的交換接入模塊,導(dǎo)致出向流量發(fā) 生突變,即突然增大,進(jìn)而導(dǎo)致交換模塊流量波動(dòng)。隨著交換網(wǎng)絡(luò)的規(guī)模提高以及交換處理能力的提高,插拔交換接入模塊引起的流量波動(dòng)越來越不可忽視,現(xiàn)有技術(shù)又難以解決此問題。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供了一種緩存管理方法及本端設(shè)備,能夠使本端設(shè)備有針對(duì)性的緩存數(shù)據(jù)包,為避免流量波動(dòng)奠定了基礎(chǔ)。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供了一種緩存管理方法,所述方法包括:
接收第一數(shù)據(jù)包;
獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;
判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包。
上述方案中,所述依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,包括:
當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息滿足所述第一預(yù)設(shè)規(guī)則時(shí),緩存所述第一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理。
上述方案中,所述依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,包括:
當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息不滿足所述第一預(yù)設(shè)規(guī)則時(shí),丟棄所述第一數(shù)據(jù)包。
上述方案中,所述方法還包括:
判斷所述本端設(shè)備中是否存在與當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息,獲取第二判斷結(jié)果;
當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中不存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
上述方案中,所述方法還包括:
當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),判斷第二路由信息是否滿足第三預(yù)設(shè)規(guī)則,獲取第三判斷結(jié)果;所述第三預(yù)設(shè)規(guī)則用于表征所述本端設(shè)備不能夠依據(jù)第二路由信息將第二數(shù)據(jù)包發(fā)送至與第二數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
當(dāng)所述第三判斷結(jié)果表征第二路由信息滿足所述第三預(yù)設(shè)規(guī)則時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
上述方案中,所述方法還包括:
依據(jù)所述本端設(shè)備至至少一個(gè)目的端設(shè)備之間的路由狀態(tài)信息,生成路由表;
對(duì)應(yīng)地,所述獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,包括:
依據(jù)所述路由表,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
本發(fā)明實(shí)施例還公開了一種本端設(shè)備,所述本端設(shè)備包括:
接收單元,用于接收第一數(shù)據(jù)包;
獲取單元,用于獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;
第一判斷單元,用于判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
第一處理單元,用于依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包。
上述方案中,所述第一處理單元,還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息滿足所述第一預(yù)設(shè)規(guī)則時(shí),緩存所述第 一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理。
上述方案中,所述第一處理單元,還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息不滿足所述第一預(yù)設(shè)規(guī)則時(shí),丟棄所述第一數(shù)據(jù)包。
上述方案中,所述本端設(shè)備還包括:
第二判斷單元,用于判斷所述本端設(shè)備中是否存在與當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息,獲取第二判斷結(jié)果;
第二處理單元,用于當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中不存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
上述方案中,所述本端設(shè)備還包括:
第三判斷單元,用于當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),判斷第二路由信息是否滿足第三預(yù)設(shè)規(guī)則,獲取第三判斷結(jié)果;所述第三預(yù)設(shè)規(guī)則用于表征所述本端設(shè)備不能夠依據(jù)第二路由信息將第二數(shù)據(jù)包發(fā)送至與第二數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
第三處理單元,還用于當(dāng)所述第三判斷結(jié)果表征第二路由信息滿足所述第三預(yù)設(shè)規(guī)則時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
上述方案中,所述本端設(shè)備還包括:
數(shù)據(jù)生成單元,用于依據(jù)所述本端設(shè)備至至少一個(gè)目的端設(shè)備之間的路由狀態(tài)信息,生成路由表;
對(duì)應(yīng)地,所述獲取單元,用于依據(jù)所述路由表,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
本發(fā)明實(shí)施例所述的緩存管理方法及本端設(shè)備,通過接收第一數(shù)據(jù)包,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果,進(jìn)而依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,如此,使得本端設(shè)備能夠有針對(duì)性的 緩存數(shù)據(jù)包,進(jìn)而為避免流量波動(dòng)奠定了基礎(chǔ)。
附圖說明
圖1為本發(fā)明實(shí)施例本端線卡的具體結(jié)構(gòu)示意圖一;
圖2為本發(fā)明實(shí)施例本端線卡的具體結(jié)構(gòu)示意圖二;
圖3為本發(fā)明實(shí)施例緩存管理方法的實(shí)現(xiàn)流程示意圖;
圖4為本發(fā)明實(shí)施例本端設(shè)備基于邏輯功能劃分的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例的基本思想是:本端設(shè)備,也即本端線卡接收第一數(shù)據(jù)包;獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包。
在數(shù)據(jù)包傳輸過程中,如圖1所示,數(shù)據(jù)包從接口模塊進(jìn)入到本端線卡后,接口模塊將所述數(shù)據(jù)包中錯(cuò)誤的數(shù)據(jù)包丟棄,并將正確的數(shù)據(jù)包傳遞給包處理模塊進(jìn)行處理,所述包處理模塊根據(jù)數(shù)據(jù)包的目的地址,例如目的MAC地址或者目的IP地址、業(yè)務(wù)類型、優(yōu)先級(jí)等信息對(duì)數(shù)據(jù)包進(jìn)行分析處理,確定出數(shù)據(jù)包所發(fā)往的目的端線卡中的交換接入模塊,也即目的交換接入模塊,以及確定出數(shù)據(jù)包的流編號(hào),然后將數(shù)據(jù)包發(fā)送至本端線卡中的交換接入模塊。所述本端線卡中的交換接入模塊根據(jù)數(shù)據(jù)包的目的地址緩存數(shù)據(jù),并等待所述目的交換接入模塊的調(diào)度,當(dāng)所述目的交換接入模塊允許數(shù)據(jù)包發(fā)往自身時(shí),所述本端線卡中的交換接入模塊依據(jù)獲取到的路由信息,將所述數(shù)據(jù)包通過交換模塊發(fā)送至所述目的交換接入模塊;其中,本端線卡的交換接入模塊中存儲(chǔ)有自身至至少一個(gè)目的端線卡的交換接入模塊的路由信息。
進(jìn)一步地,如圖2所示,包處理模塊包括入向處理子模塊和包處理子模塊; 交換接入模塊包括出向處理子模塊;其中,所述入向處理子模塊用于接收接口模塊發(fā)送的數(shù)據(jù)包;所述包處理子模塊用于對(duì)數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理,例如,根據(jù)所述數(shù)據(jù)包的目的地址、業(yè)務(wù)類型、優(yōu)先級(jí)等信息對(duì)所述數(shù)據(jù)包進(jìn)行分析處理;所述出向處理子模塊用于存儲(chǔ)本端線至至少一個(gè)目的端線卡的交換接入模塊的路由信息,即存儲(chǔ)有路由表。
以下結(jié)合圖1和圖2所示的本端線卡的具體結(jié)構(gòu)對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)說明;這里,所附附圖僅供參考說明之用,并非用來限定本發(fā)明。
實(shí)施例一
圖3為本發(fā)明實(shí)施例緩存管理方法的實(shí)現(xiàn)流程示意圖;所述方法應(yīng)用于本端設(shè)備,具體地,所述本端設(shè)備可以為線卡,也即本端線卡;如圖3所示,所述方法包括:
步驟301:接收第一數(shù)據(jù)包;
在一具體實(shí)施例中,如圖1所示,所述本端線卡中的接口模塊接收所述第一數(shù)據(jù)包,并將所述第一數(shù)據(jù)包發(fā)送至所述本端線卡中的包處理模塊。
步驟302:獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;
在一具體實(shí)施例中,所述本端線卡中的包處理模塊接收到所述第一數(shù)據(jù)包后,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,這里,所述本端線卡中的包處理模塊向本端線卡中的交換接入模塊獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
為使包處理模塊能夠獲取到所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,本發(fā)明實(shí)施例中,所述方法還包括:依據(jù)所述本端設(shè)備至至少一個(gè)目的端設(shè)備之間的路由狀態(tài)信息,生成路由表;對(duì)應(yīng)地,所述獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,包括:依據(jù)所述路由表,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
在一具體實(shí)施例中,所述本端線卡中的交換接入模塊依據(jù)所述本端線卡至至少一個(gè)目的端線卡中的交換接入模塊之間的路由狀態(tài)信息,也即交換網(wǎng)拓?fù)浣Y(jié)構(gòu),生成路由表;所述路由表中包含有本端線卡通往各個(gè)目的端線卡的路由信息,也即本端線卡中的交換接入模塊通往各個(gè)目的端線卡的交換接入模塊的 路由信息。
這里,所述路由狀態(tài)信息包括可到達(dá)狀態(tài)和不可到達(dá)狀態(tài),例如,所述本端線卡能夠依據(jù)路由信息將數(shù)據(jù)包發(fā)送至與數(shù)據(jù)包對(duì)應(yīng)的目的端線卡的交換接入模塊中,此時(shí),路由狀態(tài)為可到達(dá)狀態(tài);相反地,所述本端線卡不能夠依據(jù)路由信息將數(shù)據(jù)包發(fā)送至與數(shù)據(jù)包對(duì)應(yīng)的目的端線卡的交換接入模塊中,此時(shí),路由狀態(tài)為不可到達(dá)狀態(tài)。
另外,在實(shí)際應(yīng)用中,當(dāng)目的端設(shè)備,例如目的端線卡插拔狀態(tài)發(fā)生變化,或者倒換斷鏈時(shí),所述本端設(shè)備即本端線卡能夠即時(shí)更新所述路由表,也即所述本端線卡中的交換接入模塊能夠即時(shí)更新所述路由表。例如,當(dāng)加入新的目的端線卡,即加入新的目的端線卡的交換接入模塊時(shí),路由表將被更新,此時(shí),本端線卡中的包處理模塊能夠獲取到更新后的路由表,進(jìn)而依據(jù)更新后的路由表判斷是否在更新后的路由表中存在有接收到的所述第一數(shù)據(jù)包的第一路由信息,如此,有針對(duì)性的緩存第一數(shù)據(jù)包,例如,本端線卡中的包處理模塊只有在確定出更新后的路由表中存在有所述第一數(shù)據(jù)包的第一路由信息,且能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端線卡,也即所述第一路由信息處于可到達(dá)狀態(tài)時(shí),所述本端線卡中的包處理模塊才會(huì)對(duì)所述第一數(shù)據(jù)包進(jìn)行緩存處理,因此,有效避免了無路由數(shù)據(jù)存入本端設(shè)備而浪費(fèi)存儲(chǔ)空間的問題,以及避免了由于無路由數(shù)據(jù)而導(dǎo)致的緩存讀出數(shù)據(jù)帶寬降低的問題。
步驟303:判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
在一具體實(shí)施例中,所述本端線卡中的包處理模塊判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,具體地,所述本端線卡中的包處理模塊判斷是否能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端線卡中,進(jìn)而依據(jù)獲取到的第一判斷結(jié)果確定是否對(duì)所述第一數(shù)據(jù)包進(jìn)行緩存處理。
在一具體實(shí)施例中,當(dāng)獲取到的所述第一判斷結(jié)果表征本端線卡能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端線卡中,此時(shí),所述本端線卡中的包處理模塊緩存所述第一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理;
當(dāng)獲取到的所述第一判斷結(jié)果表征本端線卡不能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端線卡中,此時(shí),丟棄所述第一數(shù)據(jù)包。
步驟304:依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包。
本實(shí)施例中,所述依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,包括:
當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息滿足所述第一預(yù)設(shè)規(guī)則時(shí),緩存所述第一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理。
本實(shí)施例中,所述依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,包括:
當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息不滿足所述第一預(yù)設(shè)規(guī)則時(shí),丟棄所述第一數(shù)據(jù)包。
為進(jìn)一步確定緩存在本端線卡的包處理模塊中的數(shù)據(jù)包是否存在路由信息,或者即使本端線卡的包處理模塊中的數(shù)據(jù)包存儲(chǔ)有與之對(duì)應(yīng)的路由信息時(shí),還需要進(jìn)一步確定存儲(chǔ)的路由信息是否處于可到達(dá)狀態(tài),如此,以便于有針對(duì)性的丟棄沒有路由信息的數(shù)據(jù)包,以及丟棄路由信息處于不可到達(dá)狀態(tài)的數(shù)據(jù)包,進(jìn)而釋放存儲(chǔ)空間,為降低本端線卡的包處理模塊的運(yùn)算量奠定基礎(chǔ),因此,本實(shí)施例中,所述方法還包括:
判斷所述本端設(shè)備中是否存在與當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息,獲取第二判斷結(jié)果;
當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中不存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),丟棄所述至少一個(gè)第二 數(shù)據(jù)包中的第二數(shù)據(jù)包。
在一具體實(shí)施例中,對(duì)于已經(jīng)存入緩存的數(shù)據(jù)包,如果沒有路由信息,則數(shù)據(jù)包將不會(huì)被調(diào)度送往交換模塊,如果已經(jīng)存入緩存的數(shù)據(jù)包長時(shí)間保持不被調(diào)度,則可以采用老化方式丟棄該長時(shí)間保持不被調(diào)度的數(shù)據(jù)包。
在實(shí)際應(yīng)用中,本端線卡的包處理模塊對(duì)于每一個(gè)從緩存中調(diào)度出的數(shù)據(jù)包,均會(huì)根據(jù)調(diào)度出的數(shù)據(jù)包的目的地址確定是否被丟棄,也即根據(jù)調(diào)度出的數(shù)據(jù)包的對(duì)應(yīng)的目的端線卡的交換接入模塊的路由信息確定是否被丟棄,若調(diào)度出的數(shù)據(jù)包的對(duì)應(yīng)的目的端線卡的交換接入模塊的路由信息處于不可到達(dá)狀態(tài),則在對(duì)所述調(diào)度出的數(shù)據(jù)包進(jìn)行分析處理之前,以及在發(fā)送至本端線卡的交換接入模塊之前丟棄該調(diào)度出的數(shù)據(jù)包,如此,節(jié)省了本端線卡的緩存空間,釋放了緩存讀出帶寬,同時(shí)降低了運(yùn)算量,提升了本端線卡的性能。
本實(shí)施例中,所述方法還包括:
當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),判斷第二路由信息是否滿足第三預(yù)設(shè)規(guī)則,獲取第三判斷結(jié)果;所述第三預(yù)設(shè)規(guī)則用于表征所述本端設(shè)備不能夠依據(jù)第二路由信息將第二數(shù)據(jù)包發(fā)送至與第二數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
當(dāng)所述第三判斷結(jié)果表征第二路由信息滿足所述第三預(yù)設(shè)規(guī)則時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
這里,值得注意的是,所述本端線卡與所述目的端線卡均為線卡,在結(jié)構(gòu)上不存在區(qū)別,其中“本端”及“目的端”僅適用于區(qū)別數(shù)據(jù)包的發(fā)送方向,因此,本發(fā)明實(shí)施例所述的本端設(shè)備既可以為本端線卡,又可以為目的端線卡。
為實(shí)現(xiàn)上述方法,本發(fā)明實(shí)施例還提供了一種本端設(shè)備,具體地,所述本端設(shè)備可以為線卡,也即本端線卡;如圖4所示,所述本端設(shè)備包括:
接收單元41,用于接收第一數(shù)據(jù)包;
獲取單元42,用于獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;
第一判斷單元43,用于判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
第一處理單元44,用于依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包。
本發(fā)明實(shí)施例中,所述第一處理單元44,還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息滿足所述第一預(yù)設(shè)規(guī)則時(shí),緩存所述第一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理。
本發(fā)明實(shí)施例中,所述第一處理單元44,還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息不滿足所述第一預(yù)設(shè)規(guī)則時(shí),丟棄所述第一數(shù)據(jù)包。
本發(fā)明實(shí)施例中,所述本端設(shè)備還包括:
第二判斷單元45,用于判斷所述本端設(shè)備中是否存在與當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息,獲取第二判斷結(jié)果;
第二處理單元46,用于當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中不存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
本發(fā)明實(shí)施例中,所述本端設(shè)備還包括:
第三判斷單元47,用于當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),判斷第二路由信息是否滿足第三預(yù)設(shè)規(guī)則,獲取第三判斷結(jié)果;所述第三預(yù)設(shè)規(guī)則用于表征所述本端設(shè)備不能夠依據(jù)第二路由信息將第二數(shù)據(jù)包發(fā)送至與第二數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
第三處理單元48,還用于當(dāng)所述第三判斷結(jié)果表征第二路由信息滿足所述第三預(yù)設(shè)規(guī)則時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
本發(fā)明實(shí)施例中,所述本端設(shè)備還包括:
數(shù)據(jù)生成單元49,用于依據(jù)所述本端設(shè)備至至少一個(gè)目的端設(shè)備之間的路由狀態(tài)信息,生成路由表;
對(duì)應(yīng)地,所述獲取單元42,用于依據(jù)所述路由表,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
在實(shí)際應(yīng)用中,所述接收單元41、獲取單元42、第一判斷單元43、第一處理單元44、第二判斷單元45、第二處理單元46、第三判斷單元47以及所述第三處理單元48均可以集成于所述本端設(shè)備,也即本端線卡的包處理模塊中,也就是說,所述收單元41、獲取單元42、第一判斷單元43、第一處理單元44、第二判斷單元45、第二處理單元46、第三判斷單元47以及所述第三處理單元48均通過本端線卡中的包處理模塊實(shí)現(xiàn);所述數(shù)據(jù)生成單元49可通過本端線卡中的交換接入模塊實(shí)現(xiàn)。
本發(fā)明實(shí)施例所述的緩存管理方法及本端設(shè)備,通過接收第一數(shù)據(jù)包,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息,判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果,進(jìn)而依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包,如此,使得本端設(shè)備能夠有針對(duì)性的緩存數(shù)據(jù)包,進(jìn)而為避免流量波動(dòng)奠定了基礎(chǔ),有效解決了流量穩(wěn)定性問題。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明實(shí)施例的本端設(shè)備中各處理單元的功能,可參照前述緩存管理方法的相關(guān)描述而理解;而且,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
實(shí)施例二
本發(fā)明實(shí)施例提供了一種基于緩存管理方法的本端線卡,其中,所述本端線卡包括:接口模塊、包處理模塊以及交換接入模塊;其中,所述包處理模塊 包括入向處理子模塊和包處理子模塊;所述交換接入模塊包括出向處理子模塊;所述本端線卡通過所述交換接入模塊中的出向處理子模塊與交換模塊連接。
本實(shí)施例中,所述包處理模塊,接收第一數(shù)據(jù)包;獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息;判斷所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息是否滿足第一預(yù)設(shè)規(guī)則,獲取第一判斷結(jié)果;所述第一預(yù)設(shè)規(guī)則用于表征本端設(shè)備能夠依據(jù)所述第一路由信息將所述第一數(shù)據(jù)包發(fā)送至與所述第一數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;依據(jù)獲取到的所述第一判斷結(jié)果確定是否緩存所述第一數(shù)據(jù)包;
本實(shí)施例中,所述包處理模塊,還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息滿足所述第一預(yù)設(shè)規(guī)則時(shí),緩存所述第一數(shù)據(jù)包,并對(duì)所述第一數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理;
還用于當(dāng)獲取到的所述第一判斷結(jié)果表征所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息不滿足所述第一預(yù)設(shè)規(guī)則時(shí),丟棄所述第一數(shù)據(jù)包。
本實(shí)施例中,所述包處理模塊,還用于判斷所述本端設(shè)備中是否存在與當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息,獲取第二判斷結(jié)果;
當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中不存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
本實(shí)施例中,所述包處理模塊,還用于當(dāng)所述第二判斷結(jié)果表征所述本端設(shè)備中存在與所述當(dāng)前存儲(chǔ)的至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包對(duì)應(yīng)的第二路由信息時(shí),判斷第二路由信息是否滿足第三預(yù)設(shè)規(guī)則,獲取第三判斷結(jié)果;所述第三預(yù)設(shè)規(guī)則用于表征所述本端設(shè)備不能夠依據(jù)第二路由信息將第二數(shù)據(jù)包發(fā)送至與第二數(shù)據(jù)包對(duì)應(yīng)的目的端設(shè)備;
還用于當(dāng)所述第三判斷結(jié)果表征第二路由信息滿足所述第三預(yù)設(shè)規(guī)則時(shí),丟棄所述至少一個(gè)第二數(shù)據(jù)包中的第二數(shù)據(jù)包。
本實(shí)施例中,所述交換接入模塊,還用于依據(jù)所述本端設(shè)備至至少一個(gè)目的端設(shè)備之間的路由狀態(tài)信息,生成路由表;
對(duì)應(yīng)地,所述包處理模塊,還用于依據(jù)所述路由表,獲取所述第一數(shù)據(jù)包對(duì)應(yīng)的第一路由信息。
本實(shí)施例中,所述出向處理子模塊,用于向交換模塊發(fā)送數(shù)據(jù)包,具體的格式可以是包格式或者是包切割成的信元;其中,所述出向處理子模塊還用于存儲(chǔ)所述交換接入模塊的路由表,該路由表由目的交換接入模塊作索引,存儲(chǔ)的是按照高速串行鏈路表示的可達(dá)性指示,如果某個(gè)高速串行鏈路可達(dá),則相應(yīng)bit會(huì)被置位。進(jìn)一步地,路由表對(duì)應(yīng)的路由信息隨時(shí)根據(jù)網(wǎng)絡(luò)拓?fù)涓?,通過收發(fā)兩端交換控制信息完成;其中,所述兩端指的本端線卡與目的端線卡。在拔出某個(gè)目的端線卡的交換接入模塊后,目的端線卡的交換接入模塊到達(dá)本端線卡交換接入模塊的鏈路將斷開,這樣可以根據(jù)鏈路信息更新路由表,將對(duì)應(yīng)bit復(fù)位。
當(dāng)新的目的端線卡的交換接入模塊被插入,則目的端線卡的交換接入模塊到達(dá)本端線卡交換接入模塊的鏈路變?yōu)榭傻竭_(dá),即路由信息可到達(dá),這樣本端線卡的交換接入模塊中的出向處理子模塊會(huì)根據(jù)更新的網(wǎng)絡(luò)結(jié)構(gòu)更新路由表。
進(jìn)一步地,所述入向處理子模塊內(nèi)部包含一個(gè)準(zhǔn)入控制子單元,所述準(zhǔn)入控制子單元用于分辨數(shù)據(jù)包對(duì)應(yīng)的路由信息是否可達(dá),所述出向處理子模塊的路由表每次發(fā)生更新,就會(huì)將更新信息發(fā)送至所述入向處理子模塊,例如,將更新后的路由表發(fā)送至入向處理子模塊,所述入向處理子模塊內(nèi)部用二級(jí)查表方式獲得可達(dá)信息,進(jìn)一步地,所述入向處理子模塊會(huì)根據(jù)業(yè)務(wù)及優(yōu)先級(jí)映射出一個(gè)內(nèi)部隊(duì)列號(hào),再由內(nèi)部隊(duì)列號(hào)查表獲得與數(shù)據(jù)包對(duì)應(yīng)的目的交換接入模塊的信息,然后再根據(jù)目的交換接入模塊的信息獲得可達(dá)信息,也即路由信息。
在目的交換接入模塊可到達(dá)時(shí),也即數(shù)據(jù)包對(duì)應(yīng)的路由信息可到達(dá)時(shí),該數(shù)據(jù)包才被允許寫入緩存,如果不可到達(dá),則在寫入緩存前即被丟棄,不占用寶貴的緩存及帶寬資源。由于路由表存儲(chǔ)于出向處理子模塊,基于路由的緩存管理在入向處理子模塊,路由表更新需要一定的時(shí)間,在路由表更新的時(shí)間里,可能會(huì)有部分不可到達(dá)的數(shù)據(jù)包進(jìn)入緩存,對(duì)于這部分?jǐn)?shù)據(jù)包,由于沒有目的地,即沒有路由信息,可采用老化方法丟棄。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述僅是本發(fā)明實(shí)施例的實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明實(shí)施例原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明實(shí)施例的保護(hù)范圍。