2018年2月8日 星期四

[筆記] 2018/02/06 P4 workshop in NCTU

大家好啊~~
前幾天交大才舉辦P4的工作坊
趁記憶猶新
稍稍做個筆記以免忘記XD

這裡說明一下P4是什麼?
P4全名為Programming Protocol-independent Packet Processors
他是一個程式語言,用來決定每個switch的行為,包含封包的欄位switch具有的flow table
根據P4的作者在他發的paper中表示,他提出的P4相當於OpenFlow 2.0,有一種「SDN的救星」的感覺。

那為何P4可譽為是SDN的救星?
主要有兩個方面
1. 由於SDN在P4誕生之前,主要是照著OpenFlow協議去規範。
從OpenFlow 1.0演進到現在的OpenFlow 1.4,在封包中的header欄位一直在增加,這對於設計switch的人來說很不方便,因為都被這個protocol綁死了,無法根據自己網路需求來增加或減少header欄位。
P4讓設計人員可以在區域網路的switch上自訂封包欄位,不用受到protocol的牽制,即為protocol independent
2. 從OpenFlow 1.1之後,多了Multiple Flow Table的設計。
由於在1.0的時候,每個switch都是只有一個大table,但是每個欄位之中的數值很少,大部分的值都是don't care,這會導致很大的空間浪費
Multiple Flow Table這樣的設計會把大table拆解成很多小table,這可以讓switch的用更少的空間記住相等的資訊,但這導致了一個問題。因為每個SDN switch廠商的switch包含的table數量都不一樣,即使一樣但在pipeline的flow table比較順序都不一樣,進而導致不相容。
P4可以讓設計人員可以在區域網路的switch上,自訂每個switch的flow table樣式,以及pipeline的運作順序。

如果有什麼想問的問題
歡迎在留言提問喔

6 則留言: