參考
- P4: Programming Protocol-Independent Packet Processors
- Design Principles for Packet Parsers
- Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
- Compiling Packet Programs to Reconfigurable Switches
P4可編程技術(shù)是一種專為數(shù)據(jù)平面設(shè)計(jì)的領(lǐng)域特定語言(DSL),由斯坦福大學(xué)研究團(tuán)隊(duì)于2014年提出,旨在打破傳統(tǒng)固定封裝模式,釋放數(shù)據(jù)平面的編程能力。以下是P4可編程技術(shù)的一些關(guān)鍵特性和應(yīng)用:
1. P4的誕生:
P4語言的提出是為了在網(wǎng)卡、交換機(jī)、路由器等網(wǎng)絡(luò)設(shè)備上實(shí)現(xiàn)包括VXLAN、MPLS等在內(nèi)的各種網(wǎng)絡(luò)協(xié)議。
2. P4語言特性:
- 協(xié)議無關(guān)性:P4語言不與特定網(wǎng)絡(luò)協(xié)議綁定,允許用戶根據(jù)現(xiàn)網(wǎng)協(xié)議支持情況和P4語法要素來實(shí)現(xiàn)轉(zhuǎn)發(fā)邏輯自定義,可按需加入新協(xié)議,也可刪去冗余協(xié)議。
- 平臺(tái)無關(guān)性:P4語言無需關(guān)注底層平臺(tái)細(xì)節(jié),用戶能夠獨(dú)立于底層硬件對(duì)報(bào)文處理功能編程。前端編譯器將P4高級(jí)語言程序轉(zhuǎn)換成中間表示IR,后端編譯器再將IR編譯成目標(biāo)設(shè)備配置。
- 可重構(gòu)性:P4語言支持在不更換硬件的情況下動(dòng)態(tài)修改數(shù)據(jù)包處理方式,允許同一臺(tái)設(shè)備根據(jù)現(xiàn)網(wǎng)需求隨時(shí)重新配置。
3. P4轉(zhuǎn)發(fā)模型:
P4語言定義了抽象轉(zhuǎn)發(fā)模型,主要包括解析器、多級(jí)流水線和緩沖區(qū)三部分。

4. P4技術(shù)的應(yīng)用:
- 數(shù)據(jù)中心互聯(lián)的云邊界網(wǎng)關(guān):云邊界網(wǎng)關(guān)作為連接云內(nèi)外網(wǎng)絡(luò)的橋梁,需要處理大量的數(shù)據(jù)流量,且云服務(wù)場(chǎng)景豐富,設(shè)計(jì)時(shí)需要考慮靈活可擴(kuò)展,充分利用了P4語言的高度靈活性和可編程性。
- 分布式的帶內(nèi)網(wǎng)絡(luò)遙測(cè):分布式帶內(nèi)網(wǎng)絡(luò)遙測(cè)允許網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)協(xié)同工作,實(shí)時(shí)收集和報(bào)告網(wǎng)絡(luò)狀態(tài)信息,而無需控制平面的干預(yù)。這就需要定義數(shù)據(jù)包INT頭部,用于攜帶遙測(cè)指令和元數(shù)據(jù),再利用P4程序定義數(shù)據(jù)包的解析邏輯,以識(shí)別和提取INT頭部。
5. P4的硬件實(shí)現(xiàn):
P4語言在設(shè)計(jì)之初就是以硬件的網(wǎng)絡(luò)可編程為目標(biāo)。在其平臺(tái)無關(guān)性中提到在前后端編譯器的共同工作下,P4語言程序最終會(huì)被編譯成目標(biāo)設(shè)備配置。這個(gè)過程實(shí)際上是P4的硬件下發(fā)。P4通過硬件相關(guān)的編譯器編譯成硬件機(jī)器碼或匯編代碼,下發(fā)到硬件中,真正實(shí)現(xiàn)硬件的網(wǎng)絡(luò)可編程。
5.1 Parser部分實(shí)現(xiàn)
以往Parser部分的設(shè)計(jì)采用固化Pipeline設(shè)計(jì),如下圖所示,該架構(gòu)只能解析固定的報(bào)文頭,不具有擴(kuò)展性。

P4采用可編程parser設(shè)計(jì),如下圖所示。區(qū)別于Fixed parser,programmable parser添加了TCAM和RAM,TCAM存儲(chǔ)報(bào)文頭的type,RAM存儲(chǔ)下一個(gè)狀態(tài)信息,要提取的域段和其他需要的數(shù)據(jù)。

5.2 Match-Action部分實(shí)現(xiàn)
將查表拆分為多級(jí)。

P4可編程技術(shù)因其靈活性和可編程性,在網(wǎng)絡(luò)領(lǐng)域中扮演著越來越重要的角色,特別是在軟件定義網(wǎng)絡(luò)(SDN)、網(wǎng)絡(luò)函數(shù)虛擬化(NFV)以及網(wǎng)絡(luò)研究和實(shí)驗(yàn)中。