專利名稱:一種基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于可編程交換機(jī)(Net FieldProgrammable Gate Array, NetFPGA)的網(wǎng)絡(luò)資源的雙層隔離方法。
背景技術(shù):
互聯(lián)網(wǎng)在過去的幾十年中取得了巨大的成功,它為人們提供了一個(gè)全新的交換信息、接受信息的平臺(tái)。它的廣泛普及,促進(jìn)了網(wǎng)絡(luò)技術(shù)的發(fā)展和應(yīng)用。然而,規(guī)模巨大的網(wǎng)絡(luò)同時(shí)也限制了它將來的發(fā)展。比如,以當(dāng)前的網(wǎng)絡(luò)的規(guī)模和大小,為每個(gè)網(wǎng)絡(luò)業(yè)務(wù)保證服務(wù)質(zhì)量非常困難。傳統(tǒng)的QoS實(shí)現(xiàn)方法一般基于集成服務(wù)或者區(qū)分服務(wù)的模型。集成服務(wù)為每個(gè)業(yè)務(wù)保留單獨(dú)的資源,但容易造成資源浪費(fèi);區(qū)分服務(wù)按照優(yōu)先級(jí)等標(biāo)簽靈活分配資源,但無法給單個(gè)業(yè)務(wù)保留隔離的網(wǎng)絡(luò)資源。集成服務(wù)與區(qū)分服務(wù)的模型各有優(yōu)勢,但缺少靈活性,無法適應(yīng)多變的網(wǎng)絡(luò)需求;另一方面,目前網(wǎng)絡(luò)資源的分配方法大多基于軟件模擬或理論推導(dǎo),缺少具體的實(shí)現(xiàn)方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法。本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:一種基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法,包括以下步驟:
步驟一:數(shù)據(jù)包通過8個(gè)輸入端 口之一進(jìn)入可編程交換機(jī):可編程交換機(jī)共有8個(gè)輸入端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口 ;交換機(jī)采用輪詢方式輪流從8個(gè)輸入端口之一選擇數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)層;
步驟二:網(wǎng)絡(luò)層協(xié)議根據(jù)路由表,按照數(shù)據(jù)包頭部選擇數(shù)據(jù)包的輸出端口,并在數(shù)據(jù)包頭部標(biāo)記對(duì)應(yīng)的輸出隊(duì)列;
步驟三:使用雙層的網(wǎng)絡(luò)資源隔離方法對(duì)標(biāo)記了輸出隊(duì)列的數(shù)據(jù)包進(jìn)行調(diào)度;該步驟通過以下子步驟來實(shí)現(xiàn):
(3.1)獲得數(shù)據(jù)包的流號(hào):若從網(wǎng)絡(luò)層輸出的數(shù)據(jù)包不帶VLAN標(biāo)簽,認(rèn)為該數(shù)據(jù)包的流號(hào)為O ;若從網(wǎng)絡(luò)層輸出的數(shù)據(jù)包帶VLAN標(biāo)簽,則使用VLAN的VID字段的低2位標(biāo)識(shí)其流號(hào):不帶VLAN標(biāo)簽或者VID低2位為00的數(shù)據(jù)包被識(shí)別為流O,VID末2位為01的數(shù)據(jù)包被識(shí)別為流I, VID末2位為02的數(shù)據(jù)包被識(shí)別為流2, VID末2位為03的數(shù)據(jù)包被識(shí)別為流3 ;
(3.2)為每個(gè)流建立一條調(diào)度隊(duì)列,將數(shù)據(jù)包根據(jù)流號(hào)送入對(duì)應(yīng)的隊(duì)列;
(3.3)對(duì)流進(jìn)行分組,一個(gè)或多個(gè)流組合成一個(gè)聚流;
(3.4)使用加權(quán)時(shí)間片輪轉(zhuǎn)方式分配每一個(gè)聚流的帶寬:設(shè)一次輪轉(zhuǎn)的時(shí)間片總數(shù)為N,任意一個(gè)聚流i的指定帶寬為bi;總帶寬為b,則給每一聚流在一次輪轉(zhuǎn)中分配時(shí)間片為h / b * N ;當(dāng)輪到一個(gè)聚流i接受服務(wù)時(shí),它的時(shí)間將被屬于聚流i的所有流使用;當(dāng)時(shí)間片使用完時(shí),聚流i停止接受服務(wù),切換至下一個(gè)聚流接受服務(wù);
(3.5)在聚流i分配到的服務(wù)時(shí)間內(nèi),按照流的權(quán)重分配屬于每一個(gè)流f的服務(wù)時(shí)間:一個(gè)聚流內(nèi)的多個(gè)流排隊(duì)接受輪詢,為每一個(gè)流設(shè)置一個(gè)差額計(jì)數(shù)器;當(dāng)一個(gè)流開始接收服務(wù)時(shí),依據(jù)該流的權(quán)重,給這個(gè)流的差額計(jì)數(shù)器加上一個(gè)差額(差額與權(quán)重大小成正比);對(duì)于一個(gè)正在被發(fā)送的流來說,每發(fā)送一個(gè)數(shù)據(jù)包,差額計(jì)數(shù)器就會(huì)減少該數(shù)據(jù)包的字節(jié)數(shù),當(dāng)差額計(jì)數(shù)器用完或者該流的隊(duì)列為空時(shí),就切換至下一個(gè)流;流的增加與減少會(huì)使得每個(gè)流得到的帶寬改變,這樣使得聚流內(nèi)的帶寬能被內(nèi)部存在的流充分利用;
(3.6)當(dāng)某個(gè)隊(duì)列中的數(shù)據(jù)包充滿隊(duì)列,當(dāng)有新數(shù)據(jù)包進(jìn)入該隊(duì)列時(shí),該隊(duì)列就會(huì)丟棄該隊(duì)列中最老的數(shù)據(jù)包;
步驟四:經(jīng)過調(diào)度的數(shù)據(jù)包進(jìn)入輸出隊(duì)列:可編程交換機(jī)共有8個(gè)輸出端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口 ;根據(jù)步驟二中添加的輸出端口標(biāo)記,送入指定隊(duì)列。本發(fā)明的有益效果是,本發(fā)明使用低成本的NetFPGA硬件設(shè)備,實(shí)現(xiàn)了網(wǎng)絡(luò)資源的靈活、公平且可控的分配,降低了網(wǎng)絡(luò)資源分配的實(shí)現(xiàn)成本,其實(shí)現(xiàn)方法簡便,手段靈活,網(wǎng)絡(luò)服務(wù)質(zhì)量能得到顯著保證,且與網(wǎng)絡(luò)層協(xié)議無關(guān)。
圖1是基于NetFPGA硬件的網(wǎng)絡(luò)資源的雙層隔離方法流程圖。
具體實(shí)施例方式下面根據(jù)附圖詳細(xì)說明本發(fā)明。本發(fā)明基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法,包括以下步驟:
步驟一:數(shù)據(jù)包通過8個(gè)輸入端口之一進(jìn)入可編程交換機(jī)??删幊探粨Q機(jī)共有8個(gè)輸入端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口。交換機(jī)采用輪詢方式輪流從8個(gè)輸入端口之一選擇數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)層。步驟二:網(wǎng)絡(luò)層協(xié)議根據(jù)路由表,按照數(shù)據(jù)包頭部選擇數(shù)據(jù)包的輸出端口,并在數(shù)據(jù)包頭部標(biāo)記對(duì)應(yīng)的輸出隊(duì)列(供步驟四使用)。步驟三:使用雙層的網(wǎng)絡(luò)資源隔離方法對(duì)標(biāo)記了輸出隊(duì)列的數(shù)據(jù)包進(jìn)行調(diào)度。該步驟是本發(fā)明的核心,分為以下子步驟。I)獲得數(shù)據(jù)包的流號(hào)。每一個(gè)從網(wǎng)絡(luò)層輸出的數(shù)據(jù)包都或者不帶VLAN標(biāo)簽(此時(shí)認(rèn)為流號(hào)為O)或者帶有VLAN標(biāo)簽(使用VLAN的VID字段的低2位標(biāo)識(shí)其流號(hào))。不帶VLAN標(biāo)簽或者VID低2位為00的數(shù)據(jù)包被識(shí)別為流0,VID末2位為01的數(shù)據(jù)包被識(shí)別為流1,VID末2位為02的數(shù)據(jù)包被識(shí)別為流2, VID末2位為03的數(shù)據(jù)包被識(shí)別為流3。2)為每個(gè)流建立一條調(diào)度隊(duì)列,將數(shù)據(jù)包根據(jù)流號(hào)送入對(duì)應(yīng)的隊(duì)列。隊(duì)列可以直接在可編程交換機(jī)上使用賽靈思公司(Xilinx)的Core Generator軟件利用NetFPGA上的塊存儲(chǔ)器(BRAM)資源自動(dòng)生成先進(jìn)先出隊(duì)列。將數(shù)據(jù)包送入對(duì)應(yīng)隊(duì)列。3)對(duì)流進(jìn)行分組,一個(gè)或多個(gè)流組合成一個(gè)聚流。4)使用加權(quán)時(shí)間片輪轉(zhuǎn)方式分配每一個(gè)聚流的帶寬。
設(shè)一次輪轉(zhuǎn)的時(shí)間片總數(shù)為N,任意一個(gè)聚流i的指定帶寬為bi;總帶寬為b,則給每一聚流在一次輪轉(zhuǎn)中分配時(shí)間片為h/ b * N。當(dāng)輪到一個(gè)聚流i接受服務(wù)時(shí),它的時(shí)間將被屬于聚流i的所有流使用;當(dāng)時(shí)間片使用完時(shí),聚流i停止接受服務(wù),切換至下一個(gè)聚流接受服務(wù)。通過這種方法,每一個(gè)聚流接受服務(wù)的時(shí)間都可以明確指定,這樣,單個(gè)聚流的帶寬就能得到保證。5)在聚流i分配到的服務(wù)時(shí)間內(nèi),按照流的權(quán)重分配屬于每一個(gè)流f的服務(wù)時(shí)間。這里使用經(jīng)典的差額輪詢方法。一個(gè)聚流內(nèi)的多個(gè)流排隊(duì)接受輪詢,為每一個(gè)流設(shè)置一個(gè)差額計(jì)數(shù)器(Deficit Counter)ο當(dāng)一個(gè)流開始接收服務(wù)時(shí),依據(jù)該流的權(quán)重,給這個(gè)流的差額計(jì)數(shù)器加上一個(gè)差額(差額與權(quán)重大小成正比)。對(duì)于一個(gè)正在被發(fā)送的流來說,每發(fā)送一個(gè)數(shù)據(jù)包,差額計(jì)數(shù)器就會(huì)減少該數(shù)據(jù)包的字節(jié)數(shù),當(dāng)差額計(jì)數(shù)器用完或者該流的隊(duì)列為空時(shí),就切換至下一個(gè)流。流的增加與減少會(huì)使得每個(gè)流得到的帶寬改變,這樣使得聚流內(nèi)的帶寬能被內(nèi)部存在的流充分利用。雙層的結(jié)構(gòu)使得本方法不僅能夠適應(yīng)例如虛擬網(wǎng)要求嚴(yán)格帶寬分配的要求(通過給每個(gè)虛擬網(wǎng)分配一個(gè)聚流),同時(shí)也能夠適應(yīng)依權(quán)重分配帶寬的需求。6)當(dāng)某個(gè)隊(duì)列中的數(shù)據(jù)包充滿隊(duì)列,當(dāng)有新數(shù)據(jù)包進(jìn)入該隊(duì)列時(shí),該隊(duì)列就會(huì)丟棄該隊(duì)列中最老的數(shù)據(jù)包。步驟四:經(jīng)過調(diào)度的數(shù)據(jù)包進(jìn)入輸出隊(duì)列??删幊探粨Q機(jī)共有8個(gè)輸出端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口。根據(jù)步驟二中添加的輸出端口標(biāo)記,送入指定隊(duì)列。
權(quán)利要求
1.一種基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法,其特征在于,包括以下步驟:步驟一:數(shù)據(jù)包通過8個(gè)輸入端口之一進(jìn)入可編程交換機(jī):可編程交換機(jī)共有8個(gè)輸入端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口 ;交換機(jī)采用輪詢方式輪流從8個(gè)輸入端口之一選擇數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)層; 步驟二:網(wǎng)絡(luò)層協(xié)議根據(jù)路由表,按照數(shù)據(jù)包頭部選擇數(shù)據(jù)包的輸出端口,并在數(shù)據(jù)包頭部標(biāo)記對(duì)應(yīng)的輸出隊(duì)列; 步驟三:使用雙層的網(wǎng)絡(luò)資源隔離方法對(duì)標(biāo)記了輸出隊(duì)列的數(shù)據(jù)包進(jìn)行調(diào)度;該步驟通過以下子步驟來實(shí)現(xiàn): (3.1)獲得數(shù)據(jù)包的流號(hào):若從網(wǎng)絡(luò)層輸出的數(shù)據(jù)包不帶VLAN標(biāo)簽,認(rèn)為該數(shù)據(jù)包的流號(hào)為O ;若從網(wǎng)絡(luò)層輸出的數(shù)據(jù)包帶VLAN標(biāo)簽,則使用VLAN的VID字段的低2位標(biāo)識(shí)其流號(hào):不帶VLAN標(biāo)簽或者VID低2位為OO的數(shù)據(jù)包被識(shí)別為流0,VID末2位為01的數(shù)據(jù)包被識(shí)別為流I, VID末2位為02的數(shù)據(jù)包被識(shí)別為流2, VID末2位為03的數(shù)據(jù)包被識(shí)別為流3 ; (3.2)為每個(gè)流建立一條調(diào)度隊(duì)列,將數(shù)據(jù)包根據(jù)流號(hào)送入對(duì)應(yīng)的隊(duì)列; (3.3)對(duì)流進(jìn)行分組,一個(gè)或多個(gè)流組合成一個(gè)聚流; (3.4)使用加權(quán)時(shí)間片輪轉(zhuǎn)方式分配每一個(gè)聚流的帶寬:設(shè)一次輪轉(zhuǎn)的時(shí)間片總數(shù)為N,任意一個(gè)聚流i的指定帶寬為bi;總帶寬為b,則給每一聚流在一次輪轉(zhuǎn)中分配時(shí)間片為h / b * N ;當(dāng)輪到一個(gè)聚流i接受服務(wù)時(shí),它的時(shí)間將被屬于聚流i的所有流使用;當(dāng)時(shí)間片使用完時(shí),聚流i停止接受服務(wù),切換至下一個(gè)聚流接受服務(wù); (3.5)在聚流i分配到的服務(wù)時(shí)間內(nèi),按照流的權(quán)重分配屬于每一個(gè)流f的服務(wù)時(shí)間:一個(gè)聚流內(nèi)的多個(gè)流排隊(duì)接受輪詢,為每一個(gè)流設(shè)置一個(gè)差額計(jì)數(shù)器;當(dāng)一個(gè)流開始接收服務(wù)時(shí),依據(jù)該流的權(quán)重,給這個(gè)流的差額計(jì)數(shù)器加上一個(gè)差額(差額與權(quán)重大小成正比);對(duì)于一個(gè)正在被發(fā)送的流來說,每發(fā)送一個(gè)數(shù)據(jù)包,差額計(jì)數(shù)器就會(huì)減少該數(shù)據(jù)包的字節(jié)數(shù),當(dāng)差額計(jì)數(shù)器用完或者該流的隊(duì)列為空時(shí),就切換至下一個(gè)流;流的增加與減少會(huì)使得每個(gè)流得到的帶寬改變,這樣使得聚流內(nèi)的帶寬能被內(nèi)部存在的流充分利用; (3.6)當(dāng)某個(gè)隊(duì)列中的數(shù)據(jù)包充滿隊(duì)列,當(dāng)有新數(shù)據(jù)包進(jìn)入該隊(duì)列時(shí),該隊(duì)列就會(huì)丟棄該隊(duì)列中最老的數(shù)據(jù)包; 步驟四:經(jīng)過調(diào)度的數(shù)據(jù)包進(jìn)入輸出隊(duì)列:可編程交換機(jī)共有8個(gè)輸出端口,包括4個(gè)IG以太網(wǎng)端口和4個(gè)DMA端口 ;根據(jù)步驟二中添加的輸出端口標(biāo)記,送入指定隊(duì)列。
全文摘要
本發(fā)明公開了一種基于可編程交換機(jī)的網(wǎng)絡(luò)資源的雙層隔離方法,該方法將網(wǎng)絡(luò)資源分為聚流層和流層,在聚流層調(diào)度時(shí)為每一個(gè)聚流預(yù)留指定帶寬,在流層調(diào)度時(shí)讓聚流內(nèi)的多個(gè)流根據(jù)其權(quán)重競爭帶寬。本發(fā)明使用低成本的NetFPGA硬件設(shè)備,實(shí)現(xiàn)了網(wǎng)絡(luò)資源的靈活、公平且可控的分配,降低了網(wǎng)絡(luò)資源分配的實(shí)現(xiàn)成本,其實(shí)現(xiàn)方法簡便,手段靈活,網(wǎng)絡(luò)服務(wù)質(zhì)量能得到顯著保證,且與網(wǎng)絡(luò)層協(xié)議無關(guān)。
文檔編號(hào)H04L12/861GK103166875SQ20131007787
公開日2013年6月19日 申請日期2013年3月12日 優(yōu)先權(quán)日2013年3月12日
發(fā)明者吳春明, 曾若瑜, 周伯陽, 姜明 申請人:浙江大學(xué)