本公開涉及數據緩存,特別涉及一種數據緩存方法、網絡設備及計算機可讀介質。
背景技術:
1、隨著網絡通信技術的迅猛發展,接入網絡的設備越來越多,網絡進入了大數據傳輸時代,在這些海量的數據中,有實時性和丟包要求很高的自動駕駛、遠程操控、視頻通話等;也有實時性要求不高的如圖像、數據存儲等;還有對轉發性能要求很高的轉發數據業務如nat(network?address?translation,網絡地址轉換)、netflow(網絡監測功能)等。
2、不管對實時性要求、丟包要求以及轉發性能要求如何的報文數據,都需要匯聚經過網絡設備進行轉發,這就要求網絡設備能夠及時處理這些報文,如果實時性能不夠可能不滿足某些業務的需求。
3、現有的技術方案中,為了提高網絡設備的轉發性能和實時性,常用的做法是采用片內和片外內存共用的方式。在報文流量較小時,使用片內內存出入隊;在報文流量較大或者有突發時,使用片外內存緩存報文。同時為了支持不同的業務,網絡設備內的芯片在設計時會分配多個的隊列,所有隊列內存管理規則一致,業務自己規劃隊列的使用分配。
4、但是這樣在網絡設備內的芯片設計時無法確定有多少隊列會被業務所使用,只能按照最大支持數量規劃,將片內sram(static?random-access?memory,靜態隨機存取存儲器)內存平均分配給隊列,當業務使用的隊列數量較少時,未被使用到的隊列所對應的片內sram內存就會被浪費。
技術實現思路
1、本公開實施例提供一種數據緩存方法、一種網絡設備、一種計算機可讀介質。
2、第一方面,本公開實施例提供一種數據緩存方法,包括:
3、從接收到的業務報文中提取報文特征信息;
4、根據所述報文特征信息,確定所述業務報文的元數據所要存儲的目標隊列;
5、利用所述目標隊列緩存所述業務報文的元數據,其中,所述目標隊列包括至少兩個隊列分段,每個所述隊列分段位于一個為其分配的存儲器中。
6、第二方面,本公開實施例提供一種網絡設備,包括:
7、一個或多個處理器;
8、存儲器,其上存儲有一個或多個程序,當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現本公開實施例第一方面所述的數據緩存方法。
9、第三方面,本公開實施例提供一種計算機可讀介質,其上存儲有計算機程序,所述程序被處理器執行時實現本公開實施例第一方面所述的數據緩存方法。
10、本公開實施例提供的數據緩存方法,通過為目標隊列的至少兩個隊列分段分配存儲器,每個隊列分段的存儲器依據業務需求進行分配,利用該目標隊列緩存業務報文的元數據,解決了網絡設備無法滿足業務報文的業務需求的問題,同時提高了片內存儲器的利用率。
1.一種數據緩存方法,包括:
2.根據權利要求1所述的數據緩存方法,其中,所述報文特征信息包括多址接入信道、虛擬局域網、端口、偏移量的起始位置、掩碼、提取長度、哈希值、報文存儲位置、報文長度中的至少一項。
3.根據權利要求1所述的數據緩存方法,其中,在從接收到的業務報文中提取報文特征信息之前,還包括:
4.根據權利要求1所述的數據緩存方法,其中,所述目標隊列分為三個隊列分段,從所述目標隊列的入口至出口依次為第一隊列分段、第二隊列分段以及第三隊列分段。
5.根據權利要求4所述的數據緩存方法,其中,在所述第一隊列分段和所述第三隊列分段位于片內存儲器,所述第二隊列分段位于片外存儲器的情況下,利用所述目標隊列緩存所述業務報文的元數據,包括:
6.根據權利要求5所述的數據緩存方法,其中,在所述第一緩沖區處于填滿狀態的情況下,將所述業務報文的元數據緩存至所述目標隊列,還包括:
7.根據權利要求4所述的數據緩存方法,其中,在所述第一隊列分段、所述第二隊列分段以及所述第三隊列分段位于片外存儲器的情況下,利用所述目標隊列緩存所述業務報文的元數據,包括:
8.根據權利要求7所述的數據緩存方法,其中,在所述第二緩沖區處于填滿狀態的情況下,將所述業務報文的元數據緩存至所述目標隊列,還包括:
9.一種網絡設備,包括:
10.一種計算機可讀介質,其上存儲有計算機程序,所述程序被處理器執行時實現根據權利要求1至8中任意一項所述的數據緩存方法。