1. 二者的定義
DPDK(數據平面開發工具包):用於更快數據包處理的一組庫和驅動程序。
P4:一種高級別的可編程語言,它支持獨立於轉發平面的協議編程。
2. DPDK 的優勢
-
DPDK 可以實現 L4和 L7 的處理。DPDK的工作原理是為在接口上捕獲的整個數據包緩沖區上應用規則提供機會。基於P4的應用僅支持 L4級別的處理;
-
只要物理部署有DPDK兼容的網絡控制器,那么DPDK的方案即可在物理和虛擬環境中都能運行;
-
DPDK在內部維護負載平衡組會話,從而避免外部應用程序。P4需要額外的控制器支持來記錄會話信息;
-
DPDK中應用可以輕松的支持組監控並實現自動縮放功能。使用基於P4的交換機實現同樣的功能很復雜,因為需要實現L2或控制器級別的附加邏輯來捕獲服務器組的運行狀況信息。
3. P4 的優勢
-
基於P4的負載平衡器在可編程交換機中運行,因此無需部署實際的負載平衡器。這大大減少了部署占用空間,並與基於DPDK的解決方案相比有了顯著的改進。
-
基於可編程ASIC的實現速度更快,支持管道的動態配置,無需重新啟動。在DPDK中,性能將受到限制,具體取決於部署解決方案的基礎架構。
-
同一個基於P4的負載平衡器可以安裝在多個可編程ASIC上,只需對其進行最小的修改即可支持P4。
4. 總結
-
基於DPDK和P4的解決方案都支持具有線速率性能的快速數據包處理。但是,P4具有動態管道配置,與基於DPDK的實現相比,它可以減少部署占用空間。
-
P4運行時庫通過SDN控制器提供了高效的編排,因此我們建議在組配置可以保持靜態且服務提供僅為L4的部署中使用基於P4的負載平衡器。
-
考慮到為水平和垂直擴展場景配置DPDK負載平衡器的方便性,DPDK負載平衡器將是雲部署的合適選擇。在未來,我們預計P4將隨着ASIC程序性能的提高而獲得突出地位,支持自動縮放、服務監控和L7支持等急需的功能。
