我們為什麼需要SDN? 致新人

2021-09-22 17:23:42 字數 2145 閱讀 6095

引言:sdn為什麼會出現?是什麼原因使得學術界提出sdn?我們為什麼需要sdn?如果你剛接觸sdn方案時,你一定有這樣的疑問。而問題的答案是:我們需要擁有更多可程式設計能力的網路,來支援快速增長的網路業務需求。

本文選自《重構網路:sdn架構與實現》。

眾所周知,相比發展迅速的計算機產業,網路產業的創新十分緩慢。每乙個創新都需要等待數年才能完成技術標準化。為了解決這個問題,sdn創始人nick mckeown教授對計算機產業的創新模式和網路產業的創新模式進行了研究和對比。在分析了計算機產業的創新模式之後,他總結出支撐計算機產業快速創新的如下三個因素。

相比之下,傳統的網路裝置與上世紀60年代的ibm大型機類似,網路裝置硬體、作業系統和網路應用三部分緊耦合在一起組成乙個封閉的系統。這三部分相互依賴,通常隸屬於同一家網路裝置廠商,每一部分的創新和演進都要求其餘部分做出同樣的公升級。這樣的架構嚴重阻礙了網路創新程序的開展。如果網路產業能像當今計算機產業一樣,也具備通用硬體底層、軟體定義功能和開源模式三要素,一定能獲得更快的創新速度,最終像計算機產業一樣取得空前的發展。

正是在這種思路的影響下,mckeown教授團隊提出了乙個新的網路體系結構:sdn。在sdn架構中,網路的控制平面與資料平面相分離,資料平面將變得更加通用化,變得與計算機通用硬體底層類似,不再需要具體實現各種網路協議的控制邏輯,而只需要接收控制平面的操作指令並執行即可。網路裝置的控制邏輯轉而由軟體實現的sdn控制器和sdn應用來定義,從而實現網路功能的軟體定義化。隨著開源sdn控制器和開源sdn開放介面的出現,網路體系結構也擁有了通用底層硬體、支援軟體定義和開源模式三個要素。從傳統網路體系結構到sdn網路體系結構的演進關係如下。

傳統網路架構向sdn架構演進示意圖

所以可以看出,nick mckeown教授在分析計算機產業創新模式的基礎上,對傳統網路系統的三部分功能模組進行了重新劃分,在每層之間建立統一的開放介面,從而形成類似計算機架構的sdn體系結構。

除了從nick mckeown教授的思路去理解為什麼sdn會出現以外,還可以從另外一位sdn創始者shenker教授的觀點中順藤摸瓜,進一步了解為什麼sdn會出現。

「為了讓系統更好地工作,早期需要管理複雜性而後期需要提取簡單性」是由美國學者唐·諾曼提出的系統設計理念。在這個理念的啟發下,shenker教授對現階段的網路系統進行了分析,並得出了結論:網路發展了這麼多年,仍然處於「管理複雜性」階段,越來越多的網路新協議和新演算法使得網路控制平面變得越來越複雜。但是現在的網路使用者卻對網路的易用性有更高的要求,希望網路具有更多的可程式設計能力,從而自動化、智慧型化網路管理。所以對於當下的網路而言,當務之急是如何解決從「管理複雜性」階段轉變到「提取簡單性」階段的問題。

shenker教授以計算機軟體程式設計為例進行分析。程式語言發展初期,程式設計師必須處理所有底層硬體細節,整個程式設計方式處於「管理複雜性」階段;後來出現的高階程式語言對底層硬體細節進行了抽象,提出了作業系統、檔案系統和物件導向等抽象概念,使得程式設計變得更加容易。從計算機軟體程式設計的發展中可以看出,「抽象」是完成這個轉變的關鍵。

而對於網路而言,現有的分層協議可以看作一種資料平面抽象模型,但是控制平面依然只是網路功能和網路協議的堆砌,缺少合適的抽象模型。所以,網路需要建立控制平面的抽象模型。

而在sdn架構中,sdn控制平面、資料平面通用抽象模型和全域性網路狀態檢視三種抽象模型實現了包括控制平面抽象在內的網路抽象架構。sdn控制平面抽象模型支援使用者在控制平面上進行程式設計去控制網路,而無須關心資料平面的實現細節;sdn資料平面通用抽象模型將不同協議的匹配表整合起來,形成多欄位匹配表,解決了網路協議堆砌問題;集中式的sdn控制平面也可以統計網路狀態資訊,提供描述網路狀態的抽象模型。因此,通過進一步的抽象,sdn可以使網路從「管理複雜性」階段到「提取簡單性」階段轉變,滿足網路使用者對易用性的需求,使網路管理更加簡單,更加自動化和智慧型。這也是為什麼需要sdn的原因之一。

對比兩位sdn創始人的觀點:nick mckeown教授從「系統功能重構(refactoring functionality)」的角度來分析、解決當下的網路問題,而scott shenker教授卻從「重新定義抽象(redefining abstractions)」的角度來嘗試解決現有的網路問題。歸根結底,這兩種思路從不同的角度闡述了當下網路需要更多可程式設計能力的事實,而這也正是為什麼需要sdn的真正原因。雖然兩位教授的思路不同,但殊途同歸,有異曲同工之妙。

我們為什麼需要SDN?

引言 sdn為什麼會出現?是什麼原因使得學術界提出sdn?我們為什麼需要sdn?如果你剛接觸sdn方案時,你一定有這樣的疑問。而問題的答案是 我們需要擁有更多可程式設計能力的網路,來支援快速增長的網路業務需求。本文選自 重構網路 sdn架構與實現 眾所周知,相比發展迅速的計算機產業,網路產業的創新十...

我們為什麼需要睡眠

隨著時光的消逝,你是否發覺眼角的皺紋逐漸加深?變得越來越粗糙黯淡?記憶力也開始衰退?這個時候很多人都會感慨 時光易逝,容顏易老 並且開始習慣接受自己已慢慢變老,提前加入老人的行列。其實,這一切也許只是因為你長時間睡眠不足造成的。如果能夠早些了解這些常識,並引起足夠重視,你的青春也許還能保留十年。睡眠...

我們為什麼需要睡眠

隨著時光的消逝,你是否發覺眼角的皺紋逐漸加深?變得越來越粗糙黯淡?記憶力也開始衰退?這個時候很多人都會感慨 時光易逝,容顏易老 並且開始習慣接受自己已慢慢變老,提前加入老人的行列。其實,這一切也許只是因為你長時間睡眠不足造成的。如果能夠早些了解這些常識,並引起足夠重視,你的青春也許還能保留十年。睡眠...