可編程網(wǎng)絡(luò)的發(fā)展歷史_第1頁
可編程網(wǎng)絡(luò)的發(fā)展歷史_第2頁
可編程網(wǎng)絡(luò)的發(fā)展歷史_第3頁
可編程網(wǎng)絡(luò)的發(fā)展歷史_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

可編程網(wǎng)絡(luò)的發(fā)展歷史1、基于小型計(jì)算機(jī)的路由器(1969年至1990年代中期)分組交換網(wǎng)絡(luò)上的第一個路由器可能是1969年ARPANET上的接口消息處理器(IMP)。IMP論文中描述的IMP是在HoneywellDDP-516微型計(jì)算機(jī)上實(shí)現(xiàn)的。在今天的術(shù)語中,這種路由器被稱為軟件路由器,因?yàn)樗亲鳛橥ㄓ糜?jì)算機(jī)之上的軟件實(shí)現(xiàn)的。在小型計(jì)算機(jī)之上實(shí)現(xiàn)路由器的這種方法足以滿足當(dāng)時(shí)所需的適度轉(zhuǎn)發(fā)速率。例如,IMP論文報(bào)告說,IMP的最大吞吐量約為700kbit/s,足以在兩個方向上服務(wù)于多條50kbit/s的線路。此類基于微型計(jì)算機(jī)的路由器也非常出色:可編程路由器的功能僅需升級微型計(jì)算機(jī)上的轉(zhuǎn)發(fā)軟件即可。這種使用小型計(jì)算機(jī)構(gòu)建生產(chǎn)路由器的方法一直持續(xù)到1990年代中期。1970年代著名的軟件路由器例子是DavidMills的Fuzzball路由器。1980年代最著名的例子是NoelChiappa的C網(wǎng)關(guān),這是MIT初創(chuàng)公司Proteon的基礎(chǔ),以及WilliamYeager的“夜間運(yùn)貨”多協(xié)議路由器,這是斯坦福初創(chuàng)公司思科系統(tǒng)公司的基礎(chǔ)。到1990年代中期,由于互聯(lián)網(wǎng)和萬維網(wǎng)的迅速采用,軟件已無法滿足對更高鏈接速度的需求。瞻博網(wǎng)絡(luò)的M40路由器是1998年硬件路由器的早期示例。M40包含用于實(shí)現(xiàn)路由器的數(shù)據(jù)平面的專用芯片以及用于實(shí)現(xiàn)路由器的控制平面的控制處理器。正如我們在前面中所描述的那樣,自1990年代中期以來,最快的路由器主要由專用硬件構(gòu)成,因?yàn)橛布I(yè)化是維持鏈路速度逐年提高的唯一方法。圖1:自1969年ARPANET上的第一臺路由器以來,軟件路由器的總?cè)萘俊V钡?990年代中期,軟件路由器才夠用。但是,從那時(shí)起,最快的路由器主要是固定功能的設(shè)備,這些設(shè)備是由專用的非可編程硬件構(gòu)建而成的,與最好的軟件路由器相比,這些路由器的性能提高了10-100倍。2、主動網(wǎng)絡(luò)(1990年代中期)1990年代中期,有源網(wǎng)絡(luò)得到了發(fā)展,這種方法提倡網(wǎng)絡(luò)是可編程的或“有源的”,以允許在網(wǎng)絡(luò)基礎(chǔ)架構(gòu)中部署新服務(wù)。主動網(wǎng)絡(luò)至少有兩種方法。首先,可編程路由器方法,它允許網(wǎng)絡(luò)運(yùn)營商以受限方式對路由器進(jìn)行編程。其次,封裝方法,其中最終主機(jī)會將程序作為封裝嵌入到數(shù)據(jù)包中,然后由路由器執(zhí)行。主動網(wǎng)絡(luò)主要與膠囊方法有關(guān)。但是膠囊方法引起了一些安全隱患。由于程序是由最終用戶嵌入到數(shù)據(jù)包中的,因此惡意或錯誤的最終用戶程序可能會破壞整個路由器。解決安全問題的一種方法是在隔離的應(yīng)用程序級虛擬機(jī)(如Java虛擬機(jī))中執(zhí)行膠囊程序。但是,使用虛擬機(jī)進(jìn)行隔離以降低轉(zhuǎn)發(fā)性能為代價(jià)。即使使用提供有效隔離的技術(shù)(例如SNAP),在通用處理器上執(zhí)行數(shù)據(jù)包轉(zhuǎn)發(fā)時(shí),也會對性能造成重大影響。例如,SNAP在2001年報(bào)告的轉(zhuǎn)發(fā)速率為100Mbit/s,比1998年開發(fā)的JuniperM4040Gbit/s硬件路由器慢了兩個數(shù)量級。膠囊方法可能是所有主動網(wǎng)絡(luò)愿景中最雄心勃勃的方法,由于安全方面的考慮,它并未以最通用的形式出現(xiàn)。但是,最近的系統(tǒng)向終端主機(jī)公開了路由器功能的一個更為受限的子集(例如,終端主機(jī)讀取路由器狀態(tài)但不寫入路由器狀態(tài)的能力),這使人想起了封裝方法。另一方面,可編程路由器方法已經(jīng)以各種形式被采用:軟件定義的網(wǎng)絡(luò)和可編程路由器芯片都為網(wǎng)絡(luò)運(yùn)營商提供了不同種類的受限路由器可編程性。3、軟件路由器(1999年至今)自1990年代后期以來,一種可編程性的方法就是使用通用基板來編寫數(shù)據(jù)包處理程序,而固定功能路由器硬件則無法編程。多年來,通用基板已經(jīng)發(fā)生了變化。例如,Click在2000年使用了單核CPU。在2000年代初期,英特爾推出了專門針對網(wǎng)絡(luò)的一系列處理器,稱為網(wǎng)絡(luò)處理器,例如2000年的IXP1200和2000年的IXP2800。RouteBricks項(xiàng)目在2009年使用了多核處理器,PacketShader項(xiàng)目在2010年使用了GPU,而NetFPGA-SUME項(xiàng)目在2014年使用了FPGA。已經(jīng)發(fā)現(xiàn)軟件路由器被用作對路由器進(jìn)行編程的一種手段,但是卻犧牲了性能。在鏈接速度較低但計(jì)算要求較高的情況下,它們特別有用。例如,該方法已被用于實(shí)現(xiàn)WiFi中的MAC層算法和無線物理層中的信號處理算法。在開發(fā)軟件路由器的同時(shí),還開發(fā)了許多用于數(shù)據(jù)包處理的特定領(lǐng)域語言(DSL)。例如,單擊使用C++在軟件路由器上進(jìn)行數(shù)據(jù)包處理。packetC和MicroengineC目標(biāo)網(wǎng)絡(luò)處理器。4、軟件定義的網(wǎng)絡(luò)(2004年至今)從2000年代初期開始,研究人員就主張將路由器的控制平面(運(yùn)行分布式路由協(xié)議以計(jì)算其路由表的路由器部分)與路由器的數(shù)據(jù)平面(通過查看路由表的數(shù)據(jù)來轉(zhuǎn)發(fā)數(shù)據(jù)包)分開。作為示例,鏈路狀態(tài)路由協(xié)議的實(shí)現(xiàn)將是控制平面的一部分,而基于最長前綴的表查找的實(shí)現(xiàn)將是數(shù)據(jù)平面的一部分。這種方法背后的思想,后來被稱為軟件定義網(wǎng)絡(luò)(SDN),是網(wǎng)絡(luò)運(yùn)營商在管理大型網(wǎng)絡(luò)(例如流量工程,訪問控制,創(chuàng)建虛擬網(wǎng)絡(luò))時(shí)所需要的大部分靈活性。與控制平面有關(guān),與數(shù)據(jù)平面無關(guān)。此外,與數(shù)據(jù)平面相比,控制平面執(zhí)行的頻率相對較低:每幾毫秒一次,而不是每幾納秒一次。因此,雖然必須以硬件來實(shí)現(xiàn)數(shù)據(jù)平面以提高性能,但控制平面操作的相對少見的性質(zhì)允許將其從路由器移出并移至商品通用處理器,在此可以更輕松地進(jìn)行操作程序。SDN還引入了集中控制的概念:通過將路由器控制平面從路由器移到通用處理器上,可以將整個網(wǎng)絡(luò)控制平面集中在幾個服務(wù)器上。這樣一來,這幾臺服務(wù)器就可以利用全局網(wǎng)絡(luò)可見性來計(jì)算整個網(wǎng)絡(luò)的路由。SDN有效地用了更簡單的集中圖計(jì)算(例如,使用Dijkstra算法的最短路徑)代替了易于出錯的分布式路由計(jì)算協(xié)議。一旦控制平面為每個路由器計(jì)算了路由,SDN還需要一種控制平面的機(jī)制來填充路由表的內(nèi)容。在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),數(shù)據(jù)平面將查詢這些表。這些機(jī)制中最著名的是OpenFlowAPI,它公開了路由器硬件中路由表的最小接口。OpenFlow的目標(biāo)是充當(dāng)跨接口到不同路由器芯片中的路由表的最小公分母。這樣一來,現(xiàn)有芯片就可以立即支持OpenFlowAPI。盡管OpenFlowAPI使對網(wǎng)絡(luò)的控制平面進(jìn)行編程成為可能,但并不一定使它變得容易。因此,SDN的發(fā)展也導(dǎo)致了高級編程語言的發(fā)展,以對路由器的控制平面進(jìn)行編程。盡管SDN在編程和驗(yàn)證豐富的控制平面策略方面進(jìn)行了大量研究工作,但在啟用數(shù)據(jù)平面中的可編程性方面卻進(jìn)行了很多工作。5、網(wǎng)絡(luò)功能虛擬化(2012年至今)網(wǎng)絡(luò)功能虛擬化(NFV)試圖將更豐富的數(shù)據(jù)包處理功能(超出原始數(shù)據(jù)包轉(zhuǎn)發(fā)功能)轉(zhuǎn)移到商品通用處理器和云基礎(chǔ)架構(gòu)中。這種數(shù)據(jù)包處理功能包括深度數(shù)據(jù)包檢查,負(fù)載平衡,入侵檢測和WAN加速,通常統(tǒng)稱為“中間盒”。出現(xiàn)了一些系統(tǒng)來對這種中間盒的數(shù)據(jù)和控制平面進(jìn)行編程。這種中間盒的一種常見用例是在網(wǎng)絡(luò)的邊緣(例如,在蜂窩基站處),其中,每當(dāng)客戶端訪問因特網(wǎng)時(shí),各種分組處理功能就在處理器集群上運(yùn)行。由于NFV是在軟件平臺上執(zhí)行數(shù)據(jù)包處理的,因此它也可以看作是鏈路速率要求相對較低的邊緣上的軟件路由器的實(shí)際用例。6、基于邊緣/終端主機(jī)的軟件定義網(wǎng)絡(luò)(2013年至今)很快就清楚了,OpenFlowAPI不足以表達(dá)網(wǎng)絡(luò)運(yùn)營商的所有需求,因?yàn)樗辉O(shè)計(jì)為易于采用的通用最小分母API。OpenFlow缺乏表達(dá)能力,導(dǎo)致了基于邊緣的軟件定義網(wǎng)絡(luò)方法。通過這種方法,網(wǎng)絡(luò)的路由器分為兩類。邊緣路由器位于網(wǎng)絡(luò)的入口或邊緣,并執(zhí)行可編程的數(shù)據(jù)包處理。網(wǎng)絡(luò)的核心是核心路由器,這些路由器簡單地轉(zhuǎn)發(fā)幾乎沒有可編程性的數(shù)據(jù)包。由于邊緣路由器在空間上分布以服務(wù)于不同位置的客戶端,因此每個邊緣路由器只需要處理進(jìn)出網(wǎng)絡(luò)的總流量中的一小部分。因此,相對于核心,邊緣路由器對性能的要求要低得多,這使得它們可以在通用CPU上實(shí)現(xiàn)。使用通用CPU對邊緣路由器進(jìn)行編程可以使它們比受限的OpenFlowAPI更具可編程性。開放式虛擬交換機(jī)是邊緣路由器的一個眾所周知的示例。它在終端主機(jī)上的虛擬機(jī)管理程序中運(yùn)行,并將單個終端主機(jī)上的多個虛擬機(jī)連接到網(wǎng)絡(luò)。最近,邊緣上不斷增長的性能要求已導(dǎo)致在FPGA上實(shí)現(xiàn)此類虛擬交換機(jī)。從邏輯上講,邊緣路由器可能是終端主機(jī)本身。因此,在討論基于邊緣的方法時(shí),我們還包括一些近期的提案,這些提案使用最終主機(jī)來實(shí)現(xiàn)網(wǎng)絡(luò)靈活性。例如,Eden通過僅對終端主機(jī)進(jìn)行編程就可以使用商用路由器提供可編程數(shù)據(jù)平面。微型數(shù)據(jù)包程序(TPP)允許最終主機(jī)將小程序嵌入數(shù)據(jù)包頭中,然后由路由器以類似于基于膠囊的活動網(wǎng)絡(luò)的樣式由路由器執(zhí)行。TPP使用受限制的指令集來緩解活動網(wǎng)絡(luò)的性能和安全問題。在測量和監(jiān)視方面,許多系統(tǒng)僅從終端主機(jī)監(jiān)視網(wǎng)絡(luò)性能。對于網(wǎng)絡(luò)中不可用的應(yīng)用程序上下文,基于邊緣或基于最終主機(jī)的解決方案是必需的。例如,只有在終端主機(jī)上才能獲得有關(guān)哪個應(yīng)用程序使用了網(wǎng)絡(luò)的知識(可能對監(jiān)視有用)。同樣,許多網(wǎng)絡(luò)安全應(yīng)用程序(例如,過濾垃圾郵件)最好在最終主機(jī)上運(yùn)行,因?yàn)槌鲇陔[私原因,確定什么是垃圾郵件以及什么不是最好的信息留在最終主機(jī)上。此外,可以僅通過邊緣可編程性來實(shí)現(xiàn)很多可編程網(wǎng)絡(luò)功能(例如,網(wǎng)絡(luò)虛擬化,訪問控制,安全策略等)。但是,基于邊緣的方法不足以解決所有網(wǎng)絡(luò)問題。例如,通過使用網(wǎng)絡(luò)支持進(jìn)行擁塞控制(例如,使用來自路由器的顯式擁塞通知支持的DCTCP和使用來自路由器的擁塞程度的顯式信息的XCP),性能有了顯著提高。用于提高網(wǎng)絡(luò)性能的許多其他最新提議依賴于網(wǎng)絡(luò)核心內(nèi)路由器的支持。與使用來自不同終端主機(jī)有利位置的網(wǎng)絡(luò)測量結(jié)果“三角剖分”網(wǎng)絡(luò)問題的根本原因相比,直接在網(wǎng)絡(luò)中進(jìn)行監(jiān)視,網(wǎng)絡(luò)可見性也有了顯著提高。總而言之,缺少可編程網(wǎng)絡(luò)核心會大大降低性能,并使網(wǎng)絡(luò)調(diào)試復(fù)雜化。有人可能會提出一種混合網(wǎng)絡(luò)架構(gòu),該架構(gòu)將基于邊緣的可編程性與更智能但固定的核心路由器相結(jié)合。這樣的體系結(jié)構(gòu)仍然將所有可編程性置于邊緣,但是通過少量固定功能擴(kuò)展了核心路由器,以支持來自邊緣的可編程性。這種方法的示例包括通用數(shù)據(jù)包調(diào)度和帶內(nèi)網(wǎng)絡(luò)遙測,它們通過細(xì)粒度的優(yōu)先級隊(duì)列擴(kuò)展了路由器,并且能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論