System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請屬于數據通信,尤其涉及一種路由表的空間管理方法、裝置、計算機程序產品及網絡設備。
技術介紹
1、隨著互聯網的快速發展和網絡規模的不斷擴大,網絡設備如網絡設備和交換機需要處理越來越多的路由信息。路由信息的存儲和管理是網絡設備性能的關鍵因素之一。傳統的路由表通常使用哈希表或二叉搜索樹等數據結構來實現,但這些結構在處理大規模路由表時存在性能瓶頸,尤其是在需要快速查找和更新路由信息的場景中。
2、三態內容尋址存儲器(ternary?content?addressable?memory,tcam)是一種特殊的存儲器,能夠以常數時間復雜度進行查找操作,因此被廣泛用于高速網絡設備的路由表實現。然而,現有技術中的tcam路由表的空間管理方法在待插入路由表項的掩碼長度對應的空間管理單元空間不足時,需要進行大量的表項移動來獲取空閑空間,導致路由表的操作效率不高。
技術實現思路
1、有鑒于此,本申請實施例提供了一種路由表的空間管理方法、裝置、計算機程序產品及網絡設備,以解決現有技術中的路由表的操作效率不高的問題。
2、本申請實施例的第一方面提供了一種路由表的空間管理方法,可以包括:
3、基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元;其中,所述待插入掩碼長度為所述待插入路由表項的掩碼長度,所述路由表的空間管理單元包括各個連續的已插入空間管理單元和/或各個連續的空閑空間管理單元,已插入空間管理單元與已插入路由表項一一對應;
4、將
5、所述基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元,包括:
6、若不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將索引最小的空閑空間管理單元確定為所述待插入空間管理單元;
7、若存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項對應的已插入空間管理單元確定為所述待插入空間管理單元,并將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項確定為更新后的待插入路由表項,返回執行基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元的步驟及其后續步驟,直至不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項。
8、本申請實施例的第二方面提供了一種路由表的空間管理裝置,可以包括:
9、確定模塊,用于基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元;其中,所述待插入掩碼長度為所述待插入路由表項的掩碼長度,所述路由表的空間管理單元包括各個連續的已插入空間管理單元和/或各個連續的空閑空間管理單元,已插入空間管理單元與已插入路由表項一一對應;
10、插入模塊,用于將所述待插入路由表項插入所述待插入空間管理單元;
11、所述確定模塊包括:
12、第一確定子模塊,用于若不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將索引最小的空閑空間管理單元確定為所述待插入空間管理單元;
13、第二確定子模塊,用于若存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項對應的已插入空間管理單元確定為所述待插入空間管理單元,并將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項確定為更新后的待插入路由表項,返回執行基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元的步驟及其后續步驟,直至不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項。
14、本申請實施例的第三方面提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現上述任一種路由表的空間管理方法的步驟。
15、本申請實施例的第四方面提供了一種網絡設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執行所述計算機程序時,使得所述網絡設備實現上述任一種路由表的空間管理方法的步驟。
16、本申請實施例的第五方面提供了一種計算機程序產品,包括計算機程序,所述計算機程序被運行時,使得上述任一種路由表的空間管理方法被執行。
17、本申請實施例與現有技術相比存在的有益效果是:本申請實施例基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元;其中,所述待插入掩碼長度為所述待插入路由表項的掩碼長度,所述路由表的空間管理單元包括各個連續的已插入空間管理單元和/或各個連續的空閑空間管理單元,已插入空間管理單元與已插入路由表項一一對應;將所述待插入路由表項插入所述待插入空間管理單元;所述基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元,包括:若不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將索引最小的空閑空間管理單元確定為所述待插入空間管理單元;若存在掩碼長度大于所述待插入掩碼長度的已插入路由表項,則將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項對應的已插入空間管理單元確定為所述待插入空間管理單元,并將掩碼長度大于所述待插入掩碼長度且索引最小的已插入路由表項確定為更新后的待插入路由表項,返回執行基于待插入掩碼長度,確定待插入路由表項在路由表中的待插入空間管理單元的步驟及其后續步驟,直至不存在掩碼長度大于所述待插入掩碼長度的已插入路由表項。本申請實施例在插入路由表項時,每個比待插入掩碼長度大的掩碼長度僅需移動一個路由表項,極大提升了路由表的操作效率;并且,路由表中的已插入空間管理單元為連續的空間,且已插入空間管理單元與已插入路由表項一一對應,從而路由表中已插入路由表項均能緊密的、連續的排列,有助于提升路由表的空間利用率。
本文檔來自技高網...【技術保護點】
1.一種路由表的空間管理方法,其特征在于,包括:
2.根據權利要求1所述的路由表的空間管理方法,其特征在于,還包括:
3.根據權利要求2所述的路由表的空間管理方法,其特征在于,還包括:
4.根據權利要求2所述的路由表的空間管理方法,其特征在于,所述待刪除空間管理單元的確定過程包括:
5.根據權利要求4所述的路由表的空間管理方法,其特征在于,所述將各個待查詢路由表項分別與所述待刪除路由表項進行匹配,直至得到查詢成功路由表項,包括:
6.根據權利要求1至5中任一項所述的路由表的空間管理方法,其特征在于,還包括:
7.一種路由表的空間管理裝置,其特征在于,包括:
8.一種計算機程序產品,其特征在于,包括計算機程序,所述計算機程序被運行時,使得如權利要求1至6中任一項所述的路由表的空間管理方法被執行。
9.一種網絡設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時,使得所述網絡設備實現如權利要求1至6中任一項所述的路由表
...【技術特征摘要】
1.一種路由表的空間管理方法,其特征在于,包括:
2.根據權利要求1所述的路由表的空間管理方法,其特征在于,還包括:
3.根據權利要求2所述的路由表的空間管理方法,其特征在于,還包括:
4.根據權利要求2所述的路由表的空間管理方法,其特征在于,所述待刪除空間管理單元的確定過程包括:
5.根據權利要求4所述的路由表的空間管理方法,其特征在于,所述將各個待查詢路由表項分別與所述待刪除路由表項進行匹配,直至得到查詢成功路由表項,包括:
6.根據權利要...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。