家里的網速卡了,你可以把路由器的插頭拔掉,歇一會,再插上,這樣網速就會好一些。
但是成千上萬的人的手機連接著的大型數據中心,可不能這么干。它就相當于一個巨型的路由器,一旦流量堵住了,后果不堪設想:數據丟失、請求時間超時、工作無法完成。
網速和流量管理,不可調和
所以,數據中心保證網絡速度是一等一的大事。但是,另一個方面,數據中心也需要“流量管理”,即進行流量的管控,保證用戶之間平等合理的帶寬分配。
比如一個終端用戶在下載一個高清晰度的視頻,但同時另外一個用戶要下載一個相對較小的文本文件,那么數據中心就需要保證前者不會過多擠占后者的流量,保證兩者都有合理的最小數據傳輸速率。
然而終端用戶使用流量的情況一直都在發生變化,那么“流量管理”的方式也要發生改變。這就要求數據中心的“可適應性”,即數據中心的路由器都是可以進行編程的。
但是,網速和可編程是路由器不可調和的兩面。MIT的電氣工程與計算機科學教授Hari Balakrishnan說道:
“其實可編程的路由器之前就可以實現了,不過沒有廠商愿意應用,因為這會讓速度降低10-100倍。”
所以為了保證速度,數據中心使用的是固定的流量管理算法,這種算法與路由器的硬件構造一一對應,這就意味著如果要使用新的算法,那么也得使用新的路由器硬件。所以,流量管理的算法更新成本很大。
全新路由器芯片
如今,MIT CSAIL實驗室的研究人員們試圖改變這一現狀,他們提出一種新的路由器構想,在保證網速的情況下,為數據中心提供更具適應性的流量管理。
本周,他們發表了兩篇論文,詳細介紹了兼顧路由器“網速和可編程”的關鍵方法:一種全新構造的路由器芯片。這兩篇論文的第一作者都是Anirudh Sivaraman,他是MIT的一位電子工程碩士生。
傳統的流量管理算法是十分復雜的,試圖對每一種網絡流量分門別類,然后根據不同的情況確定優先級。Sivaraman使用簡單的電路元件來執行基本的操作,通過不同的組和,來實現復雜的算法運行,而且這些元件在芯片上也不會占用很多空間。
比如,芯片中的一個元件讓工程師追蹤運行總和,同時另一個元件安排數據包調度。這可以讓工程師們快速改變電路元件處理數據的方式,從而實時應對不同的網絡狀況。
這兩篇論文里,提供了7種不同的元件組合類型,它們的復雜程度依次遞增。有些流量管理只需要最簡單的算法,相應地使用最簡單的元件組合就行。但是就算是其中最復雜的元件組合,也只是占一個路由器芯片4%的空間。
研究人員建立了一個編譯器來測試這7種元件組合類型,如果某一種算法不能編譯,或者需要更多的元件數量,那么他們就會增加更多的復雜元件進去。這就像是一個調色盤,組合、添加,然后得到你想要的算法。