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