翟歡+孫志剛
摘 要 為了給控制平面決策提供更多依據,SDN(Software Defined Networking)交換芯片不但需要對每個接口的報文收發數目進行計數,還要對動態配置的流表項的匹配次數等進行細粒度的統計。因此,與傳統交換芯片相比,SDN交換芯片在計數器實現上面臨更大挑戰。本文首先分析了OpenFlow交換對計數器實現的要求,然后提出一種集中式計數器實現模型CCM(Centralized Counting Model),該模型采用獨立的功能模塊實現OpenFlow交換中的各類計數器。
【關鍵詞】軟件定義網絡 計數器 實現模型
1 引言
近年來SDN技術得到了飛速的發展,OpenFlow作為最具代表性的SDN網絡南向接口,在SDN交換機實現中得到廣泛的應用。SDN控制器可通過openflow協議獲取交換機狀態,并將各種對轉發平面的控制決策發送給交換機。
計數器是交換機向控制平面提供的重要狀態信息。為滿足SDN控制器以及上層應用的統計需求,SDN交換機需要在各端口、隊列、流表項、組表等位置上維護著大量的統計計數器。目前的OpenFlow規范定義了SDN交換機需要實現的40種計數器,包括每個流表中活躍流表項的個數、數據包匹配特定流規則的次數等。
2 SDN的計數需求
2.1 OpenFlow計數器實現分析
在OpenFlow1.4.0規范中,計數器分為流表、流表項、端口、隊列、組表、組存儲段、計量表和計量帶八種類別,每一種類別都包含若干種計數器(例如在流表類計數器中包含當前活躍的流表項個數、數據包查詢次數和數據包匹配次數3種計數器)。
Openflow1.4.0規范共定義了40種計數器,這些計數器的觸發條件是不同的,通過對openflow規范要求的計數器類型分析,我們將計數器分為兩類。一類是由控制平面觸發更新的計數器,共有13種,如流表的個數,流表中規則的條數等,這類計數器更新的頻率較低,對更新實現的性能要求不高,因此可由交換機上的軟件維護;另一類是由數據平面接收的分組觸發,共有27種,計數器更新頻率會隨著鏈路速率的提升而增加,因此對更新性能要求較高,必須由硬件實現。
2.2 分組觸發計數比PCR
為了便于分析數據平面計數器的更新性能,我們提出了分組觸發計數比PCR的概念。PCR是指當一個分組到達交換機后,在同一類別的計數器中,由分組觸發的計數器更新占所有計數器更新的比例稱為該類別的分組觸發計數比PCR。例如,對于組表類計數器,包含指向組表的流表項的個數、組表在交換機中已存在的時間(秒)、組表在交換機中已存在的時間(納秒)、組表處理的分組數統計和組表處理的字節數統計5種計數器,到達的一個分組可觸發組表處理的分組數統計和組表處理的字節數統計這2種計數器的更新,因此,流表類計數器的PCR為40%。
3 CCM模型
3.1 設計思想
CCM的實現架構包含分組轉發處理邏輯(Parse、Match和Action)、集中計數器和SDN控制器,其基本思想是將原來分散在各端口、隊列、流表項、組表等位置上的大量計數器集中實現在計數器模塊中,分組轉發處理邏輯將計數器更新請求信息發送給集中計數器模塊進行相關的計數處理。因此,相比于傳統的實現方式,CCM具有兩個優點:實現簡單和邏輯資源節約。
3.2 模型分析
Update負責對各類型分組個數、接收和發送的分組流量等統計數據進行更新,通過Manage將更新結果存入計數器存儲器(RAM)。具體操作是:
(1)根據收到的更新請求信號,判斷是哪種類型的計數器更新,Update向Manage發送讀請求和讀地址信息,讀取相應存儲地址的計數器值并將讀出的值與計數器增量相加。
(2)Update向Manage發送寫請求和寫地址信息,將相加后的新值寫到原來的存儲地址中,完成計數器的更新。
3.3 關鍵問題研究
CCM實現過程中涉及到的關鍵問題主要是其能夠處理的更新請求的頻率范圍和RAM存儲器能夠支持的鏈路帶寬大小。
4 實現性能評估
4.1 評估方法
通常情況下,分組的大?。↙)最小為64字節,最大為1500字節,所以在(15)式中,L的取值范圍為64BytesL1500Bytes。當分組到達交換機時,通過數據平面觸發更新的27種計數器,位數都是64位,在這27種計數器中,有3種是必需支持的。
4.2 評估結論
在預處理分組大小相等的情況下,計數器的種類越多,分組觸發的更新請求就越多,對芯片內部工作頻率的要求也就越高;在實現計數器數量相等的情況下,預處理的分組越大,RAM所能支持的網絡帶寬就越大。當預處理的分組很小,而鏈路帶寬很大時,通過拼接技術,RAM也能夠支持更大的帶寬。隨著硬件技術的發展,芯片的工作頻率會越來越大,RAM能夠支持的帶寬也會越來越大。
5 結束語
本文對Openflow1.4.0規范要求的計數器類型和特點進行了分析,針對傳統的計數器實現方式存在的問題,提出了一種集中計數器實現模型CCM,該模型采用專門的計數器模塊實現openflow轉發流水線中各功能模塊的計數需求。通過對CCM建模分析表明,CCM具有實現簡單,邏輯資源節約的特點。最后對CCM支持的計數性能進行了分析,隨著硬件技術的發展,CCM將能夠支持更廣泛的帶寬需求。
參考文獻
[1]Open Networking Foundation.White Paper[Z].April 13,2012.
[2]Open Networking Foundation.OpenFlow Switch Specification[Z].Version 1.4.0.2014.
[3]左青云,陳鳴,趙廣松等.基于 OpenFlow 的 SDN 技術[J].2013(05):1078-1097.
[4]孫志剛,呂高鋒,陳一驕.對軟件定義網絡數據面抽象的重新思考[J].中興通訊技術,2013,19(05):22-26.