OpenFlow對網絡創新的影響
由于現在的網絡暴露出了越來越多的弊病以及人們對網絡性能需求的提高,于是研究人員不得不把很多復雜功能加入到路由器的體系結構當中,例如OSPF,BGP,組播,區分服務,流量工程,NAT,防火墻,MPLS等等。這就使得路由器等交換設備越來越臃腫而且性能提升的空間越來越小。
然而與網絡領域的困境截然不同的是,計算機領域實現了日新月異的發展。仔細回顧計算機領域的發展,不難發現其關鍵在于計算機領域找到了一個簡單可用的硬件底層(x86指令集)。由于有了這樣一個公用的硬件底層,所以在軟件方面,不論是應用程序還是操作系統都取得了飛速的發展。現在很多主張重新設計計算機網絡體系結構的人士認為:網絡可以復制計算機領域的成功來解決現在網絡所遇到的所有問題。在這種思想的指導下,將來的網絡必將是這樣的:底層的數據通路(交換機、路由器)是“啞的、簡單的、最小的”,并定義一個對外開放的關于流表的公用的API,同時采用控制器來控制整個網絡。未來的研究人員就可以在控制器上自由的調用底層的API來編程,從而實現網絡的創新。
OpenFlow正是這種網絡創新思想的強有力的推動者。OpenFlow交換機將原來完全由交換機/路由器控制的報文轉發過程轉化為由OpenFlow交換機(OpenFlow Switch)和控制服務器(Controller)來共同完成,從而實現了數據轉發和路由控制的分離。控制器可以通過事先規定好的接口操作來控制OpenFlow交換機中的流表,從而達到控制數據轉發的目的。
因此,OpenFlow開啟了一條網絡創新的道路。如果OpenFlow得到廣泛的應用和推廣,則未來的網絡將如曾經的計算機一樣取得日新月異的發展。
流表由很多個流表項組成,每個流表項就是一個轉發規則。進入交換機的數據包通過查詢流表來獲得轉發的目的端口。流表項由頭域、計數器和操作組成;其中頭域是個十元組,是流表項的標識;計數器用來計數流表項的統計數據;操作標明了與該流表項匹配的數據包應該執行的操作。