P4語(yǔ)言,踢館OpenFlow的SDN新秀
由兩位SDN大師----來(lái)自普林斯頓的Jennifer Rexford和斯坦福的Nick McKeown----共同發(fā)起的P4聯(lián)盟正式對(duì)外公布全新的項(xiàng)目主頁(yè),詳細(xì)闡述了P4的目標(biāo)定位、如何使用P4進(jìn)行開(kāi)發(fā)、開(kāi)源事項(xiàng)等相關(guān)細(xì)節(jié),并且為P4選取了一個(gè)非??蓯?ài)的北極熊LOGO。
P4是一門主要用于數(shù)據(jù)平面的編程語(yǔ)言,它的名字是根據(jù)一篇論文的標(biāo)題“Programming Protocol-Independent Packet Processors”而來(lái),意思是“與協(xié)議無(wú)關(guān)的數(shù)據(jù)包處理編程語(yǔ)言”,值得一提的是P4的背景,由兩位SDN界的大牛發(fā)起,其中來(lái)自普林斯頓的Jennifer Rexford目前是ONF的常委,美女教授跟SDN淵源很深,她的論文直接啟發(fā)了openflow的誕生并且曾經(jīng)嘗試設(shè)計(jì)了SDN編程語(yǔ)言和庫(kù)(Frenetic和Pyretic);另外一位斯坦福的Nick McKeown教授更是SDN的***之一,鼎鼎大名的clean slate項(xiàng)目的領(lǐng)軍人物。最重要的是兩位教授在P4項(xiàng)目上達(dá)成了高度的共識(shí)。
P4到底是什么呢?
P4是一種聲明式編程語(yǔ)言,它主要用于編程程序以下達(dá)指令給數(shù)據(jù)轉(zhuǎn)發(fā)平面的設(shè)備(如交換機(jī)、網(wǎng)卡、防火墻、過(guò)濾器等)如何處理數(shù)據(jù)包,Jennifer Rexford和Nick McKeown認(rèn)為P4將會(huì)改變傳統(tǒng)網(wǎng)絡(luò)設(shè)備的設(shè)計(jì)方式。
為什么我們需要P4?
如今,設(shè)計(jì)一款高性能的網(wǎng)絡(luò)設(shè)備是相當(dāng)?shù)耐纯?。首先,你要確定你所需要的設(shè)備有哪些特性,然后你要找到一塊***特性需求的交換機(jī)芯片,接著你要簽署一份保密協(xié)議獲得軟件開(kāi)發(fā)工具包(SDK),***調(diào)用合適的API進(jìn)行編程使芯片滿足你的系統(tǒng)需求。但是由于你系統(tǒng)取決于SDK,所以設(shè)計(jì)是被芯片廠商鎖定的。
P4的目標(biāo)是什么?
P4試圖在從根本上改變我們?cè)O(shè)計(jì)網(wǎng)絡(luò)系統(tǒng)的方式。首先,你要確定系統(tǒng)的設(shè)計(jì)要求,然后寫(xiě)一個(gè)P4程序來(lái)描述你的系統(tǒng)需要如何處理數(shù)據(jù)包,***編譯程序通知轉(zhuǎn)發(fā)設(shè)備該做什么。從本質(zhì)上講,P4無(wú)論是在軟件設(shè)計(jì)(編程、調(diào)試、代碼覆蓋、模塊檢查等)方面,還是在網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)上,都給我們帶來(lái)了很多好處。P4目前還處于起步階段,希望借助社區(qū)的力量幫忙完善和改進(jìn)。目前P4的代碼處于開(kāi)源狀態(tài),后續(xù)進(jìn)一步的開(kāi)發(fā)也將對(duì)外開(kāi)放,所有的開(kāi)源都遵循Apache許可。同樣,P4聯(lián)盟目前采取的也是免費(fèi)會(huì)員制,用戶可以通過(guò)P4主頁(yè)加入。