用于軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中移交的路由的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般地涉及用于提高數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)通信的方法、系統(tǒng)和計算機(jī)程序產(chǎn) 品。更具體地,本發(fā)明涉及用于軟件定義的網(wǎng)絡(luò)中移交的路由的方法、系統(tǒng)和計算機(jī)程序產(chǎn) 品。
【背景技術(shù)】
[0002] 數(shù)據(jù)網(wǎng)絡(luò)(網(wǎng)絡(luò))促進(jìn)兩個或更多個數(shù)據(jù)處理系統(tǒng)之間的數(shù)據(jù)通信。從一個數(shù)據(jù) 處理系統(tǒng)到另一個數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)流量經(jīng)過一個或多個網(wǎng)絡(luò)設(shè)備到達(dá)目的地。
[0003] 網(wǎng)絡(luò)設(shè)備是從源端接收數(shù)據(jù)并且把該數(shù)據(jù)傳送到目的地的任何設(shè)備。源端和目的 地可以是數(shù)據(jù)處理系統(tǒng)或另一個網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)設(shè)備自身可以是數(shù)據(jù)處理系統(tǒng),并且反過 來,數(shù)據(jù)處理系統(tǒng)可以執(zhí)行網(wǎng)絡(luò)設(shè)備的功能。
[0004] 通常,從源端數(shù)據(jù)處理系統(tǒng)發(fā)送的數(shù)據(jù)分組在到達(dá)目的地數(shù)據(jù)處理系統(tǒng)之前經(jīng)過 一個或多個網(wǎng)絡(luò)設(shè)備進(jìn)行交接,其中在每個網(wǎng)絡(luò)設(shè)備上的交接按照該網(wǎng)絡(luò)設(shè)備中的某些規(guī) 則進(jìn)行。在分組向目的地數(shù)據(jù)處理系統(tǒng)的路程中,用于確定數(shù)據(jù)分組從網(wǎng)絡(luò)設(shè)備下一步去 哪里的規(guī)則存儲在網(wǎng)絡(luò)設(shè)備中。
[0005] 這樣的規(guī)則稱為路由規(guī)則或下一跳規(guī)則。網(wǎng)絡(luò)設(shè)備中的路由表是網(wǎng)絡(luò)設(shè)備中存儲 這種規(guī)則的一種方式。
【發(fā)明內(nèi)容】
[0006] 說明性實(shí)施例提供了用于軟件定義的網(wǎng)絡(luò)中移交的路由的方法、系統(tǒng)和計算機(jī)程 序產(chǎn)品。實(shí)施例在利用軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)的數(shù)據(jù)通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備處,從 數(shù)據(jù)通信網(wǎng)絡(luò)中的控制器接收路由規(guī)則集合。實(shí)施例在所述網(wǎng)絡(luò)設(shè)備處檢測狀態(tài)。實(shí)施例 在所述網(wǎng)絡(luò)設(shè)備中選擇所述路由規(guī)則集合的子集,其中所述選擇響應(yīng)于所述狀態(tài)。實(shí)施例 在第一時間在所述網(wǎng)絡(luò)設(shè)備中應(yīng)用所述路由規(guī)則的子集,使得所述網(wǎng)絡(luò)設(shè)備使用第一路由 規(guī)則在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路由數(shù)據(jù)流量,并且忽略使用從控制器接收到的第二路由規(guī)則 在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路由數(shù)據(jù)流量。實(shí)施例響應(yīng)于第二狀態(tài)而自主地在第二時間在所述 網(wǎng)絡(luò)設(shè)備處應(yīng)用來自所述路由規(guī)則集合的路由規(guī)則的第二子集。
[0007] 另一種實(shí)施例包括計算機(jī)可用存儲設(shè)備,所述設(shè)備包括用于軟件定義的網(wǎng)絡(luò)體系 結(jié)構(gòu)中移交的路由的計算機(jī)可用代碼。實(shí)施例還包括用于在利用軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu) 實(shí)現(xiàn)的數(shù)據(jù)通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備處,從數(shù)據(jù)通信網(wǎng)絡(luò)中的控制器接收路由規(guī)則集合的計 算機(jī)可用代碼。實(shí)施例還包括用于在所述網(wǎng)絡(luò)設(shè)備處檢測狀態(tài)的計算機(jī)可用代碼。實(shí)施例 還包括用于在所述網(wǎng)絡(luò)設(shè)備中選擇所述路由規(guī)則集合的子集的計算機(jī)可用代碼,其中所述 選擇響應(yīng)于所述狀態(tài)。實(shí)施例還包括用于在第一時間在所述網(wǎng)絡(luò)設(shè)備中應(yīng)用所述路由規(guī)則 的子集的計算機(jī)可用代碼,使得所述網(wǎng)絡(luò)設(shè)備使用第一路由規(guī)則在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路 由數(shù)據(jù)流量,并且忽略使用從控制器接收到的第二路由規(guī)則在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路由數(shù) 據(jù)流量。實(shí)施例還包括用于響應(yīng)于第二狀態(tài)而自主地在第二時間在所述網(wǎng)絡(luò)設(shè)備處應(yīng)用來 自所述路由規(guī)則集合的路由規(guī)則的第二子集的計算機(jī)可用代碼。
[0008] 另一種實(shí)施例包括用于軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中移交的路由的網(wǎng)絡(luò)設(shè)備。實(shí)施 例還包括存儲設(shè)備,所述存儲設(shè)備包括存儲介質(zhì),其中所述存儲設(shè)備存儲計算機(jī)可用程序 代碼。實(shí)施例還包括處理器,其中所述處理器執(zhí)行所述計算機(jī)可用程序代碼。實(shí)施例還包 括用于在利用軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)的數(shù)據(jù)通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備處,從數(shù)據(jù)通信 網(wǎng)絡(luò)中的控制器接收路由規(guī)則集合的計算機(jī)可用代碼。實(shí)施例還包括用于在所述網(wǎng)絡(luò)設(shè)備 處檢測狀態(tài)的計算機(jī)可用代碼。實(shí)施例還包括用于在所述網(wǎng)絡(luò)設(shè)備中選擇所述路由規(guī)則集 合的子集的計算機(jī)可用代碼,其中所述選擇響應(yīng)于所述狀態(tài)。實(shí)施例還包括用于在第一時 間在所述網(wǎng)絡(luò)設(shè)備中應(yīng)用所述路由規(guī)則的子集的計算機(jī)可用代碼,使得所述網(wǎng)絡(luò)設(shè)備使用 第一路由規(guī)則在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路由數(shù)據(jù)流量,并且忽略使用從控制器接收到的第二 路由規(guī)則在所述數(shù)據(jù)通信網(wǎng)絡(luò)中路由數(shù)據(jù)流量。實(shí)施例還包括用于響應(yīng)于第二狀態(tài)而自主 地在第二時間在該網(wǎng)絡(luò)設(shè)備處應(yīng)用來自所述路由規(guī)則集合的路由規(guī)則的第二子集的計算 機(jī)可用代碼。
【附圖說明】
[0009] 被認(rèn)為是本發(fā)明的特性的新穎特征在所附權(quán)利要求中加以闡述。但是,本發(fā)明自 身以及優(yōu)選的使用模式、其另外的目的和優(yōu)點(diǎn)將在結(jié)合附圖閱讀時通過參考說明性實(shí)施例 的以下詳細(xì)描述得到更好地理解,其中:
[0010] 圖1描繪了其中可以實(shí)現(xiàn)說明性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的框圖;
[0011] 圖2描繪了其中可以實(shí)現(xiàn)說明性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖;
[0012] 圖3A根據(jù)說明性實(shí)施例描繪了用于在軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中使用的改進(jìn)的 控制器的框圖;
[0013] 圖3B根據(jù)說明性實(shí)施例描繪了非循環(huán)路由的示例圖;
[0014] 圖4根據(jù)說明性實(shí)施例描繪了改進(jìn)的網(wǎng)絡(luò)設(shè)備的框圖;
[0015] 圖5根據(jù)說明性實(shí)施例描繪了用于軟件定義的網(wǎng)絡(luò)中移交的路由的示例性改進(jìn) 的網(wǎng)絡(luò)設(shè)備的框圖;
[0016] 圖6根據(jù)說明性實(shí)施例描繪了用于軟件定義的網(wǎng)絡(luò)中移交的路由的示例性過程 的流程圖;
[0017] 圖7根據(jù)說明性實(shí)施例描繪了用于在軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中向網(wǎng)絡(luò)設(shè)備推 薦路由規(guī)則的示例性過程的流程圖。
【具體實(shí)施方式】
[0018] 當(dāng)前使用的網(wǎng)絡(luò)體系結(jié)構(gòu)可歸類成兩種類型。第一,傳統(tǒng)類型,其中諸如交換機(jī)或 路由器的網(wǎng)絡(luò)設(shè)備發(fā)現(xiàn)新的路由路徑或現(xiàn)有路由路徑中的變化并且修改所述設(shè)備的路由 表。例如,如果新的交換機(jī)在網(wǎng)絡(luò)中上線,那么所述交換機(jī)向其它在所述網(wǎng)絡(luò)中運(yùn)行的網(wǎng)絡(luò) 設(shè)備宣布其存在。當(dāng)檢測到所述新的交換機(jī)時,所述網(wǎng)絡(luò)中的交換機(jī)在它們中間執(zhí)行分布 式協(xié)議,以確定需要被每個單獨(dú)的交換機(jī)使用來轉(zhuǎn)發(fā)分組的新的路由規(guī)則集合。
[0019] 類似地,當(dāng)所述網(wǎng)絡(luò)中的路由或其組件,諸如路由器或鏈路變得不可用時,現(xiàn)有的 交換機(jī)在它們中間執(zhí)行分布式協(xié)議,以確定需要被每個單獨(dú)的交換機(jī)使用來轉(zhuǎn)發(fā)分組的新 的路由規(guī)則集合,從而有效地去除使用那個組件的路由。本質(zhì)上,傳統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)把發(fā) 現(xiàn)網(wǎng)絡(luò)組件并且確定如何路由數(shù)據(jù)流量到某個目的地的任務(wù)留給了網(wǎng)絡(luò)設(shè)備。
[0020] 第二種類型的網(wǎng)絡(luò)體系結(jié)構(gòu)被稱為軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)。在這種體系結(jié)構(gòu) 中,控制器應(yīng)用在網(wǎng)絡(luò)中的數(shù)據(jù)處理系統(tǒng)執(zhí)行。控制器與網(wǎng)絡(luò)中運(yùn)行的各種網(wǎng)絡(luò)設(shè)備進(jìn)行 通信,以確定在任何給定的時間的網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)??刂破魅缓蟠_定要使用的優(yōu)選的路由 以在兩個網(wǎng)絡(luò)組件之間或在網(wǎng)絡(luò)中的數(shù)據(jù)處理系統(tǒng)與網(wǎng)絡(luò)組件之間發(fā)送數(shù)據(jù)。控制器規(guī)定 實(shí)現(xiàn)到軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中的每個單獨(dú)的網(wǎng)絡(luò)設(shè)備的這些優(yōu)選路由所必須的路由 規(guī)則。每個網(wǎng)絡(luò)設(shè)備使用規(guī)定的路由規(guī)則來轉(zhuǎn)發(fā)數(shù)據(jù),諸如通過在設(shè)備的路由表中存儲所 有規(guī)定的路由規(guī)則。
[0021] 說明性實(shí)施例認(rèn)識到,傳統(tǒng)的體系結(jié)構(gòu)和軟件定義的體系結(jié)構(gòu)每個都有某些缺 點(diǎn)。例如,在傳統(tǒng)的體系結(jié)構(gòu)中,網(wǎng)絡(luò)設(shè)備不能有效地確定整個網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)或確定網(wǎng)絡(luò) 的全局狀態(tài),諸如網(wǎng)絡(luò)設(shè)備不直接訪問的網(wǎng)絡(luò)組件的狀態(tài)。
[0022] 說明性實(shí)施例認(rèn)識到,這種全局可見性的缺乏導(dǎo)致很差的可用資源利用率和端對 端的服務(wù)質(zhì)量(QoS)管理。例如,即使在網(wǎng)絡(luò)中添加了與較低性能的鏈路并行的新的高性 能鏈路,網(wǎng)絡(luò)設(shè)備也可能維護(hù)經(jīng)較舊的較低性能的鏈路的路由,至少持續(xù)顯著的一段時間, 直到較低性能的鏈路被去除,或者該網(wǎng)絡(luò)設(shè)備被通知該高性能鏈路。
[0023] 說明性實(shí)施例還認(rèn)識到,軟件定義的體系結(jié)構(gòu)對變化的網(wǎng)絡(luò)狀態(tài)的響應(yīng)是有限 的。例如,當(dāng)前使用的控制器不能與網(wǎng)絡(luò)設(shè)備一樣快速地響應(yīng)局域網(wǎng)中狀態(tài)的變化,諸如鏈 路失效、設(shè)備失效、鏈路降級、擁塞、等等。
[0024] 而且,說明性實(shí)施例認(rèn)識到,當(dāng)前使用的控制器必須知道每個網(wǎng)絡(luò)設(shè)備的全部能 力以便能夠規(guī)定準(zhǔn)備好加載到每個網(wǎng)絡(luò)設(shè)備的路由表中的路由規(guī)則。另外,高可用性和高 可靠性配置會具有在網(wǎng)絡(luò)中執(zhí)行的多個控制器。說明性實(shí)施例認(rèn)識到,諸如緩沖區(qū)和表的 共享資源的管理以及沖突避免變得很成問題。
[0025] 用于描述本發(fā)明的說明性實(shí)施例一般性地討論并解決涉及網(wǎng)絡(luò)體系結(jié)構(gòu)的上述 問題及其它問題。說明性實(shí)施例提供了用于軟件定義的網(wǎng)絡(luò)中移交的路由的方法、系統(tǒng)和 計算機(jī)程序產(chǎn)品。
[0026] 非循環(huán)路由是不包括返回訪問已經(jīng)在路由中訪問過的節(jié)點(diǎn)的任何路徑的路由。在 網(wǎng)絡(luò)中,非循環(huán)路由確保數(shù)據(jù)分組不經(jīng)過同一網(wǎng)絡(luò)設(shè)備兩次來到達(dá)目的地。實(shí)施例改進(jìn)了 控制器,使得控制器在給定的網(wǎng)絡(luò)中創(chuàng)建從每個源端到每個目的地的路由的非循環(huán)的集 合。源端可以是發(fā)起數(shù)據(jù)的數(shù)據(jù)處理系統(tǒng),或轉(zhuǎn)發(fā)或交接該數(shù)據(jù)到另一個網(wǎng)絡(luò)設(shè)備或數(shù)據(jù) 處理系統(tǒng)的網(wǎng)絡(luò)設(shè)備。同樣,目的地可以是使用該