軟體定義網路與 NFV

資料平面(data plane)

回到鐵路。如果控制平面是設定規則的號誌室,那麼資料平面就是軌道、轉轍器與轉動的車輪——真正讓每班列車沿著被指定路徑前進的機構。在網路裡,資料平面就是快速路徑:交換器或路由器中接收封包、查出該怎麼處理、再把它從正確的埠送出去的那一部分,每秒做上數百萬次。它不思考;它執行控制平面交給它的規則。

具體而言,資料平面是為速度而生,常以專用硬體(ASIC)實作,才跟得上線路速率。對每個進來的封包,它做一段小而固定的舞步:從封包標頭讀出幾個欄位,在轉送表或流表(flow table)中查找,再套用匹配到的動作——從某埠轉送、丟棄、改寫某欄位,或送給控制器。核心路由器的資料平面每秒可推送數兆位元;它負擔不起為每個封包跑一次路由演算法,這正是為什麼緩慢的思考被留給控制平面。資料平面只負責比對與動作。

為什麼重要:網路幾乎所有實際的工作都發生在資料平面,所以它的能力決定了網路能做什麼的上限。傳統上資料平面是固定的——它只懂內建的那套協定,別的都不懂。現代對可程式化資料平面的推動(搭配 P4 之類的語言),就是要讓這條快速路徑也能重新設定,使你不必買新晶片就能教交換器認識新的封包格式與動作。一個誠實的提醒:把資料平面與控制平面分開,並不會讓轉送神奇地變快;它只是改變了決定在哪裡被做出。

一個封包抵達交換器。資料平面讀出它的目的 IP,在轉送表中找到最長前綴匹配(例如:凡屬於 10.1.0.0/16 的都從第 3 埠送出),把存活時間遞減,再從第 3 埠轉送出去——全程在奈秒內完成,沒有任何軟體介入。控制平面先前裝好了那條表項;資料平面只是用了它。

比對標頭、套用動作、搬移封包——以線路速率,每一次都如此。

資料平面有時也稱為轉送平面(forwarding plane)。兩個名字指的是同一件事:逐封包的快速路徑,有別於較慢、負責制定規則的控制平面。

又称
data planeforwarding plane資料平面轉送平面