2001年7月18日,一列貨運列車在通過巴爾的摩市中心霍華德大街的地下隧道時出軌,導(dǎo)致2萬升鹽酸泄露,引起了火災(zāi)。這次火災(zāi)破壞了美國8大互聯(lián)網(wǎng)供應(yīng)商名下的光纜。隨后,美國互聯(lián)網(wǎng)關(guān)鍵設(shè)施的運營商Verizon通訊公司與其兩座運營大樓之間的連接中斷,與其他幾家運營商的網(wǎng)絡(luò)之間的連接也告癱瘓。在此后的很多個小時里,美國全國的互聯(lián)網(wǎng)通訊慢得像蝸牛一樣。一名維修承包商告訴記者,"那條隧道就好像是光纜世界中的I-95高速公路(美國東海岸主要的高速公路)一樣,是一個終生難遇的弱點。"
可是,八年來互聯(lián)網(wǎng)領(lǐng)域發(fā)生的林林總總反復(fù)證明,互聯(lián)網(wǎng)比人們想象的要脆弱得多。在全世界幾十個或幾百個地方,這個網(wǎng)絡(luò)的脆弱都顯而易見,看起來它就像是命懸一線。
今天,這樣嚴重的故障能夠造成的破壞要比2001年的時候大得多。互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施大多已經(jīng)有數(shù)十年的歷史了,亟需升級換代。不過,很明顯,我們不能毀掉整個網(wǎng)絡(luò),從頭另來,建設(shè)一個全新的網(wǎng)絡(luò)。政府和電信公司都不可能為了應(yīng)對臨時出現(xiàn)的問題而付出鋪設(shè)額外的連接所需要的巨額成本。既然如此,我們怎樣才能保證網(wǎng)絡(luò)的自我恢復(fù)能力呢?
OpenFlow有望讓互聯(lián)網(wǎng)適應(yīng)不斷變化的負載
斯坦福大學(xué)的計算機科學(xué)家麥考恩(Nick McKeown)認為他找到了解決問題的方法。他相信,要建設(shè)一個更好的網(wǎng)絡(luò),關(guān)鍵在于一個平淡無奇的黑盒子--路由器。
路由器是互聯(lián)網(wǎng)流量的控制器。數(shù)百萬個路由器在發(fā)揮著作用,連接起組成互聯(lián)網(wǎng)的成千上萬個網(wǎng)絡(luò)。它們可以為網(wǎng)絡(luò)服務(wù)商引導(dǎo)巨大的訪問流量,也可以僅僅提供少數(shù)計算機之間的連接。它們根據(jù)數(shù)據(jù)包檢查訪問者的地址,引導(dǎo)他們到達正確的訪問目的地,并且規(guī)定他們可以沿著怎樣的物理路徑到達那里。當連接中斷時,它們在幫助數(shù)據(jù)改道繞過斷點上起到了至關(guān)重要的作用。
但是眼下,路由器還不是解決問題的方法,它還是問題的組成部分。一方面,發(fā)現(xiàn)一條繞過阻塞的的路徑可能要花上不少時間。在這段時間里,網(wǎng)絡(luò)傳輸擁擠造成網(wǎng)絡(luò)堵塞嚴重,很多數(shù)據(jù)直接就被丟棄了。
雖然這些問題的解決方案有很多,但是我們沒有辦法對這些方案進行測試。路由器軟件的任何更新都應(yīng)該首先在一個大型網(wǎng)絡(luò)上進行完全的測試。這個大型網(wǎng)絡(luò)必須有著與互聯(lián)網(wǎng)同等程度的復(fù)雜性,同時又獨立于互聯(lián)網(wǎng)之外。目前還沒有這樣的大型網(wǎng)絡(luò)。
即使你能夠?qū)@些方法進行測試,麥考恩說,你也很難把新的路由器軟件安裝到計算機上。因為每一個路由器大都已經(jīng)由路由器制造商們按照10到15年以前制定的國際標準進行了預(yù)編程。它們都有專用的電路和按固定模式操作的控制數(shù)據(jù)包路由方式的軟件,幾乎不能夠做任何改變。
現(xiàn)在,麥考恩正與他在斯坦福的同事Guru Parulkar一起,研發(fā)能夠一舉解決所有這些問題的方法。他們試圖開發(fā)出一個系統(tǒng),這個系統(tǒng)可以在非工作狀態(tài)下改變控制路由器的軟件,同時提供為安全地進行測試提供一個理想的環(huán)境。
他們的這個系統(tǒng)被命名為OpenFlow,已經(jīng)在斯坦福大學(xué)的校園網(wǎng)上運行了,第一個商業(yè)產(chǎn)品將在今年上市。OpenFlow并不能像麥考恩所希望的那樣解決或避免光纜的瓶頸問題,但是它將能夠讓互聯(lián)網(wǎng)適應(yīng)不斷變化的負載,根據(jù)網(wǎng)絡(luò)流量高峰的變化動態(tài)地調(diào)整路徑,給每一位上網(wǎng)瀏覽者帶來更流暢的感受,而不受地震、恐怖襲擊還是光纜損毀的影響。"我們正在嘗試讓網(wǎng)絡(luò)能夠不斷改進和提高。"麥考恩說。
如果有什么事情或方法能讓互聯(lián)網(wǎng)更有自我恢復(fù)的能力,那么這就是一件好事情,好消息。這對于數(shù)百萬通過上網(wǎng)來預(yù)訂度假產(chǎn)品或者使用twitter聯(lián)絡(luò)朋友的普通人來說是如此,對于經(jīng)濟來說更是如此。網(wǎng)絡(luò)故障對經(jīng)濟的影響可以非常巨大:現(xiàn)在每年的網(wǎng)上電子商務(wù)總值已經(jīng)超過7萬億美元,大約占全球GDP的12%。瑞士聯(lián)邦技術(shù)學(xué)院的研究人員在2005年的一項研究中計算出,如果切斷所有的互聯(lián)網(wǎng)連接,瑞士整個國家每周的損失將超過30億美元,大約占其GDP的1%。有人預(yù)計,到2010年,電子商務(wù)總值將占全球GDP的18%,網(wǎng)絡(luò)故障所造成的影響將持續(xù)增長。
除此以外,基礎(chǔ)設(shè)施中的關(guān)鍵部分,如電力和自來水設(shè)施,現(xiàn)在大都依賴于互聯(lián)網(wǎng)進行信息交換和遠程診斷。世界范圍內(nèi)的銀行和證券交易所也都通過互聯(lián)網(wǎng)和他們自己的網(wǎng)絡(luò)實現(xiàn)金融信息的交流。 交通系統(tǒng),如德國的鐵路系統(tǒng),也依賴互聯(lián)網(wǎng)來連接售票和咨詢系統(tǒng)。
事實上,隨著互聯(lián)網(wǎng)的訪問流量日益增長,網(wǎng)絡(luò)中斷并沒有引發(fā)更多的問題,這一點看起來非常的不可思議。這主要是因為互聯(lián)網(wǎng)依賴的是一些高度連接的節(jié)點,但是這些節(jié)點中大部分只有一些連接。這就意味著某一地區(qū)的網(wǎng)絡(luò)中斷對其他地方的網(wǎng)絡(luò)影響有限,而且調(diào)整訪問流量維持網(wǎng)絡(luò)繼續(xù)工作也不需要大費周章。
新網(wǎng)絡(luò)與"全球網(wǎng)絡(luò)創(chuàng)新環(huán)境"項目的啟動
路由器在這個過程中所起作用十分關(guān)鍵。一般來說,路由器對所接收到的數(shù)據(jù)包的地址進行檢查,然后根據(jù)預(yù)定的規(guī)則將它發(fā)送出去。比如說,兩組通向同一個地址的數(shù)據(jù)通常會通過同一條路徑傳輸出去。如果這條路徑因為某種原因不能暢通,那么路由器將會檢查和詢問它的鄰接路由器,查找還可以通行的路徑,然后計算出重新引導(dǎo)數(shù)據(jù)的最佳路徑。
為了完成這個任務(wù),路由器運行著一種復(fù)雜的運算算法,但是可能需要很長時間才能完成。由于測試和更新軟件的過程中存在的問題,技術(shù)改進只能以極度緩慢的速度進行。西雅圖華盛頓大學(xué)的湯姆?安德遜(Tom Anderson)說,任何改動都必須非常小心。"你必須確保你所做的事情不會帶來新的問題。"
到了二月份,這個問題便凸現(xiàn)出來。捷克共和國的一個路由器的軟件升級出現(xiàn)了一個小錯,隨后,這個小錯蔓延了整個互聯(lián)網(wǎng),導(dǎo)致整個網(wǎng)絡(luò)緩慢運行超過一小時。這種引發(fā)混亂的錯誤決不是第一次出現(xiàn),不過,由于沒有大規(guī)模的測試或"虛擬的網(wǎng)絡(luò)"進行實驗,這樣的錯誤難以避免。
2005年,美國自然科學(xué)基金會(NSF)請求一組研究人員解決這個問題。他們的解決方案非常大膽:建造一個大型的同現(xiàn)有互聯(lián)網(wǎng)一樣復(fù)雜的新網(wǎng)絡(luò),在這個新網(wǎng)絡(luò)上對新的概念進行測試和完善,使其臻于完善,進入實際應(yīng)用。如果這個設(shè)想看起來還不夠積極的話,他們還要求把這個網(wǎng)絡(luò)上的流量進行分割。他們的想法是分割出來的每一個部分都能在由同樣的路由器、切換器和電纜組成的基礎(chǔ)設(shè)施上工作,但是各個部分之間都能保持獨立。這樣的話,研究人員就可以同時對多個不同的技術(shù)方案進行實驗了。
NSF非常欣賞這個創(chuàng)意,它支付了1000萬美元作為這個被稱為"全球網(wǎng)絡(luò)創(chuàng)新環(huán)境"(GENI)項目的啟動資金。新的全國性網(wǎng)絡(luò)需要很多年時間才能完成,耗資將超過一億美元。不過現(xiàn)在,麥考恩和他的同事們已經(jīng)提出了一個計劃,不僅會讓GENI更快和更經(jīng)濟地進行部署,還允許這個項目可以大規(guī)模地使用現(xiàn)有的路由器、切換器和光纜。
OpenFlow是一切的關(guān)鍵。在制造商的合作下,一個小型的OpenFlow程序可以添加到幾乎所有的路由器中,并在其中像一個遙控器一樣控制著運算法和硬件的運作。通過為路由器的路由表,也就是指定處理流量的具體規(guī)則,創(chuàng)建一個界面,允許某一個程序控制路由器定向訪問的方式,做出新的路由決定并且執(zhí)行這個決定。
結(jié)果, OpenFlow賦予軟件工程師和開發(fā)人員為數(shù)據(jù)包創(chuàng)建路徑的能力。他們先在普通電腦上編寫運算法則,然后通過安全的連接把運算法則傳輸給路由器。通過控制流量表,OpenFlow將一個網(wǎng)絡(luò)分割成為任意數(shù)量的,相互獨立的部分。這樣,研究人員就可以在上面測試或者完善他們的想法了。有了這樣一個可以用作實驗的"多元的"虛擬網(wǎng)絡(luò),開啟互聯(lián)網(wǎng)的進化之路終于成為可能。
為了加快這個進程,麥考恩和他的團隊決定將他們的系統(tǒng)作為開源軟件,即他們軟件的用戶可以自由發(fā)布這個軟件。這無疑將鼓勵新思想的出現(xiàn),有助于這些新思想更快速地進入應(yīng)用。他說。"你將會從分享和建造的優(yōu)勢中受益,推動改革創(chuàng)新的速度",麥考恩說。"這在網(wǎng)絡(luò)中從未出現(xiàn)過。"
在斯坦福大學(xué)的校園網(wǎng)絡(luò)上的OpenFlow已經(jīng)為互聯(lián)網(wǎng)提供了測試的環(huán)境,其研發(fā)小組還計劃在不久的將來在另外六所美國大學(xué)的網(wǎng)絡(luò)上安裝這個系統(tǒng)。他們的目標是允許學(xué)生在虛擬網(wǎng)絡(luò)上實驗和嘗試新的想法。在已經(jīng)有一些制造商合作的情況下,研發(fā)小組希望能在年內(nèi)看到與OpenFlow兼容的商用路由器、互聯(lián)網(wǎng)切換器和無線AP(無線接入點或網(wǎng)絡(luò)橋接器)上市。
這個想法深深打動了GENI的項目主任艾略特(Chip Elliott),他現(xiàn)在已經(jīng)是OpenFlow的主要資助者了。他說,將網(wǎng)絡(luò)開放來進行試驗和創(chuàng)新,這實在是一種非常好的方式。其他的選擇執(zhí)行起來都要更加昂貴,更費時日。"我真正贊賞的是他們把這一切完全建立在快速的、經(jīng)濟和商用硬件上。"
然而,這個項目的成功將取決于是否讓主要制造商相信,OpenFlow的長期利好是值得他們進行短期投資的。為了說服他們,去年斯坦福大學(xué)的研發(fā)小組在斯坦福大學(xué)網(wǎng)絡(luò)上安裝了一個運行"趕盡殺絕(shoot-'em-up)"游戲的計算機作為"虛擬服務(wù)器"。多虧了使用OpenFlow編寫的路由軟件,使用筆記本電腦的玩家發(fā)現(xiàn)即使他們在整個校園的無線接入點之間移動,游戲仍然是流暢地進行。"沒有一個人掉線",麥考恩說。然后,在游戲進行的過程中,研究人員將虛擬服務(wù)器從斯坦福大學(xué)挪到了日本的一臺機器上。游戲仍然繼續(xù),沒有任何的中斷。"你感覺不到它已經(jīng)被移動了。這是你在目前的網(wǎng)絡(luò)上無法做到的事情。"
除了此類的平穩(wěn)的重新路由以外,OpenFlow還可以為網(wǎng)絡(luò)操作者提供一些重要的好處。它可以讓他們修改路由規(guī)則,使得特定類別的數(shù)據(jù)通過特定的路徑傳輸,例如,讓email的優(yōu)先級高于音樂下載,或者在一條路徑損壞的時候通過大量的替代路徑進行擴散。"它允許你為網(wǎng)絡(luò)增加新的容量、新的特性,而不需要對那個專有的盒子的內(nèi)部進行編程,"麥考恩說。"它本質(zhì)上是一種軟件定義的網(wǎng)絡(luò)。"
另外一個OpenFlow可以幫助處理的關(guān)鍵問題是網(wǎng)絡(luò)安全。在最近捷克發(fā)生路由器故障之后,一個專家組仔細檢查了路由器和切換器上的工作程序。他們發(fā)現(xiàn),每一個路由器制造商的每一版路由軟件都有脆弱點,可以使黑客入侵路由器。換句話說,互聯(lián)網(wǎng)的基本結(jié)構(gòu)正面臨風(fēng)險。
麥考恩承認,開始的時候,OpenFlow實際上降低了網(wǎng)絡(luò)的安全性,因為它提供了一個可供攻擊的路由器。但是隨著工程師們開發(fā)新的、更加安全的路由器編碼,在不減慢或者中斷通訊的情況下在現(xiàn)有的系統(tǒng)上進行測試,這種狀況將會迅速改變。這樣的話,當一個更新可以安裝的時候,補丁可以僅僅通過根據(jù)新的說明進行編程完成,而不需要將路由器離線然后重新手工編程。
OpenFlow最重要的優(yōu)點之一就是它能夠改變數(shù)據(jù)包通過網(wǎng)絡(luò)傳輸?shù)姆绞?。目前,電子郵件在兩太特定計算機之間的傳輸總是使用同一路徑。如果路徑上的任何一條連接失敗了,都會出現(xiàn)故障。所以很多研究團隊正在探索"多路徑"路由,韓國大田韓國先進科學(xué)技術(shù)研究所的Gyu Myoung Lee就是這種研究團隊中的一員。這些方法包括將一條消息分割成為多個數(shù)據(jù)包并且通過不同的路徑把它們送達目的地,并在那里重新組合起來。Lee相信,將網(wǎng)絡(luò)通訊更加均勻攤分,可以增加互聯(lián)網(wǎng)的可靠性,降低擁塞。多個多路徑方案,都有一定的競爭力,通過OpenFlow,他們可以在同一網(wǎng)絡(luò)上進行測試并將他們的優(yōu)點量化。
這樣的測試也許不會太遙遠。今年春天,又有紐約市的哥倫比亞大學(xué)和亞特蘭大的喬治亞理工學(xué)院開始向?qū)W生教授OpenFlow。與此同時,電子產(chǎn)品生產(chǎn)商NEC也宣布他們將開始制造可以使用OpenFlow的路由器。麥考恩預(yù)計,在五年內(nèi),一個由編寫開源軟件來重新定義互聯(lián)網(wǎng)工作方式的開發(fā)者組成的社區(qū),將興旺起來。他預(yù)計,互聯(lián)網(wǎng)數(shù)據(jù)中心將成為這個運動的前衛(wèi),因為他們有著海量的路由器并且習(xí)慣于編寫自己的軟件。"如果同樣是在這五年內(nèi),這個網(wǎng)絡(luò)本身變成了由軟件來定義的,"麥考恩說,"那樣也不錯。