閱讀文章《The Road to SDN: An Intellectual History of Programmable Networks》,並根據所閱讀的文章,回答如下兩個問題:編程
1.過去20年中可編程網絡的發展能夠分爲幾個階段?每一個階段的貢獻是什麼?服務器
2.網絡虛擬化與SDN的關係?網絡
做業博客連接:http://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10094異步
答:在過去20年中可編程網絡的發展能夠分爲如下三個階段:
測試
在20世紀90年代中期,因爲網絡協議標準化過程的緩慢,一些網絡研究人員採用了一種開放網絡控制的替代方法,大體是基於對獨立PC從新編程相對容易的類比。具體地說,傳統網絡在任何意義上都不是「可編程」的,主動網絡表明了一種激進的網絡控制方法,經過設想一個編程接口(或網絡API)來公開各個網絡節點上的資源(例如,處理、存儲和數據包隊列),並支持構建應用於子集的定製功能,主動網絡研究計劃探索了傳統互聯網協議棧經過IP或異步傳輸模式(ATM)提供服務的根本替代方案。雲計算
因爲傳統路由器和交換機體現了控制和數據平面之間的緊密集成,這種耦合使得各類網絡管理任務,如調試配置問題和預測或控制路由行爲,變得很是具備挑戰性。爲了應對這些挑戰,各類分離數據和控制平面的努力開始出現。領先的設備供應商直接在硬件上實現包轉發邏輯,獨立於控制平面軟件。此外,互聯網服務提供商(ISP)正在努力管理其網絡不斷擴大的規模和範圍,以及對更高可靠性和新服務(如虛擬專用網絡)的需求。這些趨勢催生出了兩項創新技術:一是控制和數據平面之間的開放接口;二是網絡的邏輯集中控制。加密
在OpenFlow出現以前,SDN的基本思想面臨着徹底可編程網絡和實用主義之間的緊張關係。但OpenFlow在這兩個目標之間取得了平衡,它啓用了比早期路由控制器更多的功能,並經過在商品交換機中愈來愈多地使用商用硅芯片組來構建現有的交換機硬件。儘管依賴現有的交換機硬件在必定程度上限制了靈活性,但OpenFlow幾乎能夠當即部署,這使得SDN的移動既實用又大膽。在OpenFlow API的建立以後,緊接着是NOX這樣的控制器平臺的設計,它支持建立許多新的控制應用程序。操作系統
答:網絡虛擬化表示從底層物理設備分離的網絡的抽象,網絡虛擬化容許多個虛擬網絡在共享基礎設施上運行,而且每一個虛擬網絡能夠具備比底層物理網絡更簡單(更抽象)的拓撲。例如,虛擬局域網(VLAN)提供了一個跨越多個物理子網的單一LAN的假象,多個VLAN能夠在相同的交換機和路由器集合上運行。網絡虛擬化(從邏輯網絡的角度對物理網絡進行抽象)顯然不須要SDN。一樣,SDN(邏輯集中控制平面與底層數據平面的分離)並不意味着網絡虛擬化。儘管網絡虛擬化在概念上獨立於SDN,但近年來這兩種技術之間的關係變得更加密切。而SDN和網絡虛擬化主要有三種關係:設計
雲計算使網絡虛擬化變得突出,由於雲提供商須要一種方式,容許多個客戶(或「租戶」)共享同一網絡基礎設施。Nicira的網絡虛擬化平臺(Network Virtualization Platform,NVP)提供了這種抽象,而不須要底層網絡硬件的任何支持,解決方案是使用覆蓋網絡爲每一個租戶提供鏈接其全部虛擬機的單個交換機的抽象。然而,與先前在覆蓋網絡上的工做相比,每一個覆蓋節點其實是物理網絡的一個擴展——一個軟件交換機(如Open vSwitch),它封裝了發送到其餘服務器上運行的虛擬機的流量。邏輯集中式控制器在這些虛擬交換機中安裝規則,以控制如何封裝數據包,並在虛擬機移動到新位置時更新這些規則。調試
將SDN控制應用程序與底層數據平面分離的能力,使得在將SDN控制應用程序部署到操做網絡以前,能夠在虛擬環境中測試和評估SDN控制應用程序。Mininet使用基於進程的虛擬化在同一物理(或虛擬)機上運行多個虛擬OpenFlow交換機、終端主機和SDN控制器,每一個控制器都做爲單個進程。使用基於進程的虛擬化容許Mininet模擬一個網絡,在一臺機器上有數百個主機和交換機。在這樣的環境中,研究人員或網絡運營商能夠開發控制邏輯,並在生產數據平面的全面仿真上輕鬆地對其進行測試。一旦對控制平面進行了評估、測試和調試,就能夠將其部署到實際的生產網絡上。
在傳統網絡中,虛擬化路由器或交換機是很複雜的,由於每一個虛擬組件都須要運行本身的Controlplane軟件實例,相比下虛擬化一個SDN交換機要簡單得多。FlowVisor系統使校園可以支持在承載生產流量的相同物理設備上進行聯網研究的試驗檯,其主要思想是將業務流空間劃分爲「片」,其中每一個片有一個網絡資源共享,由不一樣的SDN控制器管理。FlowVisor做爲Hypervisor運行,向每一個SDN控制器和底層交換機傳遞OpenFlow。