您的位置:首頁>科技>正文

可程式設計技術在網路晶片上的應用

網路是資料中心裡的交通樞紐, 連接著所有運行應用業務的設備。 沒有網路, 也就沒有資料中心, 沒有互聯網的今天, 網路在資料中心裡發揮著非常關鍵的作用, 所以網路技術一直是熱點, 在不斷發展進化著, 其中就包含可程式設計技術。 可程式設計技術在各行各業中都有廣泛應用, 同樣在網路世界裡也很普遍。 這種技術在晶片上實現各硬體單元都不是固定的, 可由用戶在使用中選擇, 即通過電腦指令來選擇不同的通道和不同的電路功能, 稱為程式設計控制, 這給使用者提供了極大的靈活性。

比如:處理器、FPGA、CPLD、DSP, 這四種都是可程式設計晶片。 其中處理器是個大類, 包含各種位數的單片機、電腦的CPU、以及ARM的一系列手機用晶片, 還有複合晶片, 比如一些是單片機+無線功能的晶片, 如帶單片機內核中的藍牙晶片。 一些可簡單程式設計晶片, 比如時鐘晶片, 你可以設置它到特定時間點時某個管腳電平高低, 或者是數位溫度晶片輸出溫度格式以華氏度輸出, 這些晶片在網路設備中應用很廣, 網路設備的CPU處理器可以實現各種複雜的網路通訊協定處理, FPGA可以將轉發表項擴展到很大, 滿足高規格的網路環境使用, 網路設備通過這些可程式設計晶片, 實現了很多特殊網路流量的轉發。

網路設備的硬體內部一般由CPU、記憶體、Flash、轉發晶片、FPGA、EEPROM等晶片組成,

這些大部分都是可程式設計晶片, 可有沒有人注意到其實轉發晶片絕大部分都不是可程式設計晶片, 無論是路由器中採用的NP, 還是交換機中採用的Switch Chip, 都不是可程式設計晶片。 這些晶片的硬體轉發邏輯已經設計好, 無法通過調整軟體參數去更改, 軟體設置的只是讓這些功能模組可以運轉起來, 但絕不可以調整它們的處理順序, 而且軟體設置的範圍都是提前預定好的。 比如我們需要在交換機上實現入方向上的報文過濾, 這樣就需要在轉發晶片入方向下發一些ACL過濾規則。 在一些商用轉發晶片上, 這些ACL過濾規則固定下發在轉發模組之後, 如果進入晶片的是三層轉發流量, 此時下發的ACL過濾規則匹配的就是三層轉發之後的報文,
此時報文MAC已經發生了替換, 下發的ACL規則只能匹配轉發之後的報文特徵, 這就是不能可程式設計實現的局限性。 一個報文進入轉發晶片, 從入埠檢查, 到查找轉發表項, 再到出口, 這中間要經過幾十個功能模組的處理, 有修改報文優先順序的, 有修改報文VLAN TAG的, 有做佇列調度的, 有做路由策略的等等, 這些功能模組都是按照固定順序來對報文處理的, 靈活性比較差, 常常會遇到不少實現上的限制, 若能實現網路晶片可程式設計將可以很好解決這些問題。

當然, 網路晶片和其它晶片不同, 晶片要承擔大量的資料流程量轉發, 這些資料遠遠大於CPU、記憶體以及Flash這些器件的資料,

這就要求晶片硬體處理邏輯要盡可能地簡單, 否則轉發效率都成問題, 延遲是網路設備一個重要的考核指標, 這使得網路晶片要盡可能做到簡單。 使用者只要做選擇就可以, 將參數輸入晶片, 晶片就可以按照制定的資料來轉發, 所以多年以來, 轉發晶片都是不能程式設計的, 網路發展也好好的。 隨著雲計算、大資料和虛擬化技術的出現, 這給網路帶來的衝擊是最大的, 網路固定的轉發模式無法適應這些年新技術的應用, 在這些新技術面前, 網路部分顯得相形見絀, 是到了該要改變的時刻了。

三年前, 一家專做SDN晶片的公司成立, 叫Barefoot Networks, Barefoot Networks從事開源可程式設計網路晶片的設計和研究, Barefoot Networks的晶片Tofino是一種可程式設計晶片, 可實現高達6.5 Tbps處理速度,

使用者或網路供應商可以利用P4程式設計語言來定制白盒解決方案或固定配置產品, 這樣使用者可以在數周內部署新協定,而不需要新版本的晶片來支援, 具有極大的靈活性。 現在很多網路需求, 聽到最多的就是晶片限制實現不了, 只能換更高級的晶片設備, 有了可程式設計晶片的設備就不同了, 可以根據客戶需求, 通過軟體對網路設備進行重新設計都可以實現, 不用再去更換硬體, 刷新軟體就可以解決。 今年6月, Broadcom也發佈了可程式設計網路商用晶片Trident 3系列, 雖然處理速度只有Tofino的一半3.2Tbps, 但Broadcom控制了整個網路晶片市場的90%左右, 其壟斷地位決定了Trident 3晶片一定會得到很多使用者的追捧, 網路設備進入了可程式設計時代。 現在的網路設備,快和手機行業一樣了,使用三年基本就不能再滿足業務發展需要了,使用五年基本成古董了,這給資料中心帶來了很大成本壓力,資料中心要不斷增加設備採購,同時淘汰更多的老舊設備,說是老舊也不過就兩三年。如果網路設備具有可程式設計性,就可以通過重新程式設計來滿足未來需求,同時繼續大力降低網路設備使用的成本和功耗。

由此可見,網路晶片進入了可程式設計時代,這就增強網路部分的靈活性,更加適應未來業務發展需要。這種可程式設計能力與軟體定義SDN還有些區別,可程式設計能力指的是通過基於腳本的程式設計靈活實現各種網路通訊協定功能,SDN則是通過控制器向網路設備下發轉發流表,實現流量轉發,流表實現只是網路設備功能的一部分,網路設備還有ACL過濾、路由策略、修改報文內容、佇列調度等豐富的網路功能,這些通過SDN都無法實現,通過可程式設計技術則可以很好實現。未來,若是某項網路功能滿足不了,又說是晶片限制,就要考慮下這個說法的真實性了,晶片的可程式設計能力極大地擴展了網路處理的靈活性,可適應各種複雜網路場景的應用,即便有限制也會很少。

現在的網路設備,快和手機行業一樣了,使用三年基本就不能再滿足業務發展需要了,使用五年基本成古董了,這給資料中心帶來了很大成本壓力,資料中心要不斷增加設備採購,同時淘汰更多的老舊設備,說是老舊也不過就兩三年。如果網路設備具有可程式設計性,就可以通過重新程式設計來滿足未來需求,同時繼續大力降低網路設備使用的成本和功耗。

由此可見,網路晶片進入了可程式設計時代,這就增強網路部分的靈活性,更加適應未來業務發展需要。這種可程式設計能力與軟體定義SDN還有些區別,可程式設計能力指的是通過基於腳本的程式設計靈活實現各種網路通訊協定功能,SDN則是通過控制器向網路設備下發轉發流表,實現流量轉發,流表實現只是網路設備功能的一部分,網路設備還有ACL過濾、路由策略、修改報文內容、佇列調度等豐富的網路功能,這些通過SDN都無法實現,通過可程式設計技術則可以很好實現。未來,若是某項網路功能滿足不了,又說是晶片限制,就要考慮下這個說法的真實性了,晶片的可程式設計能力極大地擴展了網路處理的靈活性,可適應各種複雜網路場景的應用,即便有限制也會很少。

Next Article
喜欢就按个赞吧!!!
点击关闭提示