網(wǎng)絡芯片進入了可編程時代
網(wǎng)絡是數(shù)據(jù)中心里的交通樞紐,連接著所有運行應用業(yè)務的設備。沒有網(wǎng)絡,也就沒有數(shù)據(jù)中心,沒有互聯(lián)網(wǎng)的今天,網(wǎng)絡在數(shù)據(jù)中心里發(fā)揮著非常關鍵的作用,所以網(wǎng)絡技術一直是熱點,在不斷發(fā)展進化著,其中就包含可編程技術。可編程技術在各行各業(yè)中都有廣泛應用,同樣在網(wǎng)絡世界里也很普遍。這種技術在芯片上實現(xiàn)各硬件單元都不是固定的,可由用戶在使用中選擇,即通過計算機指令來選擇不同的通道和不同的電路功能,稱為編程控制,這給使用者提供了極大的靈活性。比如:處理器、FPGA、CPLD、DSP,這四種都是可編程芯片。其中處理器是個大類,包含各種位數(shù)的單片機、電腦的CPU、以及ARM的一系列手機用芯片,還有復合芯片,比如一些是單片機+無線功能的芯片,如帶單片機內核中的藍牙芯片。一些可簡單編程芯片,比如時鐘芯片,你可以設置它到特定時間點時某個管腳電平高低,或者是數(shù)字溫度芯片輸出溫度格式以華氏度輸出,這些芯片在網(wǎng)絡設備中應用很廣,網(wǎng)絡設備的CPU處理器可以實現(xiàn)各種復雜的網(wǎng)絡協(xié)議處理,F(xiàn)PGA可以將轉發(fā)表項擴展到很大,滿足高規(guī)格的網(wǎng)絡環(huán)境使用,網(wǎng)絡設備通過這些可編程芯片,實現(xiàn)了很多特殊網(wǎng)絡流量的轉發(fā)。
網(wǎng)絡設備的硬件內部一般由CPU、內存、Flash、轉發(fā)芯片、FPGA、EEPROM等芯片組成,這些大部分都是可編程芯片,可有沒有人注意到其實轉發(fā)芯片絕大部分都不是可編程芯片,無論是路由器中采用的NP,還是交換機中采用的SwitchChip,都不是可編程芯片。這些芯片的硬件轉發(fā)邏輯已經(jīng)設計好,無法通過調整軟件參數(shù)去更改,軟件設置的只是讓這些功能模塊可以運轉起來,但絕不可以調整它們的處理順序,而且軟件設置的范圍都是提前預定好的。比如我們需要在交換機上實現(xiàn)入方向上的報文過濾,這樣就需要在轉發(fā)芯片入方向下發(fā)一些ACL過濾規(guī)則。在一些商用轉發(fā)芯片上,這些ACL過濾規(guī)則固定下發(fā)在轉發(fā)模塊之后,如果進入芯片的是三層轉發(fā)流量,此時下發(fā)的ACL過濾規(guī)則匹配的就是三層轉發(fā)之后的報文,此時報文MAC已經(jīng)發(fā)生了替換,下發(fā)的ACL規(guī)則只能匹配轉發(fā)之后的報文特征,這就是不能可編程實現(xiàn)的局限性。一個報文進入轉發(fā)芯片,從入端口檢查,到查找轉發(fā)表項,再到出口,這中間要經(jīng)過幾十個功能模塊的處理,有修改報文優(yōu)先級的,有修改報文VLANTAG的,有做隊列調度的,有做路由策略的等等,這些功能模塊都是按照固定順序來對報文處理的,靈活性比較差,常常會遇到不少實現(xiàn)上的限制,若能實現(xiàn)網(wǎng)絡芯片可編程將可以很好解決這些問題。
當然,網(wǎng)絡芯片和其它芯片不同,芯片要承擔大量的數(shù)據(jù)流量轉發(fā),這些數(shù)據(jù)遠遠大于CPU、內存以及Flash這些器件的數(shù)據(jù),這就要求芯片硬件處理邏輯要盡可能地簡單,否則轉發(fā)效率都成問題,延遲是網(wǎng)絡設備一個重要的考核指標,這使得網(wǎng)絡芯片要盡可能做到簡單。使用者只要做選擇就可以,將參數(shù)輸入芯片,芯片就可以按照制定的數(shù)據(jù)來轉發(fā),所以多年以來,轉發(fā)芯片都是不能編程的,網(wǎng)絡發(fā)展也好好的。隨著云計算、大數(shù)據(jù)和虛擬化技術的出現(xiàn),這給網(wǎng)絡帶來的沖擊是最大的,網(wǎng)絡固定的轉發(fā)模式無法適應這些年新技術的應用,在這些新技術面前,網(wǎng)絡部分顯得相形見絀,是到了該要改變的時刻了。
三年前,一家專做SDN芯片的公司成立,叫BarefootNetworks,BarefootNetworks從事開源可編程網(wǎng)絡芯片的設計和研究,BarefootNetworks的芯片Tofino是一種可編程芯片,可實現(xiàn)高達6.5Tbps處理速度,用戶或網(wǎng)絡供應商可以利用P4編程語言來定制白盒解決方案或固定配置產品,這樣用戶可以在數(shù)周內部署新協(xié)議,而不需要新版本的芯片來支持,具有極大的靈活性?,F(xiàn)在很多網(wǎng)絡需求,聽到最多的就是芯片限制實現(xiàn)不了,只能換更高級的芯片設備,有了可編程芯片的設備就不同了,可以根據(jù)客戶需求,通過軟件對網(wǎng)絡設備進行重新設計都可以實現(xiàn),不用再去更換硬件,刷新軟件就可以解決。今年6月,Broadcom也發(fā)布了可編程網(wǎng)絡商用芯片Trident3系列,雖然處理速度只有Tofino的一半3.2Tbps,但Broadcom控制了整個網(wǎng)絡芯片市場的90%左右,其壟斷地位決定了Trident3芯片一定會得到很多使用者的追捧,網(wǎng)絡設備進入了可編程時代?,F(xiàn)在的網(wǎng)絡設備,快和手機行業(yè)一樣了,使用三年基本就不能再滿足業(yè)務發(fā)展需要了,使用五年基本成古董了,這給數(shù)據(jù)中心帶來了很大成本壓力,數(shù)據(jù)中心要不斷增加設備采購,同時淘汰更多的老舊設備,說是老舊也不過就兩三年。如果網(wǎng)絡設備具有可編程性,就可以通過重新編程來滿足未來需求,同時繼續(xù)大力降低網(wǎng)絡設備使用的成本和功耗。
由此可見,網(wǎng)絡芯片進入了可編程時代,這就增強網(wǎng)絡部分的靈活性,更加適應未來業(yè)務發(fā)展需要。這種可編程能力與軟件定義SDN還有些區(qū)別,可編程能力指的是通過基于腳本的編程靈活實現(xiàn)各種網(wǎng)絡協(xié)議功能,SDN則是通過控制器向網(wǎng)絡設備下發(fā)轉發(fā)流表,實現(xiàn)流量轉發(fā),流表實現(xiàn)只是網(wǎng)絡設備功能的一部分,網(wǎng)絡設備還有ACL過濾、路由策略、修改報文內容、隊列調度等豐富的網(wǎng)絡功能,這些通過SDN都無法實現(xiàn),通過可編程技術則可以很好實現(xiàn)。未來,若是某項網(wǎng)絡功能滿足不了,又說是芯片限制,就要考慮下這個說法的真實性了,芯片的可編程能力極大地擴展了網(wǎng)絡處理的靈活性,可適應各種復雜網(wǎng)絡場景的應用,即便有限制也會很少。