隨著物聯(lián)網(wǎng)設(shè)備的巨大增長、數(shù)據(jù)流量的增加、新協(xié)議以及私有云和公共云的不斷增長,網(wǎng)絡(luò)世界的創(chuàng)新步伐正在加快。網(wǎng)絡(luò)的未來已經(jīng)超越了分離SDN的數(shù)據(jù)和控制平面,而是在ASIC深處對轉(zhuǎn)發(fā)邏輯進(jìn)行編程?,F(xiàn)在,技術(shù)正在從傳統(tǒng)的固定架構(gòu)硅開關(guān)轉(zhuǎn)向靈活的可編程開關(guān)。新的可編程ASIC允許支持自定義協(xié)議以及現(xiàn)在和未來的協(xié)議。這需要新的更高級別的域特定語言來簡化轉(zhuǎn)發(fā)平面的寫入。每個(gè)ASIC制造商都必須提出自己的自定義語言,這更多地依賴于硬件架構(gòu)。將轉(zhuǎn)發(fā)平面邏輯從一個(gè)網(wǎng)絡(luò)ASIC制造商移植到另一個(gè)制造商將需要大量的努力,而且非常痛苦。這產(chǎn)生了對獨(dú)立于底層硬件和協(xié)議的標(biāo)準(zhǔn)語言的需求。
什么是P4?
P4(獨(dú)立于編程協(xié)議的數(shù)據(jù)包處理器)是一種特定于域的開源編程語言,專為編程可重新配置的網(wǎng)絡(luò)管道而設(shè)計(jì)。P4語言是公共語言,由 p4.org 聯(lián)盟開發(fā),該聯(lián)盟包括網(wǎng)絡(luò),云系統(tǒng)和學(xué)術(shù)機(jī)構(gòu)領(lǐng)域的各種公司。最初,P4是為網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)平面編程而設(shè)計(jì)的,但其范圍已擴(kuò)大到涵蓋可編程網(wǎng)絡(luò)元素,例如硬件或軟件交換機(jī),網(wǎng)絡(luò)接口卡,路由器或其他數(shù)據(jù)包處理系統(tǒng)。
P4 編譯器:P4 如何獨(dú)立于目標(biāo)?
從過去幾年來看,很明顯,任何網(wǎng)絡(luò)設(shè)備中數(shù)據(jù)平面處理的數(shù)據(jù)包大致可以分為三個(gè)基本階段。1)解析器塊:負(fù)責(zé)數(shù)據(jù)包識別和提取,2)控制塊:負(fù)責(zé)匹配+操作,3)解析器:負(fù)責(zé)形成所需的出口數(shù)據(jù)包。網(wǎng)絡(luò)芯片就是以這種方式構(gòu)建的,并且是獨(dú)立于協(xié)議的。P4 是可以為任何目標(biāo)設(shè)備編譯以指定如何在數(shù)據(jù)平面中處理數(shù)據(jù)包的語言。P4 編譯器的體系結(jié)構(gòu)通過分離語言和目標(biāo)模型來幫助使其獨(dú)立于目標(biāo)。P4 具有前端開源和后端松散,使其獨(dú)立于目標(biāo)。每個(gè)芯片供應(yīng)商都可以實(shí)現(xiàn)自己的編譯器后端以映射到其硬件架構(gòu)。P4 的架構(gòu)還有助于通過定義自己的模型,然后編寫 p4 后端來支持相同的硬件細(xì)節(jié)。
圖 1:P4 編譯器體系結(jié)構(gòu)
每個(gè)芯片制造商只需要擁有與其硬件兼容的P4編譯器工具鏈,用戶可以獨(dú)立于供應(yīng)商的依賴編寫自己的P4程序,在不影響速度的情況下進(jìn)行編譯和運(yùn)行。用戶只需要專注于實(shí)際的數(shù)據(jù)包處理邏輯,而無需擔(dān)心底層硬件。編譯器將為硬件生成運(yùn)行時(shí)代碼。圖 2 顯示了 P4 為數(shù)據(jù)平面編程提供的核心組件。
圖 2:P4 組件
P4 有何益處?
適用于所有可編程網(wǎng)絡(luò)設(shè)備的開源語言。易于攜帶
由于P4程序可以由用戶編寫,因此有助于保留新IP的所有權(quán)?,F(xiàn)在不再需要與芯片供應(yīng)商或有時(shí)他們的客戶共享新功能規(guī)范,從而保留知識產(chǎn)權(quán)保護(hù)
P4 使新協(xié)議的部署變得更加簡單,消耗的時(shí)間更少
在不同應(yīng)用程序中使用的網(wǎng)絡(luò)設(shè)備需要不同的協(xié)議集。使用 P4,用戶可以根據(jù)其應(yīng)用程序僅實(shí)現(xiàn)所需的協(xié)議,并刪除其應(yīng)用程序不需要的協(xié)議。因此,可用資源可以得到有效利用
編程數(shù)據(jù)平面現(xiàn)在使用軟件,您可以使用P4編寫程序,在硬件上進(jìn)行編譯和加載,從而提供諸如軟件重用,數(shù)據(jù)隱藏,庫創(chuàng)建,硬件和軟件組件分離,輕松軟件升級和輕松調(diào)試等好處
使用 P4 的挑戰(zhàn)
自定義專有語言可以更好地控制可編程網(wǎng)絡(luò)硬件,因?yàn)樗鼉H為此而設(shè)計(jì)。P416 確實(shí)支持 extern 方法以滿足此類自定義硬件特定要求,但在 P4 中使用 extern 使其不那么便攜
哈希、ECMP、組播、廣播、鏡像、排隊(duì)、調(diào)度和校驗(yàn)和等功能很少非常依賴于硬件。使用通用 P4 解決所有目標(biāo)并完全訪問硬件很困難
P4 中控制平面和數(shù)據(jù)平面之間的通信方式有限。不支持生成新數(shù)據(jù)包
P4開辟了很多機(jī)會,并改變了網(wǎng)絡(luò)芯片的設(shè)計(jì)方式。P4架構(gòu)給出了設(shè)計(jì)完全可編程芯片的示例模型和想法。展望未來,所有傳統(tǒng)交換機(jī)將很快轉(zhuǎn)換為具有完全軟件定義數(shù)據(jù)和控制平面的可編程交換機(jī)。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19091瀏覽量
228766 -
交換機(jī)
+關(guān)注
關(guān)注
20文章
2610瀏覽量
99059 -
編譯器
+關(guān)注
關(guān)注
1文章
1616瀏覽量
49009
發(fā)布評論請先 登錄
相關(guān)推薦
評論