作者:范桂颶,AWS Community Builder,EdgeGallery 開源社區(qū)成員。
自 2006 年以來,SDN 技術(shù)發(fā)展了近二十年,從狹義的OpenFlow SDN,到廣義的SDN,再到現(xiàn)如今的P4 完全可編程網(wǎng)絡(luò),期間的紛紛擾擾亂入迷人眼,偶爾讓人感到迷茫徘徊:網(wǎng)絡(luò)何以至此?網(wǎng)絡(luò)到底要如何發(fā)展?不妨讓我們從網(wǎng)絡(luò)的起源開始回顧歷史,撥開云霧看清網(wǎng)絡(luò)的初心與未來。
01
從冷戰(zhàn)背景說起
第二次世界大戰(zhàn)以后,當(dāng)時(shí)的美國(guó)和蘇聯(lián)同為世界上的 “超級(jí)大國(guó)”,為了爭(zhēng)奪世界霸權(quán),一道鐵幕在歐洲大陸落下,兩國(guó)及其盟國(guó)展開了數(shù)十年的斗爭(zhēng)。在這段時(shí)期,雖然雙方分歧和沖突嚴(yán)重,但都盡力避免新一輪的世界范圍戰(zhàn)爭(zhēng)(第三次世界大戰(zhàn)),其對(duì)抗通常通過局部代理戰(zhàn)爭(zhēng)、科技和軍備競(jìng)賽、太空競(jìng)賽、外交競(jìng)爭(zhēng)等 “冷”方式進(jìn)行,即“相互遏制,不動(dòng)武力”,因此稱之為 “冷戰(zhàn)”。
02
APRA 成立
1957 年 10 月 4 日,蘇聯(lián)發(fā)射了人類第一顆人造衛(wèi)星,斯普特尼克一號(hào)。這顆衛(wèi)星的升空,轟動(dòng)了整個(gè)世界,也讓當(dāng)時(shí)的美國(guó)政府震驚不已。他們恐懼,在日趨激烈的冷戰(zhàn)對(duì)抗中,自己已經(jīng)全面落后于蘇聯(lián)。?
為了扭轉(zhuǎn)這一局面,美國(guó)總統(tǒng)艾森豪威爾(Dwight D. Eisenhower)授權(quán)美國(guó)國(guó)防部于 1958 年 2 月組建了 APRA(Advanced Research Project Agency,美國(guó)國(guó)防部高級(jí)研究計(jì)劃局)科研部門。ARPA 的主要工作,就是研究如何將那些具有潛在軍事價(jià)值的 “黑科技”,應(yīng)用于軍事領(lǐng)域,包括彈道導(dǎo)彈防御、衛(wèi)星導(dǎo)航、核試驗(yàn)檢測(cè)等等。
1961 年 10 月,蘇聯(lián)成功發(fā)射 R-16 洲際導(dǎo)彈,結(jié)合 1949 年 8 月成功爆破的原子彈,這意味著美國(guó)本土正面臨遠(yuǎn)程核導(dǎo)彈打擊的威脅。為了保證自己能在蘇聯(lián)的第一輪核打擊下具備一定的生存和反擊能力,美國(guó)國(guó)防部授權(quán) APRA 研究一種 “分布式“ 的指揮系統(tǒng)。它由無數(shù)的節(jié)點(diǎn)組成,當(dāng)若干節(jié)點(diǎn)被摧毀后,其它節(jié)點(diǎn)仍能相互通信。
從此,ARPA 的核心項(xiàng)目之一就是建立一個(gè)可經(jīng)受敵軍打擊的軍用通信系統(tǒng)。
03
ARPANET 項(xiàng)目啟動(dòng)
這個(gè)任務(wù)最早交到 ARPA IPTO(Information Processing Techniques Office,信息處理技術(shù)辦公室)負(fù)責(zé)。
1966 年,來自 NASA(美國(guó)航空航天局)的羅伯特·泰勒(Robert Taylor),成為 ARPA IPTO 的第三任主管。羅伯特·泰勒在上任后考察了 IPTO 當(dāng)時(shí)構(gòu)建的一個(gè)小型通信網(wǎng)絡(luò)之后(由三個(gè)電傳打字機(jī)和三臺(tái)計(jì)算機(jī)組成),認(rèn)為不兼容的計(jì)算機(jī)通信沒有任何意義,應(yīng)該建立一個(gè)兼容的協(xié)議,允許所有終端之間互相通信。并很快就完成了新型通信網(wǎng)絡(luò)項(xiàng)目的內(nèi)部立項(xiàng),ARPA 將其命名為 ARPANET(阿帕網(wǎng))。
為了完成 ARPANET 項(xiàng)目,羅伯特·泰勒到處搜羅人才,其中包括:
??麻省理工學(xué)院(MIT)林肯實(shí)驗(yàn)室的拉里·羅伯茨(Lawrence G. Roberts);
??提出 “分布式通信理論” 的蘭德公司科學(xué)家保羅.巴蘭(P.Baran);
??美國(guó)加州大學(xué)洛杉磯分校(UCLA)的分組交換理論專家倫納德.克蘭羅克(L.Kleinrock);
其中,保羅.巴蘭的 “分布式通信理論” 提出了 2 個(gè)重要思想:
??網(wǎng)絡(luò)的控制權(quán)應(yīng)該完全分散;
??網(wǎng)絡(luò)應(yīng)該采用分組交換(Packet switching)替代電路交換(Circuit Switching)。
分布式通信理論的思想讓每個(gè)節(jié)點(diǎn)在進(jìn)行數(shù)據(jù)路由時(shí)都具備同等地位,這成為未來互聯(lián)網(wǎng)的最根本特征。
另外,拉里·羅伯茨(Larry Roberts)則被任命為 ARPANET 項(xiàng)目的項(xiàng)目經(jīng)理和首席架構(gòu)師。
1967 年 4 月,在美國(guó)密歇根州安娜堡召開的 ARPA IPTO PI 會(huì)議上,拉里·羅伯茨組織了有關(guān) ARPANET 設(shè)計(jì)方案的討論。不久后就發(fā)表第一篇關(guān)于 ARPANET 設(shè)計(jì)的論文《Multiple Computer Networks and Intercomputer Communication》(多計(jì)算機(jī)網(wǎng)絡(luò)和計(jì)算機(jī)之間的通信)。
在羅伯茨的設(shè)計(jì)中,主機(jī)不應(yīng)該處理數(shù)據(jù)路由的任務(wù),這個(gè)任務(wù)應(yīng)該由一個(gè)小型的廉價(jià)計(jì)算機(jī)來承擔(dān),命名為 IMP(Interface Message Processor,接口信號(hào)處理機(jī))。
IMP 的作用是連接、調(diào)度和管理。主機(jī)把數(shù)據(jù)包發(fā)給 IMP,IMP 查看目標(biāo)地址,或者把它傳遞到本地連接的主機(jī),或者傳遞給另外一個(gè) IMP。有了它,大型主機(jī)就不必 “親自” 參與聯(lián)網(wǎng),從根本上解決了計(jì)算機(jī)系統(tǒng)不兼容的問題。后來,人們普遍將 IMP 視為路由器的雛形。
為了防止數(shù)據(jù)包丟失,Sender IMP 會(huì)暫存數(shù)據(jù)包,直到獲得 Receiver IMP 的 ACK 確認(rèn)為止,如果沒能收到確認(rèn),它就重新發(fā)送。在那時(shí),ACK 重傳機(jī)制還是由中間路由節(jié)點(diǎn)來完成的,后面才逐步演進(jìn)到由主機(jī) TCP/IP 協(xié)議棧來完成。
1968 年,拉里·羅伯茨在研究報(bào)告《資源共享的計(jì)算機(jī)網(wǎng)絡(luò)》中,著力闡述了讓 ARPA 的計(jì)算機(jī)互相連接,從而使大家分享彼此的研究成果。同年夏天,美國(guó)國(guó)防部正式啟動(dòng)了 ARPANET 項(xiàng)目的商業(yè)招標(biāo)。
04
ARPANET 的誕生
1969 年 1 月,來自馬薩諸塞州坎布里奇市的 BBN(Bolt Beranek and Newman Inc.)公司贏得了這個(gè)價(jià)值 100 萬美元的合同。同年,ARPA 建立了 IMP 的研發(fā)測(cè)試中心,IMP 的基礎(chǔ)硬件是配有 12K Memory 的 Honeywell DDP-516 小型計(jì)算機(jī)。
??IMP 設(shè)備內(nèi)部
??IMP 設(shè)備面板
項(xiàng)目的第一階段,拉里·羅伯茨計(jì)劃在美國(guó)西南部建立一個(gè)四節(jié)點(diǎn)的網(wǎng)絡(luò)。節(jié)點(diǎn)分別是加州大學(xué)洛杉磯分校、斯坦福大學(xué)研究學(xué)院、加州大學(xué)圣巴巴拉分校和猶他州大學(xué)的 4 臺(tái)大型計(jì)算機(jī)。
這 4 個(gè)節(jié)點(diǎn)之間,采用分組交換技術(shù),通過專門的 IMP 設(shè)備和由 AT&T 公司提供的、速率為 50kbps 的通信線路進(jìn)行連接。
1969 年 8 月 30 日,來自 BBN 公司的第一臺(tái) IMP 運(yùn)抵加州大學(xué)洛杉磯分校。校內(nèi)的倫納德.克蘭羅克教授帶著 40 多名工程技術(shù)人員和研究生進(jìn)行安裝和調(diào)試。
此后不久,被公認(rèn)對(duì) ARPANET 建成作出了巨大貢獻(xiàn)的,來自 BBN 公司的鮑伯·卡恩(Bob Kahn,也稱為:羅伯特·卡恩,Robert Elliot Kahn)也來到了加州大學(xué)洛杉磯分校,加入到 ARPANET 項(xiàng)目中。
??加州大學(xué)洛杉磯分?,F(xiàn)場(chǎng)機(jī)房
1969 年 10 月,第二臺(tái) IMP 運(yùn)抵斯坦福大學(xué)研究院。
10 月 29 日晚,倫納德.克蘭羅克教授安排他的助理、UCLA 大學(xué)本科生查理·克萊恩(Charley Kline)坐在 IMP 終端前,與 SRI 終端操作員進(jìn)行對(duì)接。當(dāng)時(shí),查理·克萊恩戴著頭戴式耳機(jī)和麥克風(fēng),以便通過長(zhǎng)途電話隨時(shí)與對(duì)方聯(lián)系。
據(jù)查理·克萊恩回憶,倫納德.克蘭羅克教授那天讓他首先傳輸 LOGIN(登錄)這 5 個(gè)英文字母 ,以確認(rèn)分組交換技術(shù)的傳輸效果。根據(jù)事前約定,他只需要鍵入 LOG 這 3 個(gè)字母?jìng)魉统鋈?,然后斯坦福那邊的主機(jī)就會(huì)自動(dòng)產(chǎn)生 IN 這兩個(gè)字母,合成為 LOGIN。以此驗(yàn)證 2 個(gè)節(jié)點(diǎn)之間的通信成功。?
隨后,1969 年 11 月,第三臺(tái) IMP 抵達(dá)加州大學(xué)圣巴巴拉分校。
1969 年 12 月,最后一臺(tái) IMP 在第四節(jié)點(diǎn)猶他大學(xué)安裝成功。
至此,第一個(gè) ARPANET 就在 1969 年誕生了,將加利福尼亞州大學(xué)洛杉磯分校、加州大學(xué)圣巴巴拉分校、斯坦福大學(xué)、猶他州大學(xué)四所大學(xué)的 4 臺(tái)大型計(jì)算機(jī)進(jìn)行了互聯(lián)。人類社會(huì)開始進(jìn)入 “網(wǎng)絡(luò)時(shí)代”。?
05
TCP/IP 協(xié)議與 Internet 的誕生
在運(yùn)行 ARPANET 不久后,大家才發(fā)現(xiàn)各個(gè) IMP 在進(jìn)行連接的時(shí)候,需要考慮使用一種 4 臺(tái) IMP 都能夠統(tǒng)一識(shí)別的信號(hào)來作為開發(fā)和關(guān)閉通信管道,否則這些 IMP 不會(huì)知道什么時(shí)候應(yīng)該接收信號(hào),什么時(shí)候該結(jié)束。
對(duì)于這個(gè)問題,實(shí)際上在 1968 年 ARPANET 項(xiàng)目剛啟動(dòng)的時(shí)候,拉里·羅伯茨就成立了一個(gè)專門的研究小組,名為 NWG(Network Working Group),由 史蒂夫·克羅克(Steve Crocker)擔(dān)任組長(zhǎng)。這個(gè)小組試圖通過編寫主機(jī)與主機(jī)之間的通信軟件來解決這個(gè)問題。
1970 年 12 月,NWG 通過軟件的方式實(shí)現(xiàn)了最初的 ARPANET 通信協(xié)議,稱為 NCP(網(wǎng)絡(luò)控制協(xié)議)。
1972 年,鮑伯·卡恩在國(guó)際計(jì)算機(jī)通信大會(huì)(ICCC)上成功演示了 ARPANET 網(wǎng)絡(luò),那是 ARPANET 的首次公開亮相。經(jīng)過幾年的發(fā)展,在當(dāng)年 ARPANET 已經(jīng)擁有了 40 個(gè)節(jié)點(diǎn),E-mail、FTP 和 Telnet 是當(dāng)時(shí)最主要的網(wǎng)絡(luò)應(yīng)用。尤其是 E-mail,占據(jù)了 75% 的流量。
在 ARPANET 成功的激勵(lì)下,計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域開始漸漸出現(xiàn)了其他的一些網(wǎng)絡(luò)類型,例如:夏威夷建立了無線電網(wǎng)絡(luò),硅谷發(fā)明了以太網(wǎng)絡(luò),太空衛(wèi)星也組建了衛(wèi)星網(wǎng)絡(luò)等等。
1973 年,ARPANET 通過衛(wèi)星通信實(shí)現(xiàn)了與夏威夷、英國(guó)倫敦大學(xué)和挪威皇家雷達(dá)機(jī)構(gòu)的聯(lián)網(wǎng)。ARPANET 從美國(guó)本地互聯(lián)網(wǎng)絡(luò)逐漸進(jìn)化成為了一張國(guó)際性的互聯(lián)網(wǎng)絡(luò)。
隨著 ARPANET 的發(fā)展和用戶對(duì)網(wǎng)絡(luò)需求的不斷提高,人們開始發(fā)現(xiàn) NCP 協(xié)議存在著很多的缺點(diǎn),比如 NCP 只能在同構(gòu)環(huán)境中運(yùn)行(指網(wǎng)絡(luò)上的所有計(jì)算機(jī)都運(yùn)行著相同的操作系統(tǒng)),又比如 NCP 支持的主機(jī)數(shù)量有限。對(duì)于一個(gè)分布廣泛的網(wǎng)絡(luò)而言,這些缺陷就必然成為了發(fā)展路上最大障礙。
1973 年,針對(duì) NCP 協(xié)議存在的問題,鮑伯·卡恩認(rèn)識(shí)到只有在深入理解了各種操作系統(tǒng)細(xì)節(jié)的基礎(chǔ)上,才能建立一種對(duì)各種操作系統(tǒng)都使用的協(xié)議。于是鮑伯·卡恩提出了 “開放的網(wǎng)絡(luò)架構(gòu)” 思想。同年,來自斯坦福大學(xué)的溫頓.瑟夫(Vinton G. Cerf)加入 ARPA,并負(fù)責(zé)領(lǐng)導(dǎo)基于 NWG 改建的 INWG 工作組。順理成章的,鮑伯·卡恩邀請(qǐng)溫頓.瑟夫一起研究新協(xié)議的各個(gè)細(xì)節(jié),并在不久就共同提出了 TCP 傳輸協(xié)議。
為了驗(yàn)證 TCP 協(xié)議的可用性,INWG 開始試驗(yàn)基于 TCP 協(xié)議 Client 軟件將一個(gè)數(shù)據(jù)發(fā)送到距離 10 萬公里外的 Server。結(jié)果觀察數(shù)據(jù)在傳輸過程中沒有任何丟失,TCP 協(xié)議的可行性得到了驗(yàn)證,也一度引起相關(guān)領(lǐng)域的廣泛關(guān)注。
1977 年,APRA 改建的 DARPA(美國(guó)國(guó)防部高級(jí)研究計(jì)劃署)與 BBN 公司、斯坦福大學(xué)和倫敦大學(xué)學(xué)院簽訂商業(yè)合同,正式開始在不同的 CPU 硬件平臺(tái)上開發(fā) TCP 協(xié)議的驗(yàn)證版本:TCPv1 和 TCPv2。
隨后 1977 年 11 月,鮑伯·卡恩和溫頓.瑟夫給予 TCPv2 完成了一個(gè)具有里程碑意義的實(shí)驗(yàn)。數(shù)據(jù)包從一輛載有無線傳輸器的箱式貨車發(fā)出,進(jìn)入 APRANET,然后通過專用衛(wèi)星鏈路到達(dá)倫敦,再通過衛(wèi)星傳輸網(wǎng)絡(luò),到達(dá) APRANET, 最后傳回南加州大學(xué)信息科學(xué)研究所,行程 9.4 萬英里,沒有丟失一個(gè)比特的數(shù)據(jù)信息。
同時(shí)這也讓很多組織機(jī)構(gòu)見識(shí)到了計(jì)算機(jī)聯(lián)網(wǎng)的重要性,紛紛開展研究。全球涌現(xiàn)了大量的新型網(wǎng)絡(luò),例如:計(jì)算機(jī)科學(xué)研究網(wǎng)絡(luò) CSNET、加拿大網(wǎng)絡(luò) CDnet、因時(shí)網(wǎng) BITNET 等。
1978 年,溫頓·瑟夫、鮑伯·卡恩、丹尼·科恩(Danny Cohen)和約翰·普斯特爾(Jon Postel)合力將 TCP 協(xié)議從分層思想的角度劃分為 2 個(gè)協(xié)議,即:
1、傳輸層的 TCP 協(xié)議,負(fù)責(zé)可靠傳輸。
2、網(wǎng)絡(luò)層的 IP 協(xié)議,負(fù)責(zé)在不同的網(wǎng)絡(luò)之間進(jìn)行互聯(lián)。
它們合稱 TCP/IPv3,并在不久的將來演進(jìn)為穩(wěn)定版本 TCP/IPv4。
??溫頓.瑟夫
? TCP/IP,現(xiàn)代 Internet 的基石。
1980 年,DARPA 開始研究如何將不同的網(wǎng)絡(luò)類型連接起來,并啟動(dòng)了 The Interneting Project(互聯(lián)網(wǎng)技術(shù))項(xiàng)目。這個(gè)項(xiàng)目讓剛剛嶄露頭角的 TCP/IPv4 協(xié)議獲得了施展空間。
1981 年,DARPA 資助 BBN 公司和加州大學(xué)伯克利分校,把 TCP/IP 協(xié)議實(shí)現(xiàn)到 UNIX 操作系統(tǒng)。值得一提的是,當(dāng)時(shí)還在上研究生的天才程序員 Bill Joy 對(duì) TCP/IP 協(xié)議深感興趣,但卻對(duì) BBN 提供的代碼深痛欲絕。于是 Bill Joy 另起爐灶,只用了幾天時(shí)間就在 BSD UNIX 發(fā)行版中實(shí)現(xiàn)了一個(gè)高性能的 TCP/IP 協(xié)議棧。當(dāng)然那時(shí)的 TCP/IP 協(xié)議很很簡(jiǎn)單,但 BSD Socket 直到今天還在發(fā)揮著余熱。
1982 年,ARPANET 開始采用 TCP/IP 協(xié)議替代 NCP 協(xié)議。
1983 年,美國(guó)國(guó)防部將 ARPANET 劃分為軍用和民用兩部分。
1984 年, TCP/IP 協(xié)議得到美國(guó)國(guó)防部的肯定,成為計(jì)算機(jī)領(lǐng)域共同遵守的一個(gè)主流標(biāo)準(zhǔn)。
至此,基于 IP(Internet Protocol)協(xié)議標(biāo)準(zhǔn)的 Internet 誕生了。鮑伯·卡恩和溫頓·瑟夫也因此被譽(yù)為 “互聯(lián)網(wǎng)之父”。
實(shí)際上,TCP/IP 協(xié)議的發(fā)展也并非一帆風(fēng)順,其中最大的競(jìng)爭(zhēng)對(duì)手就是國(guó)際標(biāo)準(zhǔn)化組織(ISO)。ISO 在制定國(guó)際化標(biāo)準(zhǔn)上經(jīng)驗(yàn)十足,很快就提出了 OSI 七層模型,并大力推廣。
面對(duì)挑戰(zhàn),那時(shí)溫頓.瑟夫努力勸說讓 IBM、DEC、HP 等主機(jī)大廠支持 TCP/IP 協(xié)議,但都遭到了拒絕。因?yàn)樵谒麄兛磥?TCP/IP 只是一屆研究項(xiàng)目,無力與在商業(yè)社會(huì)中獲得過巨大成功的 ISO 抗衡。
而美國(guó)國(guó)防部的應(yīng)對(duì)策略則是將 TCP/IP 協(xié)議與 UNIX 系統(tǒng)、C 語言捆綁在一起,并由 AT&T 向美國(guó)各個(gè)大學(xué)發(fā)放非商業(yè)許可證。這樣才迫使這些跟 UNIX 系統(tǒng)有緊密聯(lián)系的企業(yè)轉(zhuǎn)向 TCP/IP 的懷抱。這為 UNIX 系統(tǒng)、C 語言、TCP/IP 協(xié)議的發(fā)展拉開了序幕,它們分別在操作系統(tǒng)、編程語言、網(wǎng)絡(luò)協(xié)議這 3 個(gè)關(guān)鍵領(lǐng)域影響至今。
1985 年,TCP/IP 協(xié)議棧成為 UNIX 操作系統(tǒng)密不可分的組成部分。UNIX 的廣泛傳播也極大助力了 TCP/IP 的發(fā)展。后來,幾乎所有的操作系統(tǒng)都開始支持 TCP/IP 協(xié)議。經(jīng)典的 TCP/IP 五層模型已成氣候。
后來,美國(guó)國(guó)家科學(xué)基金會(huì)(NSF)自己出資,基于 TCP/IP 協(xié)議,建立完全屬于自己的 NSFnet 廣域網(wǎng)。
NSFnet 的發(fā)展非常迅速,很快將全美各地的大學(xué)、政府和私人科研機(jī)構(gòu)連接起來。同時(shí),NSFnet 的網(wǎng)絡(luò)速度也很快,比當(dāng)時(shí)民用的 ARPANET 要快 25 倍以上。漸漸地,NSFnet 開始取代 ARPANET,成為 Internet 的主干網(wǎng)。
80 年代末,連接到 NSFnet 的計(jì)算機(jī)數(shù)量遠(yuǎn)遠(yuǎn)超過了 ARPANET 用戶的數(shù)量。
直至 1990 年 6 月 1 日,ARPANET 正式退出歷史舞臺(tái)。
1990 年 9 月,由 Merit、IBM 和 MCI 公司聯(lián)合建立了一個(gè)非盈利的組織 ANS(Advanced Network&Science Inc.,先進(jìn)網(wǎng)絡(luò)科學(xué)公司)。ANS 的目的是建立一個(gè)全美范圍的 T3 級(jí)主干網(wǎng),能以 45Mbps 的速率傳送數(shù)據(jù)。
1991 年底,NSFnet 主干網(wǎng)與 ANS T3 級(jí)主干網(wǎng)進(jìn)行互聯(lián)互通,并宣布開始對(duì)全社會(huì)進(jìn)行商業(yè)運(yùn)營(yíng)。
后來大家都知道,網(wǎng)絡(luò)連接數(shù)量開始指數(shù)級(jí)增長(zhǎng)。Internet 真正變成了全球互聯(lián)網(wǎng),開始走進(jìn)人們的生活。
1994 年,舉辦互聯(lián)網(wǎng)大會(huì)。
??前排從左到右:Dave Walden, Barry Wessler, Truett Thach, Larry Roberts, Len Kleinrock, Bob Taylor, Roland Bryan, Bob Kahn.
??后排從左到右:Marty Thrope, Ben Barker, Vint Cerf, Severo Ornstein, Frank Heart, Jon Postel, Doug Englebart, and Steve Crocker.
1998 年,美國(guó)成立非營(yíng)利性民間組織 ICANN(Internet Corporation for Assigned Names and Numbers,互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu)),它由商務(wù)部的國(guó)家電信和信息管理局監(jiān)督,負(fù)責(zé)全球互聯(lián)網(wǎng)域名系統(tǒng)、根服務(wù)器系統(tǒng)、IP 地址資源的協(xié)調(diào)、管理和分配。由 ICANN 的下屬機(jī)構(gòu) IANA(Internet Assigned Numbers Authority,互聯(lián)網(wǎng)號(hào)碼分配機(jī)構(gòu))負(fù)責(zé)管理全球互聯(lián)網(wǎng)域名的根服務(wù)器。
2014 年,ICANN決定將監(jiān)管權(quán)移交給一個(gè)由多方利益相關(guān)者管理的獨(dú)立機(jī)構(gòu)。
2016 年 10 月 1 日,ICANN 表示,正式將互聯(lián)網(wǎng)的控制權(quán)移交給一個(gè)非盈利的全球互聯(lián)網(wǎng)多方利益相關(guān)者組織。這標(biāo)志著美國(guó)結(jié)束對(duì)這一互聯(lián)網(wǎng)核心資源近 20 年的單邊壟斷,對(duì)于每一個(gè)網(wǎng)民來說都是一大喜事。
06
HTTP 協(xié)議與 Web 世界的誕生
再回到 1989 年,當(dāng)時(shí)在瑞士日內(nèi)瓦 CERN(核子研究中心)工作的 Tim Berners-Lee(蒂姆·伯納斯·李)在論文中提出了一種可以在 Internet 上構(gòu)建超鏈接文檔的技術(shù),即 HTTP/Web 技術(shù),并提出了 3 點(diǎn)基本要素:
1、URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)符):Internel 中的統(tǒng)一資源標(biāo)識(shí)符,用于唯一標(biāo)識(shí)一個(gè) Internet 上的資源。
2、HTML(Hyper Text Markup Language,超文本標(biāo)記語言):使用 HTML 標(biāo)簽來構(gòu)建超文本文檔,HTML 標(biāo)簽將文字,圖形、動(dòng)畫、聲音、表格、鏈接等內(nèi)容格式進(jìn)行了統(tǒng)一。
3、HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議):最初設(shè)計(jì)來用于傳輸 HTML 的協(xié)議,處于 TCP/IP 應(yīng)用層,傳輸?shù)臄?shù)據(jù)主體稱為 Message(消息),基于 TCP 傳輸協(xié)議。
Tim Berners-Lee 所定義的 Resource,指的是 Internet 上的一個(gè)實(shí)體,它可以是一段文本、一張圖片、一首歌曲、一種服務(wù)等。URI 就是在 Internet 中標(biāo)識(shí)一個(gè) Resource 的唯一 ID,包含了 URL 和 URN 這 2 種形式。
? URL(Uniform Resource Loader,統(tǒng)一資源定位符):側(cè)重于 “定位”,類似一個(gè)地址,XX省XX市XX區(qū)XX單元XX室。
? URN(Uniform Resource Name,統(tǒng)一資源名稱):側(cè)重于 “命名”,類似身份證號(hào)。
由于 URL 更具有空間層次設(shè)計(jì),所以如今已經(jīng)成為了主流,但開發(fā)者仍應(yīng)該清晰區(qū)分兩者。?
1990 年 12 月 25 日,Tim Berners-Lee 和羅伯特·卡里奧一起實(shí)現(xiàn)了基于 HTTP 協(xié)議的 Web Server,并通過 Internet 成功完成了 HTTP Client 和 Web Server 的第一次通信。
1991 年 8 月 6 日,Tim Berners-Lee 基于 HTTP 和 HTML 設(shè)計(jì)并開發(fā)了第一個(gè)網(wǎng)頁(yè)瀏覽器,并發(fā)布了世界上第一個(gè) Web 網(wǎng)站。它被稱為 The First Website(第一個(gè)網(wǎng)站)或 InfoMesh(信息管理系統(tǒng)項(xiàng)目),運(yùn)行在 CERN 的服務(wù)器上,旨在幫助研究人員共享信息和文獻(xiàn)?;?HTML,該網(wǎng)站可以提供一些鏈接,讓用戶通過單擊超鏈接跳轉(zhuǎn)到其他頁(yè)面或文檔,這種超鏈接的設(shè)計(jì) Web 技術(shù)最重要的創(chuàng)新之一。
同年,Tim Berners-Lee 正式提出了 WWW(World Wide Web,萬維網(wǎng))的概念。
1992 年,幾個(gè) Internet 組織合并成立統(tǒng)一的 ISOC(因特網(wǎng)協(xié)會(huì)),此時(shí)的 Internet 已經(jīng)注冊(cè)了超過 100 萬臺(tái)主機(jī),并持續(xù)指數(shù)級(jí)瘋狂增長(zhǎng)。
1994 年 10 月 1 日,Tim Berners-Lee 創(chuàng)建了非營(yíng)利性的 W3C(World Wide Web Consortium,萬維網(wǎng)聯(lián)盟),邀集 Microsoft、 Netscape、 Sun、Apple、IBM 等共 155 家互聯(lián)網(wǎng)上的著名公司。由 Tim Berners-Lee 擔(dān)任 W3C 的主席,致力推動(dòng) WWW 協(xié)議的標(biāo)準(zhǔn)化,并進(jìn)一步推動(dòng) Web 技術(shù)的發(fā)展。
在當(dāng)時(shí)的瀏覽器熱潮下,Tim Berners-Lee 也曾考慮過成立一家叫做 Websoft 的公司做網(wǎng)頁(yè)瀏覽器。但很快他就放棄了,他擔(dān)心這么做會(huì)導(dǎo)致激烈的市場(chǎng)競(jìng)爭(zhēng),開發(fā)出技術(shù)上互不兼容的瀏覽器、最終把 WWW 割裂成一個(gè)個(gè)利益集團(tuán)。
??Tim Berners-Lee,萬維網(wǎng)之父
最初,由于那時(shí)候網(wǎng)絡(luò)資源匱乏,HTTP/0.9 版本相對(duì)簡(jiǎn)單,采用純文本格式,且設(shè)置為只讀,所以當(dāng)時(shí)整個(gè) HTTP Request Message 只有一行,比如:GET www.leautolink.com。只能使用 GET 的方式從 Web 服務(wù)器獲得 HTML 文檔,響應(yīng)以后則關(guān)閉。響應(yīng)中也只包含了文檔本身,無響應(yīng)頭,無錯(cuò)誤碼,無狀態(tài)碼。
1995 年,由 Brian Behlendorf 發(fā)布了基于 HTTP/0.9 的 Apache HTTP Server 開源項(xiàng)目。同年,網(wǎng)景和微軟開啟瀏覽器大戰(zhàn),但好在 Tim Berners-Lee 擔(dān)心的 “撕裂“ 并未發(fā)生,HTTP 協(xié)議已經(jīng)逐成氣候。
隨著 Apache HTTP Server 的誕生,以及同時(shí)期其他的多媒體等技術(shù)發(fā)展迅速,都進(jìn)一步促使 HTTP 協(xié)議的演進(jìn)。緊跟著 1996 年,HTTP/1.0 發(fā)布,更好的支持采用圖文網(wǎng)頁(yè)形式。具體而言增加了以下幾個(gè)特性:
增加 HTTP Header 格式。
增加協(xié)議版本號(hào)。
增加 POST 方法。
增加 HEAD 方法。
增加文件處理類型。
增加響應(yīng)狀態(tài)碼。
提供國(guó)際化支持。
經(jīng)過幾年的發(fā)展,1999 年,HTTP/1.1 發(fā)布并成為標(biāo)準(zhǔn),寫入 RFC。至此,HTTP 協(xié)議已然成為了 Web 世界的奠基石。
增加 PUT 等方法。
增加緩存處理機(jī)制:在 Header 增加了如:Entity tag,If-Unmodified-Since,If-Match,If-None-Match 等可供選擇的 Request Body 來控制緩存策略。
增加帶寬優(yōu)化機(jī)制:在 Header 增加了 Range 字段,它允許只請(qǐng)求資源的某個(gè)部分,而不是一攬子返回,得以更充分地利用帶寬和網(wǎng)絡(luò)連接。
增加錯(cuò)誤通知的管理:新增了 24 個(gè)錯(cuò)誤狀態(tài)響應(yīng)碼。
增加 Host 虛擬主機(jī):支持 HTTP Server 虛擬主機(jī)技術(shù)??梢栽谝慌_(tái)物理服務(wù)器上存在多個(gè)虛擬主機(jī)(Multi-homed Web Servers),并且它們共享一個(gè) IP 地址,通過不同 Hostname 區(qū)分。
增加長(zhǎng)連接機(jī)制:默認(rèn)使用長(zhǎng)連接,應(yīng)對(duì)日益復(fù)雜的網(wǎng)頁(yè)(網(wǎng)頁(yè)內(nèi)的圖片、腳本越來越多了)。
等等。
隨著 HTTP/1.1 被納入 RFC 標(biāo)準(zhǔn),同在 1992 年,由 HTTP/1.0 和 1.1 的主要設(shè)計(jì)者 Roy Thomas Fielding 宣布成立了 Apache 軟件基金會(huì),并作為 Apache 基金會(huì)的第一任主席,從此,Apache Web Server 和 HTTP 協(xié)議攜手共生共榮。 除了 HTTP 協(xié)議,Apache 軟件基金會(huì)旨在促進(jìn)各種開源軟件項(xiàng)目的開發(fā)和使用,其中 Apache HTTP Server 作為首個(gè)核心項(xiàng)目。這為 Apache HTTP Server 的長(zhǎng)期發(fā)展奠定了良好的基礎(chǔ),同時(shí)也締造了繁榮的開源生態(tài)系統(tǒng),孵化了包括:Tomcat、Hadoop、Lucene、OpenOffice 等開源項(xiàng)目。 ? 至今而至,Apache 軟件基金會(huì)已成為了全球最大的開源組織之一。
07
REST 系統(tǒng)架構(gòu)的誕生與 API 經(jīng)濟(jì)的騰飛
2000 年,Apache 基金會(huì)的第一任主席 Roy Thomas Fielding 在博士論文《Architectural Styles and the Design of Network-based Software Architectures(架構(gòu)風(fēng)格和基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計(jì))》中提出了 REST(Representational State Transfer,表現(xiàn)層狀態(tài)轉(zhuǎn)移)的理念。
顧名思義,Roy Thomas Fielding 在這篇論文中主要討論的是:如何在符合架構(gòu)原理的前提下,理解和評(píng)估以網(wǎng)絡(luò)為基礎(chǔ)的應(yīng)用軟件的架構(gòu)設(shè)計(jì),得到一個(gè)功能強(qiáng)、性能好、適宜通信的架構(gòu)。
可見,REST、HTTP 協(xié)議、Web 服務(wù)器,這 3 者之間天生關(guān)系緊密。所以,開發(fā)者要清晰理解 Representational State Transfer 含義,應(yīng)該先對(duì) HTTP 協(xié)議有一個(gè)清晰的認(rèn)識(shí)。
通過拆詞法,嘗試對(duì) Representational State Transfer 的含義進(jìn)行以下解構(gòu):
??Representational(表現(xiàn)層):即 Resources 的表現(xiàn)層。上述我們知道 Resource 是一種抽象,它具有多種表現(xiàn)形式,而最終把 Resource 具體呈現(xiàn)出來的形式,就叫做它的 “表現(xiàn)層”。例如:一個(gè)文本資源可以使用 TEXT 格式表現(xiàn),也可以使用 HTML、XML、JSON 等格式表現(xiàn)。在 HTTP/1.0 中,Roy Thomas Fielding 為 HTTP Header 設(shè)計(jì)了 Accept/Content-Type 字段來描述這個(gè) Resource 的 Representational。
所以,需要注意的是:URI 僅用于標(biāo)識(shí)一個(gè) Resource,而不應(yīng)該在 URI 中描述表現(xiàn)層的內(nèi)容,一個(gè)優(yōu)雅的 RESTful API 應(yīng)該使用 Accept/Content-Type 字段來描述 Resource 的表現(xiàn)層。
Accept:?Application/json
Content-Type:?Application/json
??State Transfer(狀態(tài)轉(zhuǎn)移):Resource 作為 C/S 交互的實(shí)體,必然存在著狀態(tài)的變化,然而 HTTP 是一種 Stateless(無狀態(tài))的協(xié)議(不傳輸資源狀態(tài)的描述)。這意味著:Resource 的狀態(tài)都保存在 Server,而 Client 想要操作某個(gè) Resource(改變其狀態(tài))就必須通過某種手段讓 Resource 在 Server 上發(fā)生狀態(tài)的 “轉(zhuǎn)移”,而且這種 “轉(zhuǎn)移” 必然是建立在 Resource 的 “表現(xiàn)層” 之上的,例如:創(chuàng)建一個(gè)圖片資源、刪除一個(gè)圖片資源;啟動(dòng)一個(gè)服務(wù),關(guān)閉一個(gè)服務(wù)。故稱之為 "表現(xiàn)層狀態(tài)轉(zhuǎn)移"。
Client 可以使用的手段就是 Roy Thomas Fielding 在 HTTP 請(qǐng)求行中設(shè)計(jì)的 Request Methods(HTTP/0.9 引入 GET,HTTP/1.0 引入 POST、HEAD,HTTP/1.1 引入 PUT 等)。
# Client
GET?/resource
Accept:?text/html
# Server
Content-Type:?text/html;charset=utf-8
Response code: 200
至此,我們回頭再看,REST 討論的其實(shí)是一個(gè):如何將軟件和網(wǎng)絡(luò)兩個(gè)領(lǐng)域進(jìn)行交叉融合,繼而得到一個(gè)功能強(qiáng)、性能好、適宜通信的互聯(lián)網(wǎng)軟件架構(gòu)的問題。
2006 年,正值 AWS 孵化的初期,時(shí)任 Amazon CTO Werner Vogels 在一封郵件中強(qiáng)調(diào):
1、AWS 必須是一種 Resilient software architecture(具有韌性/彈性的軟件架構(gòu))。
2、不使用 RESTful API 的員工將被辭退。(注:RESTful API 就是符合 REST 架構(gòu)設(shè)計(jì)思想的軟件 API 風(fēng)格,*-ful 在西文語境中常用于表示一種風(fēng)格)
直到 2013 年筆者接觸 OpenStack(OpenStack 初期常被認(rèn)為是 AWS 的開源對(duì)標(biāo)版本)之后才更深刻地體會(huì)到了其內(nèi)涵和精髓。大型分布式軟件的各個(gè)組件之間必須具備解耦和擴(kuò)展的能力,而網(wǎng)絡(luò)(Network-base)就是組件之間通信的唯一依賴,且對(duì)資源的操作具有唯一的確定性。
我們可以選取一個(gè)角度來比較一下 RESTful 與另外兩種常見的分布式架構(gòu)風(fēng)格的區(qū)別:
? RESTful 抽象的是資源:資源的抽象不需要依賴開發(fā)平臺(tái)或編程語言,C/S 架構(gòu)完全松耦合。
? DO(Distributed Objects,分布式對(duì)象)抽象的是對(duì)象:不同的編程語言對(duì)對(duì)象的定義有很大差別,所以 DO 架構(gòu)通常會(huì)與某種編程語言(.NET)綁定,若跨語言交互,實(shí)現(xiàn)則會(huì)非常復(fù)雜。典型有 RMI、EJB/DCOM、.NET Remoting 等。
? RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)抽象的是過程:這要求 C/S 之間具有很強(qiáng)的 RPC 通信模型耦合度,否則雙方無法理解對(duì)方的意圖。典型有 SOAP、XML-RPC、Flash AMF 等。
AWS 在后面很長(zhǎng)的時(shí)間內(nèi)一直都奉行著 RESTful API 的鐵律,使其得以在幾年間飛速擴(kuò)展至上百個(gè)核心組件,成為了極具韌性/彈性和良好生態(tài)的公有云架構(gòu)?,F(xiàn)在的軟件公司基本都會(huì)采用 RESTful API 風(fēng)格,讓產(chǎn)品可以通過 API 的方式融入到行業(yè)生態(tài)中,形成 APIs 經(jīng)濟(jì)效益。
08
Future Internet(未來互聯(lián)網(wǎng))思想萌芽
21 世紀(jì)初,隨著 Internet 的全球普及,隨之也逐漸暴露出了在可擴(kuò)展性、安全性、可管理性、帶寬性能等多方面的問題。
以安全性為例子,傳統(tǒng) Internet 的網(wǎng)絡(luò)設(shè)計(jì)源自 ARPANET,認(rèn)為所有的用戶都是可信的、自律的,并沒有內(nèi)生考慮在基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)上確保網(wǎng)元不受攻擊。更具體地說,TCP/IP 是一套開放的協(xié)議和標(biāo)準(zhǔn),Sender 和 Receiver 之間不存在固定的互聯(lián)電路和信令系統(tǒng),網(wǎng)絡(luò)中的 Sender 可以向其它任何 Receiver 發(fā)送任何內(nèi)容,而 Receiver 卻無法拒絕接收。這也意味著網(wǎng)絡(luò)上的任何人都可以使用這些協(xié)議和標(biāo)準(zhǔn)來攻擊其他人或組織,而且很難防止這種攻擊。
1、第一代科研型互聯(lián)網(wǎng):軍事與科研網(wǎng)。
2、第二代消費(fèi)型互聯(lián)網(wǎng):萬維網(wǎng)(突發(fā)性,盡力而為、不安全、難管理、不強(qiáng)調(diào) QoS)。
3、第三代生產(chǎn)型互聯(lián)網(wǎng):未來互聯(lián)網(wǎng)(確定性、差異性、安全、易于管理、強(qiáng)調(diào) QoS,與實(shí)體經(jīng)濟(jì)深度融合)。
可見,傳統(tǒng) Internet 的發(fā)展早已經(jīng)走到了十條路口,F(xiàn)uture Internet(未來互聯(lián)網(wǎng))的演進(jìn)成為了業(yè)界關(guān)注的焦點(diǎn)。
并且長(zhǎng)期以來,計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域?qū)?Future Internet 的發(fā)展都存在著 2 種不同觀點(diǎn):
1、演進(jìn)派:認(rèn)為 Internet 應(yīng)像過去那樣繼續(xù)存在,遇到什么樣的問題,就打什么樣的補(bǔ)丁,安全性此類問題并不是由網(wǎng)絡(luò)基礎(chǔ)架構(gòu)本身引起的。應(yīng)該采用網(wǎng)絡(luò)重疊的方式來提供所需安全性和性能,而不觸動(dòng)現(xiàn)有的基礎(chǔ)設(shè)施。2008 年 12 月,互聯(lián)網(wǎng)創(chuàng)建人之一 Bob Kahn 在印度海德拉巴舉辦的 “互聯(lián)網(wǎng)治理論壇”上發(fā)言,提出了 “數(shù)字對(duì)象架構(gòu)” 的新標(biāo)準(zhǔn),旨在使信息能在互聯(lián)網(wǎng)上更順暢地傳輸。他堅(jiān)持認(rèn)為這樣就能解決問題,而又不損害基本的架構(gòu)。
2、革命派:則認(rèn)為 Internet 應(yīng)該被 “重新發(fā)明“,不斷打補(bǔ)丁的方式,會(huì)增加 Internet 的復(fù)雜性,使其變得更難以管理、對(duì)突破性的新型應(yīng)用更不友好,且使 Internet 的技術(shù)體系逐步僵化,現(xiàn)有體系可能已快走到盡頭,還能修補(bǔ)的余地已經(jīng)不大。2005 年,作為 Internet 協(xié)議的總設(shè)計(jì)師之一的 Dave Clark 教授發(fā)表了一篇題為《互聯(lián)網(wǎng)不再聯(lián)》的文章,指出:“Internet 的本質(zhì)缺陷讓商家花費(fèi)了幾十億成本,但卻阻礙了新發(fā)明,威脅到了國(guó)家安全?,F(xiàn)在到了從頭再來的時(shí)候了?!?革命派倡導(dǎo)新路線有可能孵化更多種類的網(wǎng)絡(luò)體系,并創(chuàng)造持續(xù)創(chuàng)新的環(huán)境。在走革命路線的過程中,也會(huì)為演進(jìn)路線提供更多的改進(jìn)機(jī)會(huì)。
顯然的,演進(jìn)派的擁躉主要來自商業(yè)社會(huì),而革命派則得到了學(xué)術(shù)界和國(guó)家機(jī)構(gòu)的支持。
2005 年 8 月,NSF(美國(guó)國(guó)家科學(xué)基金會(huì))投資了 GENI(Global Environment for Networking Innovations,全球網(wǎng)絡(luò)創(chuàng)新研究環(huán)境)和 FIND(Future Internet Network Design,未來的互聯(lián)網(wǎng)設(shè)計(jì))兩個(gè)項(xiàng)目。
GENI 項(xiàng)目是一個(gè)開放的、大規(guī)模的、真實(shí)的、分布式的,用于研究未來互聯(lián)網(wǎng)技術(shù)(Future Internet technologies)的全國(guó)性網(wǎng)絡(luò)創(chuàng)新試驗(yàn)床基礎(chǔ)設(shè)施。通過為研究者提供一個(gè)可自定義的、可重復(fù)實(shí)現(xiàn)的虛擬網(wǎng)絡(luò)試驗(yàn)床基礎(chǔ)設(shè)施的協(xié)作方式,加速 Future Internet 的研究,繼而改變傳統(tǒng)網(wǎng)絡(luò)體系研究所遵循的 “打補(bǔ)丁” 的演進(jìn)方式,借此從根本上思考 Future Internet 的體系和功能,并以此指導(dǎo)未來網(wǎng)絡(luò)體系的演化。
GENI 希望網(wǎng)絡(luò)的新體系結(jié)構(gòu)具有以下 4 個(gè)基本特征:
良好的安全性與可管理性。
允許各種計(jì)算設(shè)備,包括 PC、手機(jī)、傳感器、嵌入式處理器與此網(wǎng)絡(luò)連接,以實(shí)現(xiàn)普適計(jì)算。
能實(shí)現(xiàn)對(duì)其他重要基礎(chǔ)設(shè)施必要的控制與管理。
引入一些使網(wǎng)絡(luò)變得更有彈性、更容易管理的技術(shù),便于業(yè)務(wù)提供商能更好地開展新業(yè)務(wù)。
在技術(shù)層面,GENI 通過虛擬化技術(shù)和分布式技術(shù),從物理空間和時(shí)間兩個(gè)方面,將資源以虛擬化切片的形式進(jìn)行交付,為不同網(wǎng)絡(luò)實(shí)驗(yàn)者提供他們所需求的試驗(yàn)床資源(如:計(jì)算、存儲(chǔ)、帶寬、網(wǎng)絡(luò)拓?fù)涞龋⑻峁┰囼?yàn)床資源的可操作性、可測(cè)性和安全性。
2007 年 3 月,NSF 通過 GENI 和 FIND 項(xiàng)目資助幾項(xiàng)大學(xué)研究,斯坦福大學(xué)的一個(gè)跨學(xué)科研究項(xiàng)目 Clean Slate Program(意為:白手起家,或從頭再來)就是其中之一。Clean Slate 項(xiàng)目的最終目的是要重新發(fā)明 Internet,旨在改變?cè)O(shè)計(jì)已略顯不合時(shí)宜,且難以革命性進(jìn)化發(fā)展的傳統(tǒng)網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。該課題除了得到 NSF 的支持外,后來還逐漸得到了 Cisco、德國(guó)電信、NTT DoCoMo、NEC 和 Xilinx 等商業(yè)伙伴的支持。
09
OpenFlow 與 SDN 的誕生
2006 年,斯坦福教授 Nick McKeown(時(shí)任 Clean Slate 項(xiàng)目主任)的博士學(xué)生 Martin Casado,在 RCP 和 4D 論文的基礎(chǔ)上提出了一種邏輯上集中控制的企業(yè)安全解決方案 SANE,希望通過集中控制的方式來解決安全問題。集中控制思想是對(duì)保羅.巴蘭最初在 “分布式通信理論” 中提出的分散控制思想的一種顛覆。
2007 年,Martin Casado 在 SANE 基礎(chǔ)上開始領(lǐng)導(dǎo)面向企業(yè)網(wǎng)絡(luò)安全與管理的 Ethane 項(xiàng)目。該項(xiàng)目試圖通過一個(gè)集中式的 Controller(控制器),讓網(wǎng)絡(luò)管理員方便地定義基于網(wǎng)絡(luò)流的安全控制策略,并將這些安全策略應(yīng)用到各種網(wǎng)絡(luò)設(shè)備中,從而實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)通訊的安全控制。
后來,受 Ethane 項(xiàng)目的啟發(fā),Martin Casado 和他的導(dǎo)師 Nick McKeown 教授發(fā)現(xiàn),如果將 Ethane 的設(shè)計(jì)更簡(jiǎn)化,將傳統(tǒng)網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)(Data Plane)和路由控制(Control Plane)兩個(gè)功能模塊相分離,并通過集中式的 Controller 以標(biāo)準(zhǔn)化的接口對(duì)各種網(wǎng)絡(luò)設(shè)備進(jìn)行管理和配置,那么這將為網(wǎng)絡(luò)資源的設(shè)計(jì)、管理和使用提供更多的可能性,從而更容易推動(dòng)網(wǎng)絡(luò)的革新與發(fā)展。
同年,Nick Mckeown 教授、Scott Shenker 教授和 Martin Casado 博士在硅谷一起創(chuàng)辦了 Nicira(后被 VMware 收購(gòu)),這是 SDN 歷史上第一個(gè)初創(chuàng)公司。
??控制面、數(shù)據(jù)面統(tǒng)一的傳統(tǒng)路由器設(shè)備:
??控制面、數(shù)據(jù)面分離的 SDN 網(wǎng)絡(luò)架構(gòu):
2008 年,Nick McKeown 教授等人在 ACM SIGCOMM 發(fā)表了題為《OpenFlow: Enabling Innovation in Campus Networks》(OpenFlow:校園網(wǎng)的創(chuàng)新使能)的論文,首次詳細(xì)地介紹了 OpenFlow 和 OpenFlow Switch 的概念。
該篇論文首次詳細(xì)地介紹了 OpenFlow 的概念、工作原理,列舉了 OpenFlow 的幾大應(yīng)用場(chǎng)景。包括:
校園網(wǎng)絡(luò)中對(duì)實(shí)驗(yàn)性通訊協(xié)議的支持;
網(wǎng)絡(luò)管理和訪問控制;
網(wǎng)絡(luò)隔離和 VLAN;
基于 Wi-Fi 的移動(dòng)網(wǎng)絡(luò);
非 IP 網(wǎng)絡(luò);
基于網(wǎng)絡(luò)包的處理。
OpenFlow Switch 相較于傳統(tǒng) Switch 有著本質(zhì)不同。OpenFlow Switch 將控制權(quán)上交給集中控制器,以此解決了 “難管理" 的問題,也讓網(wǎng)絡(luò)基礎(chǔ)設(shè)施具備了內(nèi)生的安全性。OpenFlow 很久就在 GENI 項(xiàng)目中得到了應(yīng)用。
同年,Nick McKeown 教授帶領(lǐng)的斯坦福大學(xué)研究團(tuán)隊(duì)發(fā)布了首個(gè)開源 SDN Controller NOX。緊接著,2009 年又發(fā)布了 Python 版的 SDN Controller POX,以及 OpenFlow1.0 協(xié)議和開源網(wǎng)絡(luò)虛擬化軟件 FlowVisor。2010 年,Nick McKeown 的團(tuán)隊(duì)又發(fā)布了 Mininet。迄今為止,Nick McKeown 團(tuán)隊(duì)發(fā)布的這些軟件依然被業(yè)界廣泛使用。
OpenFlow/SDN 可以說是 “革命派” 在未來互聯(lián)網(wǎng)技術(shù)研究上的關(guān)鍵成果。
集中式的 Controller 通過 OpenFlow 協(xié)議對(duì) OpenFlow Switch 中的 Flow Table 進(jìn)行控制。Controller 會(huì)為特定的工作負(fù)載計(jì)算最佳路徑,從而對(duì) Switch 的數(shù)據(jù)轉(zhuǎn)發(fā)定義路徑??刂妻D(zhuǎn)發(fā)分離的架構(gòu)由 Controller 對(duì)網(wǎng)絡(luò)中的各種 Switch 設(shè)備進(jìn)行綜合管理,這種行為就像對(duì)網(wǎng)絡(luò)進(jìn)行整體 “編程” 一樣。
2009 年,基于 OpenFlow 為網(wǎng)絡(luò)帶來的可編程特性,Nick McKeown 教授團(tuán)隊(duì)與加州大學(xué)伯克利分校的 Scott Shenker 教授進(jìn)一步提出了 SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))的概念。
2010 年,Google 開始將數(shù)據(jù)中心與數(shù)據(jù)中心之間的網(wǎng)路連線(G-scale),轉(zhuǎn)換成 SDN 架構(gòu)。
2011 年 5 月,NEC 面向虛擬化數(shù)據(jù)中心和云服務(wù)市場(chǎng),推出了第一臺(tái)可商用的 OpenFlow 交換機(jī)。
2011 年 10 月,Cisco 在數(shù)據(jù)中心官方 Blog 上宣布會(huì)在 Nexus 交換機(jī)上提供對(duì) OpenFlow 的支持。
2011 年 10 月,Juniper 開始在 Junos 操作系統(tǒng) SDK 中添加 OpenFlow 代碼。
由 OpenFlow 帶來了兩項(xiàng)革命性的網(wǎng)絡(luò)創(chuàng)新成就:“控制轉(zhuǎn)發(fā)分離架構(gòu)” 和 “可編程性”,也成為了 SDN 思想的核心理論。
10
SDN 蠻荒混戰(zhàn)
Open Networking Foundation 成立
2011 年,在 Nick McKeown 教授等研究學(xué)者的推動(dòng)下,成立了開放網(wǎng)絡(luò)基金會(huì)(ONF,Open Networking Foundation)。
ONF 最初的主要發(fā)起成員包括德國(guó)電信、Facebook、Google、Yahoo、Microsoft 等公司。這些公司要么是網(wǎng)絡(luò)服務(wù)提供商,要么是電信運(yùn)營(yíng)商,唯獨(dú)沒有一家網(wǎng)絡(luò)設(shè)備提供商。
ONF 成立的目的,是為了推動(dòng) SDN 和 OpenFlow 協(xié)議的發(fā)展,由非網(wǎng)絡(luò)設(shè)備提供商組成的 “軟件定義網(wǎng)元” 戰(zhàn)線聯(lián)盟。他們希望以此擺脫網(wǎng)絡(luò)設(shè)備提供商長(zhǎng)久以來的枷鎖,獲得更加靈活且契合自身需求的、更加低耗高效的網(wǎng)絡(luò)基礎(chǔ)設(shè)施。ONF 的成立標(biāo)志著 OpenFlow 從散兵游勇的野蠻狀態(tài)正式過渡到產(chǎn)業(yè)化發(fā)展的軌道中。
同年,ONF 召開了第一屆開放網(wǎng)絡(luò)峰會(huì)(Open Networking Summit),并發(fā)表了 SDN 白皮書《Software Defined Networking:The New Norm forNetworks》,為 OpenFlow 和 SDN 在學(xué)術(shù)界和工業(yè)界都做了很好的介紹和推廣。
Nick McKeown 教授還與 Scott Shenker、Guru Parulkar、Larry Peterson 教授等人創(chuàng)建了 ON.Lab(開放網(wǎng)絡(luò)實(shí)驗(yàn)室)。ONF 和 ON.Lab 兩大組織的成立,主要致力于推動(dòng) SDN 架構(gòu)、OpenFlow 標(biāo)準(zhǔn)和規(guī)范的維護(hù)和發(fā)展,成功地將 SDN 推到前臺(tái),并獲得業(yè)界的廣泛關(guān)注,為推動(dòng) SDN 被業(yè)界廣泛采用奠定了基礎(chǔ)。
2012 年召開的第二屆 Open Networking Summit 上,Google 宣布已經(jīng)在其全球各地的數(shù)據(jù)中心骨干網(wǎng)絡(luò)中大規(guī)模地使用 OpenFlow。完成 SDN 改造之后,Google B4 網(wǎng)絡(luò)將全面運(yùn)行在 OpenFlow 上,并且通過 10G 網(wǎng)絡(luò)鏈接分布在全球各地的 12 個(gè)數(shù)據(jù)中心,使廣域線路的利用率從 30% 提升到 90% 以上,接近 100%。
Google B4 是世界上首個(gè)跳出數(shù)據(jù)中心網(wǎng)絡(luò),而在骨干網(wǎng)絡(luò)上取得巨大成功的 SDN 案例,這標(biāo)志著 OpenFlow 技術(shù) SDN 完成了從實(shí)驗(yàn)技術(shù)向網(wǎng)絡(luò)部署的重大跨越,這樣的結(jié)果毫無疑問是令人震撼的,也堅(jiān)定了行業(yè)對(duì) SDN 的信心,從而開啟了 SDN 網(wǎng)絡(luò)新時(shí)代。
同年 8 月,VMware 以 12.6 億美金收購(gòu)了 Nick Mckeown 教授的 SDN 創(chuàng)業(yè)公司 Nicira,其核心產(chǎn)品是基于 OpenFlow 協(xié)議創(chuàng)建了網(wǎng)絡(luò)虛擬平臺(tái)(NVP)。VMware 宣稱會(huì)將 Open vSwitch 等核心技術(shù)合并到自己的虛擬網(wǎng)絡(luò)軟件產(chǎn)品組合中。
2013 年,Google 在 SIGCOMM 上發(fā)表了論文《B4: Experience with a Globally-Deployed Software Defined WAN》,詳細(xì)介紹了 Google 的 WAN 加速 SDN 方案。論文中提及,Google 使用的控制器名叫 ONIX。
2013 年,AT&T 發(fā)布了 Domain2.0 計(jì)劃,并發(fā)布 Domain2.0 白皮書,通過 SDN/NFV 技術(shù)將網(wǎng)絡(luò)基礎(chǔ)設(shè)施從 “以硬件為中心” 轉(zhuǎn)向 “以軟件為中心”,實(shí)現(xiàn)基于云架構(gòu)的開放網(wǎng)絡(luò),率先打造 ECOMP 網(wǎng)絡(luò)編排系統(tǒng),首次將 SDN 技術(shù)用于電信運(yùn)營(yíng)商大網(wǎng)的編排管理。
OpenDayLight 成立
面對(duì) SDN 和 ONF 提出的網(wǎng)元軟件化,作為傳統(tǒng)的網(wǎng)絡(luò)設(shè)備廠商當(dāng)然不能無動(dòng)于衷,他們組建了 “軟件定義網(wǎng)管” 捍衛(wèi)同盟,開始向 OpenFlow 的致命弱點(diǎn)發(fā)起了攻擊。
以 Cicso、Juniper、HUAWEI 為代表的設(shè)備廠商,認(rèn)為純粹 OpenFlow 網(wǎng)元有很大的問題。比如,OpenFlow 不支持 IPv6、MAC-in-MAC 運(yùn)營(yíng)商骨干橋接、Q-in-Q 虛擬局域網(wǎng)棧、QoS 服務(wù)質(zhì)量、流量整形能力、容錯(cuò)和彈性等功能,這些缺陷限制了 OpenFlow 協(xié)議和 SDN 在電信網(wǎng)絡(luò)中的應(yīng)用。所以他們提出了:轉(zhuǎn)發(fā)層面仍然基于現(xiàn)有協(xié)議體系,但設(shè)備應(yīng)該開放更多的北向 API 供調(diào)用,即:通過網(wǎng)管來實(shí)現(xiàn) Controller 的功能。
2013 年 4 月 8 日,在 Linux 基金會(huì)的支持下,作為網(wǎng)絡(luò)設(shè)備商中的領(lǐng)導(dǎo)者,Cisco、Juniper、博通、IBM 等網(wǎng)絡(luò)設(shè)備廠商聯(lián)合成立了 OpenDayLight(打開天窗說亮話)開源項(xiàng)目。
OpenDaylight 強(qiáng)調(diào),SDN 不等于 OpenFlow,SDN 需要重新被定義。也就是說,OpenDaylight 強(qiáng)調(diào) SDN Controller 不僅僅局限于 OpenFlow,而是應(yīng)該支持多種南向協(xié)議。同時(shí),OpenDaylight 還強(qiáng)調(diào),應(yīng)該采用分布式的 Controller 來取代集中式的 Controller。這樣可以管理更大的網(wǎng)絡(luò),提供更強(qiáng)勁的性能,還能增強(qiáng)系統(tǒng)的安全性和可靠性。
OpenDaylight 對(duì) SDN 的定義進(jìn)行了更高層次的抽象,模糊了 OpenFlow 的存在:
控制與轉(zhuǎn)發(fā)分離。
邏輯上的集中控制。
控制平面與轉(zhuǎn)發(fā)平面之間提供可編程接口。
但是,由于商業(yè)社會(huì)殘酷的競(jìng)爭(zhēng),OpenDaylight 在成立之初就留下了矛盾的隱患。軟件防火墻與 VPN 供應(yīng)商 Vyatta 的 CEO Kelly Herrell 就曾公開指出:Cisco 依賴于大量昂貴硬件的銷售,這與 SDN 的未來是 “矛盾的”。
但無論如何,激烈的商業(yè)競(jìng)爭(zhēng)也同樣意味著產(chǎn)業(yè)的發(fā)展勢(shì)頭欣欣向榮,大量的 SDN 項(xiàng)目破土而出,例如:Cisco OpFlex、Juniper Tungsten Fabric、BigSwitch Floodlight 等等。
New Open Networking Foundation 改建
2014 年 12 月 5 日,為了向 ODL 予以還擊,ON.Lab 推出了一款創(chuàng)新性的網(wǎng)絡(luò)操作系統(tǒng) ONOS(Open Network Operating System)。
ON.Lab 還一度嚴(yán)格要求加入的成員不得為任何網(wǎng)絡(luò)設(shè)備廠商工作,以此防范引入設(shè)備商們的利益糾葛。后來由于 ON.Lab 的組織者和職能都與 ONF 重疊。所以,在 2016 年 10 月 19 日,兩個(gè)組織宣布正式合并,改建了新的 ONF。
就這樣,圍繞 SDN 控制器和協(xié)議,各大流派及廠商進(jìn)行了十多年的明爭(zhēng)暗斗,至今仍在發(fā)生著。
11
狹義 SDN 已死,廣義 SDN 永生
Overlay 虛擬網(wǎng)絡(luò)
在經(jīng)歷了 ODL 的陣痛之后,網(wǎng)絡(luò)設(shè)備商們也紛紛開始押注走向另外一條更熟悉的道路,即:面向數(shù)據(jù)中心網(wǎng)絡(luò)的、基于標(biāo)準(zhǔn)協(xié)議(VxLAN、GRE、MPLSoGRE/UDP)的 Overlay 虛擬網(wǎng)絡(luò)。
2011 年 8 月,IETF 發(fā)布了 RFC 7348 草案《Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks》,主要由 VMware 與 Cisco 公司草擬。該技術(shù)利用 L2 over UDP 機(jī)制傳輸原始報(bào)文、利用 VxLAN 頭中 24bits 的 VNI 信息將傳統(tǒng) VLAN 標(biāo)記擴(kuò)展至 16MB。
2011 年 9 月,IETF 發(fā)布了 RFC 7637 草案《NVGRE: Network Virtualization Using Generic Routing Encapsulation》,主要由 Microsoft 公司草擬。該技術(shù)利用 L2 Over GRE 機(jī)制傳輸原始報(bào)文、利用 GRE Key 字段中的高 24bits 將 VLAN 數(shù)據(jù)擴(kuò)展至 16MB。
2012 年 2 月,IETF 發(fā)布了 RFC 7665 草案《A Stateless Transport Tunneling Protocol for Network Virtualization (STT) 》,主要由 Nicira 草擬。該技術(shù)利用 L2 Over Stateless TCP 機(jī)制在傳輸原始報(bào)文、利用 STT 頭中的 64bits Context ID 標(biāo)識(shí)二層網(wǎng)絡(luò)分段。
當(dāng)然,Overlay 網(wǎng)絡(luò)誕生的誘因并不完全是因?yàn)?SDN 領(lǐng)域激烈的競(jìng)爭(zhēng),更多是由云計(jì)算/數(shù)據(jù)中心快速發(fā)展所帶來的業(yè)務(wù)驅(qū)動(dòng)。但 Overlay 網(wǎng)絡(luò)確實(shí)很好地繼承了來自 “狹義 SDN“ 的良好思想,在傳統(tǒng)網(wǎng)絡(luò)設(shè)備架構(gòu)不需要進(jìn)行大規(guī)模修改的前提下,疊加了 “中央管控“ 和 “可編程接口“ 機(jī)制,實(shí)現(xiàn)了應(yīng)用和網(wǎng)絡(luò)的感知與協(xié)同。目前 Overlay 已經(jīng)大規(guī)模被部署到各個(gè)云計(jì)算數(shù)據(jù)中心網(wǎng)絡(luò)中。
P4 可編程網(wǎng)絡(luò)
同樣的,Nick McKeown 教授等人也深刻領(lǐng)會(huì)到 OpenFlow 從純軟件方向切入的無力感,于是繼續(xù)從更本質(zhì)的硬件層面探索 SDN 的可能性。
2014 年,Nick McKeown 教授聯(lián)合普林斯頓大學(xué)的 Jennifer Rexford 教授等人發(fā)布了成果論文《P4: Programming Protocol-Independent Packet Processors》。
論文中介紹了一種具有協(xié)議無關(guān)性、目標(biāo)無關(guān)性、以及現(xiàn)場(chǎng)可重配置能力的 P4 DSL(專用芯片編程語言)編程語言。不久后,Nick McKeown 教授又聯(lián)合創(chuàng)立了數(shù)據(jù)平面可編程芯片公司 Barefoot Networks,并推出了 Barefoot Tofino DSA(專用芯片架構(gòu))可編程網(wǎng)絡(luò)芯片。
從 Nick McKeown 教授的表述中,可以將 P4 誕生的需求背景歸納為以下幾點(diǎn):
一方面,可編程 CPU 無法滿足日益增長(zhǎng)的網(wǎng)絡(luò)流量處理需求:目前最好的 ASIC 交換芯片可以處理大約 12.8Tbps,而目前最先進(jìn)的 CPU 的網(wǎng)絡(luò)處理能力僅略高于 100Gbps;一個(gè) ASIC 交換機(jī)以 10Tbps 的速度處理 40 種協(xié)議需要 400W 功耗,而一顆 CPU “等效的” 以 10Tbps 速度僅處理 4 個(gè)協(xié)議就需要 25KW 功耗;在可預(yù)見的未來,高性能交換機(jī)將完全基于 ASIC 芯片。
但另一方面,ASIC 的開發(fā)者并不是來自最終用戶:ASIC 無法讓最終用戶根據(jù)自己的需要編寫代碼,真正編寫代碼的還是設(shè)備商。但是,設(shè)備商并不運(yùn)營(yíng)大型網(wǎng)絡(luò),所以他們傾向于簡(jiǎn)單地實(shí)施現(xiàn)有的標(biāo)準(zhǔn)。他們永遠(yuǎn)不會(huì)主動(dòng)成為創(chuàng)新的人,所有這些都使得引入新想法變得困難,因此一切都趨于停滯。當(dāng)用戶希望在 ASIC 中添加一個(gè)新的協(xié)議時(shí),其開發(fā)周期可能是 4 年。
在這樣的背景下,用戶越來越強(qiáng)烈地需求一款新的針對(duì)特定領(lǐng)域的處理器芯片。并且與 CPU 上的通用計(jì)算一樣,所有特定領(lǐng)域的處理器都有相應(yīng)的高級(jí)編程語言和編譯器。而網(wǎng)絡(luò)領(lǐng)域的 DSL 和 DSA 就是 P4 編程語言(軟件)和 Barefoot Tofino 可編程交換芯片(硬件)。
在 OpenFlow 時(shí)代,傳統(tǒng)交換機(jī)結(jié)合 OpenFlow 協(xié)議,通過 Control Plane 正確設(shè)置 ASIC 芯片的各種 Flow Table Entries 來控制 Data Plane 的轉(zhuǎn)發(fā)行為。但前提是,不能超出 ASIC 芯片原本沒有支持的功能范圍??梢?,OpenFlow 只是從軟件層面提供了一種 Control Plane 和 Data Plane 交互的協(xié)議,其功能完全受制于硬件的特性。
而 P4 可以說是 OpenFlow 的接棒者,以期解決 OpenFlow 編程能力不足和可拓展性差等問題。Tofino 可編程芯片的本身并不具備任何網(wǎng)絡(luò)協(xié)議功能,而是根據(jù)開發(fā)者編寫的 P4 程序來自定義轉(zhuǎn)發(fā)芯片的功能。P4 將網(wǎng)絡(luò)功能和協(xié)議設(shè)計(jì)交給了廣大開發(fā)者而不是傳統(tǒng)的網(wǎng)絡(luò)設(shè)備廠商,從而實(shí)現(xiàn):
??最大化地加速網(wǎng)絡(luò)創(chuàng)新;
??縮短協(xié)議部署周期;
??開發(fā)者自頂向下網(wǎng)絡(luò)設(shè)計(jì),擁有完整的創(chuàng)新實(shí)驗(yàn)平臺(tái);
12
未來:基于軟硬件融合的完全可編程網(wǎng)絡(luò)
2019 年 6 月,Intel 收購(gòu) Barefoot Networks 公司,并由 Nick McKeown 教授出任 Intel SVP,繼續(xù)領(lǐng)導(dǎo)網(wǎng)絡(luò)研發(fā)團(tuán)隊(duì)(現(xiàn)已退居二線)。在同年的 ONF Connect 2019 演講中,Nick McKeown 教授第一次定義了 SDN 發(fā)展的 3 個(gè)階段:
2010–2020 年:通過 OpenFlow 將控制面和數(shù)據(jù)面分離,用戶可以通過集中的控制端去控制每個(gè)交換機(jī)的行為;
2015–2025 年:通過 P4 編程語言以及可編程 FPGA 或 ASIC 實(shí)現(xiàn)數(shù)據(jù)面可編程,這樣,在包處理流水線加入一個(gè)新協(xié)議的支持,開發(fā)周期從數(shù)年降低到數(shù)周;
2020–2030 年:展望未來,網(wǎng)卡、交換機(jī)以及協(xié)議棧均可編程,整個(gè)網(wǎng)絡(luò)成為一個(gè)可編程平臺(tái)。
這預(yù)示著,未來互聯(lián)網(wǎng)技術(shù)的發(fā)展還將繼續(xù),這場(chǎng)從 21 世紀(jì)初開始直至今天的 “革命“ 仍未結(jié)束。
正如計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的權(quán)威、圖靈獎(jiǎng)得主 David A. Patterson 和 John L. Hennessy 在 2018 年聯(lián)合發(fā)布的論文《A New Golden Age for Computer Architecture》(計(jì)算機(jī)體系結(jié)構(gòu)的新黃金時(shí)代)中所提到的 —— 未來將是計(jì)算機(jī)體系結(jié)構(gòu)的黃金十年。
希望這也會(huì)是未來互聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)徹底革新的十年。
編輯:黃飛
?
評(píng)論
查看更多