SDN可以劃分為三層,中間是控制器,用于接收控制指令來操作下面設備的程序,上層是應用App,負責調用控制器提供的接口和數據來實現各種功能,間接方式來控制網絡,底層是數據交換層。借助SDN,我們就可以直接在控制層面操作網絡設備,設計隨便任何各種轉發和路由的規則,設計新的網絡協議,提供各種各樣的服務,實現很多的安全方案等等。
P4(Programming Protocol-Independent Packet Processors),意思是“與協議無關的數據包處理編程語言”,主要用在SDN網絡的數據層開發,采用聲明式的編程方式來下達指令給數據轉發平面的設備(如交換機、網卡、防火墻、過濾器等)如何進行數據包的處理。P4的誕生無論是在軟件設計(編程、調試、代碼覆蓋、模塊檢查等)方面,還是在網絡系統的設計上都變得更加清晰和簡化。
近日Xilinx在斯坦福大學舉辦的“P4語言開發日”活動上發布了最新版本的SDNet 2017.1開發工具,兼容最新的P4開發語言規范,即通過編譯操作SDNet可以將前端的P4聲明式程序轉換為數據層的算法IP核,能夠在FPGA器件中運行,主要用于高速(1Gbps~100Gbps)數據包的處理操作。