偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

P4:開創(chuàng)數(shù)據(jù)平面可編程時代

開發(fā) 開發(fā)工具
新一代的SDN解決方案必須讓數(shù)據(jù)轉(zhuǎn)發(fā)平面也具有可編程能力,讓軟件能夠真正定義網(wǎng)絡和網(wǎng)絡設備。而P4正是為用戶提供了這種能力,打破了硬件設備對數(shù)據(jù)轉(zhuǎn)發(fā)平面的限制,讓數(shù)據(jù)包的解析和轉(zhuǎn)發(fā)流程也能通過編程控制,使得網(wǎng)絡及設備自上而下地、真正地向用戶開放。

現(xiàn)有的SDN解決方案將控制平面與轉(zhuǎn)發(fā)平面分離,并為我們提供了控制平面的可編程能力。而事實上,目前通過軟件編程實現(xiàn)的控制平面的功能,在傳統(tǒng)的高級交換機和路由器上也都能實現(xiàn),差別是廠商把這些功能固化在了系統(tǒng)/硬件中,這些系統(tǒng)/硬件是封閉的,第三方難以介入進行定制或二次開發(fā)。雖然一些高級設備提供了SDK,使得用戶能夠進行一定程度的定制,但也必須受廠商所制定的規(guī)范的限制,能做到的事情十分有限。目前SDN所做的就是打破這些限制,讓設備和網(wǎng)絡更加的靈活,讓用戶不被廠商設備綁定,從而擁有無限的可能。

現(xiàn)有的SDN解決方案為用戶開放的是控制平面的可編程能力,那轉(zhuǎn)發(fā)平面呢?正常情況下,轉(zhuǎn)發(fā)設備的數(shù)據(jù)包解析,轉(zhuǎn)發(fā)流程是由設備轉(zhuǎn)發(fā)芯片固化的,所以設備在協(xié)議的支持方面并不具備擴展能力。并且,廠商開發(fā)新的轉(zhuǎn)發(fā)芯片以支持新的協(xié)議或者擴展協(xié)議特性的代價也非常高,需要將以前的硬件重新設計,勢必導致更新成本高,時間周期長等一系列問題。所以在一定程度上,這種將設備功能和協(xié)議支持與硬件綁定的模式限制了網(wǎng)絡的快速發(fā)展。

因此,我們可以得出以下結(jié)論:新一代的SDN解決方案必須讓數(shù)據(jù)轉(zhuǎn)發(fā)平面也具有可編程能力,讓軟件能夠真正定義網(wǎng)絡和網(wǎng)絡設備。而P4正是為用戶提供了這種能力,打破了硬件設備對數(shù)據(jù)轉(zhuǎn)發(fā)平面的限制,讓數(shù)據(jù)包的解析和轉(zhuǎn)發(fā)流程也能通過編程控制,使得網(wǎng)絡及設備自上而下地、真正地向用戶開放。

下面,我們主要從以下幾個方面談談我對P4這門轉(zhuǎn)發(fā)平面的編程語言的理解:P4的架構(gòu)及特性、交換機結(jié)構(gòu)、P4程序工作流程。

1.P4架構(gòu)及特性

首先我們談談P4的誕生,由Nick教授,博科姆教授等聯(lián)合發(fā)布了一篇論文《P4: Programming Protocol-Independent Packet Processors》,該論文在SDN界引起了極大的反響和關(guān)注度。隨后,Nick教授等人又發(fā)布了《The P4 Language Specification》、《Barefoot白皮書》等文件。目前,P4已經(jīng)在國外引起了足夠的重視,ONF成立了協(xié)議無關(guān)轉(zhuǎn)發(fā)的開源項目(PIF),該項目目前的工作重點就是為P4提供配套的中間表示IR(Intermediate Representation),另外PIF工作的成果將被用來設計下一代的OpenFlow協(xié)議。

目前人們提及最多的OpenFlow協(xié)議在逐漸的完善演化過程中,表字段和表類型不斷的增加。白牌交換機在支持OpenFlow協(xié)議的版本更新上,面臨著和傳統(tǒng)交換設備廠商同樣的困境——OpenFlow并不支持彈性地增加匹配域支持,協(xié)議新特性的支持所需要的成本大、時間周期長。同時,隨著網(wǎng)絡中新的協(xié)議不斷出現(xiàn),OpenFlow協(xié)議也必將變得越來越臃腫,表的擴展也必將變得越來越困難。

P4語言在設計之初,就是為了實現(xiàn)以下三個特性:

(1)協(xié)議無關(guān)性

網(wǎng)絡設備不與任何特定的網(wǎng)絡協(xié)議綁定,用戶可以使用P4語言描述任何網(wǎng)絡數(shù)據(jù)平面協(xié)議和數(shù)據(jù)包處理行為。這一特性通過自定義包解析器、匹配-動作表的匹配流程和流控制程序?qū)崿F(xiàn)。

(2)目標無關(guān)性

用戶不需要關(guān)心底層硬件的細節(jié)就可實現(xiàn)對數(shù)據(jù)包的處理方式的編程描述。這一特性通過P4前后端編譯器實現(xiàn),前端編譯器將P4高級語言程序轉(zhuǎn)換成中間表示IR,后端編譯器將IR編譯成設備配置,自動配置目標設備。

(3)可重構(gòu)性

允許用戶隨時改變包解析和處理的程序 ,并在編譯后配置交換機,真正實現(xiàn)現(xiàn)場可重配能力。

為了實現(xiàn)上述特性,P4語言的編譯器采用了模塊化的設計,各個模塊之間的輸入輸出都采用標準格式的配置文件,如p4c-bm模塊的輸出作為載入到bmv2模塊中的JSON格式配置文件。P4的架構(gòu)圖如圖1所示。

圖1 P4架構(gòu)圖

2. 交換機結(jié)構(gòu)

在傳統(tǒng)交換機中,數(shù)據(jù)流轉(zhuǎn)化為數(shù)據(jù)幀之后進行解析,首先檢查的是tag,包括有無tag、靈活Q-in-Q、VLAN映射等。VLAN tag的檢查和處理在所有廠商的交換機中都是必須的,但隨后數(shù)據(jù)包處理流程就因廠商而異了,不同廠商的芯片設計會產(chǎn)生不同的處理流程,每個處理流程就是一個基礎的數(shù)據(jù)處理單元,一般情況下,交換機的流水線包含6-8個數(shù)據(jù)處理單元。

圖2 傳統(tǒng)交換機流水線結(jié)構(gòu)

圖2中列出的是幾個比較常見的數(shù)據(jù)幀處理單元,如二層轉(zhuǎn)發(fā)、ACL轉(zhuǎn)發(fā)等。流水線上每個基礎數(shù)據(jù)處理單元處理數(shù)據(jù)的過程,就是根據(jù)數(shù)據(jù)幀解析后的包頭信息,重復查表、匹配并執(zhí)行對應的交換機指令的過程。

P4交換機中也有流水線(pipeline)的概念,一條流水線表示一組完整的數(shù)據(jù)處理流程,這一概念和傳統(tǒng)交換機中的的流水線是相似的。如圖3所示,在P4交換機中一條流水線可以包含以下組件:解析器/逆解析器、匹配-動作表、元數(shù)據(jù)總線。其中除了元數(shù)據(jù)總線,其他組件都是非必須的。

  • 解析器(parser):將分組數(shù)據(jù)轉(zhuǎn)化成元數(shù)據(jù)。
  • 逆解析器(Deparser):將元數(shù)據(jù)轉(zhuǎn)化成序列化的分組數(shù)據(jù)。
  • 匹配動作表(match-action table):操作元數(shù)據(jù)。
  • 元數(shù)據(jù)(metadata):在流水線內(nèi)存儲數(shù)據(jù)信息。

圖3 P4交換機流水線結(jié)構(gòu)

P4交換機中將流水線處理數(shù)據(jù)的過程進行抽象和重定義,數(shù)據(jù)處理單元對數(shù)據(jù)的處理抽象成匹配和執(zhí)行匹配-動作表的過程,包頭的解析抽象成P4中的解析器,數(shù)據(jù)處理流程抽象成流控制。P4中基礎數(shù)據(jù)處理單元是不記錄數(shù)據(jù)的,所以就需要引入一個元數(shù)據(jù)總線,用來存儲一條流水線處理過程中需要記錄的數(shù)據(jù)。P4交換機的專用物理芯片Tofino,最高支持12個數(shù)據(jù)處理單元,可以覆蓋傳統(tǒng)交換機的所有功能。

有了以上的知識儲備,就可以很輕松的刻畫出P4交換機的結(jié)構(gòu)。如圖4所示,P4交換機中含有兩條流水線——入口流水線和出口流水線;同時還有一些數(shù)據(jù)流管理功能,例如:擁塞控制,隊列控制,流量復制等。

圖4 P4交換結(jié)構(gòu)

對比圖2 圖3和圖4,我們不難看出P4交換機結(jié)構(gòu)與傳統(tǒng)的交換機并沒有多少差別,而且在芯片的設計上也僅僅是增加了可以自定義基礎數(shù)據(jù)處理單元和轉(zhuǎn)發(fā)流程的功能,其他設計與傳統(tǒng)交換機芯片無異,這也使得P4交換機能夠在為用戶提供數(shù)據(jù)轉(zhuǎn)發(fā)平面的可編程能力的同時,保證數(shù)據(jù)的線性轉(zhuǎn)發(fā)速率。

3. P4程序工作流程

至此,我們可以梳理出P4的完整工作流程。用戶首先需要自定義數(shù)據(jù)幀的解析器和流控制程序,其次P4程序經(jīng)過編譯器編譯后輸出JSON格式的交換機配置文件和運行時的API,再次配置的文件載入到交換器中后更新解析起和匹配-動作表,最后交換機操作系統(tǒng)按照流控制程序進行包的查表操作。

圖5 P4工作流程

如圖5所示,以新增VLAN包解析為例,圖中解析器除VXLAN以外的包解析是交換機中已有的,載入VXLAN.p4文件所得的配置文件的過程就是交換機的重配置過程。配置文件載入交換機后,解析器中會新增對VXLAN包解析,同時更新匹配-動作表,匹配成功后執(zhí)行的動作也是在用戶自定的程序中指定。執(zhí)行動作需要交換機系統(tǒng)調(diào)用執(zhí)行動作對應的指令來完成,這時交換機系統(tǒng)調(diào)用的是經(jīng)過P4編譯器生成的統(tǒng)一的運行時API,這個API就是交換機系統(tǒng)調(diào)用芯片功能的驅(qū)動,流控制程序就是指定API對應的交換機指令。

以上P4語言的特性、P4語言和P4交換機的工作原理和流程就介紹完畢了,希望能讓不了解P4的人能有個基本的認識,同時起到拋磚引玉的作用。對P4感興趣的同學可以聯(lián)系筆者加入到P4微信交流群中與大牛們一起討論。

責任編輯:武曉燕 來源: sdnlab
相關(guān)推薦

2019-11-22 09:20:34

編程經(jīng)濟技術(shù)

2022-04-29 09:43:12

IPDKAPI框架DPU/IPU

2014-03-26 10:49:06

SDN軟件定義網(wǎng)絡網(wǎng)絡可編程性

2018-02-01 04:02:41

數(shù)據(jù)中心網(wǎng)絡編程

2013-08-06 14:04:46

網(wǎng)絡

2009-06-19 18:51:13

ibmdwLotus

2013-08-07 09:00:57

軟件定義網(wǎng)絡SDN

2023-04-04 15:46:16

云計算

2016-07-05 11:13:57

騰訊云+Gartner云計算

2010-07-07 14:42:17

SQL Server

2021-05-31 20:06:57

網(wǎng)元協(xié)議網(wǎng)關(guān)

2012-11-09 12:52:30

華為SDN傳送網(wǎng)絡

2012-06-14 10:17:16

TecTile三星

2013-05-03 09:49:38

ASICSDN可編程ASIC

2010-07-20 09:40:15

SQL Server

2015-11-04 13:56:06

SDN可編程性企業(yè)

2022-05-19 14:49:19

Nick網(wǎng)絡開源社區(qū)專有網(wǎng)絡

2018-01-02 11:15:27

網(wǎng)絡芯片應用

2013-10-25 09:11:28

可編程WANSDN軟件定義網(wǎng)絡
點贊
收藏

51CTO技術(shù)棧公眾號