在學(xué)會(huì)走路之前就能熟練上網(wǎng)的一代人,或許已經(jīng)出現(xiàn)了。對(duì)他們而言,上網(wǎng)就像呼吸一樣自然。一直以來(lái),人們都希望自己面前的互聯(lián)網(wǎng)未來(lái)可以變得更加精準(zhǔn)、快速和安全。全球互聯(lián)網(wǎng)發(fā)展的腳步從未停止,推動(dòng)其“向前走”的新技術(shù)能提供保障。其中,有一些技術(shù)已經(jīng)在部署中,但是仍然需要時(shí)間才能最終走向?qū)嶋H應(yīng)用。
擴(kuò)展當(dāng)前IP地址的IPv6已經(jīng)發(fā)展了許多年,可以確保網(wǎng)址真實(shí)可靠性的域名系統(tǒng)安全擴(kuò)展(Domain Name System Security Extensions)也需要幾年的普及時(shí)間。北極地區(qū)西北通道的新海底光纜已經(jīng)在規(guī)劃之中,預(yù)計(jì)建成之后,訪問(wèn)地球另一側(cè)服務(wù)器的網(wǎng)址響應(yīng)時(shí)間將會(huì)縮短60ms。不過(guò),鋪設(shè)更多的光纜并不是將不斷增長(zhǎng)的數(shù)據(jù)推送到網(wǎng)民面前的高效解決方案。從數(shù)據(jù)中心到瀏覽器涉及到不同級(jí)別的軟件技術(shù),才能確保網(wǎng)絡(luò)負(fù)載達(dá)到最優(yōu)化。明年,將會(huì)有哪些新技術(shù)和標(biāo)準(zhǔn)“站”出來(lái)推進(jìn)互聯(lián)網(wǎng)向前發(fā)展呢?
更好地控制數(shù)據(jù)流
快速地處理和傳送PB(250,1024TB)級(jí)別的數(shù)據(jù),除了硬件要做好準(zhǔn)備之外,軟件也要有所改變。Google為我們示范了應(yīng)該怎么做。
據(jù)國(guó)際電信聯(lián)盟(ITU)發(fā)布的報(bào)告,2011年全世界有1/3的人口會(huì)經(jīng)常上網(wǎng)。網(wǎng)絡(luò)的平均帶寬總額達(dá)到了每秒90 000GB,也就是正好每月30EB,而且仍在不斷增長(zhǎng)中。目前的技術(shù)要點(diǎn)就是如何高效地管理和控制如此大規(guī)模的數(shù)據(jù)流。Google公司已經(jīng)為大型網(wǎng)絡(luò)設(shè)備供應(yīng)商思科和華為做出了示范。根據(jù)Arbor Network公司發(fā)布的報(bào)告,Google的數(shù)據(jù)中心與用戶之間的數(shù)據(jù)流動(dòng)占據(jù)了全球互聯(lián)網(wǎng)數(shù)據(jù)流量的近6%~10%。在4月份舉行的“開放網(wǎng)絡(luò)峰會(huì)”上,Google透露了自己管理數(shù)據(jù)中心之間流量的方案。非常令人震驚的是,Google大膽地放棄了傳統(tǒng)的網(wǎng)絡(luò)基礎(chǔ)架構(gòu),引入了自己的最新技術(shù)。
為了提高自己的網(wǎng)絡(luò)負(fù)載能力,從網(wǎng)絡(luò)設(shè)備供應(yīng)商那里購(gòu)買硬件和相應(yīng)的配套軟件,對(duì)傳統(tǒng)的網(wǎng)絡(luò)接入服務(wù)提供商來(lái)說(shuō)再平常不過(guò)了。但是Google采取了不同的做法,它們直接與中國(guó)的網(wǎng)絡(luò)設(shè)備生產(chǎn)廠進(jìn)行探討,利用“軟件定義網(wǎng)絡(luò)”(Software-Define Network,SDN)這種新型的網(wǎng)絡(luò)架構(gòu)連接路由器和交換機(jī)。SDN由OpenFlow協(xié)議控制,而OpenFlow協(xié)議的功能與路由器和交換機(jī)的固件相互獨(dú)立,它允許管理員更好地集中控制數(shù)據(jù)包的傳播路徑,避免擁塞。因此,如果需要的話,它可以為備份、email流量和視頻流提供優(yōu)先通過(guò)權(quán)。由于Google的內(nèi)部網(wǎng)絡(luò)經(jīng)常需要快速轉(zhuǎn)移幾個(gè)PB的數(shù)據(jù),因此Google需要更靈活的網(wǎng)絡(luò)流量控制方式。相信未來(lái),SDN將會(huì)接管所有的網(wǎng)絡(luò)接入服務(wù)提供商。
誰(shuí)擁有世界上最好的文件系統(tǒng)?
除了數(shù)據(jù)流,互聯(lián)網(wǎng)還需要處理不斷增長(zhǎng)的任務(wù)量,主要是云服務(wù)和云存儲(chǔ)的應(yīng)用。例如:亞馬遜的EC2彈性計(jì)算云,總共占據(jù)了全球互聯(lián)網(wǎng)流量的1%。去年,它一共存儲(chǔ)了7 620億個(gè)文件,每秒鐘需要處理500 000個(gè)任務(wù)。只有高級(jí)的文件系統(tǒng)才可以在高負(fù)荷運(yùn)轉(zhuǎn)之下確保數(shù)據(jù)的完整性,并且管理好文件的元數(shù)據(jù)(名稱、大小和日期等),與文件本身的內(nèi)容分開處理。Facebook、雅虎和亞馬遜EC2彈性計(jì)算云所采用的Hadoop分布式文件系統(tǒng)(HDFS)可以自動(dòng)為文件創(chuàng)建幾個(gè)副本,并且在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都有專門的服務(wù)器,用于存儲(chǔ)文件的元數(shù)據(jù)。因此,HDFS文件系統(tǒng)可以高效地并行處理PB級(jí)別的數(shù)據(jù),開源的HDFS文件系統(tǒng)是目前世界上最優(yōu)秀的文件系統(tǒng)之一。
預(yù)測(cè):網(wǎng)絡(luò)流量穩(wěn)定增長(zhǎng)
來(lái)自思科的可視化網(wǎng)絡(luò)指數(shù)(VNI)是描述網(wǎng)絡(luò)流量最準(zhǔn)確的參考數(shù)據(jù)。它預(yù)測(cè),在接下來(lái)的3年中,網(wǎng)絡(luò)的流量將會(huì)翻番,其中很大一部分是來(lái)自移動(dòng)設(shè)備的網(wǎng)絡(luò)數(shù)據(jù)。
OpenFlow:構(gòu)建Google的新網(wǎng)絡(luò)
OpenFlow負(fù)責(zé)調(diào)控Google數(shù)據(jù)中心之間的信息流量。與傳統(tǒng)的路由器和交換機(jī)軟件相比,這項(xiàng)開源的技術(shù)可以更高效地調(diào)配巨大的數(shù)據(jù)流量。
HDFS:針對(duì)大數(shù)據(jù)的文件系統(tǒng)
只有HDFS這樣的分布式文件系統(tǒng)才能有效地處理大量數(shù)據(jù)的并行訪問(wèn)需求,并且分配專門的服務(wù)器進(jìn)行文件管理。
存儲(chǔ)文件時(shí),主控服務(wù)器會(huì)保存它的元數(shù)據(jù)(文件名、大小等數(shù)據(jù)),文件本身的內(nèi)容會(huì)存儲(chǔ)在數(shù)據(jù)服務(wù)器上。之后,主控服務(wù)器發(fā)送指令,將文件備份到另一個(gè)機(jī)架上的服務(wù)器中。
可靠的連接協(xié)議
沒有HTTP協(xié)議,瀏覽器就無(wú)法訪問(wèn)網(wǎng)站。但是“老邁”的HTTP協(xié)議并不高效,它的繼任者可以將網(wǎng)絡(luò)速度提高最多50%。
超文本傳輸協(xié)議(HTTP)是互聯(lián)網(wǎng)通訊的基石,但是它已經(jīng)過(guò)時(shí)了。最新的版本HTTP 1.1是13年前就開始采用的技術(shù)。傳輸控制協(xié)議(TCP)負(fù)責(zé)將文件分割為數(shù)據(jù)包,作為TCP協(xié)議的上層,HTTP協(xié)議負(fù)責(zé)從服務(wù)器上請(qǐng)求一個(gè)網(wǎng)站的內(nèi)容,并且規(guī)定網(wǎng)站元素的發(fā)送規(guī)則。HTTP 1.1允許每個(gè)TCP連接完成一個(gè)訪問(wèn)請(qǐng)求(request),因此所有的網(wǎng)站元素(文本、圖片、JavaScript代碼等)都必須一個(gè)接一個(gè)地發(fā)送。現(xiàn)代瀏覽器雖然通過(guò)引入新技術(shù)繞過(guò)了這個(gè)限制,可以建立至多6個(gè)并行的TCP連接,但是仍然不夠高效,因?yàn)榉?wù)器處理每個(gè)“額外”的連接時(shí)都需要500ms的延遲。每個(gè)連接都會(huì)增加新的不必要的HTTP頭信息,這不僅傳送了過(guò)多的冗余數(shù)據(jù),而且不支持信息壓縮。更重要的是,HTTP協(xié)議只允許由客戶端發(fā)起請(qǐng)求,即使服務(wù)器需要發(fā)送更多數(shù)據(jù)到客戶端,也必須等到客戶端發(fā)出請(qǐng)求后才可以執(zhí)行。此外,HTTP協(xié)議也不提供加密功能,這就是為什么SSL這樣的加密協(xié)議備受關(guān)注的原因。
微軟和Google推進(jìn)HTTP 2.0
互聯(lián)網(wǎng)工程任務(wù)組(IETF)希望解決HTTP 1.1的眾多缺陷,明年可以引進(jìn)HTTP 2.0版作為新的網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議。今年,IETF將會(huì)決定具體采用哪些技術(shù)。Google和微軟各自制定了自己的協(xié)議,它們被視為最熱門的兩個(gè)候選。Google已經(jīng)使用SPDY協(xié)議兩年多的時(shí)間,該協(xié)議是HTTP 1.1的修正版和補(bǔ)充版。Firefox、Chrome和Kindle上的Silk瀏覽器都已經(jīng)集成了SPDY協(xié)議。同樣,所有的Google服務(wù)、亞馬遜、Twitter和Apache Web服務(wù)器都支持這項(xiàng)技術(shù)。SPDY允許HTTP包并行發(fā)送并能夠?qū)崿F(xiàn)數(shù)據(jù)壓縮,還可以提供強(qiáng)制性的SSL加密。研究報(bào)告稱,經(jīng)過(guò)SPDY加速后最多可以提高50%的傳輸速度。
從微軟的角度看,Google提出的SPDY忽視了智能移動(dòng)設(shè)備應(yīng)用程序的聯(lián)網(wǎng)需求。微軟希望通過(guò)自己的“HTTP Speed+Mobility”解決這些問(wèn)題。它使用了跟SPDY技術(shù)同樣的并行處理技術(shù),但是同時(shí)允許靈活的加密和壓縮選項(xiàng),因?yàn)檫@兩項(xiàng)功能需要消耗額外的計(jì)算力,并且會(huì)減少電池的續(xù)航時(shí)間。微軟的“HTTP Speed+Mobility”方案規(guī)定使用WebSocket協(xié)議,能夠建立客戶端與服務(wù)器之間的持續(xù)雙向連接。這個(gè)概念可以滿足手機(jī)應(yīng)用程序的需求,因?yàn)锳pp需要不斷地發(fā)送數(shù)據(jù)到服務(wù)器,并且接收用戶數(shù)據(jù)進(jìn)行進(jìn)一步的處理。
HTTP 2.0:兩個(gè)通向新標(biāo)準(zhǔn)的路線圖
明年,新的互聯(lián)網(wǎng)協(xié)議就將誕生。目前有兩套HTTP 1.1協(xié)議的優(yōu)化方案,分別來(lái)自Google和微軟,它們是最熱門的候選。
Firefox 13:支持HTTP 2.0候選協(xié)議
借助由Google主導(dǎo)的SPDY協(xié)議,我們可以更快地瀏覽網(wǎng)絡(luò)。在Chrome和Firefox 13中,對(duì)該協(xié)議的支持是默認(rèn)激活的。用戶可以在isspdyenabled.com網(wǎng)站進(jìn)行SPDY協(xié)議測(cè)試。
更快的瀏覽器引擎
網(wǎng)站開始像應(yīng)用程序一樣功能越來(lái)越豐富。所以網(wǎng)站代碼的執(zhí)行速度也必須加快,才能符合用戶的預(yù)期。
HTML和JavaScript在設(shè)計(jì)之初主要是用于呈現(xiàn)靜態(tài)網(wǎng)站頁(yè)面的。但是這兩種語(yǔ)言現(xiàn)在都已經(jīng)被用于編寫軟件,例如流行的電腦游戲“憤怒的小鳥”或者智能手機(jī)App的許多功能都是用JavaScript來(lái)編寫的。然而,這樣的做法產(chǎn)生了一些性能瓶頸。由于所有打開的網(wǎng)站均依賴同一個(gè)JavaScript線程,所以瀏覽器無(wú)法同時(shí)執(zhí)行幾個(gè)JavaScript腳本。用戶與網(wǎng)站之間的每一次互動(dòng),例如鼠標(biāo)點(diǎn)擊,都可能會(huì)引起延遲。因此,HTML5標(biāo)準(zhǔn)引入了名為“Web Workers”的多線程解決方案。它是一個(gè)瀏覽器的編程接口,允許復(fù)雜的JavaScript代碼在獨(dú)立的線程中運(yùn)行。網(wǎng)站的程序人員必須確?!癢eb Worker”中的代碼獨(dú)立于用戶的交互動(dòng)作之外,然后“Web Worker”線程中的代碼的運(yùn)行結(jié)果將最終與JavaScript主線程相結(jié)合,用于呈現(xiàn)網(wǎng)站內(nèi)容。
為更多設(shè)備優(yōu)化網(wǎng)頁(yè)
HTML 5中的“Web Worker”方案可以更好地優(yōu)化腳本語(yǔ)言在多核CPU環(huán)境下的執(zhí)行效率。可是,IE瀏覽器在10.0版本才會(huì)引入對(duì)該方案的支持,移動(dòng)設(shè)備上的Android瀏覽器尚未支持它。另外,“Web Worker”也無(wú)法提供無(wú)限制的并行線程,更強(qiáng)大的并行支持需要引入開源的Fabric Engine計(jì)劃,實(shí)現(xiàn)腳本語(yǔ)言的高性能編程與執(zhí)行。Fabric Engine可以使網(wǎng)頁(yè)代碼執(zhí)行起來(lái)像C++代碼一樣快速,它的秘訣就是引入帶編譯器的腳本語(yǔ)言引擎,該引擎負(fù)責(zé)高性能腳本計(jì)算的部分。它同時(shí)引入了新的編寫語(yǔ)言——Fabric KL,作為JavaScript的擴(kuò)展。英特爾的River-Trail計(jì)劃也采用了類似的解決方案。但是與“Web Worker”不同,這些方法都不是網(wǎng)絡(luò)標(biāo)準(zhǔn)的一部分。
GPU加速的效果有時(shí)候比多核CPU更有成效,因?yàn)閳D形核心計(jì)算動(dòng)畫的執(zhí)行速度超過(guò)了CPU,因此網(wǎng)站也會(huì)形成不一樣的風(fēng)格。WebGL技術(shù)可以利用圖形顯示卡,為網(wǎng)頁(yè)帶來(lái)復(fù)雜的圖形效果,加速交互式3D計(jì)算的性能。Adobe的ActionScript是目前的首選編程語(yǔ)言,但是它的性能和安全性不盡如人意。開放的標(biāo)準(zhǔn)WebGL和HTML 5技術(shù)從長(zhǎng)期來(lái)看,極有可能取代私有的Flash。其實(shí),Adobe也提供了Flash轉(zhuǎn)到HTML 5的方案,即CreateJS項(xiàng)目。不幸的是,WebGL技術(shù)的發(fā)展剛剛開始,在移動(dòng)設(shè)備上被支持的程度并不高。目前,只有索尼搭載了Android 4.0以上系統(tǒng)的Xperia支持WebGL技術(shù)。蘋果的iOS 5系統(tǒng)需要通過(guò)破解的方式才能實(shí)現(xiàn)對(duì)WebGL的支持。
瀏覽器的硬件支持
有3種讓多核CPU高效運(yùn)行JavaScript的方式:Web Worker、Fabric Engine和River Trail。WebGL使用圖形顯示卡計(jì)算動(dòng)畫內(nèi)容,但并非所有瀏覽器都支持它。
Fabric Engine加速Web代碼執(zhí)行
使用多線程,F(xiàn)abric引擎可以像用C++編寫的PC軟件一樣快速地執(zhí)行JavaScript代碼。下面的基準(zhǔn)測(cè)試顯示了“蒙特卡洛”仿真方法的運(yùn)行結(jié)果。
WebGL:創(chuàng)造交互式3D網(wǎng)絡(luò)內(nèi)容
WebGL提供了GPU與瀏覽器之間的接口。我們可以訪問(wèn)
www.ro.me網(wǎng)站,找到里面逼真的3D畫面,測(cè)試自己的顯示卡是否可以流暢地運(yùn)行。
更多設(shè)備接入互聯(lián)網(wǎng)
幾年之后,接入互聯(lián)網(wǎng)設(shè)備的數(shù)量就將超過(guò)人類的數(shù)量。這些物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)流量在傳輸時(shí)將采用不同于傳統(tǒng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)和協(xié)議。
網(wǎng)民眼中的互聯(lián)網(wǎng)是一個(gè)相對(duì)簡(jiǎn)單的模型:臺(tái)式電腦、筆記本電腦或者智能手機(jī)連接到服務(wù)器上,人們通過(guò)這些設(shè)備訪問(wèn)網(wǎng)站或者與朋友聊天。但是同時(shí),數(shù)量不斷增長(zhǎng)的物理設(shè)備已經(jīng)開始在網(wǎng)上互相交換數(shù)據(jù)。E-plus的研究結(jié)果表明,2010年,德國(guó)一共發(fā)行了230萬(wàn)張專門供設(shè)備直接進(jìn)行數(shù)據(jù)通信的SIM卡。明年,這個(gè)數(shù)據(jù)將會(huì)增長(zhǎng)到500萬(wàn)。發(fā)送短信是機(jī)器與機(jī)器通信(M2M)的最簡(jiǎn)單方式。在工業(yè)領(lǐng)域甚至政府體系中已經(jīng)有很多物聯(lián)網(wǎng)研究項(xiàng)目正在進(jìn)行,例如歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(ETSI)定義了專門為物聯(lián)網(wǎng)通訊進(jìn)行設(shè)計(jì)的新通訊協(xié)議,避免人類之間和機(jī)器之間的通訊相互發(fā)生不必要的干擾。
根據(jù)芯片設(shè)計(jì)公司ARM首席技術(shù)官(CTO)邁克?穆勒的說(shuō)法,到2020年,將有約1 000億部設(shè)備接入互聯(lián)網(wǎng)。而另一個(gè)知名調(diào)查公司Gartner的分析師預(yù)測(cè)的數(shù)據(jù)則是600億。未來(lái),每一部汽車、自行車和電器都將裝配網(wǎng)絡(luò)接入模塊,目前已經(jīng)有一些城市的照明系統(tǒng)通過(guò)互聯(lián)網(wǎng)控制。物聯(lián)網(wǎng)設(shè)備必須包含一個(gè)負(fù)責(zé)控制和通信的微處理器,例如分配了IPv6地址的燈泡或者心臟起搏器。ARM最近揭開了“Cortex-MO+”架構(gòu)的設(shè)計(jì)藍(lán)圖,基于該架構(gòu)的最小32位處理器只有1mm2。相信未來(lái),我們將可以通過(guò)更小的芯片控制機(jī)器。
為機(jī)器保留的通信信道
通常來(lái)說(shuō),目前的物聯(lián)網(wǎng)設(shè)備都不具備很強(qiáng)的計(jì)算能力。它們內(nèi)置的微處理器仍然是8位或16位的,可以執(zhí)行的任務(wù)基本停留在Windows 95時(shí)代的水平。因此只需提供符合它們自身需求的受限通訊協(xié)議即可,而不是直接沿用目前的傳統(tǒng)互聯(lián)網(wǎng)協(xié)議。例如,聯(lián)網(wǎng)的城市路燈上集成的微型傳感器,只需要完成每天兩次的測(cè)量數(shù)據(jù)發(fā)送任務(wù)就可以了。消息隊(duì)列遙測(cè)傳輸(MQTT)協(xié)議是IBM已經(jīng)開發(fā)出的機(jī)器間(Machine to Machine)即時(shí)通信協(xié)議,它與HTTP協(xié)議相似,但是協(xié)議頭的數(shù)據(jù)量更小,因此更適合低功耗的RFID芯片傳輸數(shù)據(jù)。目前,物聯(lián)網(wǎng)尚未形成統(tǒng)一的技術(shù)標(biāo)準(zhǔn),業(yè)內(nèi)仍在就物聯(lián)網(wǎng)無(wú)線通信的頻帶分配進(jìn)行爭(zhēng)論。最大的問(wèn)題是M2M通訊是否有必要工作在3G網(wǎng)絡(luò)頻段。不過(guò)從長(zhǎng)遠(yuǎn)來(lái)看,3G和4G(LTE)頻段應(yīng)該為人類保存,因?yàn)榇蟛糠值臋C(jī)器只需要通過(guò)2G(GSM)網(wǎng)絡(luò)進(jìn)行通信即可。
集成城市照明系統(tǒng)的網(wǎng)絡(luò)
飛利浦的“City Touch”室外照明控制系統(tǒng)可以通過(guò)Web頁(yè)面控制城市的照明系統(tǒng),它將所有的路燈都連接進(jìn)了網(wǎng)絡(luò)。而且這個(gè)系統(tǒng)已經(jīng)在倫敦和布拉格進(jìn)行了部署。
可以聯(lián)網(wǎng)的微型設(shè)備
互聯(lián)網(wǎng)無(wú)處不在:配置網(wǎng)絡(luò)地址的燈泡被JN5148-001型超低功耗無(wú)線微控制器操控;名為HRV011的LifeTouch傳感器可以測(cè)量心率,并且直接向醫(yī)院傳輸數(shù)據(jù)。
傳感器的傳輸協(xié)議
物聯(lián)網(wǎng)設(shè)備通過(guò)專門的協(xié)議進(jìn)行通訊,新協(xié)議更符合這些設(shè)備的需求,不需要很高的計(jì)算能力。下面是4個(gè)主要的協(xié)議:
RoLL:低功耗路由算法RoLL(Routing over Low power and Lossy networks)是為連接到網(wǎng)絡(luò)中的微型傳感器傳遞設(shè)備狀態(tài)信息而開發(fā)的協(xié)議。
6LOWPAN:只需要很小的花銷,就可以利用6LOWPAN(低功耗無(wú)線自組織網(wǎng)絡(luò))協(xié)議,為設(shè)備分配IPv6地址,從而可以將其接入到現(xiàn)有的網(wǎng)絡(luò)中。
CoAP:受限應(yīng)用協(xié)議(CoAP)為低計(jì)算能力(100KB的ROM和10KB的RAM)的8位微控制器——例如電器設(shè)備中的熱傳感器,它提供了數(shù)據(jù)傳輸標(biāo)準(zhǔn)。
MQTT:消息隊(duì)列遙測(cè)傳輸(MQTT)是IBM開發(fā)的即時(shí)通訊協(xié)議,也適合射頻識(shí)別(RFID)芯片傳輸消息。