2. 談網絡

計算、通信與人類文明形影不離。不同的時代賦予瞭計算不同的內涵,也賦予瞭通信不同的內涵。在每一個時代,計算與通信總是密不可分,相輔相承。計算離不開網絡,反之亦然。在今天,計算領域無法突破馮諾伊曼體系,通信領域面臨著香農極限。幾乎在同一個時間點起步的IT基礎設施的兩大領域,計算與通信,也幾乎在同一個時間點止步不前。

在上世紀的四十年代末期,近代IT歷史上,出現瞭兩個對電子與電信行業的發展產生深遠影響的事件,香農發現瞭以自己名字命名的三大定律,香農的三大定律奠定瞭信息論與編碼理論的基礎,也給人類帶來瞭一個新的詞匯比特(Bit)。與此同時肖克利發明瞭晶體管,晶體管的出現極大促進瞭計算與通信的發展。

晶體管很快應用在電話系統中,也同時出現在計算領域。集成電路的出現進一步加快瞭現代的計算與通信系統的演進。在Intel的第一個處理器4004正式推出之後,以太網如影隨形。計算與網絡兩大領域,在矽工業的持續進步過程中,在自身與自身的劇烈碰撞與相互繁殖中,持續擴展著各自的應用邊界,之至今日的雲基礎設施。

1973年,施樂的BobMetcalfe發明以太網,之後DEC與Intel的加入極大促進瞭以太網的發展,以太網的第一個版本DIX (DEC Intel Xerox) V1於1980年正式發佈[11]。以太網在陸續戰勝FDDI (Fiber Distributed Data Interface)、ATM (Asynchronous Transfer Mode)等一系列競爭者之後,一路絕塵。在局域網領域,建立瞭一個不可匹敵的以太帝國。

上世紀末出現的IB (InfiniBand) 試圖對以太網發起挑戰,卻在近期無法看到動搖以太帝國的絲毫可能。IB的V1.0版本出現在2000年,設計野心是替代處理器系統的局部總線PCI,互聯網中大規模應用的以太網,與SAN (Storage Area Networks)中的FC (Fibre Channel)。IB最本分的應用依然在大規模處理器集群應用中。

IB從誕生起的十年中備受磨難,Intel不會坐視IB與PCI Express總線競爭;比IB誕生更早的FC在SAN領域已根深蒂固;無所不能而且無處不在的以太網最後還是將IB擠壓至其本分的應用領域,集群服務器。TOP500處理器一直是IB不能失守的最後陣營。IB是學術界的寵兒,在對高性能計算有所追求的領域,IB在許多應用場景中憑借著出色的性能與較低的延時勝出,而在HPC (High Performance Computing)和高性能雲計算領域得到的廣泛應用[12]。

IB架構唯美,幹凈,一秋若水。這個一秋若水緣於在其漫長的發展過程中,一直被忽略也樂於被忽略,沒有經受過多的幹擾,二十幾年前,我第一次去喀納斯湖,除瞭震撼外,體會的是寂靜而後的肅殺。偶爾為之,別樣風景。人的存在會打破自然的靜謐,也帶來勃勃生機,缺少萬物之靈的景色,難抵極境。我喜歡現在這樣的,有三兩好友陪伴著的喀納斯。因為人的存在,風景格外精彩。

以太網精彩世界源自於諸人參與的熙熙攘攘。InfiniBand很少有機會去介入而分享這份精彩。縱觀IT史冊,能取得流行而大獲成功的技術不會唯美,多數是黑大傻粗,成本低廉的。Unix的設計哲學KISS (Keep It Simple and Stupid)在今天無限接近真理。有所長的醜戰勝無缺的美發生在此時此刻,而且在不斷的演繹進化與升級。

以太網從誕生之日起至今日,從未完美過,與優雅ATM (AsynchronousTransfer Mode)相比,始終是下裡巴人,直到把陽春白雪的ATM徹底趕出歷史舞臺。如果IB的所有優點,都能通過以太網進行應用場景微調,或者上層協議補充,IB依然還叫IB,無法更近一步。以太帝國是有日出不窮的缺陷,但是以太帝國還是以太帝國。

私有數據中心的興起,使得以太網與其身後的Ecosystem愈顯臃腫。在一個數據中心所使用的傳統交換機與路由器中,大多數軟件協議棧並沒有太多的用武之地,其中許多協議是為瞭解決廣域網存在的各類問題。在廣域網技術持續發展,取得顯著進步的同時,也不可避免的積累瞭一系列問題,在解決這些問題的過程中,更多的新協議在持續產生的同時,必須要兼容舊協議。不同廠商因為各自的利益,所提供的網絡設備在互油煙處理設備聯互通上並沒有想象中完美。

以太網的使用過於廣泛,這台中抽水肥個廣泛在帶給以太網無限空間的同時,也帶給設計者不小的麻煩。以太網所面對的問題絕不是TCP/IP協議棧的低效,不是存儲轉發模式帶來的延遲,不是吞吐量不足,不是流控機制,也不是QoS。這些問題在理論上全部可以解決。

以太網所面臨的主要問題在於自身使用的過於廣泛,參與者過於眾多,Ecosystem過於強大。這使得以太帝國在長期以來隻能有變化而無真正變革。治大國如烹小鮮,基於以太網的網絡基礎架構設計者,對任何一個微小調整都會陷入“什麼是權衡,什麼是掣肘,什麼是不得已,什麼是怎樣做都是錯的”,這樣深重的哲學思考中。

Internet網絡組成的復雜程度已經不能用任何詞匯去描述。從最末梢的移動設備,引申到2G、3G、LTE (Long Term Evaluation)、IP RUN到核心網;從最末端的PC機,引申到Wi-Fi、交換機,各級路由器到骨幹網。即便我們不去討論國傢級的網絡基礎設施這樣的深重話題,一個大型跨國公司的網絡拓撲結構也足以復雜到令人無法直視。

網絡設備價格始終居高不下,但是對於許多應用場景而言,這些昂貴的網絡設備所提供的多如牛毛的Feature,除瞭必不可少的硬件通路部分,隻有部分功能真正有用。在交換機與各類路由器中,硬件成本所占比例很低,其售價的多數是為瞭補貼軟件上的投入。這些盈篇滿籍的軟件投入,所體現更多的是商業利益,而非技術驅動所帶來的需求。

移動互聯網的興起重置瞭網絡基礎設施的發展軌跡。承載著數以億計用戶的互聯網應用背後,是龐大的數據中心。互聯網數據中心的野蠻成長,逐步觸發瞭雲計算與雲存儲技術的誕生與發展,雲時代的到來對網絡基礎設施提出瞭新的挑戰。來自這個領域的精英,首先面對的挑戰是理解已有的網絡基礎設施。擺在這些人面前的第一道難關不是溫習基礎的網絡經典著作,而是去理解在他們眼中,毫無道理,不知所雲,隻能死記硬背的幾千種RFC與ITU制定的協議。

RFC與ITU標準已多如牛毛,從TCP/IP到OSPF、BGP、IGMP、STP多達幾千種。這些協議無法消除不同提供商的網絡設備,在數據交換層面上的統一;在控制與管理層面每傢廠商的做法更加不會相同。最為重要的是,傳統的交換機與路由器並不能滿足一些新增的業務需求。

一個新增協議,從制定、討論、發佈到實際陽台擴建部署的周期之長,使得最有耐心之人亦無法忍受。這些協議是否被接受,在很多情況下並無至深的理論依據,所遵循的隻是質樸的商業叢林法則。

人類文明得以持續向前的動力,在某種程度上,是因為總有一些不安現狀的精英們,敢於持續地挑戰現有的叢林法則,並創建新的秩序。這些精英通台中商標登記常是近乎強迫癥的完美主義者。他們的病態隻有兩種解藥可救,一是融入舊的體制用時間與精力換取空間,或是另辟蹊徑。待到直面成千上萬,不知所雲的網絡協議時,他們最終選擇另辟蹊徑。

基礎網絡設施在經歷瞭最初爆發期之後,步履蹣跚。網絡運營商與設備制造商,在各種商業利益,甚至是在國與國的利益間周旋,騰挪空間有限,這種空間有限所帶來的直接後果是各種類型的低效,這一低效使得在這個行業的精英進一步流失,使這個行業事實上止步不前;也進一步使得這個行業持續發生著各類並購重組,使得從事這個行業的公司總量在逐步縮小。

一個曾在華為數通的朋友與我講,我們打敗甚至打死瞭一個又一個對手,卻也每況愈下。我的回答是你們熬死瞭一個又一個對手,對手是自己打敗瞭自己,他們的精英不是英雄遲暮,就是轉行做瞭其他事情,隻有你們堅持瞭下來。這種堅持對這個產業是一種維持,也使得依靠自身驅動帶給這個產業的創新乏善可陳。

這些問題使得SDN (Software Define Network)的出現順理成章。我們很難將SDN定義為一種新技術。從上世紀七八十年代至今,IT基礎設施始終處於高速螺旋的上升階段,我們在並不算長的四十年間,在同一片領域完成瞭多次迭代,以至於在信息科學領域,幾乎很難再次出現諸如Shannon的“A Mathematical Theory of Communication”這類革命性文章。SDN並不例外。

2007年,MartinCasado在他的博士畢業論文《ArchitectureSupport for Security Management in Enterprise Network》中,提出目前的企業網規模較大,運行著各類網絡應用與協議棧,對網絡安全配置管理帶來瞭一系列問題。在這些企業內,網絡安全策略由復雜的路由、橋接策略以及ACL表、包過濾等機制組成,導致整個網絡管理的復雜性,並帶來的一些網絡安全問題。

為此Martin Casado提出瞭一種理想化的網絡架構,稱作SANE解決這些問題。在SANE中,控制器通過其分發能力對請求轉發的數據流進行授權,SANE交換機僅僅負責報文的轉發。SANE介紹瞭一種全新的網絡分層,並且該設計可以很容易擴展到幾十甚至幾百個網絡節點[15]。

我不認為當時的Martin Casado能夠真正理解,這個世界的基礎網絡設施可以復雜到何等程度,強大如Stanford這樣的世界級院校,搭建一個諸如Intel這樣跨國企業的網絡環境也很困難,更不用說運行其上承載的各類應用。也許當時的Martin Casado隻是認識到瞭這些網絡的復雜性,見識到瞭多如牛毛的網絡協議棧與諸多術語後,決定不再去理解,而另辟蹊徑。

在此後的第二年,Nick McKeown et al. 在ACM SIGCOMM上發佈瞭一篇題為《OpenFlow: enablinginnovation in campus networks》[16]的論文,正式提出瞭OpenFlow的概念。這兩篇論文宣告瞭SDN的誕生。

SDN誕生後,這一新型的網絡設計框架首先得到瞭互聯網廠商的熱捧。2011年,Google、FaceBook、Microsoft與Yahoo等廠商成立瞭ONF (Open Networking Foundation),聚焦於OpenFlow技術標準[17]。2012年,Linux內核集成瞭OVS (Open vSwtich)[18]。2013年4月,以思科為首的網絡廠商如夢初醒,成立ODL(OpenDayLight),致力於開源的SDN控制器框架的實現,這個框架的名稱也被稱為OpenDayLight[19]。

思科類傳統網絡設備提供商的參與,在某種程度上極大促進,也極大制約瞭SDN的進一步發展。網絡設備提供商的參與,使得SDN技術有機會進入國傢層面的網絡基礎設施領域;也因為這些既有利益的獲得者首先也是既有投資的保護者,他們的參與使得SDN技術在遵循商業原則的前提下在遲鈍且平緩的演進,不再是一個劇烈的變革。

即便如此,SDN的發展依然超乎瞭Martin的想象,以至於Martin在回答什麼是SDN時,總是在回答“I actually don't know whatSDN means anymore, to be honest”。或許Martin認為,SDN在容納著各類不完美的不斷前行中,已物是人非,偏離瞭至清至澈的論文軌跡。

2016年2月,Martin Casado離開VMware加入著名的風險投資公司Andreessen Horowitz並成為合夥人[20]。如同Andy Robin離開Android,這些創始人的離開無論是因為什麼外因,最重要的內因依然是,他們認為在這個領域他們已經完成瞭歷史使命。或者說在Martin Casado的內心深處,SDN尚未開始,就已經結束。

SDN所解決的最重要的問題首先是解耦,分離底層硬件與網絡操作系統。無論是思科的IOS (Internetwork OperatingSystem),還是華為的VRP (VersatileRouting Platform)都是耗費瞭成千上萬人年的產品。我們在購買這些傳統路由器的時候,都在為這些人年埋單。在多數應用場景,我們所購買的路由器使用的僅是IOS和VRP提供的極少數功能。而且IOS和VRP雖然在盡最大可能包羅萬象,依然無法解決所有問題,一些用戶的自定義需求依然無法得到滿足。

通常網絡設備在邏輯上分為控制平面(Control Plane)和數據通路(Data Plane)。其中控制平面的主要由兩大部分組成。一是設備硬件資源的維護,包括網絡端口狀態的掃描和系統的初始化與監控等;二是運行網絡協議,如BGP、OSPF、ISIS與ARP等。網絡設備通過運行這些網絡協議,生成用於數據通路的各類查找表。

網絡設備的數據通路則使用這些查找表,盡最大的可能性快速地進行報文轉發。對於一些交換機和路由器以外的網絡設備,如DPI、防火墻、Load Balancer類設備,數據通路的設計稍有不同,這些設備偏向於根據控制平面配置的策略決定如何處理網絡報文。

在SDN理論正式定型以前,每個網絡設備同時具備控制平面和數據通路。對於性能要求高的企業級設備,控制平面采用的是專用CPU,以及圍繞該CPU的存儲、總線、和外設來實現。數據通路多采用專用ASIC,並作為一個外設連接到控制平面的CPU。

對於傢用級別的設備,如Wireless Access Point而言,數據通路和控制平面往往做在同一個以嵌入式CPU 為核心的系統中。Linux是最常見的針對傢用設備的操作系統。控制平面的程序,如DHCP服務器、Web服務器、Iptables、NAT等運行在Linux的用戶層。Linux 的內核負責報文轉發。在這樣的小設備中,Linux用戶層和內核之間的Netlink,有時也加上一些POSIX API做輔助,構成瞭數據通路和控制平面的通信方式。

SDN的核心思想是,進一步分離網絡設備的數據通路和控制平面,並定義兩者之間的通信標準。這個思想解決瞭很多實際存在的問題,首先是數據通路設備和控制平面設備可以分別演化;其次是在不同的應用場景中,對數據通路的性能和控制平臺的Scaling 要求各有不同,設計者可以針對應用環境來自由搭配。對於網絡設備的用戶和運營商來說,更為關鍵的一點是SDN 體系結構減輕瞭對硬件廠商的依賴。

在SDN出現之前,用戶購買的網絡設備,由於每個廠商設備的配置方法不同,其上控制平面的協議設計並不相同,彼此間很難做到完全兼容。這使得用戶在初期選定瞭某個廠商的產品,後續更新的時候有時也必須繼續選擇該廠商的產品,否則前期網絡運營獲得的經驗和固定下來使用方式都將失效。

SDN把數據通路設備僅僅定義為一個必須支持公開接口的黑盒子,而控制平面的程序通過這個公開的接口對數據通路設備編程。采用這種方法,傳統硬件廠商提供的一抽油煙機推薦系列控制平面的程序失去瞭原有的作用。用戶隻需要維護自己的控制平面程序就可以保證網絡運營的連續性。數據通路設備可以隨時隨意進行更換。

SDN引入瞭Flow Table。在傳統的交換機與路由器中,每支持一種新的協議,不是在固有表中添加表項,就是添加一張新的表格。網絡世界經過瞭幾十年的發展,在傳統路由器與交換機中已經積累瞭過多的表項。Flow Table的引入在提高瞭端口控制靈活度的同時,對所有表項進行瞭歸一化處理,這也使得SDN網絡有機會從邏輯上實現集中管理。SDN使用的集中管理策略,與傳統網絡設備采用的自適應管理,原本談不上孰優孰劣。隻是事物發展螺旋上升中的不同狀態。

SDN的出現,依然為本已死氣沉沉的網絡基礎設施帶來瞭一絲活力,SDN在持續著輝煌的同時,也在按照幾乎不可控制的態勢引入更多的功能。但是當我們從整個網絡基礎架構的更上層俯視SDN時,卻很難體會得出SDN是一次顛覆性變革的結論。整個網絡基礎架構並無根本的變化,隻是一次管理策略的調整與重構,路由器與交換機內部基礎的緩沖管理與算法幾乎絲毫未變。

事實上SDN的前綴軟件定義SD (Software Design)更加令人關註,在SDN嶄露頭角後不太長的一段時間裡,各類軟件定義風起雲湧,有軟件定義雲計算,軟件定義數據中心,軟件定義存儲,軟件定義基礎設備,直到Software Design Everything。在這些種類繁雜的軟件定義中,恐怕最有共性的一件事情莫過於把之前配置各類設備所使用CLI (Command Line Interface)方式,換成瞭RESTful API。

本已停滯不前的x86處理器一夜間重回中心,似乎x86處理器重新強大到瞭無所無能。NFV (Network FunctionVirtualization)的提出,進一步神話瞭x86處理器與其下的虛擬化部件。卻在有意無意中無視x86 XEON處理器自從Nehalem起,在微架構層面的創新已乏善可陳的事實。即將大規模推廣的KabyLake僅在計算層面上,與Nehalem相比並無質得提高。x86處理器在計算領域完敗於GPU之後,Kaby Lake所做出的選擇是重歸這個公司的起點,存儲。




華碩攜手騰訊推出智能機器人Zenbo Qrobot小佈

去年華碩推出瞭旗下第一款智能機器人Zenbo小佈,不過遺憾的是這個圓滾滾的、看上去呆頭呆腦的小傢夥遲遲未能在大陸地區上市。今天華碩在北京舉行瞭Zenbo Qrobot小佈見面會,正式將小佈“領進”瞭大陸地區。

華碩攜手騰訊推出智能機器人Zenbo Qrobot小佈

去年華碩推出瞭旗下第一款智能機器人Zenbo小佈,不過遺憾的是這個圓滾滾的、看上去呆頭呆腦的小傢夥遲遲未能在大陸地區上市。今天(11月14日)下午華碩在北京舉行瞭Zenbo Qrobot小佈見面會,正式將小佈“領進”瞭大陸地區。
arrow
arrow

    tll750g3a8 發表在 痞客邦 留言(0) 人氣()