關於題目,對資料平面進行程式設計,在之前讀過the road to sdn,軟體定義網路的思想在於數控分離,其對網路行為的程式設計暫時只侷限於網路控制平面。其**平面在很大程度上受制於功能固定的包處理硬體。而p4語言的出現就是為了完全擺脫網路資料平面的束縛。p4被稱作為完全可程式設計南向程式設計介面,其提出的目的就是為了解決openflow程式設計能力不足及其設計本身所存在的可拓展性差的難題。
關於p4這個名字的由來其實來自於「programming protocol-independent packet processors」,翻譯過來就是「與協議無關的資料報處理程式語言」
針對於不同的使用者,其帶來的優勢也有所不同。
人員優勢
網路系統**商
更快速的迭代,快速便捷的修復資料平面的漏洞,可以與軟體行業有所交流收益
網路擁有者
自定義網路功能,對於網路功能的設計更簡便更具有針對性和可操作性
網路晶元**商
將開發設計重點轉移晶元的基本素質,資料報處理架構以及基本模組
科研人員
更方便的驗證實現新的想法與功能
p4程式語言具有對交換機的協議解析流程和資料處理流程進行程式設計的能力,通過p4,交換裝置無需關注協議語法語義等內容,就可以完成資料處理,進行網路程式設計無需關心底層裝置的具體資訊。就像python or c寫上層應用時不需要關心cpu的資訊一樣。
出於對先前用於固定功能的資料報處理硬體的不滿足,提出了一種通用架構是協議無關的交換機架構——protocol-independent switch architecture 即pisa。
高效率資料報處理
逆解析:可程式設計,經過修改過的資料報頭在輸出之前需要重新組合。
回流路徑:資料報可以重新反饋到解析器流水線進行重新處理。
資料報生成器:cpu可以將週期生成資料報的工作由此模組完成。
提供了連線資料和控制平面的高頻寬通道。使得二者互動更為快速。
每乙個p4程式包含如下五個關鍵元件:
元件功能
header(包頭)
定義描述一系列欄位的順序和結構,包括欄位的寬度和字段值的限制
parser(解析器)
定義如何識別出包頭
table(表)
「匹配-動作」表是執行資料報處理的機制,p4程式定義了在表內可以匹配的字段和可以執行的操作
action(動作)
預先定義的與協議無關的簡單基本操作,可以在表中使用
control program(控制程式)
決定以什麼順序用「匹配-動作」表處理資料報