報(bào)文處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明實(shí)施例設(shè)及通信技術(shù)領(lǐng)域,尤其設(shè)及一種報(bào)文處理方法及裝置。
【背景技術(shù)】
[0002] 軟件定義網(wǎng)絡(luò)(Software Defined化twork,簡稱SDN)是一種新的網(wǎng)絡(luò)架構(gòu),其核 屯、技術(shù)化enf low通過將原本由交換機(jī)/路由器控制的報(bào)文轉(zhuǎn)發(fā)過程,轉(zhuǎn)化為由化enf low交 換機(jī)和控制器分別完成的獨(dú)立過程,即將控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)網(wǎng)絡(luò)流量的 靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。
[0003] 化enf low是基于化enf low交換機(jī)部署的,要求每個(gè)化enf low交換機(jī)上包含一個(gè)開 放的流表與一個(gè)用于增刪流表表項(xiàng)的標(biāo)準(zhǔn)化接口。其中,Openflow交換機(jī)中的報(bào)文轉(zhuǎn)發(fā)是 根據(jù)流表來執(zhí)行的,流表是報(bào)文處理的核屯、,流表中每一條表項(xiàng)稱為規(guī)則,每條規(guī)則由=部 分組成:匹配域,用于報(bào)文的匹配;計(jì)數(shù)器,用于統(tǒng)計(jì)每條規(guī)則的流量信息,如查找次數(shù)、發(fā) 送報(bào)文數(shù)等;行動(dòng),用于對匹配報(bào)文的處理,其中,行動(dòng)中包括一個(gè)動(dòng)作集,該動(dòng)作集用于對 報(bào)文執(zhí)行相應(yīng)的動(dòng)作。其中,每個(gè)動(dòng)作對應(yīng)一個(gè)類型、長度、值(Type Length Value,簡稱 化V)結(jié)構(gòu),比如:類型字段可W是統(tǒng)計(jì)、值字段可W是標(biāo)識(shí),則執(zhí)行的動(dòng)作則是根據(jù)標(biāo)識(shí)對 報(bào)文進(jìn)行統(tǒng)計(jì)。
[0004] 然而,現(xiàn)有技術(shù)中,每條化V中類型字段占用的字節(jié)數(shù)為固定值,例如:5比特,該5 比特可W表示25 = 32種類型,但是,存在一些"類型"并不經(jīng)常用、甚至不用,因此,運(yùn)種令類 型字段占用的字節(jié)數(shù)為固定值的方式,會(huì)導(dǎo)致內(nèi)存空間的浪費(fèi)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供一種報(bào)文處理方法及裝置,從而達(dá)到節(jié)省內(nèi)存空間的效果。
[0006] 第一方面,本發(fā)明實(shí)施例提供一種報(bào)文處理方法,包括:依次匹配報(bào)文與流表中的 至少一條規(guī)則;若報(bào)文與任一條規(guī)則匹配成功,則對報(bào)文依次執(zhí)行任一條規(guī)則中的,至少一 條類型、長度和值化V對應(yīng)的動(dòng)作集;其中,該化V中的類型字段的編碼長度與所述類型字段 的使用頻率成反比。
[0007] 本發(fā)明實(shí)施例提供的報(bào)文處理方法中,由于使用頻率高的類型字段對應(yīng)的編碼則 較短,相應(yīng)地,使用頻率低的類型字段對應(yīng)的編碼則較長,因此,整個(gè)流表中類型字段的平 均編碼變短了,從而達(dá)到節(jié)省內(nèi)存空間的效果。
[000引可選地,該報(bào)文處理方法還包括:在預(yù)設(shè)時(shí)間段內(nèi),獲取每條所述化V中的類型字 段的使用頻率;分別根據(jù)每個(gè)類型字段的使用頻率,對類型字段進(jìn)行編碼。
[0009]可選地,上述編碼方法可W采用霍夫曼編碼方法,也可W采用如下方法:確定每個(gè) 類型字段對應(yīng)的使用頻率,當(dāng)確定使用頻率最高的類型字段只有一個(gè)時(shí),則該類型字段對 應(yīng)的編碼可W為0或者1,即用一位二進(jìn)制數(shù)來表示該類型字段,當(dāng)確定使用頻率最高的類 型字段有兩個(gè)時(shí),則可W用兩位二進(jìn)制數(shù)來表示該類型字段,依次類推,確定完使用頻率最 高的類型字段之后,再通過同樣的方式確定使用頻率次高的類型字段對應(yīng)的編碼,該編碼 的長度比使用頻率最高的類型字段的編碼的長度多一位,依次類推,直到所有的類型字段 都存在對應(yīng)的編碼,則結(jié)束。
[0010] 本發(fā)明實(shí)施例對根據(jù)類型字段在預(yù)設(shè)時(shí)間段內(nèi)的使用頻率對類型字段進(jìn)行編碼 的方法不做限制,只要滿足類型字段對應(yīng)的編碼長度與類型字段在預(yù)設(shè)時(shí)間段內(nèi)的使用頻 率成反比即可。
[0011] 可選地,對報(bào)文依次執(zhí)行所述任一條規(guī)則中的,至少一條類型、長度和值化V對應(yīng) 的動(dòng)作集,包括:確定待匹配的第一化V中的類型字段的編碼長度和所述第一化V中的值字 段的長度;基于所述第一化V的起始地址,確定長度為所述編碼長度的數(shù)據(jù)為所述第一化V 中的類型字段對應(yīng)的編碼,并且基于所述第一化V的起始地址,偏移所述待匹配的第一化V 中的類型字段的編碼長度之后,確定第一偏移地址;從所述第一偏移地址開始,確定長度為 所述第一化V中的值字段的長度的數(shù)據(jù)為所述第一化V中的值字段;根據(jù)所述第一化V中的 類型字段和值字段對所述報(bào)文執(zhí)行相應(yīng)的動(dòng)作;根據(jù)所述第一化V的起始地址、所述第一 TLV中的類型字段的編碼長度和所述第一化V中的值字段的長度,確定第二TLV的起始地址, 并將所述第二TLV作為新的第一化V,對所述報(bào)文執(zhí)行所述新的第一 TLV相應(yīng)的動(dòng)作,直至執(zhí) 行完所述動(dòng)作集中的所有動(dòng)作,其中,所述第二TLV為所述第一TLV中的下一條TLV。
[0012] 可選地,根據(jù)第一化V的起始地址、第一化V中的類型字段的編碼長度和所述第一 TLV中的值字段的長度,確定第二化V的起始地址,包括:基于所述第一化V的起始地址,偏移 所述第一化V中的類型字段的編碼長度和所述第一 TLV中的值字段的長度之后,確定所述第 二TLV的起始地址。
[0013] 由于本發(fā)明中對化V中的類型字段進(jìn)行了壓縮,即TLV中的類型字段不是固定長 度,每條化V中的類型字段的長度可能不盡相同,因此,通過上述方法可W準(zhǔn)確、快速的確定 第一 TLV中的值字段W及第二TLV的起始地址,從而提高報(bào)文處理效率。
[0014] 下面將提供一種報(bào)文處理裝置,該裝置的功能與效果與上述報(bào)文處理方法對應(yīng)的 效果相同,在此不再寶述。
[0015] 第二方面,本發(fā)明實(shí)施例提供一種報(bào)文處理裝置,包括:相連接的第一電路和第二 電路;所述第一電路,用于依次匹配報(bào)文與流表中的至少一條規(guī)則;若所述報(bào)文與任一條規(guī) 則匹配成功,則所述第二電路對所述報(bào)文依次執(zhí)行所述任一條規(guī)則中的,至少一條類型、長 度和值化V對應(yīng)的動(dòng)作集;其中,所述化V中的類型字段的編碼長度與所述類型字段的使用 頻率成反比。
[0016] 可選地,所述第一電路還用于:在預(yù)設(shè)時(shí)間段內(nèi),獲取每條所述化V中的類型字段 的使用頻率;分別根據(jù)每個(gè)所述類型字段的使用頻率,對所述類型字段進(jìn)行編碼。
[0017] 可選地,所述第一電路具體用于:根據(jù)每個(gè)所述類型字段的使用頻率,對所述類型 字段進(jìn)行霍夫曼編碼。
[0018] 可選地,所述第二電路用于:確定待匹配的第一化V中的類型字段的編碼長度和所 述第一化V中的值字段的長度;基于所述第一化V的起始地址,確定長度為所述編碼長度的 數(shù)據(jù)為所述第一化V中的類型字段對應(yīng)的編碼,并且基于所述第一化V的起始地址,偏移所 述待匹配的第一化V中的類型字段的編碼長度之后,確定第一偏移地址;從所述第一偏移地 址開始,確定長度為所述第一化V中的值字段的長度的數(shù)據(jù)為所述第一化V中的值字段;根 據(jù)所述第一化V中的類型字段和值字段對所述報(bào)文執(zhí)行相應(yīng)的動(dòng)作;根據(jù)所述第一 TLV的起 始地址、所述第一化V中的類型字段的編碼長度和所述第一化V中的值字段的長度,確定第 二化V的起始地址,并將所述第二化V作為新的第一化V,對所述報(bào)文執(zhí)行所述新的第一化V 相應(yīng)的動(dòng)作,直至執(zhí)行完所述動(dòng)作集中的所有動(dòng)作;其中,所述第二TLV為所述第一TLV中的 下一條TLV。
[0019] 可選地,所述第二電路包括:多個(gè)節(jié)點(diǎn),所述多個(gè)節(jié)點(diǎn)構(gòu)成與所述霍夫曼編碼對應(yīng) 的霍夫曼樹;則所述第二電路具體用于:根據(jù)所述第一化V遍歷所述霍夫曼樹;遍歷成功,確 定所述第一 TLV中的類型字段的編碼長度。
[0020] 可選地,所述第二電路具體用于:基于所述第一化V的起始地址,偏移所述第一化V 中的類型字段的編碼長度和所述第一 TLV中的值字段的長度之后,確定所述第二TLV的起始 地址。
[0021] 可選地,該裝置還包括:第=電路;所述第=電路與所述第二電路為主備關(guān)系;當(dāng) 所述第二電路執(zhí)行報(bào)文處理過程時(shí),則所述第=電路根據(jù)控制命令調(diào)整所述第=電路的結(jié) 構(gòu);當(dāng)所述第=電路執(zhí)行報(bào)文處理