亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

流表刷新的方法及裝置與流程

文檔序號:11972034閱讀:268來源:國知局
流表刷新的方法及裝置與流程
本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種流表刷新的方法及裝置。

背景技術(shù):
當(dāng)一組報文具有相同的五元組信息是,可以認為這一組報文有相同的轉(zhuǎn)發(fā)行為,即需要使用相同的轉(zhuǎn)發(fā)路徑,并接受相同的業(yè)務(wù)處理。通常將具有相同五元組信息的一組報文,稱為流,也稱為數(shù)據(jù)流或報文流。為了提升轉(zhuǎn)發(fā)性能,通常會將報文流所需要的轉(zhuǎn)發(fā)路徑和業(yè)務(wù)處理以五元組信息和業(yè)務(wù)信息的形式存儲于轉(zhuǎn)發(fā)設(shè)備中流表的一個流節(jié)點中;其中,流表可包括多個流節(jié)點,每個流節(jié)點只存儲一個報文流的五元組信息和業(yè)務(wù)信息;然后根據(jù)流表中對應(yīng)的流節(jié)點信息對報文進行流轉(zhuǎn)發(fā),提高轉(zhuǎn)發(fā)速度。當(dāng)報文從一個轉(zhuǎn)發(fā)接口進入時,諸如路由器、交換機等轉(zhuǎn)發(fā)設(shè)備通過解析獲取該報文的五元組信息,并根據(jù)五元組信息查詢流表。若確定此時該報文在流表中沒有對應(yīng)的流節(jié)點,則可認定該報文為對應(yīng)的流的首包,需要進行基本轉(zhuǎn)發(fā)?;巨D(zhuǎn)發(fā)的流程包括:解析報文驅(qū)動信息,獲取報文入端口;解析報文鏈路層信息,該鏈路層信息包括鏈路類型、報文源和目的媒體訪問控制(mediaaccesscontrol,簡稱MAC)信息等;解析報文網(wǎng)際協(xié)議(InternetProtocol,簡稱IP)層信息,該IP層報文信息包括報文的源和目的IP地址,是否是分片報文,差分服務(wù)代碼點(differentiatedservicescodepoint,簡稱DSCP)優(yōu)先級,協(xié)議類型等;查詢路由表,決定下行接口;IP報文生存時間(timetolive,簡稱TTL)遞減與報文分片;報文鏈路層封裝,封裝報文的源和目的MAC信息、鏈路類型;報文驅(qū)動信息封裝;將報文從下行接口發(fā)送出去。在此基本轉(zhuǎn)發(fā)流程中,在對報文的解析和封裝的過程中,各個轉(zhuǎn)發(fā)接口需要對該報文進行統(tǒng)計、傳輸限速、根據(jù)防火墻設(shè)置對報文進行過濾等操作,這些操作被認為是轉(zhuǎn)發(fā)接口對該報文的業(yè)務(wù)處理操作;操作的具體內(nèi)容作為業(yè)務(wù)信息進行保存。在完成該報文的基本轉(zhuǎn)發(fā)時,轉(zhuǎn)發(fā)設(shè)備根據(jù)該報文的五元組信息在流表中創(chuàng)建流節(jié)點,并將該報文的五元組信息和業(yè)務(wù)信息作為流節(jié)點信息保存在該流節(jié)點中。后續(xù)具有相同五元組信息的報文可以根據(jù)該流節(jié)點信息,直接轉(zhuǎn)發(fā);這種根據(jù)流節(jié)點信息轉(zhuǎn)發(fā)報文的過程,通常稱為流轉(zhuǎn)發(fā)。然而,當(dāng)業(yè)務(wù)處理操作狀態(tài)發(fā)生變化或者接口狀態(tài)發(fā)生變化時,例如某個接口開啟或關(guān)閉,某個新的業(yè)務(wù)處理操作被啟動或某個業(yè)務(wù)處理操作被暫停使用等,為保證流表中的流節(jié)點信息的正確性,需要將發(fā)生狀態(tài)變化的業(yè)務(wù)處理操作或接口相關(guān)聯(lián)的所有流節(jié)點信息全部刷新。而在流表刷新的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:每次的流表刷新過程中,都需要刪除原有的流節(jié)點,然后再重新建立流節(jié)點來存儲新的流節(jié)點信息。當(dāng)流表中有大量流節(jié)點信息要刷新時,就需要刪除大量的流節(jié)點,并重新創(chuàng)建大量的流節(jié)點,使得流表刷新過程占用轉(zhuǎn)發(fā)設(shè)備的處理器的大量系統(tǒng)資源,造成處理器不能及時處理報文轉(zhuǎn)發(fā),從而降低了處理器轉(zhuǎn)發(fā)報文的效率。

技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種流表刷新的方法及裝置,能夠節(jié)約轉(zhuǎn)發(fā)設(shè)備的系統(tǒng)資源,提高處理器對于轉(zhuǎn)發(fā)報文的處理效率。為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:第一方面,本發(fā)明提供了一種流表刷新的方法,包括:獲取待轉(zhuǎn)發(fā)報文的五元組信息;根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息,查找流表;若所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同,則獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號;若按照匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致,則根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點信息,并按照所述匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致;其中,所述流表根據(jù)預(yù)先的配置規(guī)則,分為若干個流表塊,每個流表塊包括若干個流節(jié)點,每個流表塊均設(shè)置有對應(yīng)的一個可調(diào)整的版本號,每個已有流節(jié)點也均設(shè)置有對應(yīng)的一個可調(diào)整的版本號。在第一方面的第一種可能實現(xiàn)方式中,所述流表刷新的方法還包括:若所述流表中任意一個流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息均不相同,則為所述五元組信息創(chuàng)建一個新的流節(jié)點,并確定所述新的流節(jié)點所在的流表塊;獲取所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息以及所述新的流節(jié)點所在的流表塊的當(dāng)前版本號;將所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息和五元組信息存儲在所述新的流節(jié)點中;根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息,確定對應(yīng)的轉(zhuǎn)發(fā)接口;獲取所述轉(zhuǎn)發(fā)接口的映射表,并更新所述轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識;按照所述匹配規(guī)則將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為與所述新的流節(jié)點所在的流表塊的當(dāng)前版本號一致。根據(jù)第一方面或第一方面的第一種可能實現(xiàn)方式,在第一方面的第二種可能實現(xiàn)方式中,所述流表刷新的方法還包括:若按照所述匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致,保持所述已有流節(jié)點的信息不變。根據(jù)第一方面或第一方面的第一種或第二種可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述流表刷新的方法還包括:當(dāng)檢測到至少一個轉(zhuǎn)發(fā)接口的狀態(tài)發(fā)生變化時,確定待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述待調(diào)整流表塊的當(dāng)前版本號。根據(jù)第一方面或第一方面的第一種至第三種任一種可能實現(xiàn)方式,在第四種可能實現(xiàn)方式中,所述流表刷新的方法還包括:當(dāng)檢測到至少一個業(yè)務(wù)處理操作的狀態(tài)發(fā)生變化時,確定處理所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述待調(diào)整流表塊的當(dāng)前版本號。根據(jù)第一方面或第一方面的第一種至第四種任一種可能實現(xiàn)方式,在第五種可能實現(xiàn)方式中,在所述獲取待轉(zhuǎn)發(fā)報文的五元組信息之前還包括:初始化流表和轉(zhuǎn)發(fā)接口的映射表。根據(jù)第一方面的第五種可能實現(xiàn)方式,在第六種可能實現(xiàn)方式中,所述初始化流表和轉(zhuǎn)發(fā)接口的映射表包括:獲取當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系,并存儲所述當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系;獲取當(dāng)前流表;根據(jù)預(yù)先的配置規(guī)則,將所述流表分為若干個流表塊;其中,每個流表塊包括若干個流節(jié)點;為每個流表塊設(shè)置版本號,并為每個流表塊的版本號設(shè)置初始值;為每個轉(zhuǎn)發(fā)接口分別建立一個映射表,所述映射表用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系。第二方面,本發(fā)明提供了一種流表刷新的裝置,包括:第一獲取單元,用于獲取待轉(zhuǎn)發(fā)報文的五元組信息;查找單元,用于根據(jù)所述第一獲取單元獲取到的待轉(zhuǎn)發(fā)報文的五元組信息,查找流表;第二獲取單元,用于在確定所述查找單元確定所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同時,獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號,將所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號傳輸至更新單元;更新單元,用于在按照匹配規(guī)則確定所述第二獲取單元獲取到的已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致時,根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點信息,并按照所述匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致;其中,所述流表根據(jù)預(yù)先的配置規(guī)則,分為若干個流表塊,每個流表塊包括若干個流節(jié)點,每個流表塊均設(shè)置有對應(yīng)的一個可調(diào)整的版本號,每個已有流節(jié)點也均設(shè)置有對應(yīng)的一個可調(diào)整的版本號。在第二方面的第一種可能實現(xiàn)方式中,所述流表刷新的裝置還包括:創(chuàng)建單元,用于在確定所述第二獲取單元獲取到的所述流表中任意一個流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息均不相同時,為所述五元組信息創(chuàng)建一個新的流節(jié)點,并確定所述新的流節(jié)點所在的流表塊;第三獲取單元,用于獲取所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息以及所述新的流節(jié)點所在的流表塊的當(dāng)前版本號;存儲單元,用于將所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息和五元組信息存儲在所述創(chuàng)建單元創(chuàng)建的新的流節(jié)點中;第一確定單元,用于根據(jù)所述第三獲取單元獲取到的所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息,確定對應(yīng)的轉(zhuǎn)發(fā)接口;第三獲取單元,用于獲取所述第一確定單元確定的所述轉(zhuǎn)發(fā)接口的映射表;所述更新單元,用于更新所述第三獲取單元獲取到的轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識;按照所述匹配規(guī)則將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為與所述新的流節(jié)點所在的流表塊的當(dāng)前版本號一致。根據(jù)第二方面或第二方面的第一種可能實現(xiàn)方式,在第二方面的第二種可能實現(xiàn)方式中,所述流表刷新裝置還包括:所述更新單元還用于在按照所述匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致時,保持所述已有流節(jié)點的信息不變。根據(jù)第二方面或第二方面的第一種或第二種可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述流表刷新的裝置還包括:第二確定單元,用于在檢測到至少一個轉(zhuǎn)發(fā)接口的狀態(tài)發(fā)生變化時,確定待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;第一調(diào)整單元,用于根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述第二確定以單元確定的所述待調(diào)整流表塊的當(dāng)前版本號。根據(jù)第二方面或第二方面的第一種至第三種任一種可能實現(xiàn)方式,在第四種可能實現(xiàn)方式中,所述流表刷新的裝置還包括:第三確定單元,用于在檢測到至少一個業(yè)務(wù)處理操作的狀態(tài)發(fā)生變化時,確定處理所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;第二調(diào)整單元,用于根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述第三確定單元確定的所述待調(diào)整流表塊的當(dāng)前版本號。結(jié)合第二方面或第二方面的第一種至第四種任一種可能實現(xiàn)方式,在第五種可能實現(xiàn)方式中,所述流表刷新的裝置還包括:初始化單元,用于初始化流表和轉(zhuǎn)發(fā)接口的映射表。結(jié)合第二方面的第五種可能實現(xiàn)方式,在第六種可能實現(xiàn)方式中,所述初始化單元包括:第一獲取子單元,用于獲取當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系,并存儲所述當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系;第二獲取子單元,用于獲取當(dāng)前流表;劃分子單元,用于根據(jù)預(yù)先的配置規(guī)則,將所述第二獲取子單元獲取到的流表分為若干個流表塊;其中,每個流表塊包括若干個流節(jié)點;設(shè)置子單元,用于為所述劃分子單元得到的每個流表塊設(shè)置版本號,并為每個流表塊的版本號設(shè)置初始值;建立子單元,用于為每個轉(zhuǎn)發(fā)接口分別建立一個映射表,所述映射表用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系。本發(fā)明實施例提供了一種流表刷新的方法及裝置,通過將轉(zhuǎn)發(fā)設(shè)備的流表分成若干個流表塊,為每個流表塊設(shè)置一個可調(diào)整的版本號,每個流表塊包括若干個流節(jié)點,為每個流節(jié)點設(shè)置一個可調(diào)整的版本號;在創(chuàng)建流節(jié)點時將流節(jié)點的版本號設(shè)置為與所在流表塊的版本號一致;當(dāng)業(yè)務(wù)處理操作狀態(tài)或者接口狀態(tài)發(fā)生變化時只更新相關(guān)的流表塊的版本號,而到處理待轉(zhuǎn)發(fā)報文時,再通過判斷流節(jié)點的版本號和流節(jié)點所在的流表塊的版本號是否一致,來識別是否需要更新流節(jié)點的信息。采用本發(fā)明提供的技術(shù)方案,在流表刷新的過程中,不需要先刪除原有流節(jié)點,再重新學(xué)習(xí)生成新的流節(jié)點,而是保留原有流節(jié)點并只更新其存儲的內(nèi)容,這樣就不需要反復(fù)要求處理器釋放和重新分配系統(tǒng)資源,從而減少了系統(tǒng)資源浪費,極大地提高了處理器對于轉(zhuǎn)發(fā)報文的處理效率。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種流表刷新的方法流程圖;圖2為本發(fā)明實施例提供的另一種流表刷新的方法流程圖;圖3為本發(fā)明實施例提供的另一種流表刷新的方法流程圖;圖4為本發(fā)明實施例提供的另一種流表刷新的方法流程圖;圖5為本發(fā)明實施例提供的另一種流表刷新的方法流程圖;圖6為本發(fā)明實施例提供的另一種流表刷新的方法流程圖;圖6A為本發(fā)明實施例提供的一種流表的邏輯結(jié)構(gòu)圖;圖6B為本發(fā)明實施例提供的另一種流表的邏輯結(jié)構(gòu)圖;圖6C為本發(fā)明實施例提供的另一種流表的邏輯結(jié)構(gòu)圖;圖6D為本發(fā)明實施例提供的另一種流表的邏輯結(jié)構(gòu)圖;圖6E為本發(fā)明實施例提供的另一種流表的邏輯結(jié)構(gòu)圖;圖7為本發(fā)明實施例提供的一種流表刷新的裝置的組成框圖;圖8為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖;圖9為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖;圖10為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖;圖11為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖;圖12為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖;圖13為本發(fā)明實施例提供的另一種流表刷新的裝置的組成框圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明提供的技術(shù)方案,通過將轉(zhuǎn)發(fā)設(shè)備的流表分成若干個流表塊,為每個流表塊分別設(shè)置一個可調(diào)整的版本號;每個流表塊包括若干個流節(jié)點,為每個流節(jié)點設(shè)置一個可調(diào)整的版本號;在創(chuàng)建流節(jié)點時將流節(jié)點的版本號設(shè)置為與所在流表塊的版本號一致。當(dāng)業(yè)務(wù)處理操作狀態(tài)發(fā)生變化或者接口狀態(tài)發(fā)生變化時,不是直接刷新流表中的流節(jié)點,而是通過更新相關(guān)的流表塊的版本號,當(dāng)處理待轉(zhuǎn)發(fā)報文時,判斷流節(jié)點的版本號和流節(jié)點所在的流表塊的版本號是否一致,來識別是否需要更新流節(jié)點的信息。本發(fā)明實施例中,流表塊內(nèi)的各個流節(jié)點的版本號需要在該流表塊的版本號的基礎(chǔ)上進行創(chuàng)建或調(diào)整。需要說明的是,版本號的具體形式不限,例如為整數(shù),初始時刻可以為0。可以理解的是,流表分為多少個流表塊,每個流表塊包括多少個流節(jié)點可以預(yù)先配置。本發(fā)明實施例提供的流表刷新的方法和裝置,應(yīng)用于報文轉(zhuǎn)發(fā)的過程中,尤其適用于轉(zhuǎn)發(fā)設(shè)備的流表刷新過程。參見圖1,為本發(fā)明實施例提供的一種流表刷新的方法,如圖1所示,所述方法包括:101、獲取待轉(zhuǎn)發(fā)報文的五元組信息。其中,所述待轉(zhuǎn)發(fā)報文的五元組信息包括該待轉(zhuǎn)發(fā)報文的源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議號。102、根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息,查找流表。其中,所述流表中存儲有流節(jié)點,每個流節(jié)點都有唯一的五元組信息;根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息查找流表,就可以判斷所述流表中是否有對應(yīng)所述待轉(zhuǎn)發(fā)報文的流節(jié)點。103、若所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同,則獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號。若所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同,表示有對應(yīng)所述待轉(zhuǎn)發(fā)報文的流節(jié)點;通過獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號,就可以根據(jù)所述已有流節(jié)點的當(dāng)前版本號,和所述已有流節(jié)點所在流表塊的當(dāng)前版本號,判斷所述已有流節(jié)點中的信息是否需要更新。104、若按照匹配規(guī)則,確定所述已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致,則根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點的信息,并按照所述匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致。以所述匹配規(guī)則為流節(jié)點的版本號與流節(jié)點所在流表塊的版本號是否相同為例,若流表中存在所述待轉(zhuǎn)發(fā)報文對應(yīng)的流節(jié)點,即所述已有流節(jié)點,且確定所述已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不同,可能是業(yè)務(wù)處理操作狀態(tài)發(fā)生了變化或者接口狀態(tài)發(fā)生了變化,此時只需根據(jù)待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點的信息,具體的,更新所述已有流節(jié)點中的業(yè)務(wù)信息,而不用刪除所述已有流節(jié)點再重新建立新的流節(jié)點,從而避免了轉(zhuǎn)發(fā)設(shè)備的處理器釋放和重新分配系統(tǒng)資源,減少了系統(tǒng)資源浪費,提高了處理器轉(zhuǎn)發(fā)報文的效率。采用本發(fā)明實施例提供的一種流表刷新的方法,通過將整個流表分為若干個流表塊,為每個流表塊設(shè)置版本號,并為每個流節(jié)點設(shè)置對應(yīng)的版本號,當(dāng)收到待轉(zhuǎn)發(fā)報文時,通過判斷該待轉(zhuǎn)發(fā)報文對應(yīng)的流節(jié)點的版本號與所在流表塊的版本號是否一致,使得在流表刷新的過程中,不需要先刪除原有流節(jié)點,再重新學(xué)習(xí)生成新的流節(jié)點,而是保留原有流節(jié)點并只更新其存儲的內(nèi)容,這樣就不需要反復(fù)要求處理器釋放和重新分配系統(tǒng)資源,從而減少了系統(tǒng)資源浪費,極大地提高了處理器對于轉(zhuǎn)發(fā)報文的處理效率。需要說明的是,以下為方便敘述,均以流節(jié)點的版本號與流節(jié)點所在流表塊的版本號是否相同作為所述匹配規(guī)則來介紹本發(fā)明技術(shù)方案。本發(fā)明實施例中,以最簡單的實現(xiàn)方式,即將流節(jié)點的版本號與所在流表塊的版本號是否相同,不同則設(shè)置為所在流表塊的版本號為例進行說明,但并不能作為對本發(fā)明的限定??梢岳斫獾氖?,也可以設(shè)置匹配規(guī)則,例如流節(jié)點的版本號與所在的流表塊的版本號是倍數(shù)關(guān)系,來判斷流節(jié)點的版本號和所在的流表塊的版本號是否一致,并根據(jù)匹配規(guī)則更新版本號。舉例來說,流節(jié)點的版本號與所在的流表塊的版本號成2倍關(guān)系,第一時刻,流節(jié)點的版本號為2,所在流表塊的版本號都為1,則流節(jié)點的版本號和所在的流表塊的版本號一致,無需更新流節(jié)點,待轉(zhuǎn)發(fā)報文根據(jù)流節(jié)點的信息進行轉(zhuǎn)發(fā);第二時刻,由于業(yè)務(wù)或者接口狀態(tài)發(fā)生變化,流表塊的版本號更新為2,而流節(jié)點的版本號為2,此時流節(jié)點的版本號和所在的流表塊的版本號不一致,需要根據(jù)待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新流節(jié)點的信息,并將流節(jié)點的版本號調(diào)整為4。參見圖2,為本發(fā)明實施例提供的另一種流表刷新的方法,如圖2所示,所述方法包括:201、初始化流表和轉(zhuǎn)發(fā)接口的映射表。具體的,所述初始化流表和轉(zhuǎn)發(fā)接口的映射表包括:2011、獲取當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系,并存儲所述當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系。其中,需要說明的是,不同的轉(zhuǎn)發(fā)接口可以執(zhí)行相同的業(yè)務(wù)處理操作,也可以執(zhí)行不同的業(yè)務(wù)處理操作,每個轉(zhuǎn)發(fā)接口可以執(zhí)行哪些業(yè)務(wù)處理操作是預(yù)先設(shè)置好的。在本實施例中,將當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系進行存儲,即將每個轉(zhuǎn)發(fā)接口可執(zhí)行的業(yè)務(wù)處理操作進行存儲,以方便后續(xù)當(dāng)業(yè)務(wù)處理操作狀態(tài)變化和轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時的處理。在本實施例中,所述當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系并不是固定不變的,當(dāng)有新的業(yè)務(wù)處理操作被啟用或者某個業(yè)務(wù)處理操作被停止使用時,又或者當(dāng)某個轉(zhuǎn)發(fā)接口開啟或者關(guān)閉時,需要及時更新當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系。2012、獲取當(dāng)前流表。其中,單獨一個轉(zhuǎn)發(fā)設(shè)備一般只設(shè)置一個流表。2013、根據(jù)預(yù)先的配置規(guī)則,將所述流表分為若干個流表塊;其中,每個流表塊包括若干個流節(jié)點。其中,在步驟2013中,所述預(yù)設(shè)的配置規(guī)則用于指示將流表分為多少個流表塊,每個流表塊包括多少個流節(jié)點。例如,流表包括最多24個流節(jié)點,可將該流表分為3個流表塊,每個流表塊包括8個流節(jié)點。在本實施例中,所述將所述流表分為若干個流表塊具體的實現(xiàn)方法可以包括獲取流表占用的全部內(nèi)存空間,將所述全部內(nèi)存空間劃分為若干個內(nèi)存區(qū)域,每個內(nèi)存區(qū)域作為一個流表塊,并為每個流表塊分別分配一個索引號,每個流表塊根據(jù)自身的內(nèi)存大小以及每個流節(jié)點所占用的內(nèi)存大小,即可確定每個流表塊可包括多少個流節(jié)點。2014、為每個流表塊設(shè)置版本號,并將每個流表塊的版本號設(shè)置為初始值。在本實施例中,版本號可以設(shè)置為整數(shù),例如1,2等;也可以設(shè)置為浮點數(shù),例如0.1,1.2等。其中,初始值可為0或其他固定值。在創(chuàng)建新的流節(jié)點時,可以將新的流節(jié)點的版本號設(shè)置為該新的流節(jié)點所在的流表塊當(dāng)前的版本號。2015、為每個轉(zhuǎn)發(fā)接口分別建立一個映射表,所述映射表用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系。其中,所述映射表為本發(fā)明實施例中設(shè)置的用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,每個轉(zhuǎn)發(fā)接口的映射表中對應(yīng)每個流表塊存儲一個標識,用于表示轉(zhuǎn)發(fā)接口與流表塊是否有對應(yīng)關(guān)系;所述映射表可以但不局限于使用位域映射表bitmap形式來實現(xiàn),bitmap中一個比特位標識流表中的一個流表塊,比特位為“1”表示轉(zhuǎn)發(fā)接口與流表塊具有對應(yīng)關(guān)系,而比特位為“0”則表示轉(zhuǎn)發(fā)接口與流表塊不具有對應(yīng)關(guān)系。舉例來說,接口1的bitmap為“11100011”,表示接口1與所述流表中的第1、2、3、7、8流表塊有對應(yīng)關(guān)系。其中,所述轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系表示該轉(zhuǎn)發(fā)接口可完成與該轉(zhuǎn)發(fā)接口對應(yīng)的流表塊中的流節(jié)點的業(yè)務(wù)信息對應(yīng)的業(yè)務(wù)處理操作。202、獲取待轉(zhuǎn)發(fā)報文的五元組信息。其中,所述待轉(zhuǎn)發(fā)報文的五元組信息包括該待轉(zhuǎn)發(fā)報文的源IP地址、報文目的IP地址、源端口號、目的端口號、協(xié)議號。具體可參考101,在此不再贅述。203、根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息,查找流表。具體可參考102,在此不再贅述。204、若所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同,則獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號。具體可參考103,在此不再贅述。205、若按照匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致,則根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點的信息,并按照匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致。具體可參考104,在此不再贅述。參見圖3,為本發(fā)明實施例提供的又一種流表刷新的方法,如圖3所示,所述方法包括:301、初始化流表和轉(zhuǎn)發(fā)接口的映射表。具體可參考201,在此不再贅述。302、獲取待轉(zhuǎn)發(fā)報文的五元組信息。其中,所述待轉(zhuǎn)發(fā)報文對應(yīng)的五元組信息包括該待轉(zhuǎn)發(fā)報文的源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議號。303、根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息,查找所述流表。若在所述流表中查找到一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同時,則執(zhí)行304-307;若所述流表中任意一個流節(jié)點的五元組信息與所述五元組信息均不相同時,執(zhí)行步驟308-313。其中,每個流節(jié)點中包括五元組信息和業(yè)務(wù)信息。304、當(dāng)所述流表中存在一個已有流節(jié)點的五元組信息與所述五元組信息相同時,獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號。305、判斷所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號是否相同。306、若按照匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致,根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點的信息,并按照匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致。其中,需要說明的是,若在步驟304執(zhí)行之后需執(zhí)行步驟305,則意味著所述待轉(zhuǎn)發(fā)報文不能進行流轉(zhuǎn)發(fā),那么此時應(yīng)該使用基本轉(zhuǎn)發(fā)流程對所述待轉(zhuǎn)發(fā)報文進行轉(zhuǎn)發(fā)。在此基本轉(zhuǎn)發(fā)流程中,即可獲取到所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息。具體的,根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點的信息包括:用所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點中的業(yè)務(wù)信息;具體來說,可依照所述待轉(zhuǎn)發(fā)報文通過基本轉(zhuǎn)發(fā)流程中獲取到的所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息,替換所述已有流節(jié)點的業(yè)務(wù)信息。307、若按照匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致,保持所述已有流節(jié)點的信息不變。其中,需要說明的是,若在步驟304執(zhí)行之后需執(zhí)行步驟306,則意味著報文可以根據(jù)流表中所述已有流節(jié)點的信息進行流轉(zhuǎn)發(fā)。例如匹配規(guī)則為流節(jié)點的當(dāng)前版本號與所述流節(jié)點所在流表塊的當(dāng)前版本號是否相同。308、當(dāng)所述流表中任意一個流節(jié)點的五元組信息與所述五元組信息均不相同時,為所述待轉(zhuǎn)發(fā)報文的五元組信息創(chuàng)建一個新的流節(jié)點,并確定所述新的流節(jié)點所在的流表塊。其中,所述確定所述新的流節(jié)點所在的流表塊的方法包括:根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息結(jié)合哈希hash算法,計算出流節(jié)點的索引號;將該流節(jié)點的索引號除以當(dāng)前流表塊數(shù)量得到的商值,即為該流節(jié)點所在流表塊的索引號。根據(jù)所述流表塊的索引號,即可確定該流節(jié)點所在流表塊。例如,根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息結(jié)合hash算法,計算出流節(jié)點的索引號為55,當(dāng)前共有10個流表塊,索引號分別為0-9,每個流表塊包括10個流節(jié)點,則55除以10得到的商值為5,則索引號為55的流節(jié)點在索引號為5的流表塊中。另外,需要說明的是,若在執(zhí)行步驟302之后,需要執(zhí)行步驟307,則意味著所述待轉(zhuǎn)發(fā)報文不能進行流轉(zhuǎn)發(fā),那么此時所述待轉(zhuǎn)發(fā)報文進行基本轉(zhuǎn)發(fā)流程。309、獲取所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息以及所述新的流節(jié)點所在的流表塊的當(dāng)前版本號。其中,所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息可以在該報文的基本轉(zhuǎn)發(fā)流程中獲取。310、將所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息和五元組信息存儲在所述新的流節(jié)點中。311、根據(jù)所述業(yè)務(wù)信息,確定與所述業(yè)務(wù)信息對應(yīng)的轉(zhuǎn)發(fā)接口。具體的,可通過步驟201中存儲的當(dāng)前所有業(yè)務(wù)處理操作和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系進行查詢后確定。312、獲取所述轉(zhuǎn)發(fā)接口的映射表,并更新所述轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識。其中,所述轉(zhuǎn)發(fā)接口的映射表即為步驟202中建立的映射表。本實施例在此提供一種置位方法,包括:在所述轉(zhuǎn)發(fā)接口的映射表中,與該轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊,其對應(yīng)位置設(shè)置為1;而與該轉(zhuǎn)發(fā)接口沒有對應(yīng)關(guān)系的流表塊,其對應(yīng)位置設(shè)置為0。例如,流表中共有8個流表塊,第1、3、4、5個流表塊與同一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系,則在該轉(zhuǎn)發(fā)接口的映射表中應(yīng)設(shè)置為10111000。313、按照所述匹配規(guī)則將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為與所述新的流節(jié)點所在的流表塊的當(dāng)前版本號一致。例如,匹配規(guī)則為流節(jié)點的當(dāng)前版本號與所述流節(jié)點所在流表塊的當(dāng)前版本號是否相同。則可以將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為所述新的流節(jié)點所在的流表塊的當(dāng)前版本號。需要說明的是,313也可以在311之前執(zhí)行。在本實施例中,值得說明的是,當(dāng)業(yè)務(wù)處理操作狀態(tài)發(fā)生變化或者轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,例如某個轉(zhuǎn)發(fā)接口開啟或關(guān)閉,某個業(yè)務(wù)處理操作被啟動或某個業(yè)務(wù)處理操作被暫停使用等,都會觸發(fā)流表更新。在本發(fā)明圖1、圖2或圖3所示的流表刷新的方法基礎(chǔ)上,本發(fā)明實施例還提供了業(yè)務(wù)處理操作狀態(tài)發(fā)生變化和轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,流表刷新的方法的預(yù)處理流程。如圖4所示,為基于業(yè)務(wù)處理操作狀態(tài)發(fā)生變化時,流表刷新的方法的預(yù)處理流程,包括:401、當(dāng)檢測到至少一個業(yè)務(wù)處理操作的狀態(tài)發(fā)生變化時,確定處理所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口。在步驟401中,確定所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口的實現(xiàn)方法可參照步驟2011中已獲取到的轉(zhuǎn)發(fā)接口與業(yè)務(wù)處理操作之間的對應(yīng)關(guān)系進行查找。402、根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊。在步驟402中,待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系可參照步驟205中的映射表。403、根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整待調(diào)整流表塊的當(dāng)前版本號。其中,所述預(yù)設(shè)的調(diào)整規(guī)則可以根據(jù)具體實現(xiàn)方式預(yù)設(shè)設(shè)置,例如若版本號設(shè)置為整數(shù),則可以將所述當(dāng)前版本號加1或減1。若版本號設(shè)置為浮點數(shù),則可以將所述當(dāng)前版本號加0.1或減0.1。當(dāng)然,此處的描述只是本實施例中提供的一種實施方案,本發(fā)明實施例對此并不限制。值得說明的是,上述步驟401至403的執(zhí)行過程中,如果所述狀態(tài)發(fā)生變化的業(yè)務(wù)處理操作對應(yīng)的轉(zhuǎn)發(fā)接口多于一個,則版本號的調(diào)整需要根據(jù)所述狀態(tài)發(fā)生變化的業(yè)務(wù)處理操作對應(yīng)的轉(zhuǎn)發(fā)接口的數(shù)量多次調(diào)整。例如,當(dāng)前狀態(tài)發(fā)生變化的業(yè)務(wù)處理操作對應(yīng)的轉(zhuǎn)發(fā)接口有兩個,則先調(diào)整與其中一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊的版本號,然后在此調(diào)整結(jié)果上,再調(diào)整與另一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊的版本號。如圖5所示,為基于轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,流表刷新的方法的預(yù)處理流程,包括:501、當(dāng)檢測到至少一個轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,確定待調(diào)整轉(zhuǎn)發(fā)接口;并根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊。502、根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述待調(diào)整流表塊的當(dāng)前版本號。具體的,可以參見403,在此不再贅述。值得說明的是,上述步驟501至502的執(zhí)行過程中,如果所述狀態(tài)發(fā)生變化的轉(zhuǎn)發(fā)接口多于一個,則版本號的調(diào)整需要根據(jù)所述狀態(tài)發(fā)生變化的轉(zhuǎn)發(fā)接口的數(shù)量多次調(diào)整。例如,當(dāng)前狀態(tài)發(fā)生變化轉(zhuǎn)發(fā)接口有兩個,則先調(diào)整與其中一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊的版本號,然后在此調(diào)整結(jié)果上,再調(diào)整與另一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊的版本號。另外,值得說明的是,若存在若干個業(yè)務(wù)處理操作和若干個轉(zhuǎn)發(fā)接口同時出現(xiàn)狀態(tài)變化時,則可先結(jié)合步驟401-403,根據(jù)出現(xiàn)狀態(tài)變化的業(yè)務(wù)處理操作對流表進行調(diào)整,再結(jié)合步驟501-502,根據(jù)出現(xiàn)狀態(tài)變化的轉(zhuǎn)發(fā)接口對流表進行調(diào)整。或者,先結(jié)合步驟501-502,根據(jù)出現(xiàn)狀態(tài)變化的轉(zhuǎn)發(fā)接口對流表進行調(diào)整,再結(jié)合步驟401-403,根據(jù)出現(xiàn)狀態(tài)變化的業(yè)務(wù)處理操作對流表進行調(diào)整??梢岳斫獾氖?,圖4和圖5所示的流表刷新的方法的預(yù)處理流程將導(dǎo)致流表中流節(jié)點的版本號與流表塊的版本號不一致,從而觸發(fā)流表刷新。具體的,在此結(jié)合如圖6A所示的流表,具體描述本發(fā)明實施例提供的一種流表刷新的過程,參見圖6。圖6A所示的流表分為2個流表塊,每個流表塊包括8個流節(jié)點,流表塊的索引號分別為0、1,每個流表塊的版本號為v0;在該流表中已設(shè)置有8個流節(jié)點,索引號分別為0-15,每個流節(jié)點的版本號為v0。如圖6所示,所述流表刷新的過程包括:601、當(dāng)與流表塊1具有對應(yīng)關(guān)系的轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,則將流表塊1的當(dāng)前版本號v0調(diào)整為v1,調(diào)整結(jié)果參照圖6B。602、當(dāng)與流表塊0和流表塊1均具有對應(yīng)關(guān)系的轉(zhuǎn)發(fā)接口狀態(tài)發(fā)生變化時,則將流表塊0的當(dāng)前版本號v1調(diào)整為v2,同時將流表塊1的當(dāng)前版本號v0調(diào)整為v1,調(diào)整結(jié)果參照圖6C。603、獲取待轉(zhuǎn)發(fā)報文1的五元組信息。604、根據(jù)所述待轉(zhuǎn)發(fā)報文1的五元組信息,查找所述流表。605、當(dāng)確定所述流表中流節(jié)點2的五元組信息與所述待轉(zhuǎn)發(fā)報文1的五元組信息相同時,獲取流節(jié)點2的當(dāng)前版本號v0以及流節(jié)點2所在流表塊0的當(dāng)前版本號v1。606、確定所述流節(jié)點2的當(dāng)前版本號與流節(jié)點2所在流表塊0的當(dāng)前版本號不同,則將所述待轉(zhuǎn)發(fā)報文1進行基本轉(zhuǎn)發(fā)。本實施例中,匹配規(guī)則為流節(jié)點的當(dāng)前版本號與所述流節(jié)點所在流表塊的當(dāng)前版本號是否相同。607、根據(jù)所述待轉(zhuǎn)發(fā)報文1的業(yè)務(wù)信息更新所述流節(jié)點2的信息,并將所述流節(jié)點2的當(dāng)前版本號v0設(shè)置為所述流節(jié)點2所在流表塊0的當(dāng)前版本號v1,調(diào)整結(jié)果參照圖6D所示。608、獲取待轉(zhuǎn)發(fā)報文2的五元組信息。609、當(dāng)確定所述流表中流節(jié)點8的五元組信息與所述待轉(zhuǎn)發(fā)報文2的五元組信息相同時,獲取流節(jié)點8的當(dāng)前版本號v0以及流節(jié)點8所在流表塊1的當(dāng)前版本號v2。610、確定所述流節(jié)點8的當(dāng)前版本號與流節(jié)點8所在流表塊1的當(dāng)前版本號不同,則將所述待轉(zhuǎn)發(fā)報文2進行基本轉(zhuǎn)發(fā)。611、根據(jù)所述待轉(zhuǎn)發(fā)報文2對應(yīng)的業(yè)務(wù)信息更新所述流節(jié)點8的信息,并將所述流節(jié)點8的當(dāng)前版本號v0設(shè)置為所述流節(jié)點8所在流表塊1的當(dāng)前版本號v2,調(diào)整結(jié)果參照圖6E。本發(fā)明實施例提供了一種流表刷新的方法,通過將整個流表分為若干個流表塊,每個流表塊包括若干個流節(jié)點,為每個流表塊設(shè)置對應(yīng)的版本號,并為流表塊中的流節(jié)點設(shè)置對應(yīng)的版本號,使得在流表刷新的過程中,不需要先刪除原有流節(jié)點,再重新學(xué)習(xí)生成新的流節(jié)點,而是保留原有流節(jié)點并只更新其存儲的內(nèi)容,這樣就不需要反復(fù)要求處理器釋放和重新分配系統(tǒng)資源,從而減少了系統(tǒng)資源浪費,極大地提高了處理器對于轉(zhuǎn)發(fā)報文的處理效率。本發(fā)明實施例提供了一種流表刷新的裝置,用于實現(xiàn)本發(fā)明圖1-圖6所示的流表刷新的方法。如圖7所示,所述裝置包括:第一獲取單元71、查找單元72、第二獲取單元73、更新單元74。第一獲取單元71,用于獲取待轉(zhuǎn)發(fā)報文的五元組信息。其中,所述待轉(zhuǎn)發(fā)報文的五元組信息包括該待轉(zhuǎn)發(fā)報文的源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議號。查找單元72,用于根據(jù)所述第一獲取單元71獲取到的待轉(zhuǎn)發(fā)報文的五元組信息,查找流表。其中,所述流表中存儲有流節(jié)點,每個流節(jié)點都有唯一的五元組信息;根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息查找流表,就可以判斷所述流表中是否有對應(yīng)所述待轉(zhuǎn)發(fā)報文的流節(jié)點。第二獲取單元73,用于在確定所述查找單元72確定所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同時,獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號,將所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號傳輸至更新單元。更新單元74,用于在按照匹配規(guī)則確定所述第二獲取單元73獲取到的已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致時,根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點信息,并按照匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致。其中,所述流表根據(jù)預(yù)先的配置規(guī)則,分為若干個流表塊,每個流表塊包括若干個流節(jié)點,每個流表塊均設(shè)置有一個可調(diào)整的版本號,每個已有流節(jié)點也均設(shè)置有一個可調(diào)整的版本號,并且一個流表塊內(nèi)的各個流節(jié)點的版本號需要在該流表塊的版本號的基礎(chǔ)上進行創(chuàng)建或調(diào)整??蛇x的是,如圖8所示,該裝置還包括:創(chuàng)建單元75、第三獲取單元76、存儲單元77、第一確定單元78、第三獲取單元79。創(chuàng)建單元75,用于在確定所述第二獲取單元73獲取到的所述流表中任意一個流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息均不相同時,為所述五元組信息創(chuàng)建一個新的流節(jié)點,并確定所述新的流節(jié)點所在的流表塊。其中,所述確定所述新的流節(jié)點所在的流表塊的方法包括:根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息結(jié)合哈希hash算法,計算出流節(jié)點的索引號;將該流節(jié)點的索引號除以當(dāng)前流表塊數(shù)量得到的商值,即為該流節(jié)點所在流表塊的索引號。根據(jù)所述流表塊的索引號,即可確定該流節(jié)點所在流表塊。第三獲取單元76,用于獲取所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息以及所述新的流節(jié)點所在的流表塊的當(dāng)前版本號。存儲單元77,用于將所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息和五元組信息存儲在所述創(chuàng)建單元75創(chuàng)建的新的流節(jié)點中。第一確定單元78,用于根據(jù)所述第三獲取單元76獲取到的所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息,確定對應(yīng)的轉(zhuǎn)發(fā)接口。第三獲取單元79,用于獲取所述第一確定單元78確定的所述轉(zhuǎn)發(fā)接口的映射表。所述更新單元74,用于更新所述第三獲取單元79獲取到的轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識;按照所述匹配規(guī)則將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為與所述新的流節(jié)點所在的流表塊的當(dāng)前版本號一致。其中,所述更新單元74更新所述第三獲取單元79獲取到的轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識可以遵循如下置位步驟,包括在所述轉(zhuǎn)發(fā)接口的映射表中,與該轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系的流表塊,其對應(yīng)位置設(shè)置為1;而與該轉(zhuǎn)發(fā)接口沒有對應(yīng)關(guān)系的流表塊,其對應(yīng)位置設(shè)置為0。例如,流表中共有8個流表塊,第1、3、4、5個流表塊與同一個轉(zhuǎn)發(fā)接口有對應(yīng)關(guān)系,則在該轉(zhuǎn)發(fā)接口的映射表中應(yīng)設(shè)置為10111000??蛇x的是,所述更新單元74,還用于在按照所述匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致時,保持所述已有流節(jié)點的信息不變。可選的是,如圖9所示,該裝置還包括:第二確定單元710、第一調(diào)整單元711。第二確定單元710,用于在檢測到至少一個轉(zhuǎn)發(fā)接口的狀態(tài)發(fā)生變化時,確定待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊。第一調(diào)整單元711,用于根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述第二確定710單元確定的所述待調(diào)整流表塊的當(dāng)前版本號。其中,其中,所述預(yù)設(shè)的調(diào)整規(guī)則可以根據(jù)具體實現(xiàn)方式預(yù)設(shè)設(shè)置,例如若版本號設(shè)置為整數(shù),則可以將所述當(dāng)前版本號加1或減1。若版本號設(shè)置為浮點數(shù),則可以將所述當(dāng)前版本號加0.1或減0.1。當(dāng)然,此處的描述只是本實施例中提供的一種實施方案,本發(fā)明實施例對此并不限制??蛇x的是,如圖10所示,該裝置還包括:第三確定單元712、第二調(diào)整單元713。第三確定單元712,用于在檢測到至少一個業(yè)務(wù)處理操作的狀態(tài)發(fā)生變化時,確定處理所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊。第二調(diào)整單元713,用于根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述第三確定單元712確定的所述待調(diào)整流表塊的當(dāng)前版本號。其中,所述預(yù)設(shè)的調(diào)整規(guī)則可以根據(jù)具體實現(xiàn)方式預(yù)設(shè)設(shè)置,例如若版本號設(shè)置為整數(shù),則可以將所述當(dāng)前版本號加1或減1。若版本號設(shè)置為浮點數(shù),則可以將所述當(dāng)前版本號加0.1或減0.1。當(dāng)然,此處的描述只是本實施例中提供的一種實施方案,本發(fā)明實施例對此并不限制。可選的是,如圖11所示,該裝置還包括:初始化單元714。初始化單元714,用于初始化流表和轉(zhuǎn)發(fā)接口的映射表??蛇x的是,如圖12所示,所述初始化單元714包括:第一獲取子單元7141、第二獲取子單元7142、劃分子單元7143、設(shè)置子單元7144、建立子單元7145。第一獲取子單元7141,用于獲取當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系,并存儲所述當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系。第二獲取子單元7142,用于獲取當(dāng)前流表。劃分子單元7143,用于根據(jù)預(yù)先的配置規(guī)則,將所述第二獲取子單元7142獲取到的流表分為若干個流表塊;其中,每個流表塊包括若干個流節(jié)點。設(shè)置子單元7144,用于為所述劃分子單元7143得到的每個流表塊設(shè)置版本號,并為每個流表塊的版本號設(shè)置初始值。建立子單元7145,用于為每個轉(zhuǎn)發(fā)接口分別建立一個映射表,所述映射表用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系。本發(fā)明實施例提供了一種流表刷新的裝置,通過將整個流表中的流節(jié)點按塊進行劃分,并為每個流節(jié)點設(shè)置對應(yīng)的版本號,為每個流表塊設(shè)置對應(yīng)的版本號,使得在流表刷新的過程中,不需要先刪除原有流節(jié)點,再重新學(xué)習(xí)生成新的流節(jié)點,而是保留原有流節(jié)點并只更新其存儲的內(nèi)容,這樣就不需要反復(fù)要求處理器釋放和重新分配系統(tǒng)資源,從而減少了系統(tǒng)資源浪費,極大地提高了處理器對于轉(zhuǎn)發(fā)報文的處理效率。本發(fā)明實施例提供了一種流表刷新的裝置,如圖13所示,包括:處理器1301和存儲器1302,處理器1301和存儲器1302可通過總線或其它方式連接,所述存儲器1302內(nèi)存儲有程序代碼,所述程序代碼包括計算機操作指令。所述處理器1301執(zhí)行所述程序代碼,用于:獲取待轉(zhuǎn)發(fā)報文的五元組信息;根據(jù)所述待轉(zhuǎn)發(fā)報文的五元組信息,查找流表;若所述流表中存在一個已有流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息相同,則獲取所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號;若按照匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號與所述已有流節(jié)點所在流表塊的當(dāng)前版本號不一致,則根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息更新所述已有流節(jié)點信息,并按照匹配規(guī)則將所述已有流節(jié)點的當(dāng)前版本號設(shè)置為與所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致;其中,所述流表根據(jù)預(yù)先的配置規(guī)則,分為若干個流表塊,每個流表塊包括若干個流節(jié)點,每個流表塊均設(shè)置有一個可調(diào)整的版本號,每個已有流節(jié)點也均設(shè)置有一個可調(diào)整的版本號,并且一個流表塊內(nèi)的各個流節(jié)點的版本號需要在該流表塊的版本號的基礎(chǔ)上進行創(chuàng)建或調(diào)整。所述存儲器1302,用于存儲所述流表。可選的是,所述處理器1301還用于當(dāng)所述流表中任意一個流節(jié)點的五元組信息與所述待轉(zhuǎn)發(fā)報文的五元組信息均不相同時,為所述五元組信息創(chuàng)建一個新的流節(jié)點,并確定所述新的流節(jié)點所在的流表塊;獲取所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息以及所述新的流節(jié)點所在的流表塊的當(dāng)前版本號;將所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息和五元組信息存儲在所述新的流節(jié)點中;根據(jù)所述待轉(zhuǎn)發(fā)報文的業(yè)務(wù)信息,確定對應(yīng)的轉(zhuǎn)發(fā)接口;獲取所述轉(zhuǎn)發(fā)接口的映射表,并更新所述轉(zhuǎn)發(fā)接口的映射表中所述新的流節(jié)點所在的流表塊對應(yīng)的標識;按照所述匹配規(guī)則將所述新的流節(jié)點的當(dāng)前版本號設(shè)置為與所述新的流節(jié)點所在的流表塊的當(dāng)前版本號一致。所述存儲器1302,還用于存儲所述映射表??蛇x的是,所述處理器1301還用于在按照所述匹配規(guī)則確定所述已有流節(jié)點的當(dāng)前版本號以及所述已有流節(jié)點所在流表塊的當(dāng)前版本號一致,保持所述已有流節(jié)點的信息不變。所述處理器1301,還用于當(dāng)檢測到至少一個轉(zhuǎn)發(fā)接口的狀態(tài)發(fā)生變化時,確定待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述待調(diào)整流表塊的當(dāng)前版本號??蛇x的是,所述處理器1301,還用于當(dāng)檢測到至少一個業(yè)務(wù)處理操作的狀態(tài)發(fā)生變化時,確定處理所述狀態(tài)發(fā)生變化的至少一個業(yè)務(wù)處理操作的待調(diào)整轉(zhuǎn)發(fā)接口;根據(jù)所述待調(diào)整轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系,確定待調(diào)整流表塊;根據(jù)預(yù)設(shè)的調(diào)整規(guī)則,調(diào)整所述待調(diào)整流表塊的當(dāng)前版本號。可選的是,所述處理器1301還用于初始化流表和轉(zhuǎn)發(fā)接口的映射表??蛇x的是,所述處理器1301執(zhí)行所述程序代碼實現(xiàn)所述初始化流表和轉(zhuǎn)發(fā)接口的映射表的具體方式為:獲取當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系,并存儲所述當(dāng)前所有業(yè)務(wù)和轉(zhuǎn)發(fā)接口之間的對應(yīng)關(guān)系;獲取當(dāng)前流表;根據(jù)預(yù)先的配置規(guī)則,將所述流表分為若干個流表塊;其中,每個流表塊包括若干個流節(jié)點;為每個流表塊設(shè)置版本號,并為每個流表塊的版本號設(shè)置初始值;為每個轉(zhuǎn)發(fā)接口分別建立一個映射表,所述映射表用于存儲轉(zhuǎn)發(fā)接口與流表塊之間的對應(yīng)關(guān)系。本發(fā)明實施例提供了一種流表刷新的裝置,通過處理器執(zhí)行存儲器中的操作指令,將整個流表中的流節(jié)點按塊進行劃分,并為每個流節(jié)點設(shè)置對應(yīng)的版本號,為每個流表塊設(shè)置對應(yīng)的版本號,使得在流表刷新的過程中,不需要先刪除原有流節(jié)點,再重新學(xué)習(xí)生成新的流節(jié)點,而是保留原有流節(jié)點并只更新其存儲的內(nèi)容,這樣就不需要反復(fù)要求處理器釋放和重新分配系統(tǒng)資源,從而減少了系統(tǒng)資源浪費,極大地提高了處理器對于轉(zhuǎn)發(fā)報文的處理效率。通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1