亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件定義網(wǎng)絡(luò)中協(xié)同存儲(chǔ)數(shù)據(jù)面快速轉(zhuǎn)發(fā)

        2018-10-16 02:56:18朱曉東王勁林王玲芳
        計(jì)算機(jī)應(yīng)用 2018年8期
        關(guān)鍵詞:指令

        朱曉東,王勁林,王玲芳

        (1.中國(guó)科學(xué)院聲學(xué)研究所 國(guó)家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190; 2.中國(guó)科學(xué)院大學(xué) 電子電氣與通信工程學(xué)院,北京 100049)(*通信作者電子郵箱wangjl@dsp.ac.cn)

        0 引言

        諸多未來(lái)網(wǎng)絡(luò)架構(gòu)研究,如信息中心網(wǎng)絡(luò)(Information-Centric Networking, ICN)[1]、移動(dòng)性?xún)?yōu)先(Mobility First, MF)[2]、內(nèi)容中心網(wǎng)絡(luò)(Content-Centric Networking, CCN)[3]等均表明,網(wǎng)內(nèi)節(jié)點(diǎn)具備存儲(chǔ)能力可以為網(wǎng)絡(luò)性能、帶寬節(jié)省等帶來(lái)顯著提升。同時(shí),軟件定義網(wǎng)絡(luò)(Software Defined Networking, SDN)[4]將傳統(tǒng)網(wǎng)絡(luò)的控制面與數(shù)據(jù)面進(jìn)行了解耦和,從而提升了網(wǎng)絡(luò)的可編程性及靈活性,使得網(wǎng)絡(luò)服務(wù)可以得到更高效便捷的部署。其中,數(shù)據(jù)平面存在于交換機(jī)端,負(fù)責(zé)純粹的數(shù)據(jù)轉(zhuǎn)發(fā)行為;而控制平面則存在于邏輯上中心式的控制器中,通過(guò)Openflow[5]協(xié)議對(duì)數(shù)據(jù)平面進(jìn)行管理。由于SDN的這些優(yōu)勢(shì),目前,已有多種研究如文獻(xiàn)[6-7]通過(guò)擴(kuò)展SDN使得網(wǎng)絡(luò)節(jié)點(diǎn)具備存儲(chǔ)能力。而為了更高效利用網(wǎng)內(nèi)節(jié)點(diǎn)的存儲(chǔ)資源,需要將各個(gè)網(wǎng)內(nèi)節(jié)點(diǎn)的存儲(chǔ)資源協(xié)同起來(lái)利用,這就需要SDN的數(shù)據(jù)平面依據(jù)周邊網(wǎng)絡(luò)節(jié)點(diǎn)的存儲(chǔ)狀態(tài)對(duì)數(shù)據(jù)包進(jìn)行快速的轉(zhuǎn)發(fā)。而由于SDN設(shè)計(jì)中數(shù)據(jù)平面對(duì)于網(wǎng)絡(luò)狀態(tài)無(wú)感知,則只能把周邊節(jié)點(diǎn)存儲(chǔ)狀態(tài)保存于控制面,那么數(shù)據(jù)面需要頻繁地與控制面交互以獲取周邊節(jié)點(diǎn)存儲(chǔ)狀態(tài)并轉(zhuǎn)發(fā)數(shù)據(jù)包,這會(huì)帶來(lái)極大的通信開(kāi)銷(xiāo)以及轉(zhuǎn)發(fā)延遲。由于網(wǎng)內(nèi)存儲(chǔ)狀態(tài)的快速變化,若采用控制面預(yù)下發(fā)流表的形式也面臨著表項(xiàng)過(guò)大、依據(jù)狀態(tài)調(diào)整的延遲大等諸多問(wèn)題,因此需要將部分存儲(chǔ)狀態(tài)保存在數(shù)據(jù)面以適應(yīng)快速轉(zhuǎn)發(fā)的需求。

        針對(duì)數(shù)據(jù)面狀態(tài)保存及快速轉(zhuǎn)發(fā)的問(wèn)題,文獻(xiàn)[8]提出在數(shù)據(jù)面流匹配后添加專(zhuān)設(shè)的應(yīng)用流表以及相關(guān)應(yīng)用庫(kù)來(lái)保存信息,以實(shí)現(xiàn)數(shù)據(jù)面對(duì)上層應(yīng)用狀態(tài)的感知,將更多操作下沉至數(shù)據(jù)面,減少與控制器交互;但該方案對(duì)數(shù)據(jù)面處理流程改動(dòng)較大,且數(shù)據(jù)包匹配處理流程大幅增加,影響了數(shù)據(jù)面的轉(zhuǎn)發(fā)能力。文獻(xiàn)[9]提出利用控制面對(duì)全局狀態(tài)進(jìn)行維護(hù),增加了專(zhuān)有狀態(tài)協(xié)議與交換機(jī)進(jìn)行交互,在有狀態(tài)流的維護(hù)時(shí),僅對(duì)于客戶(hù)端以及主機(jī)端的交換機(jī)下發(fā)涉及狀態(tài)的相關(guān)流表;但該方案不適用于協(xié)同存儲(chǔ)所需的鄰接節(jié)點(diǎn)間頻繁交互、緩存狀態(tài)頻繁變化的場(chǎng)景。文獻(xiàn)[6]提出由數(shù)據(jù)平面直接將所需狀態(tài)保存于流表項(xiàng)中,但該方案僅支持將數(shù)據(jù)片段存儲(chǔ)等較簡(jiǎn)單操作,且流表項(xiàng)消耗較大。文獻(xiàn)[10]通過(guò)布隆過(guò)濾器(Bloom Filter, BF)實(shí)現(xiàn)數(shù)據(jù)面與控制面監(jiān)控開(kāi)銷(xiāo)的有效性較低。文獻(xiàn)[11]提出基于BF的多級(jí)流表結(jié)構(gòu)用于數(shù)據(jù)面表項(xiàng)聚合,但為保證通用化的適配需增加中間適配層以適應(yīng)多語(yǔ)義環(huán)境。文獻(xiàn)[12]采用聯(lián)合多維BF的方式實(shí)現(xiàn)流表的多屬性查找。

        針對(duì)SDN存儲(chǔ)擴(kuò)展后協(xié)同存儲(chǔ)對(duì)于數(shù)據(jù)面狀態(tài)保存及快速轉(zhuǎn)發(fā)的需求,本文設(shè)計(jì)在交換機(jī)端對(duì)各端口存儲(chǔ)兩個(gè)BF用于維護(hù)該端口方向緩存數(shù)據(jù)的存在性狀態(tài),在兼顧較低錯(cuò)誤率的基礎(chǔ)上有效節(jié)省了交換機(jī)端的內(nèi)存開(kāi)銷(xiāo);并擴(kuò)充操作指令可直接基于BF狀態(tài)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求,從而支持在數(shù)據(jù)面基于緩存狀態(tài)的快速轉(zhuǎn)發(fā)。不同于已有數(shù)據(jù)面維護(hù)改動(dòng)較大或BF設(shè)計(jì)復(fù)雜的實(shí)現(xiàn)方式,針對(duì)協(xié)同緩存對(duì)于目標(biāo)端口存在性識(shí)別及方便更新并支持快速轉(zhuǎn)發(fā)的具體需求,本文在較為輕量級(jí)的原則上設(shè)計(jì)了雙BF維護(hù)并指令直接轉(zhuǎn)發(fā)的方式,為數(shù)據(jù)面狀態(tài)維護(hù)與快速轉(zhuǎn)發(fā)的結(jié)合研究提供一種新的思路。

        1 背景與系統(tǒng)

        1.1 協(xié)議無(wú)感知轉(zhuǎn)發(fā)

        協(xié)議無(wú)感知轉(zhuǎn)發(fā)(Protocol-Oblivious Forwarding, POF)[13]是對(duì)OpenFlow協(xié)議的擴(kuò)展,通過(guò){offset, length}匹配的方式實(shí)現(xiàn)對(duì)匹配域的索引,與OpenFlow設(shè)計(jì)相比,POF交換機(jī)對(duì)于網(wǎng)絡(luò)協(xié)議無(wú)感知,可以無(wú)需升級(jí)即提供對(duì)各種協(xié)議以及新協(xié)議的支持。同時(shí),POF定義了一組流指令集以實(shí)現(xiàn)更高的性能和更靈活的轉(zhuǎn)發(fā)行為,研究人員亦可以針對(duì)新的需求設(shè)計(jì)新的指令。因此,本文選用POF這種SDN技術(shù)實(shí)現(xiàn)用于協(xié)同存儲(chǔ)的數(shù)據(jù)面快速轉(zhuǎn)發(fā)方法。

        1.2 Bloom過(guò)濾器

        BF用于判定某元素是否存在于給定的集合中,它由一個(gè)二進(jìn)制向量和多個(gè)哈希函數(shù)組成。相比一般算法,BF具備快速及較低空間開(kāi)銷(xiāo)的優(yōu)點(diǎn),查找與插入元素等操作均可在常數(shù)時(shí)間內(nèi)完成,且與樹(shù)、鏈表、哈希表等數(shù)據(jù)結(jié)構(gòu)相比,它在空間消耗上也具有明顯優(yōu)勢(shì)。但BF存在假陽(yáng)性判定的缺點(diǎn),存在一定錯(cuò)誤率將不存在于給定集合的元素判定為在該集合內(nèi)。若存儲(chǔ)元素?cái)?shù)為n,假陽(yáng)性概率為p,則可選定哈希函數(shù)個(gè)數(shù)為:

        (1)

        所需比特位個(gè)數(shù)m為:

        (2)

        1.3 協(xié)同存儲(chǔ)系統(tǒng)模型

        本文方法涉及的協(xié)同存儲(chǔ)系統(tǒng)結(jié)構(gòu)如圖1所示:數(shù)據(jù)面為已具備存儲(chǔ)功能擴(kuò)展的POF交換機(jī),可以把途經(jīng)的網(wǎng)絡(luò)數(shù)據(jù)緩存在交換機(jī)的存儲(chǔ)設(shè)備內(nèi),使網(wǎng)絡(luò)可以更快響應(yīng)用戶(hù)的數(shù)據(jù)請(qǐng)求;控制面為邏輯上中心式的控制器對(duì)管理域內(nèi)的交換機(jī)進(jìn)行統(tǒng)一管控。

        在控制端,緩存管理模塊對(duì)所管理域內(nèi)節(jié)點(diǎn)的存儲(chǔ)狀態(tài)進(jìn)行維護(hù),其更新通過(guò)節(jié)點(diǎn)周期性地上報(bào)存儲(chǔ)狀態(tài)來(lái)實(shí)現(xiàn);緩存策略模塊提供緩存策略管理,以及相應(yīng)流表的生成、下發(fā)與刪除等。

        圖1 協(xié)同存儲(chǔ)系統(tǒng)結(jié)構(gòu)

        在數(shù)據(jù)平面交換機(jī)端,轉(zhuǎn)發(fā)策略處理模塊涉及轉(zhuǎn)發(fā)策略所需相關(guān)信息的維護(hù),如周邊節(jié)點(diǎn)的存儲(chǔ)容量、緩存數(shù)據(jù)索引等;并依照相應(yīng)的轉(zhuǎn)發(fā)策略,在交換機(jī)本地對(duì)于數(shù)據(jù)包快速轉(zhuǎn)發(fā)。本地緩存模塊可在本地保存及讀取數(shù)據(jù),提供對(duì)于數(shù)據(jù)的存取等功能。交換機(jī)的具體實(shí)現(xiàn)形式包括:1)以POF軟交換機(jī)形式安裝在服務(wù)器上,通過(guò)直接對(duì)本服務(wù)器文件系統(tǒng)進(jìn)行操作的形式提供對(duì)數(shù)據(jù)的存取等操作;2)采用存儲(chǔ)與轉(zhuǎn)發(fā)分離架構(gòu),以自定義協(xié)議實(shí)現(xiàn)存儲(chǔ)設(shè)備與交換機(jī)之間的交互與數(shù)據(jù)傳輸。交換機(jī)的本地緩存模塊同時(shí)提供緩存數(shù)據(jù)分析接口,包括緩存容量查詢(xún)、緩存數(shù)據(jù)名稱(chēng)查詢(xún)、數(shù)據(jù)訪(fǎng)問(wèn)次數(shù)等;還提供可配置的本地緩存替換方式,如目前主流的最近最少使用(Least Recently Used,LRU)策略等。

        為更有效、合理利用數(shù)據(jù)面內(nèi)各個(gè)節(jié)點(diǎn)的存儲(chǔ)資源,需要緩存管理策略來(lái)優(yōu)化域內(nèi)存儲(chǔ),使域內(nèi)控制的交換機(jī)可以協(xié)同起來(lái)緩存網(wǎng)絡(luò)數(shù)據(jù),從而降低域內(nèi)的緩存數(shù)據(jù)冗余、提高緩存命中率、使用戶(hù)更快獲取數(shù)據(jù)等。而緩存管理策略需要感知網(wǎng)絡(luò)內(nèi)已緩存資源的狀態(tài),并將數(shù)據(jù)請(qǐng)求依據(jù)網(wǎng)絡(luò)內(nèi)的緩存狀態(tài)快速轉(zhuǎn)發(fā)至相應(yīng)的緩存節(jié)點(diǎn)。如節(jié)點(diǎn)A利用周邊節(jié)點(diǎn)實(shí)現(xiàn)協(xié)同存儲(chǔ)某內(nèi)容c時(shí),到后續(xù)內(nèi)容c數(shù)據(jù)請(qǐng)求到達(dá)節(jié)點(diǎn)A,節(jié)點(diǎn)A需將該數(shù)據(jù)請(qǐng)求快速轉(zhuǎn)發(fā)至協(xié)同存儲(chǔ)的節(jié)點(diǎn)。而如前文所述,若緩存狀態(tài)僅保存于控制面會(huì)帶來(lái)諸多現(xiàn)實(shí)問(wèn)題,因此有必要使數(shù)據(jù)面保存一定的緩存狀態(tài)并支持快速轉(zhuǎn)發(fā)。

        2 本文方法

        本文利用BF結(jié)構(gòu)和POF靈活設(shè)計(jì)新指令的特性,構(gòu)造滿(mǎn)足上文中協(xié)同存儲(chǔ)系統(tǒng)模型對(duì)于數(shù)據(jù)面狀態(tài)維護(hù)及快速轉(zhuǎn)發(fā)需求的方法。

        2.1 緩存狀態(tài)維護(hù)設(shè)計(jì)

        將部分緩存狀態(tài)保存在數(shù)據(jù)面的主要目的是支持?jǐn)?shù)據(jù)面的快速轉(zhuǎn)發(fā),降低控制面與數(shù)據(jù)面過(guò)高的信令開(kāi)銷(xiāo),降低控制面的壓力;同時(shí),由于交換機(jī)端通常資源有限,以及數(shù)據(jù)面通過(guò)控制面升級(jí)緩存狀態(tài)所需的交互信令也不宜過(guò)大,還需要考慮緩存狀態(tài)保存在數(shù)據(jù)面的空間開(kāi)銷(xiāo)問(wèn)題。

        交換機(jī)端所需用于快速轉(zhuǎn)發(fā)的緩存狀態(tài)為某數(shù)據(jù)是否存在于周邊節(jié)點(diǎn)的緩存中,若采用流表存儲(chǔ)并依據(jù)POF指令轉(zhuǎn)發(fā)的方式,如果不能有效聚合數(shù)據(jù)名稱(chēng),則會(huì)帶來(lái)極大的流表資源開(kāi)銷(xiāo)。而如上文所述,BF適用于這一判定存在性的場(chǎng)景,且空間利用率高。可對(duì)交換機(jī)的每一個(gè)端口維護(hù)一個(gè)BF表用于判定該端口對(duì)應(yīng)路徑上緩存數(shù)據(jù)的存在性。同時(shí),類(lèi)比傳統(tǒng)IP網(wǎng)絡(luò),上層應(yīng)用可以承受一定程度的包丟失率。這樣BF所存在的較低的假陽(yáng)性問(wèn)題帶來(lái)的轉(zhuǎn)發(fā)錯(cuò)誤可能性,也可以為上層應(yīng)用所承受,且可以進(jìn)一步采用相關(guān)措施來(lái)降低假陽(yáng)性概率。

        本系統(tǒng)中可能出現(xiàn)的判斷假陽(yáng)性問(wèn)題包括:1)由BF特性所帶來(lái)的錯(cuò)誤判定為真;2)由于交換機(jī)端緩存狀態(tài)更新不及時(shí)導(dǎo)致的錯(cuò)誤判定。后者可通過(guò)權(quán)衡錯(cuò)誤代價(jià)與交互代價(jià),由系統(tǒng)設(shè)計(jì)來(lái)調(diào)整緩存更新的速率與方式來(lái)解決。如在帶寬允許的情況下,可通過(guò)提高節(jié)點(diǎn)間交互緩存數(shù)據(jù)的頻率來(lái)降低錯(cuò)誤率。而對(duì)于BF特性的問(wèn)題,為進(jìn)一步降低錯(cuò)誤概率,對(duì)交換機(jī)的每一個(gè)交換端口同時(shí)設(shè)置一個(gè)BF表用于記錄該端口數(shù)據(jù)不存在的情況。該添加操作由因假陽(yáng)性導(dǎo)致所轉(zhuǎn)發(fā)請(qǐng)求未能獲取相應(yīng)數(shù)據(jù)的反饋情況觸發(fā),也可采用周期性更新BF表的方式。為作區(qū)分,本文將周邊緩存狀態(tài)BF表記為BF1,將數(shù)據(jù)不存在狀態(tài)BF表記為BF2。與使用計(jì)數(shù)BF并采用直接刪除操作方式來(lái)處理反饋信息相比,本文方法的空間消耗更小,方便傳輸且傳輸方式更為靈活。同時(shí),僅BF1匹配情況下才會(huì)再進(jìn)行BF2判斷,而且后續(xù)實(shí)驗(yàn)結(jié)果也表明這種兩個(gè)BF表順次匹配的設(shè)計(jì)未對(duì)轉(zhuǎn)發(fā)效率造成影響。

        本文通過(guò)修改POF軟交換機(jī)代碼的方式實(shí)現(xiàn)對(duì)BF表的構(gòu)建。目前設(shè)置對(duì)周邊一跳內(nèi)節(jié)點(diǎn)的緩存狀態(tài)進(jìn)行維護(hù),利用安裝POF軟交換機(jī)的主機(jī)的內(nèi)存資源,在軟交換機(jī)啟動(dòng)時(shí),對(duì)每個(gè)交換端口維護(hù)兩個(gè)BF表,且軟交換機(jī)周期性發(fā)送通過(guò)緩存情況所生成的BF表以相互更新所維護(hù)的周邊緩存狀態(tài)。

        對(duì)于各個(gè)交換端口所維護(hù)的BF表,需要根據(jù)多個(gè)BF表的結(jié)果匯總進(jìn)行輸出,而本文中首先是對(duì)多個(gè)BF表的查詢(xún)結(jié)果進(jìn)行聚合判斷是否存有所校驗(yàn)的內(nèi)容名稱(chēng),其次才根據(jù)整體判定結(jié)果決定是否需要檢索各個(gè)端口的具體狀態(tài)查詢(xún)結(jié)果?;诖?,對(duì)每一交換端口采用兩個(gè)二進(jìn)制數(shù)組表征BF1與BF2表所維護(hù)的緩存狀態(tài),使用相同的哈希函數(shù)。將各端口兩個(gè)二進(jìn)制數(shù)組標(biāo)識(shí)為BF1i和BF2i,其中i為端口號(hào);哈希函數(shù)個(gè)數(shù)為k。優(yōu)化的BF查詢(xún)算法如下所示:

        輸入 各端口二進(jìn)制數(shù)組BF1i、BF2i,內(nèi)容名稱(chēng)name;

        輸出 存在內(nèi)容名稱(chēng)端口數(shù)組。

        步驟1 依據(jù)內(nèi)容名稱(chēng)name哈希計(jì)算k個(gè)數(shù)據(jù)位置;

        步驟2 依數(shù)據(jù)位置首先并行查詢(xún)各端口BF1i,與運(yùn)算獲取二進(jìn)制查詢(xún)結(jié)果x1i;

        步驟3 輸出x1i,并繼續(xù)查詢(xún)BF2i操作獲取查詢(xún)結(jié)果x2i;

        步驟4 {x11‖x12‖…‖x1i‖…}或運(yùn)算匯總BF1i查詢(xún)結(jié)果,若為0則跳出,若為1則繼續(xù)步驟5;

        步驟5 檢索輸出結(jié)果滿(mǎn)足x1i=1且x2i=0的端口號(hào),若端口數(shù)為0則跳出,若大于0則輸出端口號(hào)列表由后續(xù)操作處理。

        2.2 指令設(shè)計(jì)

        為實(shí)現(xiàn)在數(shù)據(jù)面依據(jù)緩存狀態(tài)快速轉(zhuǎn)發(fā)的目標(biāo),在整體設(shè)計(jì)上需盡量簡(jiǎn)潔,因而不應(yīng)對(duì)數(shù)據(jù)平面的流表匹配—執(zhí)行指令這一處理流程作過(guò)多的調(diào)整。如前文所述,過(guò)于復(fù)雜的處理流程并不適合數(shù)據(jù)面快速轉(zhuǎn)發(fā)的需求,因此,采用擴(kuò)充POF指令的方式,即經(jīng)流表匹配后執(zhí)行擴(kuò)充的POF指令,該指令直接利用交換機(jī)內(nèi)所維護(hù)的緩存狀態(tài)進(jìn)行相關(guān)操作。

        擴(kuò)充POF指令所需要的功能包括對(duì)BF表的維護(hù)以及依據(jù)BF表狀態(tài)進(jìn)行轉(zhuǎn)發(fā)。對(duì)于BF表的維護(hù)功能包括:BF表的整體升級(jí)更新、獲取BF表、某一元素的插入、某一元素是否存在的判斷等。最為核心的功能是依據(jù)BF表狀態(tài)進(jìn)行轉(zhuǎn)發(fā),即根據(jù)各端口所維護(hù)的BF表狀態(tài),將數(shù)據(jù)請(qǐng)求從相應(yīng)的端口轉(zhuǎn)發(fā)出去,這也是指令設(shè)計(jì)的重點(diǎn)。對(duì)各個(gè)端口BF表的查詢(xún)可采用并行處理的方式以進(jìn)一步降低順次查詢(xún)的時(shí)間開(kāi)銷(xiāo),同時(shí)也對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)的方式進(jìn)行了優(yōu)化。POF交換機(jī)中的轉(zhuǎn)發(fā)指令會(huì)將數(shù)據(jù)內(nèi)容以及metadata內(nèi)容拷貝至轉(zhuǎn)發(fā)緩存中再進(jìn)行轉(zhuǎn)發(fā),但頻繁的內(nèi)存拷貝對(duì)于轉(zhuǎn)發(fā)速度影響很大,而且若將查詢(xún)結(jié)果再交由POF轉(zhuǎn)發(fā)指令處理轉(zhuǎn)發(fā)會(huì)帶來(lái)更多的指令步驟。因此,直接在擴(kuò)充POF指令中實(shí)現(xiàn)對(duì)數(shù)據(jù)包的轉(zhuǎn)發(fā),并采用直接將數(shù)據(jù)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)的操作以減小內(nèi)存拷貝對(duì)轉(zhuǎn)發(fā)速度的影響。

        依據(jù)BF表狀態(tài)進(jìn)行轉(zhuǎn)發(fā)這一指令功能的具體流程如圖2所示:經(jīng)指令type字段判斷需將數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)至所匹配端口,首先獲取數(shù)據(jù)請(qǐng)求中的數(shù)據(jù)名稱(chēng),然后并行查找各個(gè)端口的BF表。對(duì)于每個(gè)端口,首先查找BF1表,若無(wú)則輸出結(jié)果至交換機(jī)metadata交由后續(xù)操作處理。若BF1判斷為真則進(jìn)一步匹配BF2,若存在則同樣輸出至交換機(jī)metadata。若BF2判斷無(wú)則判定該端口方向存在該請(qǐng)求內(nèi)容。并行處理后的匯總結(jié)果,可能包括多個(gè)端口號(hào),即代表有多個(gè)端口方向存在該數(shù)據(jù)。此時(shí),可按照具體場(chǎng)景需求,采用每個(gè)端口都群發(fā)或選擇某端口單發(fā)的形式轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求。同時(shí),POF交換機(jī)的轉(zhuǎn)發(fā)指令會(huì)將數(shù)據(jù)內(nèi)容以及metadata內(nèi)容拷貝至轉(zhuǎn)發(fā)緩存中,再進(jìn)行轉(zhuǎn)發(fā),而這里的轉(zhuǎn)發(fā)流程不涉及對(duì)于數(shù)據(jù)請(qǐng)求的修改且轉(zhuǎn)發(fā)無(wú)需metadata內(nèi)容。為簡(jiǎn)化轉(zhuǎn)發(fā)流程以進(jìn)一步提升轉(zhuǎn)發(fā)速率,將數(shù)據(jù)請(qǐng)求內(nèi)容指針交由轉(zhuǎn)發(fā)函數(shù)實(shí)現(xiàn)直接轉(zhuǎn)發(fā)。

        圖2 數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)功能指令流程

        2.3 流程示例

        如圖3所示,以數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)流程為例描述了本文方法在交換機(jī)端的執(zhí)行方式。假定數(shù)據(jù)請(qǐng)求的數(shù)據(jù)為A,且數(shù)據(jù)A的名稱(chēng)存在于1端口對(duì)應(yīng)BF1表中,同時(shí)BF2表中不存在數(shù)據(jù)A的名稱(chēng),交換機(jī)內(nèi)未緩存數(shù)據(jù)A;交換機(jī)內(nèi)已緩存數(shù)據(jù)內(nèi)容的查找亦通過(guò)交換機(jī)流表匹配的方式實(shí)現(xiàn);假定BF表哈希函數(shù)個(gè)數(shù)k=3。

        請(qǐng)求數(shù)據(jù)A的數(shù)據(jù)請(qǐng)求進(jìn)入交換機(jī)后,經(jīng)流表匹配判定為數(shù)據(jù)請(qǐng)求,跳轉(zhuǎn)入緩存數(shù)據(jù)匹配流表。由于在交換機(jī)內(nèi)未緩存數(shù)據(jù)A,無(wú)流表項(xiàng)與數(shù)據(jù)請(qǐng)求相匹配,即未能實(shí)現(xiàn)對(duì)相應(yīng)內(nèi)容名稱(chēng)的匹配并讀取數(shù)據(jù)。緩存數(shù)據(jù)匹配流表對(duì)未匹配內(nèi)容執(zhí)行依周邊節(jié)點(diǎn)緩存狀態(tài)快速轉(zhuǎn)發(fā)指令,即判定需要依據(jù)周邊存儲(chǔ)狀態(tài)來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求,執(zhí)行所擴(kuò)充的POF指令。該指令依據(jù)數(shù)據(jù)A的名稱(chēng)哈希計(jì)算3個(gè)數(shù)據(jù)位置,各端口索引各自BF1i對(duì)應(yīng)位置值,經(jīng)與操作輸出,則x11為1而其余端口輸出為0。經(jīng)或運(yùn)算匯聚各端口x1i結(jié)果為1,判定繼續(xù)檢索各端口的最終輸出結(jié)果。僅1端口對(duì)應(yīng)滿(mǎn)足x11=1且x21=0,即該指令查詢(xún)BF表狀態(tài),1端口對(duì)應(yīng)BF1表包含數(shù)據(jù)A名稱(chēng)且BF2不包含數(shù)據(jù)A名稱(chēng),僅端口1方向存在相應(yīng)數(shù)據(jù)內(nèi)容。依據(jù)這一查詢(xún)結(jié)果,將數(shù)據(jù)請(qǐng)求交由轉(zhuǎn)發(fā)模塊直接由1端口轉(zhuǎn)發(fā)出去。

        圖3 依據(jù)周邊緩存狀態(tài)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求示例

        3 性能分析

        為驗(yàn)證將緩存狀態(tài)保存在數(shù)據(jù)面對(duì)轉(zhuǎn)發(fā)效率的提升,首先將本文方法與由控制器轉(zhuǎn)發(fā)的方式進(jìn)行對(duì)比;其次,為驗(yàn)證方法新指令未影響POF交換機(jī)的轉(zhuǎn)發(fā)速率,與原有的轉(zhuǎn)發(fā)指令進(jìn)行對(duì)比驗(yàn)證;最后,對(duì)比了BF實(shí)現(xiàn)與流表實(shí)現(xiàn)的內(nèi)存占用情況,以驗(yàn)證采用BF維護(hù)數(shù)據(jù)狀態(tài)的方式有效節(jié)省了交換機(jī)端的空間開(kāi)銷(xiāo)。

        3.1 實(shí)驗(yàn)設(shè)置

        實(shí)驗(yàn)中使用三臺(tái)服務(wù)器:一臺(tái)作為控制器,一臺(tái)安裝本文方法擴(kuò)展的POF軟交換機(jī),一臺(tái)作為流量發(fā)生器。配置如下:2.10 GHz Intel E52620 CPU,64 GB DDR3內(nèi)存,4個(gè)BCM5720 Gigabit網(wǎng)卡。如文獻(xiàn)[14]所述,采用105個(gè)內(nèi)容用于模擬一個(gè)應(yīng)用場(chǎng)景是合適的,假定每個(gè)節(jié)點(diǎn)有高達(dá)0.1的存儲(chǔ)比例,因而,BF表默認(rèn)設(shè)置為:存儲(chǔ)容量為10 000。目前IP應(yīng)用通??扇萑碳s0.01的丟包率,類(lèi)比于此,設(shè)置假陽(yáng)性概率為0.01。發(fā)送數(shù)據(jù)采用80 KB大小的數(shù)據(jù)幀??刂破骰赑OX實(shí)現(xiàn),并針對(duì)POF進(jìn)行了相應(yīng)的適配。

        實(shí)驗(yàn)中,流量發(fā)生器向POF軟交換機(jī)發(fā)送數(shù)據(jù)請(qǐng)求,周邊節(jié)點(diǎn)緩存狀態(tài)已預(yù)設(shè)在POF交換機(jī)內(nèi),設(shè)定僅有一個(gè)端口所維護(hù)緩存狀態(tài)中包含數(shù)據(jù)請(qǐng)求的內(nèi)容的名稱(chēng)。POF交換機(jī)將依據(jù)緩存狀態(tài)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求。

        3.2 與控制器轉(zhuǎn)發(fā)對(duì)比實(shí)驗(yàn)

        控制器轉(zhuǎn)發(fā)方式即緩存狀態(tài)僅保存在控制器中,交換機(jī)接收到數(shù)據(jù)請(qǐng)求后將其以packet-in消息形式發(fā)送到控制器,控制器依據(jù)所存儲(chǔ)狀態(tài)進(jìn)行決策,并以packet-out消息形式下發(fā)由交換機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求。本實(shí)驗(yàn)通過(guò)與控制器轉(zhuǎn)發(fā)方式對(duì)比驗(yàn)證將緩存狀態(tài)保存在數(shù)據(jù)面進(jìn)行轉(zhuǎn)發(fā)的必要性。

        如圖4所示,控制器轉(zhuǎn)發(fā)方式在輸入速率為80 Kb/s時(shí)即達(dá)到瓶頸,其后隨著輸入速率的增大,輸出速率基本保持恒定;而依據(jù)BF表轉(zhuǎn)發(fā)方式在圖中范圍內(nèi)可依數(shù)據(jù)包輸入的速率轉(zhuǎn)出數(shù)據(jù)??梢?jiàn)在較低的輸入速率下,控制器轉(zhuǎn)發(fā)方式已難以滿(mǎn)足需求。這是因?yàn)榻粨Q機(jī)與控制器端的通信瓶頸、控制器端的處理開(kāi)銷(xiāo)以及交換機(jī)端對(duì)于packet-out處理的開(kāi)銷(xiāo)等諸多不利因素的影響。顯然,控制器轉(zhuǎn)發(fā)方式難以滿(mǎn)足實(shí)際的需求。

        圖4 本文方法與控制器轉(zhuǎn)發(fā)方式的對(duì)比

        3.3 與直接無(wú)狀態(tài)轉(zhuǎn)發(fā)對(duì)比實(shí)驗(yàn)

        為進(jìn)一步驗(yàn)證所擴(kuò)充的根據(jù)BF表狀態(tài)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求的指令的轉(zhuǎn)發(fā)效率,將該指令與POF原有的output轉(zhuǎn)發(fā)指令以及基于計(jì)數(shù)BF實(shí)現(xiàn)轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求的方式進(jìn)行對(duì)比?;谟?jì)數(shù)BF方式即采用計(jì)數(shù)BF表以取代本文方案中的雙BF表設(shè)計(jì)結(jié)構(gòu),并行查詢(xún)后直接檢索結(jié)果。如圖5所示,當(dāng)包輸入速率較低時(shí),基于雙BF轉(zhuǎn)發(fā)指令與output指令均可將輸入報(bào)文以相應(yīng)的速率從端口轉(zhuǎn)發(fā)出去。當(dāng)輸入報(bào)文速率為105 Mb/s時(shí),output指令轉(zhuǎn)發(fā)速率達(dá)到最高值,之后隨著輸入速率的增加,轉(zhuǎn)發(fā)效率逐漸降低;基于雙BF轉(zhuǎn)發(fā)指令在輸入速率為111 Mb/s時(shí)轉(zhuǎn)發(fā)速率達(dá)到最高值,之后隨著輸入速率的增加,轉(zhuǎn)發(fā)效率下降,但仍略微高于output指令;而基于計(jì)數(shù)BF轉(zhuǎn)發(fā)的方式在輸入速率約在112 Mb/s時(shí)轉(zhuǎn)發(fā)速率達(dá)到最高值,基于BF轉(zhuǎn)發(fā)與基于計(jì)數(shù)BF轉(zhuǎn)發(fā)方式曲線(xiàn)基本一致。

        由實(shí)驗(yàn)結(jié)果可見(jiàn),本文設(shè)計(jì)的基于雙BF轉(zhuǎn)發(fā)指令對(duì)于雙BF查找操作在整個(gè)轉(zhuǎn)發(fā)過(guò)程中開(kāi)銷(xiāo)較低,未對(duì)轉(zhuǎn)發(fā)速率造成影響,因而能夠以與output指令和基于計(jì)數(shù)BF轉(zhuǎn)發(fā)方式基本一致的轉(zhuǎn)發(fā)效率轉(zhuǎn)發(fā)數(shù)據(jù)包;同時(shí),由于對(duì)于轉(zhuǎn)發(fā)流程的優(yōu)化,將包內(nèi)容直接轉(zhuǎn)發(fā),減少了內(nèi)存拷貝,當(dāng)輸入速率較大時(shí),基于雙BF轉(zhuǎn)發(fā)指令轉(zhuǎn)發(fā)速率略高于output指令。在輸入速率較大時(shí),三種方式均出現(xiàn)轉(zhuǎn)發(fā)速率降低的情況,這主要是受限于POF交換機(jī)整體設(shè)計(jì)以及服務(wù)器性能。

        3.4 內(nèi)存占用對(duì)比

        BF表占用內(nèi)存情況已在1.2節(jié)中描述。如2.1節(jié)中所述,若在POF交換機(jī)中采用流表項(xiàng)存儲(chǔ)周邊數(shù)據(jù)狀態(tài)的方式,由3.3節(jié)結(jié)果可知,如不考慮匹配的額外開(kāi)銷(xiāo)問(wèn)題,依據(jù)流表項(xiàng)匹配狀態(tài),并用原生output指令轉(zhuǎn)發(fā)的方式可以達(dá)到與本文方法基本相近的轉(zhuǎn)發(fā)效率,但存在內(nèi)存占用較大的問(wèn)題。BF表方式與流表項(xiàng)方式的內(nèi)存占用情況如圖6所示。此處的對(duì)比中流表項(xiàng)占用內(nèi)存情況僅考慮流表項(xiàng)中hash所需比特位以及內(nèi)容名稱(chēng)占用的內(nèi)存。若內(nèi)容數(shù)目為n,則hash所需比特位至少為lbn。由于內(nèi)容名稱(chēng)長(zhǎng)度為可變的,為方便對(duì)比,本文取常用的128 b。由圖6可以看出,在較低的假陽(yáng)性概率下,BF表內(nèi)存占用情況明顯優(yōu)于流表項(xiàng)存儲(chǔ)實(shí)現(xiàn)的方式,即使在設(shè)定0.1%假陽(yáng)性概率下,所采用的兩BF表結(jié)構(gòu)占用內(nèi)存也僅占流表項(xiàng)方式的約20%。

        圖5 本文方法與直接無(wú)狀態(tài)轉(zhuǎn)發(fā)的對(duì)比

        圖6 BF表方式與流表項(xiàng)方式的內(nèi)存占用對(duì)比

        4 結(jié)語(yǔ)

        針對(duì)協(xié)同存儲(chǔ)在數(shù)據(jù)面存儲(chǔ)狀態(tài)并依此快速轉(zhuǎn)發(fā)數(shù)據(jù)的問(wèn)題,本文基于POF設(shè)計(jì)了一種協(xié)同存儲(chǔ)數(shù)據(jù)面快速轉(zhuǎn)發(fā)方法,通過(guò)在數(shù)據(jù)面的交換機(jī)端維護(hù)BF表的方式,在節(jié)省數(shù)據(jù)面開(kāi)銷(xiāo)的前提下實(shí)現(xiàn)對(duì)存儲(chǔ)狀態(tài)的維護(hù),并設(shè)計(jì)了擴(kuò)充POF指令直接操作BF表和優(yōu)化轉(zhuǎn)發(fā)流程。實(shí)驗(yàn)結(jié)果表明本文方案相比基于控制器維護(hù)狀態(tài)并轉(zhuǎn)發(fā)的方式轉(zhuǎn)發(fā)效率有明顯提升,且略?xún)?yōu)于原有直接無(wú)狀態(tài)轉(zhuǎn)發(fā)指令,同時(shí)具有較低的內(nèi)存空間開(kāi)銷(xiāo)。下一步的工作中,我們將考慮在實(shí)際應(yīng)用場(chǎng)景如海云協(xié)同等環(huán)境下的部署問(wèn)題,以及針對(duì)不同業(yè)務(wù)場(chǎng)景需求的進(jìn)一步擴(kuò)展與優(yōu)化。

        猜你喜歡
        指令
        聽(tīng)我指令:大催眠術(shù)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        巧用G10指令實(shí)現(xiàn)橢圓輪廓零件倒圓角
        中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
        科技傳播(2015年20期)2015-03-25 08:20:30
        基于匯編指令分布的惡意代碼檢測(cè)算法研究
        一種基于滑窗的余度指令判別算法
        歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
        家電科技(2014年5期)2014-04-16 03:11:28
        MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
        韩日美无码精品无码| 超碰国产精品久久国产精品99| 制服丝袜一区二区三区| 777午夜精品免费观看| 另类欧美亚洲| 亚洲一区二区三区一站| 亚洲婷婷久悠悠色悠在线播放| 一二三四日本中文在线| 亚洲天堂99| 天堂av在线免费播放| 91视色国内揄拍国内精品人妻 | 精品久久久久久久久午夜福利| 中文字幕人妻丝袜美腿乱| 色噜噜狠狠色综合欧洲| 久久久精品国产av麻豆樱花| 久久偷看各类wc女厕嘘嘘偷窃| 色狠狠一区二区三区香蕉| 欧美综合区自拍亚洲综合| 亚洲无毛成人在线视频| 乱子伦一区二区三区| 久久无码人妻一区二区三区午夜| 久久综合狠狠综合久久| 亚洲免费av电影一区二区三区| 国产自拍在线视频观看| 强奸乱伦影音先锋| 亚洲av无码日韩精品影片| 2021久久精品国产99国产| 国产精品亚洲一区二区三区在线看 | 少妇精品揄拍高潮少妇桃花岛| 亚洲 欧美 国产 制服 动漫 | 操出白浆在线观看| 久久国产精品免费久久久| 日韩内射美女片在线观看网站| 国内精品无码一区二区三区| 亚洲av综合色区在线观看| 国内揄拍国内精品人妻久久| 鲁鲁鲁爽爽爽在线视频观看| 国产午夜视频免费观看| 日韩一区二区三区熟女| 久久成人国产精品免费软件| 亚洲欧美在线观看一区二区|