一種計算路徑的方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及WS0N(智能光網絡)、PCE (路徑計算單元)、SDN(軟件定義網絡)以及路由器通訊領域,特別是涉及一種計算路徑的方法及裝置。
【背景技術】
[0002]在WS0N(智能光網絡)、PCE (路徑計算單元)、SDN(軟件定義網絡)N以及路由器的重路由(Reroute)中,路徑計算(Path Calculate) 一般會占據100ms的算路時間,并且現(xiàn)在先有算法會隨著拓撲增大,計算時間迅速增高,這個會大大降低恢復的效率,而電信網絡一般有50ms的恢復成功的性能要求(參見《智能光網絡:體系結構、協(xié)議和標準》一?Optical.Network.Control.Architecture.Protocols.And.Standards))4.1.1 章節(jié)關于業(yè)務中斷時間損失評估),因此路徑計算越長會導致恢復變長,從而導致業(yè)務中斷時間長,客戶損失大。因此需要降低路徑計算占據的時間,從而降低業(yè)務中斷時間。
【發(fā)明內容】
[0003]本發(fā)明要解決的技術問題是提供一種計算路徑的方法及裝置,解決現(xiàn)有技術中路徑計算效率低、時間長的問題。
[0004]為了解決上述技術問題,本發(fā)明實施例提供一種計算路徑的方法,包括:
[0005]獲取CPU的當前負荷值;
[0006]在所述當前負荷值小于預設值時,生成路徑計算請求;
[0007]獲取未有路徑的節(jié)點的計算請求;
[0008]根據所述路徑計算請求以及所述計算請求進行路徑計算,得到一第一路徑;
[0009]將所述第一路徑作為緩存路徑進行緩存;
[0010]接收預設請求后生成路徑請求;
[0011 ]根據所述路徑請求對所述緩存路徑進行查詢;
[0012]若在所述緩存路徑中存在與所述路徑請求匹配的第二路徑,則將該第二路徑進行發(fā)送。
[0013]上述的方法,其中,在所述當前負荷值小于預設值時,生成路徑計算請求的步驟具體為:
[0014]在所述當前負荷值小于預設值時,生成計算通知;
[0015]根據所述計算通知生成路徑計算請求。
[0016]上述的方法,其中,還包括:
[0017]若不存在與所述路徑請求匹配的第二路徑,則生成路徑計算請求;
[0018]根據所述路徑計算請求進行路徑計算,得到一第三路徑;
[0019]將所述第三路徑進行發(fā)送。
[0020]上述的方法,其中,還包括:
[0021]將所述第三路徑作為所述緩存路徑進行緩存。
[0022]上述的方法,其中,還包括:
[0023]接收更新通知后獲取拓撲當前信息和已保存的拓撲歷史信息;
[0024]比較所述拓撲當前信息與所述拓撲歷史信息是否一致;
[0025]在所述拓撲當前信息與所述拓撲歷史信息不一致時,則將所述拓撲歷史信息替換為所述拓撲當前信息;
[0026]根據所述拓撲當前信息修改所述緩存路徑中的可用標記。
[0027]本發(fā)明還提供了一種計算路徑的裝置,包括:
[0028]第一獲取模塊,用于獲取CPU的當前負荷值;
[0029]第一生成模塊,用于在所述當前負荷值小于預設值時,生成路徑計算請求;
[0030]第二獲取模塊,用于獲取未有路徑的節(jié)點的計算請求;
[0031]第一計算模塊,用于根據所述路徑計算請求以及所述計算請求進行路徑計算,得到一第一路徑;
[0032]第一緩存模塊,用于將所述第一路徑作為緩存路徑進行緩存。
[0033]第二生成模塊,用于接收預設請求后生成路徑請求;
[0034]查詢模塊,用于根據所述路徑請求對所述緩存路徑進行查詢;
[0035]第一發(fā)送模塊,用于若在所述緩存路徑中存在與所述路徑請求匹配的第二路徑,則將該第二路徑進行發(fā)送。
[0036]上述的裝置,其中,所述第一生成模塊包括:
[0037]第一生成單元,用于在所述當前負荷值小于預設值時,生成計算通知;
[0038]第二生成單元,用于根據所述計算通知生成路徑計算請求。
[0039]上述的裝置,其中,還包括:
[0040]第三生成模塊,用于若不存在與所述路徑請求匹配的第二路徑,則生成路徑計算請求;
[0041]第二計算模塊,用于根據所述路徑計算請求進行路徑計算,得到一第三路徑;
[0042]第二發(fā)送模塊,用于將所述第三路徑進行發(fā)送。
[0043]上述的裝置,其中,還包括:
[0044]第二緩存模塊,用于將所述第三路徑作為所述緩存路徑進行緩存。
[0045]上述的裝置,其中,還包括:
[0046]第三獲取模塊,用于接收更新通知后獲取拓撲當前信息和已保存的拓撲歷史信息;
[0047]比較模塊,用于比較所述拓撲當前信息與所述拓撲歷史信息是否一致;
[0048]替換模塊,用于在所述拓撲當前信息與所述拓撲歷史信息不一致時,則將所述拓撲歷史信息替換為所述拓撲當前信息;
[0049]修改模塊,用于根據所述拓撲當前信息修改所述緩存路徑中的可用標記。
[0050]本發(fā)明的上述技術方案的有益效果如下:
[0051]上述方案中,所述計算路徑的方法通過利用CPU空閑時間計算路徑并進行緩存,在有需求時則從緩存路徑中直接進行查詢快速獲取所需要的路徑,大大降低了路徑計算占據的時間,提高了路徑計算效率,從而降低業(yè)務中斷時間,提高了業(yè)務恢復效率,減少了客戶的損失。
【附圖說明】
[0052]圖1為本發(fā)明實施例的計算路徑的方法步驟示意圖;
[0053]圖2為本發(fā)明實施例的計算路徑的裝置結構示意圖;
[0054]圖3為本發(fā)明實施例的計算路徑的器件構成示意圖。
【具體實施方式】
[0055]為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
[0056]本發(fā)明針對現(xiàn)有的技術中路徑計算效率低、時間長的問題,提供一種計算路徑的方法,如圖1所示,包括:
[0057]步驟11:獲取CPU的當前負荷值;
[0058]步驟12:在所述當前負荷值小于預設值時,生成路徑計算請求;
[0059]步驟13:獲取未有路徑的節(jié)點的計算請求;
[0060]步驟14:根據所述路徑計算請求以及所述計算請求進行路徑計算,得到一第一路徑;
[0061]步驟15:將所述第一路徑作為緩存路徑進行緩存;
[0062]步驟16:接收預設請求后生成路徑請求;
[0063]步驟17:根據所述路徑請求對所述緩存路徑進行查詢;
[0064]步驟18:若在所述緩存路徑中存在與所述路徑請求匹配的第二路徑,則將該第二路徑進行發(fā)送。
[0065]本發(fā)明實施例提供的所述計算路徑的方法通過利用CPU空閑時間計算路徑并進行緩存,在有需求時則從緩存路徑中直接進行查詢快速獲取所需要的路徑,大大降低了路徑計算占據的時間,提高了路徑計算效率,從而降低業(yè)務中斷時間,提高了業(yè)務恢復效率,減少了客戶的損失。
[0066]其中,在所述當前負荷值小于預設值時,生成路徑計算請求的步驟具體為:在所述當前負荷值小于預設值時,生成計算通知;根據所述計算通知生成路徑計算請求。
[0067]進一步的,本發(fā)明實施例提供的所述方法還包括:若不存在與所述路徑請求匹配的第二路徑,則生成路徑計算請求;根據所述路徑計算請求進行路徑計算,得到一第三路徑;將所述第三路徑進行發(fā)送。
[0068]為了便于下次進行查詢時包含此次計算的第三路徑,不用再次進行計算,本發(fā)明實施例提供的所述方法還包括:將所述第三路徑作為所述緩存路徑進行緩存。
[0069]考慮到實際應用情況,為了便于緩存路徑的更新,本發(fā)明實施例提供的所述方法還包括:接收更新通知后獲取拓撲當前信息和已保存的拓撲歷史信息;比較所述拓撲當前信息與所述拓撲歷史信息是否一致;在所述拓撲當前信息與所述拓撲歷史信息不一致時,則將所述拓撲歷史信息替換為所述拓撲當前信息;根據所述拓撲當前信息修改所述緩存路徑中的可用標記。
[0070]本發(fā)明通過緩存路徑的方法,降低了路徑計算時間,尤其大型拓撲中效果更為明顯,拓撲越大,路徑計算效率提升越明顯;重路由次數(shù)越多,緩存利用率越高;并且本發(fā)明有效利用了設備中的空閑CPU資源,提高了資源利用率,并且運行時間越長,效率提升越明顯。與現(xiàn)有技術相比,本發(fā)明有效提升路徑計算效率,降低重路由時間,達到了減少業(yè)務中斷時間目的,從而降低了客戶網絡中斷損失,提高了網絡服務水平。
[0071]為了解決上述技術問題,本發(fā)明還提供了一種計算路徑的裝置,如圖2所示,包括:
[0072]第一獲取模塊,用于獲取CPU的當前負荷值;
[0073]第一生成模塊,用于在所述當前負荷值小于預設值時,生成路徑計算請求;
[0074]第二獲取模塊,用于獲取未有路徑的節(jié)點的計算請求;
[0075]第一計算模塊,用于根據所述路徑計算請求以及所述計算請求進行路徑計算,得到一第一路徑;
[0076]第一緩存模塊,用于將所述第一路徑作為緩存路徑進行緩存。
[0077]第二生成模塊,用于接收預設請求后生成路徑請求;
[0078]查詢模塊,用于根據所述路徑請求對所述緩存路徑進行查詢;
[0079]第一發(fā)送模塊,用于若在所述緩存路徑中存在與所述路徑請求匹配的第二路徑,則將該第二路徑進行發(fā)送。
[0080]本發(fā)明實施例提供的所述計算路徑的裝置通過利用CPU空閑時間計算路徑并進行緩存,在有需求時則從緩存路徑中直接進行查詢快速獲取所需要的路徑,大大降低了路徑計算占據的時間,提高了路徑計算效率,從而降低業(yè)務中斷時間,提高了業(yè)務恢復效率,減少了客戶的損失。
[0081]其中,所述第一生成模塊包括:第一生成單元,用于在所述當前負荷值小于預設值時,生成計算通知;第二生成單元,用于根據所述計算通知生成路徑計算請求。
[0082]進一步的,本發(fā)明實施例提供的所述裝置還包括:第三生成模塊,用于若不存在與所述路徑請求匹配的第二路徑,則生成路徑計算請求;第二計算模塊,用于根據所述路徑計算請求進行路徑計算,得到一第三路徑;第二發(fā)送模塊,用于將所述第三路徑進行發(fā)送。
[0083]為了便于下次進行查詢時包含此次計算的第三路徑,不用再次進行計算,本發(fā)明實施例提供的所述裝置還包括:第二緩存模塊,用于將所述第三路徑作為所述緩存路徑進行緩存。
[0084]考慮到實際應用情況,為了便于緩存路徑的更新,本發(fā)明實施例提供的所述裝置還包括:第三獲取模塊,用于接收更新通知后獲取拓撲當前信息和已保存的拓撲歷史信息;比較模塊,用于比較所述拓撲當前信息與所述拓撲歷史信息是否一致;替換模塊,用于在所述拓撲