56](新分組的旁路傳輸)
[0157]接下來,將描述有關與上述處理規(guī)則(流條目)獨立地并行執(zhí)行新分組的旁路轉發(fā)方法。圖14是表示本示例性實施例中新分組的旁路轉發(fā)的順序圖。由于圖14的步驟S001到步驟S003的流程與圖12的步驟S001到步驟S003的流程是一樣的,下面的描述將針對轉發(fā)路徑計算之后的順序流。
[0158]參見圖14,已經計算出轉發(fā)路徑的OFC 100A查找與所述計算出的轉發(fā)路徑上的目標節(jié)點連接的0FS (位于轉發(fā)路徑終點的0FS),然后參考存儲在0FS-0FC對應關系管理單元16中的0FS-0FC對應關系,并檢索與涉及的0FS相關聯的0FC (步驟S104)。這里,計算出一個轉發(fā)路徑,根據該路徑,按照OFS 301A、302A、301B和302B的順序將分組從節(jié)點A轉發(fā)到目的地節(jié)點D。這時,位于轉發(fā)路徑終點的0FS是0FS302B,并檢索出與OFS 302B連接的 0FC ΙΟΟΒο
[0159]然后,OFC 100A將步驟S001中接收到的新分組傳輸至被檢索出的OFC 100B,并請求從從屬OFS 302B的一指定接口進行傳輸(步驟S105)。
[0160]OFC 100B請求從屬OFS 302B通過一個指定接口傳輸所述新分組(步驟S106)。
[0161]OFS 302B根據OFC 100B的指示從指定接口傳輸所述新分組(步驟S107)。很多方法都可以被視為OFS 302B通過指定接口傳輸所述新分組的設置;從指定接口傳輸具有特定頭部信息的分組的處理規(guī)則(流條目)可以存儲在每一個0FS中,并且OFC 100B可以執(zhí)行將頭部信息寫入新分組的處理。
[0162]綜上所述,分組的旁路轉發(fā)是可能實現的,其中,以轉發(fā)路徑的計算為觸發(fā),通過0FC轉發(fā)分組(新分組),而不經過轉發(fā)路徑上的0FS,并通過終點將其輸出。應該注意的是,圖15所示的上述程序順序可以獨立于處理規(guī)則(流條目)的傳輸(設置)而單獨執(zhí)行。這樣取得的效果是,可以將新分組傳輸到目標節(jié)點,而無需等待所述單元設置處理規(guī)則(流條目)。然而,此操作可與圖13所示的傳輸(設置)處理規(guī)則(流條目)并行進行。例如,可以在圖12的步驟S004至S006-1的處理之前或之后插入圖14的步驟S104和S105的處理,以在OFC 100A中執(zhí)行。
[0163]圖15清楚地顯示,在本發(fā)明中沒有限制0FS/0FC的數量,且有可能不經過0FS沿著轉發(fā)路徑傳輸分組。
[0164]以上通過一個轉發(fā)(即正常)路徑的示例描述了本發(fā)明第一示例性實施例,該轉發(fā)路徑上的分組按照OFS 301A、301B、302A和302B的順序(稱作“正常方向”)從節(jié)點A轉發(fā)到目標節(jié)點D。然而,轉發(fā)路徑并不僅僅限于上述描述。例如,在計算的轉發(fā)路徑要通過OFS 302A和302B將分組從OFS 301A轉發(fā)到與OFS 302B相連的節(jié)點的情況下,操作大致與上述描述相同。另外,例如,如果計算的轉發(fā)路徑要通過OFS 301B、302A和301A將分組從OFS 302B轉發(fā)到節(jié)點A,僅需交換上述0FC100B與OFC 100A,操作大致也與上述描述相同。
[0165]〈第二示例性實施例〉
[0166]接下來,將參照附圖詳細描述本發(fā)明的第二示例性實施例,其中,對上文描述的一個0FC添加了修改。在此示例性實施例中,由于只有一個0FC的配置與第一示例性實施例不同,下面的描述將集中在其不同點上。
[0167]圖16是示出了本發(fā)明第二示例性實施例的0FC 101的配置的圖。與圖6所示的第一示例性實施例中的0FC 100的一個不同點就是添加了數據同步單元20,用于獲取與0FC100連接的節(jié)點的信息。
[0168]具體地說,數據同步單元20收集采用LLDP (鏈路層發(fā)現協(xié)議)或各種類型的供應商協(xié)議的網絡上的各種節(jié)點中的裝置信息及裝置配置,獲取節(jié)點之間的物理連接,并執(zhí)行將上述結果映射到拓撲數據庫15或0FS-0FC對應關系管理單元16中的操作。另外,也可以采用不在所有的0FC中安裝數據同步單元20的配置,使某個特定0FC中的數據同步單元20通過0FC間通信單元14更新另一個0FC的拓撲數據庫15和0FS-0FC對應關系管理單元16。
[0169]如上所述,本示例性實施例中使用帶有數據同步單元20的0FC,根據本實施例,在對網絡配置添加了修改,或者相應節(jié)點發(fā)生故障的情況系,可以生成恰當的轉發(fā)路徑,也可以基于轉發(fā)路徑執(zhí)行處理規(guī)則(流條目)分配。
[0170]<第三示例性實施例>
[0171]接下來,將參照附圖詳細描述本發(fā)明第三示例性實施例,其中,對上文描述的0FC實施例添加了修改。在本示例性實施例中,對第一示例性實施例中的0FC添加了轉發(fā)路徑緩存功能,下面的描述將集中在其不同點上。
[0172]圖17是示出了本發(fā)明第三示例性實施例0FC 102的配置。其與圖6所示的第一示例性實施例的0FC 100的一個不同點就是為路徑計算單元12添加了路徑記錄單元22。
[0173]路徑記錄單元22用以在預定時間到達前記錄路徑計算單元12計算出的轉發(fā)路徑。
[0174](設置緩存處理規(guī)則(流條目)的方法)
[0175]接著,將參照附圖詳細描述本示例性實施例的一個操作。圖18是表示本發(fā)明操作的順序圖。在圖18的示例中,分組(新分組)以與0FS301A的流表34中存儲的任何處理規(guī)則(流條目)都不匹配的節(jié)點D為目的地節(jié)點,分組從與OFS 301A相連的節(jié)點A進行傳輸。
[0176]下述操作與在第一示例性實施例中的操作相同:0FS 301A接收新分組(步驟S001)并請求與自身OFS 301A連接的OFC 100A傳輸(設置)一個包括該新分組的處理規(guī)則(流條目)(步驟S002)。本示例性實施例中還應當注意的是,在步驟S001中,在接收到的分組與OFS 301A的流表34中存儲的一個處理規(guī)則(流條目)匹配的情況下,就不執(zhí)行之后的處理,而是執(zhí)行基于節(jié)點處理規(guī)則的分組轉發(fā)處理,如圖18最下面的部分所示。
[0177]在路徑計算單元12計算轉發(fā)路徑之前,被請求傳輸(設置)處理規(guī)則(流條目)的OFC 100A參考路徑記錄單元22,并搜索具有與新分組(例如:一個目的地為節(jié)點D且來自OFS 301A的分組)相同特性的轉發(fā)路徑信息(步驟S201)。
[0178]作為搜索結果,在找到了具有與新分組(例如:一個目的地為節(jié)點D且來自0FS301A的分組)相同特性的轉發(fā)路徑信息的情況下,OFC 100A就省略轉發(fā)路徑計算并執(zhí)行步驟S004的操作以及之后的操作。
[0179]另一方面,作為搜索結果,在沒有找到具有與新分組(例如:一個目的地為節(jié)點D且來自OFS 301A的分組)相同特性的轉發(fā)路徑信息的情況下,OFC 100A基于新分組的目的地節(jié)點D和所述請求的來源OFS 301A,參考拓撲數據庫15的網絡拓撲結構,并計算包括從OFS 301A轉發(fā)的分組的順序流的轉發(fā)路徑(步驟S202)。之后,OFC 100A將計算出的轉發(fā)路徑和所述新分組的特性一起存儲在路徑記錄單元22中(步驟S203)。
[0180]后續(xù)的操作與上述第一示例性實施例是相同的。根據本示例性實施例,關于生成了轉發(fā)路徑的分組,只要其內容存儲在路徑記錄單元22中,由于可以省略轉發(fā)路徑生成,因此只要傳輸(設置)處理規(guī)則(流條目),就可以降低0FC負載并改進響應性。
[0181]此外,在本示例性實施例中,也可以并行地執(zhí)行圖14所示的新分組旁路轉發(fā)過程。在這種情況下,在圖18的步驟S004至S006-1的處理之前或之后可以插入圖14的步驟S104和S105的處理,以執(zhí)行OFC 100A中的操作。
[0182]〈第四示例性實施例〉
[0183]然后,將參照附圖詳細描述本發(fā)明第四示例性實施例。在本示例性實施例中,對上述0FC添加了修改。在本示例性實施例中,為第一示例性實施例添加了轉發(fā)路徑緩存功能和推測路徑計算功能,下面的描述將集中在其不同點上。
[0184]圖19是示出了本發(fā)明第四示例性實施例中的0FC 103的配置。其與圖6所示的第一示例性實施例的0FC 100的不同點是為路徑計算單元12添加了路徑記錄單元22和推測路徑計算單元23,推測路徑計算單元用于生成轉發(fā)路徑并將其存儲在路徑記錄單元22中。
[0185]路徑記錄單元22用以存儲路徑計算單元12計算出的轉發(fā)路徑,直到預定時間到達。
[0186]當0FC第一次啟動或其負載低的時候,當網絡拓撲結構中發(fā)生變化的時候,或在一個預定的時間內,例如在固定的時間間隔等等,推測路徑計算單元23參考拓撲數據庫15,計算從一個特定0FS到一個特定節(jié)點的轉發(fā)路徑,并記錄在路徑記錄單元22中。這里“推測”的意思是不等待對處理規(guī)則(流條目)的傳輸(設置)請求,而是先生成一個處理規(guī)則(流條目)。
[0187]應當注意的是,作為推測路徑計算單元23針對其計算轉發(fā)路徑的節(jié)點和該0FS的組合,期望作出未存儲在路徑存儲單元22中的選擇。通過這種設置,就可以在生成處理規(guī)則(流條目)傳輸(設置)請求時縮減緩存缺失。
[0188](使用推測傳輸路徑設置處理規(guī)則(流條目)的方法)
[0189]接下來,將參照附圖詳細描述本示例性實施例的操作。圖20是表示本示例性實施例的操作的順序圖。在圖20的一個示例中,從與OFS 301A連接的節(jié)點A傳輸以節(jié)點D為目的地的分組,節(jié)點D與OFS 301A的流表34中存儲的所有處理規(guī)則(流條目)都不匹配。
[0190]首先,當0FC第一次啟動或負載低的時候,當網絡拓撲結構發(fā)生變化的時候,或在預定的時間內,例如固定的時間間隔等等,OFC 100A和100B的推測路徑計算單元23執(zhí)行推測轉發(fā)路徑計算(步驟S300-1和S300-2)。
[0191]下述操作與在第一示例性實施例中的操作相同:0FS 301A接收新分組(步驟S001)并請求與自身OFS 301A連接的OFC 100A傳輸(設置)一個包括該新分組的處理規(guī)則(流條目)(步驟S002)。本示例性實施例中還應當注意的是,在步驟S001中,在接收到的分組與OFS 301A的流表34中存儲的一個處理規(guī)則(流條目)匹配的情況下,就不執(zhí)行之后的處理,而是執(zhí)行基于節(jié)點處理規(guī)則的分組轉發(fā)處理,如圖20最下面的部分所示。
[0192]在路徑計算單元12計算轉發(fā)路徑之前,被請求傳輸(設置)處理規(guī)則(流條目)的OFC 100A參考路徑記錄單元22,并搜索具有與新分組(例如:一個目的地為節(jié)點D且來自OFS 301A的分組)相同特性的轉發(fā)路徑信息(步驟S301)。
[0193]作為搜索結果,在找到了具有與新分組(例如:一個目的地為節(jié)點D且來自0FS301A的分組)相同特性的轉發(fā)路徑信息的情況下,OFC 100A就省略轉發(fā)路徑計算并執(zhí)行步驟S004的操作以及之后的操作。
[0194]另一方面,作為搜索結果,在沒有找到具有與新分組(例如:一個終點為節(jié)點D且來自OFS 301A的分組)相同特性的轉發(fā)路徑信息的情況下,OFC 100A基于新分組的目的地節(jié)點D和所述請求的來源OFS 301A,參考拓撲數據庫15的網絡拓撲結構,并計算包括從OFS 301A轉發(fā)的分組的順序流中的轉發(fā)路徑(步驟S302)。此后,OFC 100A將計算出的轉發(fā)路徑和所述新分組的特性一起存儲在路徑記錄單元22中(步驟S303)。
[0195]后續(xù)的操作與上述第一示例性實施例是相同的。根據本示例性實施例,關于生成了轉發(fā)路徑的分組以及統(tǒng)計路徑計算單元計算的轉發(fā)路徑,只要其內容存儲在路徑記錄單元22中,由于可以省略轉發(fā)路徑生成,因此就可以降低0FC負載并改進對處理規(guī)則(流條目)的傳輸。
[0196]此外,在本示例性實施例中,也可以并行地執(zhí)行圖14所示的新分組旁路轉發(fā)程序。在這種情況下,在圖18的步驟S004至S006-1的處理之前或之后可以插入圖14中的步驟S104和S105