一種基于跳表的mac表項檢索方法及系統的制作方法
【技術領域】
[0001]本發明涉及通信的技術領域,特別是涉及一種基于跳表的MAC表項檢索方法及系統。
【背景技術】
[0002]在光線路終端(Optical Line Terminal,0LT)中,交換機(switch)以及無源光纖網絡(Passive Optical Network,P0N)MAC芯片上都會對大量的MAC地址進行保存和管理。對于某個無源光纖網絡(Passive Optical Network,P0N) 口下面接入的光網絡單元(Optical Network Unit,0NU),從交換機端是無法直接獲取MAC地址與下面ONU ID間的一一對應關系,需要與PON MAC芯片進行交互,從而一條一條的獲取。
[0003]對于單個PON口下掛接大量OUN的情況,單條地查詢MAC地址與ONU ID的對應關系顯得相當低效。
【發明內容】
[0004]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種基于跳表的MAC表項檢索方法及系統,采用跳表進行MAC表項信息進行統一管理,并與PON MAC芯片交互通過MAC地址反查對應的ONU ID0
[0005]為實現上述目的及其他相關目的,本發明提供一種基于跳表的MAC表項檢索方法,包括以下步驟:將MAC表項信息以跳表的方式進行存儲;所述MAC表項信息包括MAC地址對應的ONU ID;在檢索所需的MAC表項信息時,在跳表中進行查找。
[0006]于本發明一實施例中,新增MAC表項信息時,與PON MAC芯片進行交互獲取MAC地址對應的ONU ID,并將MAC地址對應的VLAN、流量和ONU ID保存至跳表。
[0007]于本發明一實施例中,刪除MAC表項信息時,以MAC地址為關鍵值,從跳表中刪除該MAC地址對應的MAC表項。
[0008]于本發明一實施例中,變更MAC表項時,與PON MAC芯片進行交互獲取MAC地址對應的ONU ID,從跳表中刪除該MAC地址對應的MAC表項,并更新流量值,并將VLAN、更新的流量和ONU ID保存至跳表。
[0009]于本發明一實施例中,所述MAC表項信息存儲在包括至少兩層結構的跳表中;每一層都是一個有序的鏈表;最底層的鏈表包含所有元素;上一層的元素均包含在下一層鏈表中,對下一層鏈表進行檢索時,跳過上一層所包含的元素。
[0010]同時,本發明還提供一種基于跳表的MAC表項檢索系統,包括存儲模塊和查找模塊;
[0011]所述存儲模塊用于將MAC表項信息以跳表的方式進行存儲;所述MAC表項信息包括MAC地址對應的ONU ID;
[0012]所述查找模塊用于在檢索所需的MAC表項信息時,在跳表中進行查找。
[0013]于本發明一實施例中,新增MAC表項信息時,與PON MAC芯片進行交互獲取MAC地址對應的ONU ID,并將MAC地址對應的VLAN、流量和ONU ID保存至跳表。
[0014]于本發明一實施例中,刪除MAC表項信息時,以MAC地址為關鍵值,從跳表中刪除該MAC地址對應的MAC表項。
[0015]于本發明一實施例中,變更MAC表項時,與PON MAC芯片進行交互獲取MAC地址對應的ONU ID,從跳表中刪除該MAC地址對應的MAC表項,并更新流量值,并將VLAN、更新的流量和ONU ID保存至跳表。
[0016]于本發明一實施例中,所述MAC表項信息存儲在包括至少兩層結構的跳表中;每一層都是一個有序的鏈表;最底層的鏈表包含所有元素;上一層的元素均包含在下一層鏈表中,對下一層鏈表進行檢索時,跳過上一層所包含的元素。
[0017]如上所述,本發明的基于跳表的MAC表項檢索方法及系統,具有以下有益效果:
[0018](I)通過采用跳表這種數據結構,對MAC表項信息進行統一管理,提升了 MAC表項查詢與反查的效率;
[0019](2)數據的管理更加的簡潔與高效,在查詢多條甚至全部MAC表項時更加地快速與準確。
【附圖說明】
[0020]圖1顯示為本發明的基于跳表的MAC表項檢索方法的流程圖;
[0021]圖2顯示為跳表的原理示意圖;
[0022]圖3顯示為本發明的基于跳表的MAC表項檢索系統的結構示意圖。
[0023]元件標號說明
[0024]I 存儲模塊
[0025]2 查找模塊
【具體實施方式】
[0026]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0027]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為復雜。
[0028]本發明的基于跳表的MAC表項檢索方法及系統采用跳表這種相對比較高效的數據結構,對業務流中新增的、刪除的以及變更的MAC表項信息進行本地保存與管理,并與PONMAC芯片交互獲取MAC地址對應的ONU ID,并對應保存到跳表結構。
[0029]跳表是一種隨機化的數據結構,只不過在鏈表的基礎上增加了跳躍功能。正是這個跳躍功能,使得在查找元素時,跳表能夠提供O(1gN)的時間復雜度。紅黑樹等這樣的平衡數據結構查找的時間復雜度也是O(1gN),但是相比較實現像紅黑樹這樣的數據結構,跳表實現顯得更加簡潔快速。因此,本發明的基于跳表的MAC表項檢索方法能夠在查詢多條甚至全部MAC表項時更加地快速與準確。
[0030]具體地,跳表通過在每個節點中增加了向前的指針,從而提升查找的效率。跳躍列表是按層建造的。底層是一個普通的有序鏈表。每個更高層都充當下面列表的“快速跑道”,而最高層的元素在0(logl/p η)個列表中出現。跳表的核心思想就是把數據不斷的提取出來,作為索引,其原理如圖2所示。跳表以空間換時間,無論是單條表項還是多條甚至全部表項,都可以采用直接對本地跳表進行查詢與搜索,從而加快了數據的處理速度。
[0031 ]因此,跳表至少包括兩層結構;每一層都是一個有序的鏈表;最底層的鏈表包含所有元素;上一層的元素均包含在下一層鏈表中,對下一層鏈表進行檢索時,跳過上一層所包含的元素。故跳表具有如下性質:
[0032](I)由至少兩層結構組成;
[0033](2)每一層都是一個有序的鏈表;
[0034](3)最底層(Level I)的鏈表包含所有元素;
[0035](4)如果一個元素出現在Level i的鏈表中,則它在Level i之下的鏈表也都會出現。
[0036](5)每個節點包含兩個指針,一個指向同一鏈表中的下一個元素,一個指向下面一層的元素。
[0037]參照圖1,本發明的基于跳表的MAC表項檢索方法包括以下步驟:
[0038]I)將MAC表項信息以跳表的方式進行存儲。
[0039]其中,MAC表項信息包括MAC地址對應的VLAN、流量和ONU ID JAC表項信息存儲在包括至少兩層結構的跳表中。
[0040 ] 2)檢索所需的MAC表項信息時,在跳表中進行查找。
[0041]其中,由于跳表由很多層組成,在查找MAC表項信息時,首