隨著物聯(lián)網(wǎng)設備的巨大增長、數(shù)據(jù)流量的增加、新協(xié)議以及私有云和公共云的不斷增長,網(wǎng)絡世界的創(chuàng)新步伐正在加快。網(wǎng)絡的未來已經(jīng)超越了分離SDN的數(shù)據(jù)和控制平面,而是在ASIC深處對轉(zhuǎn)發(fā)邏輯進行編程。現(xiàn)在,技術正在從傳統(tǒng)的固定架構硅開關轉(zhuǎn)向靈活的可編程開關。新的可編程ASIC允許支持自定義協(xié)議以及現(xiàn)在和未來的協(xié)議。這需要新的更高級別的域特定語言來簡化轉(zhuǎn)發(fā)平面的寫入。每個ASIC制造商都必須提出自己的自定義語言,這更多地依賴于硬件架構。將轉(zhuǎn)發(fā)平面邏輯從一個網(wǎng)絡ASIC制造商移植到另一個制造商將需要大量的努力,而且非常痛苦。這產(chǎn)生了對獨立于底層硬件和協(xié)議的標準語言的需求。
什么是P4?
P4(獨立于編程協(xié)議的數(shù)據(jù)包處理器)是一種特定于域的開源編程語言,專為編程可重新配置的網(wǎng)絡管道而設計。P4語言是公共語言,由 p4.org 聯(lián)盟開發(fā),該聯(lián)盟包括網(wǎng)絡,云系統(tǒng)和學術機構領域的各種公司。最初,P4是為網(wǎng)絡交換機的數(shù)據(jù)平面編程而設計的,但其范圍已擴大到涵蓋可編程網(wǎng)絡元素,例如硬件或軟件交換機,網(wǎng)絡接口卡,路由器或其他數(shù)據(jù)包處理系統(tǒng)。
P4 編譯器:P4 如何獨立于目標?
從過去幾年來看,很明顯,任何網(wǎng)絡設備中數(shù)據(jù)平面處理的數(shù)據(jù)包大致可以分為三個基本階段。1)解析器塊:負責數(shù)據(jù)包識別和提取,2)控制塊:負責匹配+操作,3)解析器:負責形成所需的出口數(shù)據(jù)包。網(wǎng)絡芯片就是以這種方式構建的,并且是獨立于協(xié)議的。P4 是可以為任何目標設備編譯以指定如何在數(shù)據(jù)平面中處理數(shù)據(jù)包的語言。P4 編譯器的體系結(jié)構通過分離語言和目標模型來幫助使其獨立于目標。P4 具有前端開源和后端松散,使其獨立于目標。每個芯片供應商都可以實現(xiàn)自己的編譯器后端以映射到其硬件架構。P4 的架構還有助于通過定義自己的模型,然后編寫 p4 后端來支持相同的硬件細節(jié)。

圖 1:P4 編譯器體系結(jié)構
每個芯片制造商只需要擁有與其硬件兼容的P4編譯器工具鏈,用戶可以獨立于供應商的依賴編寫自己的P4程序,在不影響速度的情況下進行編譯和運行。用戶只需要專注于實際的數(shù)據(jù)包處理邏輯,而無需擔心底層硬件。編譯器將為硬件生成運行時代碼。圖 2 顯示了 P4 為數(shù)據(jù)平面編程提供的核心組件。

圖 2:P4 組件
P4 有何益處?
適用于所有可編程網(wǎng)絡設備的開源語言。易于攜帶
由于P4程序可以由用戶編寫,因此有助于保留新IP的所有權。現(xiàn)在不再需要與芯片供應商或有時他們的客戶共享新功能規(guī)范,從而保留知識產(chǎn)權保護
P4 使新協(xié)議的部署變得更加簡單,消耗的時間更少
在不同應用程序中使用的網(wǎng)絡設備需要不同的協(xié)議集。使用 P4,用戶可以根據(jù)其應用程序僅實現(xiàn)所需的協(xié)議,并刪除其應用程序不需要的協(xié)議。因此,可用資源可以得到有效利用
編程數(shù)據(jù)平面現(xiàn)在使用軟件,您可以使用P4編寫程序,在硬件上進行編譯和加載,從而提供諸如軟件重用,數(shù)據(jù)隱藏,庫創(chuàng)建,硬件和軟件組件分離,輕松軟件升級和輕松調(diào)試等好處
使用 P4 的挑戰(zhàn)
自定義專有語言可以更好地控制可編程網(wǎng)絡硬件,因為它僅為此而設計。P416 確實支持 extern 方法以滿足此類自定義硬件特定要求,但在 P4 中使用 extern 使其不那么便攜
哈希、ECMP、組播、廣播、鏡像、排隊、調(diào)度和校驗和等功能很少非常依賴于硬件。使用通用 P4 解決所有目標并完全訪問硬件很困難
P4 中控制平面和數(shù)據(jù)平面之間的通信方式有限。不支持生成新數(shù)據(jù)包
P4開辟了很多機會,并改變了網(wǎng)絡芯片的設計方式。P4架構給出了設計完全可編程芯片的示例模型和想法。展望未來,所有傳統(tǒng)交換機將很快轉(zhuǎn)換為具有完全軟件定義數(shù)據(jù)和控制平面的可編程交換機。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
20255瀏覽量
252280 -
交換機
+關注
關注
23文章
2904瀏覽量
104468 -
編譯器
+關注
關注
1文章
1672瀏覽量
51610
發(fā)布評論請先 登錄
虛幻引擎5在建筑可視化中的應用:趨勢、挑戰(zhàn)與基于Perforce P4的工作流程
【汽車行業(yè)指南】超越競爭對手:用統(tǒng)一的數(shù)據(jù)管理平臺Perforce P4,賦能汽車軟件創(chuàng)新與安全合規(guī)
如何使用ipv4_nat模塊實現(xiàn)SNAT轉(zhuǎn)發(fā)?
汽車電子開發(fā)必看:基于Perforce P4實現(xiàn)ISO 26262合規(guī)認證的版本管理解決方案
逐點半導體攜手真我為P4系列智能手機帶來旗艦級視覺體驗
【汽車行業(yè)案例】重型汽車制造商Scania:采用版本管理平臺Perforce P4實現(xiàn)敏捷交付與合規(guī)審計
汽車開發(fā)團隊必看:汽車軟件開發(fā)的五大挑戰(zhàn)及應對解決方案Perforce P4
游戲、汽車、影視制作等行業(yè)大廠都在用的版本控制解決方案:Perforce P4 六大核心優(yōu)勢
【版本控制教程】如何使用Unreal Engine 5 + UE源代碼控制(Perforce P4)
Git vs Perforce P4:版本控制系統(tǒng)選型指南(附適用場景、團隊類型)
主流版本控制工具Git vs Perforce P4:架構模式、性能、大文件管理及分支管理對比詳解
直觀易用的版本控制客戶端:Perforce P4 One簡介及常見問題解答
Perforce P4產(chǎn)品簡介:無限擴展+全球協(xié)作+安全管控+工具集成
【版本控制】Perforce P4服務器安全配置指南(附常見漏洞、詳細配置參數(shù))
Perforce品牌及產(chǎn)品名更新:涵蓋版本控制Perforce P4(原Helix Core)、靜態(tài)代碼分析Perforce QAC(原Helix QAC)等
P4:網(wǎng)絡轉(zhuǎn)發(fā)平面編程
評論