封包交換系統(tǒng)及方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明是有關(guān)于一種技術(shù),且特別是有關(guān)于一種封包交換系統(tǒng)及方法?!?br>背景技術(shù):
】[0002]因應(yīng)日趨復(fù)雜的網(wǎng)絡(luò)環(huán)境,傳統(tǒng)網(wǎng)絡(luò)交換器與路由器的功能繁多,致使網(wǎng)絡(luò)傳輸效能低落,而且受到網(wǎng)絡(luò)硬件設(shè)備的操作系統(tǒng)局限,管理者難以依照需求自由管理網(wǎng)絡(luò)封包傳遞路徑。因此,2008年美國(guó)史丹佛大學(xué)(StanfordUniversity)開始推動(dòng)一項(xiàng)實(shí)驗(yàn)性技術(shù)“OpenFlow”,期望能夠以開放式網(wǎng)絡(luò)管理架構(gòu)來(lái)提高網(wǎng)絡(luò)效能與彈性應(yīng)用需求,協(xié)助網(wǎng)絡(luò)服務(wù)供應(yīng)商更為精確的網(wǎng)絡(luò)管理能力。[0003]OpenFlow的技術(shù)內(nèi)容指的是將過(guò)去統(tǒng)一由網(wǎng)絡(luò)交換器/路由器執(zhí)行的網(wǎng)絡(luò)路徑控管與數(shù)據(jù)封包傳輸功能區(qū)分開來(lái),讓網(wǎng)絡(luò)路徑控管的功能另外以安裝OpenFlow控制軟件的控制服務(wù)器來(lái)決定。其中,OpenFlow交換器所儲(chǔ)存的管理流程表(flowtable)是由控制服務(wù)器進(jìn)行管理。數(shù)據(jù)封包傳輸與處理,則由OpenFlow交換器根據(jù)流程表中儲(chǔ)存的項(xiàng)目(entry),包含匹配條件與對(duì)應(yīng)處理動(dòng)作來(lái)進(jìn)行。[0004]然而,OpenFlow交換器中的記憶體儲(chǔ)存量有限。當(dāng)使用者為使交換器更具效率而增加過(guò)多項(xiàng)目于流程表中時(shí),將使記憶體無(wú)法負(fù)荷,反而無(wú)法提升效率。[0005]因此,如何設(shè)計(jì)一個(gè)新的封包交換系統(tǒng)及方法,以提升測(cè)試的效率與速度,乃為此一業(yè)界亟待解決的問(wèn)題?!?br/>發(fā)明內(nèi)容】[0006]因此,本發(fā)明的一方面是在提供一種封包交換系統(tǒng),包含:多個(gè)封包交換模塊以及控制模塊。封包交換模塊分別包含儲(chǔ)存多個(gè)封包流程表的記憶單元??刂颇K耦接于封包交換模塊,以更新封包流程表,控制模塊包含用以儲(chǔ)存計(jì)算機(jī)可執(zhí)行的多個(gè)指令的記憶體以及處理器,處理器是用以執(zhí)行指令,以進(jìn)行下列動(dòng)作:產(chǎn)生對(duì)應(yīng)于封包交換模塊其中的一目標(biāo)封包交換模塊的流程項(xiàng)目(entry);判斷目標(biāo)封包交換模塊的記憶單元的儲(chǔ)存剩余量小于臨界值;自其他封包交換模塊中,選擇具有儲(chǔ)存剩余量不小于臨界值的記憶單元的轉(zhuǎn)發(fā)封包交換模塊;以及根據(jù)流程項(xiàng)目新增轉(zhuǎn)發(fā)流程項(xiàng)目于目標(biāo)封包交換模塊的封包流程表及新增處理流程項(xiàng)目至轉(zhuǎn)發(fā)封包交換模塊的封包流程表。其中,當(dāng)目標(biāo)封包交換模塊接收對(duì)應(yīng)轉(zhuǎn)發(fā)流程項(xiàng)目的封包,是根據(jù)轉(zhuǎn)發(fā)流程項(xiàng)目轉(zhuǎn)發(fā)封包至轉(zhuǎn)發(fā)封包交換模塊,以使轉(zhuǎn)發(fā)封包交換模塊根據(jù)處理流程項(xiàng)目對(duì)封包進(jìn)行處理。[0007]依據(jù)本發(fā)明一實(shí)施例,其中流程項(xiàng)目包含至少一匹配條件以及至少一封包內(nèi)容處理動(dòng)作,轉(zhuǎn)發(fā)流程項(xiàng)目包含至少部分匹配條件及轉(zhuǎn)發(fā)處理動(dòng)作,處理流程項(xiàng)目包含匹配條件以及封包內(nèi)容處理動(dòng)作。[0008]依據(jù)本發(fā)明另一實(shí)施例,其中目標(biāo)封包交換模塊判斷封包滿足至少部分匹配條件,以根據(jù)轉(zhuǎn)發(fā)處理動(dòng)作轉(zhuǎn)發(fā)封包至轉(zhuǎn)發(fā)封包交換模塊,轉(zhuǎn)發(fā)封包交換模塊判斷封包滿足匹配條件,以根據(jù)封包內(nèi)容處理動(dòng)作對(duì)封包進(jìn)行處理。[0009]依據(jù)本發(fā)明又一實(shí)施例,其中處理流程項(xiàng)目還包含封包回送處理動(dòng)作,轉(zhuǎn)發(fā)封包交換模塊還根據(jù)封包回送處理動(dòng)作回送封包至目標(biāo)封包交換模塊。[0010]依據(jù)本發(fā)明再一實(shí)施例,其中流程項(xiàng)目還包含傳送(forwarding)處理動(dòng)作,處理器還新增包含至少部分匹配條件以及傳送處理動(dòng)作的傳送流程項(xiàng)目于目標(biāo)封包交換模塊的封包流程表,以使目標(biāo)封包交換模塊自轉(zhuǎn)發(fā)封包交換模塊接收封包后,判斷封包滿足至少部分匹配條件,以根據(jù)傳送處理動(dòng)作傳送封包至目標(biāo)封包交換模塊外。其中目標(biāo)封包交換模塊根據(jù)傳送流程項(xiàng)目傳送封包至目的封包交換模塊或目的主機(jī)。[0011]依據(jù)本發(fā)明更具有的一實(shí)施例,其中封包交換模塊分別為OpenFlow封包交換模塊。[0012]依據(jù)本發(fā)明再具有的一實(shí)施例,其中記憶單元為三元內(nèi)容定址記憶體(TernaryContentAddressableMemory;TCAM)。[0013]依據(jù)本發(fā)明的一實(shí)施例,其中當(dāng)處理單元判斷目標(biāo)封包交換模塊的記憶單元的儲(chǔ)存剩余量不小于臨界值時(shí),處理單元直接新增流程項(xiàng)目至目標(biāo)封包交換模塊的封包流程表,以使當(dāng)目標(biāo)封包交換模塊接收對(duì)應(yīng)流程項(xiàng)目的封包,是根據(jù)流程項(xiàng)目對(duì)封包進(jìn)行處理。[0014]本發(fā)明的另一方面是在提供一種封包交換方法,應(yīng)用于封包交換系統(tǒng)中,封包交換系統(tǒng)包含多個(gè)封包交換模塊以及控制模塊,其中封包交換模塊分別包含儲(chǔ)存多個(gè)封包流程表的記憶單元,控制模塊耦接于封包交換模塊,以更新封包流程表,并包含用以儲(chǔ)存計(jì)算機(jī)可執(zhí)行的多個(gè)指令的記憶體以及可執(zhí)行指令的處理器,封包交換方法包含:使處理器產(chǎn)生對(duì)應(yīng)于封包交換模塊其中的一目標(biāo)封包交換模塊的流程項(xiàng)目;使處理器判斷目標(biāo)封包交換模塊的記憶單元的儲(chǔ)存剩余量小于臨界值;使處理器自其他封包交換模塊中,選擇具有儲(chǔ)存剩余量不小于臨界值的記憶單元的轉(zhuǎn)發(fā)封包交換模塊;使處理器根據(jù)流程項(xiàng)目新增轉(zhuǎn)發(fā)流程項(xiàng)目于目標(biāo)封包交換模塊的封包流程表及新增處理流程項(xiàng)目至轉(zhuǎn)發(fā)封包交換模塊的封包流程表;以及當(dāng)目標(biāo)封包交換模塊接收對(duì)應(yīng)轉(zhuǎn)發(fā)流程項(xiàng)目的封包,是根據(jù)轉(zhuǎn)發(fā)流程項(xiàng)目轉(zhuǎn)發(fā)封包至轉(zhuǎn)發(fā)封包交換模塊,以使轉(zhuǎn)發(fā)封包交換模塊根據(jù)處理流程項(xiàng)目對(duì)封包進(jìn)行處理。[0015]依據(jù)本發(fā)明一實(shí)施例,其中流程項(xiàng)目包含至少一匹配條件以及至少一封包內(nèi)容處理動(dòng)作,轉(zhuǎn)發(fā)流程項(xiàng)目包含至少部分匹配條件及轉(zhuǎn)發(fā)處理動(dòng)作,處理流程項(xiàng)目包含匹配條件以及封包內(nèi)容處理動(dòng)作。[0016]依據(jù)本發(fā)明另一實(shí)施例,封包交換方法其中還包含:使目標(biāo)封包交換模塊判斷封包滿足至少部分匹配條件,以根據(jù)轉(zhuǎn)發(fā)處理動(dòng)作轉(zhuǎn)發(fā)封包至轉(zhuǎn)發(fā)封包交換模塊;以及使轉(zhuǎn)發(fā)封包交換模塊判斷封包滿足匹配條件,以根據(jù)封包內(nèi)容處理動(dòng)作對(duì)封包進(jìn)行處理。[0017]依據(jù)本發(fā)明又一實(shí)施例,其中處理流程項(xiàng)目還包含封包回送處理動(dòng)作,封包交換方法還包含:使轉(zhuǎn)發(fā)封包交換模塊根據(jù)封包回送處理動(dòng)作回送封包至目標(biāo)封包交換模塊。[0018]依據(jù)本發(fā)明再一實(shí)施例,其中流程項(xiàng)目還包含封包傳送處理動(dòng)作,封包交換方法還包含:使處理器新增包含至少部分匹配條件以及傳送處理動(dòng)作的傳送流程項(xiàng)目于目標(biāo)封包交換模塊的封包流程表;使目標(biāo)封包交換模塊自轉(zhuǎn)發(fā)封包交換模塊接收封包后,判斷封包滿足至少部分匹配條件,以根據(jù)傳送處理動(dòng)作傳送封包至目標(biāo)封包交換模塊外。其中目標(biāo)封包交換模塊根據(jù)傳送流程項(xiàng)目傳送封包至目的封包交換模塊或目的主機(jī)。[0019]依據(jù)本發(fā)明更具有的一實(shí)施例,其中封包交換模塊分別為OpenFlow封包交換模塊。[0020]依據(jù)本發(fā)明再具有的一實(shí)施例,其中記憶單元為三元內(nèi)容定址記憶體。[0021]依據(jù)本發(fā)明的一實(shí)施例,其中封包交換方法還包含:當(dāng)處理單元判斷目標(biāo)封包交換模塊的記憶單元的儲(chǔ)存剩余量不小于臨界值時(shí),處理單元直接新增流程項(xiàng)目至目標(biāo)封包交換模塊的封包流程表;以及當(dāng)目標(biāo)封包交換模塊接收對(duì)應(yīng)流程項(xiàng)目的封包,是根據(jù)流程項(xiàng)目對(duì)封包進(jìn)行處理。[0022]應(yīng)用本發(fā)明的優(yōu)點(diǎn)在于通過(guò)將原流程項(xiàng)目的處理流程新增于轉(zhuǎn)發(fā)封包交換模塊,避免目標(biāo)封包交換模塊由于記憶體儲(chǔ)存空間不足造成溢位(overflow),而輕易地達(dá)到上述的目的?!靖綀D說(shuō)明】[0023]圖1A為本發(fā)明一實(shí)施例中,一種封包交換系統(tǒng)的示意圖;[0024]圖1B為本發(fā)明一實(shí)施例中,圖1A的封包交換系統(tǒng)的方塊圖;[0025]圖2為本發(fā)明一實(shí)施例中,流程項(xiàng)目的虛擬碼的范例示意圖;[0026]圖3A及圖3B分別為本發(fā)明一實(shí)施例中,封包交換系統(tǒng)實(shí)際運(yùn)作時(shí)的示意圖;[0027]圖4A為本發(fā)明一實(shí)施例中,轉(zhuǎn)發(fā)流程項(xiàng)目的虛擬碼的示意圖;[0028]圖4B為本發(fā)明一實(shí)施例中,處理流程項(xiàng)目的虛擬碼的示意圖;[0029]圖4C為本發(fā)明一實(shí)施例中,傳送流程項(xiàng)目的虛擬碼的示意圖;以及[0030]圖5為本發(fā)明一實(shí)施例中,一種封包交換方法的流程圖。【具體實(shí)施方式】[0031]請(qǐng)參照?qǐng)D1A及圖1B。圖1A為本發(fā)明一實(shí)施例中,一種封包交換系統(tǒng)I的示意圖。圖1B為本發(fā)明一實(shí)施例中,圖1A的封包交換系統(tǒng)I的方塊圖。封包交換系統(tǒng)I包含:封包交換模塊100、110以及控制模塊120。[0032]于一實(shí)施例中,封包交換模塊100及110分別為一OpenFlow封包交換模塊。需注意的是,圖1A及圖1B所繪示的封包交換模塊100及110的數(shù)目?jī)H為一范例。于其他實(shí)施例中,其數(shù)目可依實(shí)際需求進(jìn)行調(diào)整。[0033]于一實(shí)施例中,封包交換模塊100及110分別包含記憶單元130及140,以儲(chǔ)存封包流程表105及115。于一實(shí)施例中,記憶單元130及140可為三元內(nèi)容定址記憶體(TernaryContentAddressableMemory;TCAM),而封包流程表105及115則可為三兀內(nèi)容定址記憶體規(guī)則表。需注意的是,三元內(nèi)容定址記憶體中能定義三種狀態(tài),即1、0與不計(jì)(don’tcare)的狀態(tài)。于其他實(shí)施例中,封包交換模塊100及110亦可能以其他的記憶體實(shí)現(xiàn),以儲(chǔ)存其他格式的封當(dāng)前第1頁(yè)1 2 3