Alphabet公司旗下的子公司谷歌公司對(duì)其處理互聯(lián)網(wǎng)規(guī)模網(wǎng)絡(luò)擁塞問題的新方法充滿信心,目前正將該技術(shù)引入谷歌云平臺(tái)(GCP),為企業(yè)提供基礎(chǔ)設(shè)施服務(wù)。
谷歌公司推出新的BBR網(wǎng)絡(luò)算法已經(jīng)被用于加速其消費(fèi)者服務(wù),如YouTube和Google.com,這可能是其提高公共互聯(lián)網(wǎng)性能的下一步。該公司表示,在這些服務(wù)中,已經(jīng)得到了顯著的改進(jìn),現(xiàn)在正在向谷歌云平臺(tái)(GCP)用戶提供該技術(shù)。
谷歌首席執(zhí)行官桑達(dá)爾·皮查伊于2016年5月在加利福尼亞召開的谷歌開發(fā)者大會(huì)演講
谷歌的BBR是一種設(shè)計(jì)用于處理常見問題的網(wǎng)絡(luò)擁塞控制協(xié)議:構(gòu)成現(xiàn)代互聯(lián)網(wǎng)的復(fù)雜網(wǎng)絡(luò)中的流量擁塞,擁擠的高速國際鏈路,每個(gè)移動(dòng)設(shè)備只能接收基站回程的份額,家庭用戶對(duì)DSL或電纜中心的共享連接,以及企業(yè)通過少數(shù)路由器共享數(shù)千臺(tái)設(shè)備等。所有這些都構(gòu)成了一個(gè)不能充分發(fā)揮其潛力的網(wǎng)絡(luò)。
調(diào)研機(jī)構(gòu)451 Research的首席分析師Eric Hanselman表示,“今天的互聯(lián)網(wǎng)就像一個(gè)史前怪獸。谷歌的BBR就是一個(gè)解決互聯(lián)網(wǎng)中最棘手的遺留協(xié)議性能問題所做出的最新努力。”
雖然許多數(shù)據(jù)組織從數(shù)據(jù)中心傳遞的數(shù)據(jù)沒有受到擁塞的影響,但當(dāng)數(shù)據(jù)流、傳輸大文件或需要實(shí)時(shí)響應(yīng)時(shí),它們的影響是顯而易見的。隨著BBR的初步部署,谷歌公司已經(jīng)在YouTube和Google.com服務(wù)方面取得了顯著的進(jìn)步。現(xiàn)在部署在谷歌云計(jì)算平臺(tái),用戶可以在自己的應(yīng)用程序和服務(wù)中利用它的優(yōu)勢。
那么BBR如何工作?
數(shù)據(jù)包丟失一直是網(wǎng)絡(luò)擁塞的一種信號(hào),也是發(fā)送方需要降低數(shù)據(jù)速率的信號(hào)。互聯(lián)網(wǎng)架構(gòu)的最近變化使得這些技術(shù)的效率降低;寬帶連接的最后一英里已經(jīng)配置了大型緩沖區(qū),而長途連接正在使用帶有淺緩沖區(qū)的交換機(jī)。這樣的組合意味著由于大量緩沖區(qū)中的排隊(duì)延遲和主干道的流量不穩(wěn)定性,導(dǎo)致互聯(lián)網(wǎng)阻塞。
使用這些緩沖區(qū),如何確定發(fā)送數(shù)據(jù)的最佳速度?一旦確定任何TCP連接路徑中最慢的鏈接是什么,那么答案就會(huì)非常簡單。該鏈接定義連接的最大數(shù)據(jù)傳遞速率,以及隊(duì)列形成的位置。了解作為連接瓶頸的最慢鏈路的往返時(shí)間和帶寬,該算法可以確定最佳數(shù)據(jù)速率的使用問題,這個(gè)問題長期被認(rèn)為幾乎是無法解決的。
這就是BBR名稱的來源:Bottleneck Bandwidth and Round-trip(瓶頸帶寬和往返傳播)。根據(jù)這些計(jì)算和控制系統(tǒng)的最新發(fā)展,谷歌公司網(wǎng)絡(luò)工程師已經(jīng)提出了一種通過連接動(dòng)態(tài)管理數(shù)據(jù)量的方法,因此它不會(huì)占用其瓶頸鏈接的容量,從而將隊(duì)列保持在最低限度。
雖然TCP不跟蹤瓶頸帶寬的連接,但可以從分組響應(yīng)的時(shí)間戳中進(jìn)行估計(jì)。通過理解哪些連接被生成數(shù)據(jù)的應(yīng)用程序的速度所限制,受到網(wǎng)絡(luò)容量的限制,并且通過準(zhǔn)確了解應(yīng)該對(duì)哪些響應(yīng)數(shù)據(jù)包進(jìn)行采樣來獲得這些估計(jì),BBR能夠以最大可能的速率發(fā)送數(shù)據(jù)?;ヂ?lián)網(wǎng)上的網(wǎng)絡(luò)連接并不是靜態(tài)的,如果連接在一個(gè)穩(wěn)定的狀態(tài)運(yùn)行,BBR也會(huì)偶爾增加數(shù)據(jù)速率,可以查看是否有任何瓶頸已經(jīng)改變,這意味著它可以對(duì)底層網(wǎng)絡(luò)的變化作出快速反應(yīng)。
以快上數(shù)千倍的速度穿越大西洋
這種改進(jìn)可能非常重要;谷歌聲稱其典型的跨大西洋連接速度可以快上2700倍。 BBR也可能與較新的協(xié)議(例如HTTP / 2)更好地匹配,可以一個(gè)接一個(gè)地使用單個(gè)TCP連接用于服務(wù)器的多個(gè)請(qǐng)求,而不是多個(gè)連接。
實(shí)施BBR作為發(fā)送端算法意味著谷歌公司無需升級(jí)谷歌云平臺(tái)(GCP)與用戶設(shè)備之間的所有網(wǎng)絡(luò)設(shè)備和服務(wù),就能夠提高最終用戶體驗(yàn)。雖然這對(duì)YouTube來說是一個(gè)很大的勝利,但是將算法帶到谷歌云平臺(tái)(GCP)是重要的一步,因?yàn)樗鼘⑻幚砀鄻踊膽?yīng)用程序的流量。
BBR如何加速谷歌的云服務(wù)
谷歌云平臺(tái)(GCP)客戶可以通過三種方式利用BBR支持:連接到使用它的谷歌服務(wù),將其作為通過谷歌云網(wǎng)絡(luò)服務(wù)的應(yīng)用程序的前端,或者直接在自己的IaaS應(yīng)用程序中使用。
由于谷歌公司自己的服務(wù)將使用BBR,用戶的云存儲(chǔ)的延遲應(yīng)該會(huì)減少,使得像Spanner或BigTable這樣的服務(wù)的應(yīng)用程序更加靈敏。最終用戶將從谷歌的Cloud CDN(更好的媒體傳送形式)和云端負(fù)載平衡(BBB)中獲得BBR支持的更大的效果,它將從不同的應(yīng)用實(shí)例中路由數(shù)據(jù)包。
如果用戶想在運(yùn)行在谷歌計(jì)算引擎(Google Compute Engine)上的IaaS應(yīng)用程序中使用BBR,則需要使用自定義的Linux內(nèi)核。雖然BBR已經(jīng)為Linux內(nèi)核做出貢獻(xiàn),但它還沒有應(yīng)用在主流版本中,用戶需要從網(wǎng)絡(luò)開發(fā)部門添加它,將其配置為GCE,然后編譯內(nèi)核。
BBR可編譯到Linux內(nèi)核中,用戶還可以在自己的網(wǎng)絡(luò)中開始使用它,特別是如果用戶使用的是Linux驅(qū)動(dòng)的網(wǎng)絡(luò)設(shè)備,例如開放式計(jì)算交換機(jī)。谷歌云平臺(tái)(GCP)切換到BBR可能會(huì)吸引來自谷歌,Linux社區(qū)以及其他網(wǎng)絡(luò)運(yùn)營商和供應(yīng)商的興趣。
451 Research的Hanselman認(rèn)為這是互聯(lián)網(wǎng)一個(gè)前進(jìn)的前景。“谷歌公司已經(jīng)進(jìn)行了很多努力來調(diào)整TCP的內(nèi)在邏輯來提高性能,而且谷歌公司采取了一個(gè)公平的機(jī)會(huì)。”他還認(rèn)為谷歌公司謹(jǐn)慎的做法是將BBR轉(zhuǎn)移是明智的。他說,“這個(gè)版本與其他版本相比還有一些問題,但谷歌公司很明顯,不想在毫無準(zhǔn)備的時(shí)候發(fā)布。”