P4可編程技術(shù)解析:理論和硬件架構(gòu)設(shè)計(jì)

參考

  1. P4: Programming Protocol-Independent Packet Processors
  2. Design Principles for Packet Parsers
  3. Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
  4. 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ū)三部分。


The abstract forwarding model.png

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ò)展性。

image.png

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

image.png

5.2 Match-Action部分實(shí)現(xiàn)

將查表拆分為多級(jí)。

image.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容