本發(fā)明指向在軟件定義網(wǎng)絡(luò)(software-defined networking,簡稱SDN)中路由數(shù)據(jù)包的方法和控制器。特別地,本發(fā)明提出通過在SDN的所有分層中預(yù)先建立的快速路線路由數(shù)據(jù)包。
背景技術(shù):
在現(xiàn)有技術(shù)中,SDN是解決定制和優(yōu)化問題的新興網(wǎng)絡(luò)技術(shù)。在SDN中,數(shù)據(jù)平面與控制平面解耦分離,從而可以簡化現(xiàn)代通信網(wǎng)絡(luò)。SDN通常使用開放流(Open Flow,簡稱OF)協(xié)議。根據(jù)OF協(xié)議,SDN中的OF交換機具有包含與數(shù)據(jù)包相關(guān)的表項的流表,所述流表定義OF交換機路由特定數(shù)據(jù)包的方式和位置。
根據(jù)OF協(xié)議規(guī)范,不論何時到達包含所述流表的OF交換機的特定數(shù)據(jù)包沒有流表項或流表項為空時,OF交換機發(fā)送所謂的“數(shù)據(jù)包進入消息”至SDN控制器。所述數(shù)據(jù)包進入消息使得SDN控制器發(fā)送“flow-mod命令”至SDN中的所有OF交換機作為響應(yīng),以便根據(jù)新的數(shù)據(jù)包修改OF交換機的狀態(tài),即修改OF交換機的流表。
但是,此行為可能會導(dǎo)致與各種數(shù)據(jù)包和消息排序一致的各種類型的競態(tài)條件。例如,如圖6所示,圖6示出了現(xiàn)有技術(shù)的方案,當(dāng)flow-mod命令消息在其到達交換機Sn+1之前到達交換機Sn時,則在交換機Sn+1接收到所述flow-mod命令消息之前,可能已經(jīng)有新的數(shù)據(jù)包從交換機Sn發(fā)送并已到達交換機Sn+1。在這種情形下,由于交換機Sn+1的流表還沒有針對新的數(shù)據(jù)包作出修改,因此交換機Sn+1會發(fā)送另一個數(shù)據(jù)包進入消息。相比交換機Sn+1在接收到數(shù)據(jù)包之前收到flow-mod命令消息的情形,這會產(chǎn)生一系列的額外狀態(tài)遷移。隨著大規(guī)模多層拓撲結(jié)構(gòu)的應(yīng)用,OF協(xié)議的上述問題變得更加嚴(yán)重。
特別地,如圖6所示,在(1)中,從H1發(fā)送至H2的新的數(shù)據(jù)包到達交換機S1。在(2)中,由于交換機S1沒有針對接收的數(shù)據(jù)包的流表項,因此交換機S1發(fā)送消息至SDN控制器。在(3)中,所述SDN控制器通過發(fā)送flow-mod命令至網(wǎng)絡(luò)中所有的交換機S1至S4作為響應(yīng)。在(4)中,所述flow-mod命令到達交換機S1,在(5)中,交換機S1相應(yīng)地發(fā)送所述數(shù)據(jù)包至交換機S2。但是,如果所述flow-mod命令消息還沒有到達交換機S2,在(6)中,交換機S2將發(fā)送自己的數(shù)據(jù)包進入消息(比如,包括所述數(shù)據(jù)包本身或者數(shù)據(jù)包的頭等)至SDN控制器,以指示該數(shù)據(jù)包作為新的數(shù)據(jù)包。
針對上述問題的一種方案是交換機S2在發(fā)送數(shù)據(jù)包進入消息至SDN控制器之前等待一段時間,即在一段時間內(nèi)等待SDN控制器發(fā)送的flow-mod命令消息是否到達。但是,這尤其在更大的拓撲結(jié)構(gòu)中會嚴(yán)重影響即降低系統(tǒng)性能。
現(xiàn)有技術(shù)中已經(jīng)存在解決OF協(xié)議的缺點的一些方案。例如,在一種方案中,由于SDN控制器知道數(shù)據(jù)包在SDN中路徑的入口節(jié)點和出口節(jié)點之間的準(zhǔn)確路徑,所以SDN控制器可以將路徑信息轉(zhuǎn)發(fā)給入口節(jié)點,然后將該信息內(nèi)嵌到可以插入數(shù)據(jù)包的頭中(可選地,對OF協(xié)議作一些修改)。然后在沿著穿過所述SDN的數(shù)據(jù)包的路徑的每一個其他節(jié)點都對這個頭進行檢查。由于中間節(jié)點需要針對轉(zhuǎn)發(fā)決策檢查新添加的頭,因此這些中間節(jié)點不會從SDN控制器接收任何狀態(tài)信息。
但是這個方案需要對OF協(xié)議作較大改變,并且與傳統(tǒng)協(xié)議和設(shè)備不兼容。此外,由于所有的信息都是來自數(shù)據(jù)包頭,可能不會檢測到錯誤配置,因此該方案很容易轉(zhuǎn)發(fā)回路和/或黑洞。最后,這個方案不適合保護和恢復(fù)。即現(xiàn)有技術(shù)的方案是基于預(yù)先計算的備選鏈路,沒有考慮容量計劃或者QoS/SLA。此外,由于無數(shù)的事件可能會導(dǎo)致恢復(fù)場景,而此方案中沒有針對恢復(fù)的預(yù)先計算的方案。
技術(shù)實現(xiàn)要素:
鑒于上述缺點和問題,本發(fā)明旨在提高現(xiàn)有技術(shù)水平。特別地,本發(fā)明旨在提供用于在SDN網(wǎng)絡(luò)中路由數(shù)據(jù)包的改善方案。特別地,本發(fā)明的目的在于提供改善的路由方案,此路由方案解決了上述OF協(xié)議中固有的競態(tài)條件問題。因此,應(yīng)該避免對OF協(xié)議作較大改變,而應(yīng)該保證與傳統(tǒng)協(xié)議和設(shè)備的兼容性。此外,本發(fā)明的方案不應(yīng)該干擾系統(tǒng)性能。本發(fā)明的方案也應(yīng)該有較強的魯棒性,并且應(yīng)提供保護和恢復(fù)選項。
本發(fā)明的上述目標(biāo)通過所附獨立權(quán)利要求中提供的方案實現(xiàn)。本發(fā)明的有利的實現(xiàn)方案在各自的從屬權(quán)利要求中進一步定義。特別地,本發(fā)明的核心理念在于,不是針對每個新的數(shù)據(jù)包配置完整路徑,而是由SDN控制器保持網(wǎng)絡(luò)中任意兩個端點之間的默認(rèn)連接,優(yōu)先使用默認(rèn)路徑的全連接,并且針對每個新的數(shù)據(jù)包,所述SDN控制器僅配置相關(guān)邊緣交換機以及其與現(xiàn)有路徑的關(guān)聯(lián)。
本發(fā)明的第一方面提供了在SDN中路由數(shù)據(jù)包的方法,包括:SDN控制器在覆蓋所有非邊緣交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線;將源邊緣交換機接收的新的數(shù)據(jù)包或者所述數(shù)據(jù)包的頭轉(zhuǎn)發(fā)至所述SDN控制器;所述SDN控制器根據(jù)所述數(shù)據(jù)包的目的邊緣交換機選擇其中一條所述路線;所述SDN控制器僅分別配置源邊緣交換機和目的邊緣交換機,以沿著所選擇的路線發(fā)送所述數(shù)據(jù)包。
不是試圖被動配置流的完整路徑,而是由所述SDN控制器在覆蓋所有非邊緣交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線。由于所有的路線都是已知的,并且所述SDN控制器在運行期間僅需要配置源邊緣交換機和目的邊緣交換機,因此消除了上述OF協(xié)議中固有的競態(tài)條件問題。即不需要針對新的數(shù)據(jù)包發(fā)送flow-mod命令至所有的交換機。
當(dāng)新的數(shù)據(jù)包進入所述源邊緣交換機時,將該數(shù)據(jù)包發(fā)送至所述SDN控制器(或者發(fā)送數(shù)據(jù)包進入消息至所述SDN控制器,其中該數(shù)據(jù)包進入消息可以只包括所述數(shù)據(jù)包的頭),所述SDN控制器根據(jù)所述數(shù)據(jù)包的目的邊緣交換機選擇合適的路線,然后僅配置源邊緣交換機和目的邊緣交換機。由于只配置了源邊緣交換機和目的邊緣交換機(例如,接收flow-mod消息),可以避免競態(tài)條件,不需要改變OF協(xié)議,穿過所述SDN的路由可以快速執(zhí)行,并且對系統(tǒng)性能不會產(chǎn)生大的影響。
根據(jù)第一方面,在所述方法的第一種實現(xiàn)形式中,所述配置源邊緣交換機和目的邊緣交換機包括:指示所述源邊緣交換機將所述數(shù)據(jù)包發(fā)送至所選擇路線上的下一個網(wǎng)絡(luò)實體。
因此,所述新的數(shù)據(jù)包被放入預(yù)期路線。所選擇路線上的每一個其他網(wǎng)絡(luò)實體都只需要根據(jù)所選擇的路線轉(zhuǎn)發(fā)所述數(shù)據(jù)包。所述SDN控制器不需要對這些中間實體進行配置。因此,所述SDN控制器只需要配置所述源邊緣交換機。
根據(jù)第一方面或者第一方面的第一種實現(xiàn)形式,在所述方法的第二種實現(xiàn)形式中,所述配置源邊緣交換機和目的邊緣交換機包括:指示所述源邊緣交換機通過隧道傳輸發(fā)送所述數(shù)據(jù)包。
因此,本發(fā)明的方法支持可以在轉(zhuǎn)發(fā)表節(jié)省存儲空間的隧道傳輸。優(yōu)選地,用戶可以決定是否使用隧道傳輸以在轉(zhuǎn)發(fā)表節(jié)省存儲空間,或者用戶可以決定是否使用標(biāo)簽交換路線(例如MPLS)以節(jié)省封裝。隧道傳輸是可選的但不是必須的。
根據(jù)第一方面或者第一方面的上述任一種實現(xiàn)形式,在所述方法的第三種實現(xiàn)形式中,所述配置源邊緣交換機和目的邊緣交換機包括:在所述源邊緣交換機和目的邊緣交換機的至少一個流表中創(chuàng)建與所述數(shù)據(jù)包相關(guān)的新表項。
例如,當(dāng)所述源邊緣交換機向所述SDN控制器指示新的數(shù)據(jù)包時,所述SDN控制器可以向所述源邊緣交換機和所述目的邊緣交換機分別發(fā)送flow-mod命令,從而根據(jù)標(biāo)準(zhǔn)的OF協(xié)議進行操作。所述新的表項可以將所述新的數(shù)據(jù)包與所選的路線關(guān)聯(lián),使得每一個其他數(shù)據(jù)包不需要進一步配置就可以自動在所選的路線上發(fā)送。
根據(jù)第一方面或者第一方面的上述任一種實現(xiàn)形式,在所述方法的第四種實現(xiàn)形式中,所述配置多條路線包括:針對任意兩個邊緣交換機之間每一種可能的連接創(chuàng)建一條路線。
因此,所述SDN控制器優(yōu)先保持穿過所述SDN的默認(rèn)數(shù)據(jù)路徑的全連接。因此,所述SDN控制器在為新的數(shù)據(jù)包選擇合適的路線方面有最大的靈活性,并且可以高效執(zhí)行負載均衡和/或保護(例如在路線故障時選擇可替代的路線)。
根據(jù)第一方面或者第一方面的上述任一種實現(xiàn)形式,在所述方法的第五種實現(xiàn)形式中,所述方法還包括:所述SDN控制器沿著所選擇的路線監(jiān)測所述數(shù)據(jù)包的流動;如果監(jiān)測到預(yù)定事件,所述SDN控制器在所述數(shù)據(jù)包流動期間將所選擇的路線變更為新的路線。
因此,所述SDN控制器能夠在運行期間改變數(shù)據(jù)包的路線。從而實現(xiàn)更大的靈活性,尤其是改善負載均衡和保護。通過監(jiān)測數(shù)據(jù)包的流動,所述SDN控制器也可以為特定的數(shù)據(jù)流,例如FTP會話或者Telco業(yè)務(wù)等長期數(shù)據(jù)流,計算新的且更合適的路線,也可以選擇某些合適的路線。
根據(jù)第一方面或者第一方面的上述任一種實現(xiàn)形式,在所述方法的第六種實現(xiàn)形式中,所述為所述數(shù)據(jù)包選擇路線取決于以下一項或者多項:所述數(shù)據(jù)包頭中的源互聯(lián)網(wǎng)協(xié)議(Internet Protocol,簡稱IP)地址、所述數(shù)據(jù)包頭中的服務(wù)類型(Type of Service,簡稱ToS)字段項、分配給所述數(shù)據(jù)包的優(yōu)先級以及所述SDN中的當(dāng)前負載分布。
因此,根據(jù)上述相關(guān)準(zhǔn)則,所述SDN控制器可以配置所述源邊緣交換機,以在某些選擇的路線上發(fā)送數(shù)據(jù)包。因此,可以針對不同類型的數(shù)據(jù)包選擇不同的路線。例如,可以預(yù)先配置用于低優(yōu)先級數(shù)據(jù)包的路線和用于高優(yōu)先級數(shù)據(jù)包的路線。從而可以更加高效地控制穿過所述SDN的數(shù)據(jù)包的路由。
根據(jù)第一方面或者第一方面的上述任一種實現(xiàn)形式,在所述方法的第七種實現(xiàn)形式中,所述配置多條路線包括:在所述SDN的每個分層中創(chuàng)建多條轉(zhuǎn)發(fā)等效路線(forwarding equivalent route,簡稱FER),其中每條FER在分層中共享相同的源網(wǎng)絡(luò)實體和目的網(wǎng)絡(luò)實體,但是跨越不同的路徑。
因此,所述SDN控制器能夠分別控制穿過每個分層的路由。例如不同類型的數(shù)據(jù)包可以只在特定分層中采用不同的路徑,而在其他分層中在相同的路徑上路由。此外,負載均衡和/或保護可以在每個分層中單獨實現(xiàn),從而可以更加高效地執(zhí)行。
根據(jù)第一方面的第七種實現(xiàn)形式,在所述方法的第八種實現(xiàn)形式中,所述配置多條路線包括:連接不同分層的多條FER以獲得路線。
因此,所述SDN控制器在為數(shù)據(jù)包創(chuàng)建和/或重新創(chuàng)建多條路線方面更加靈活。
根據(jù)第一方面的第七種實現(xiàn)形式或者第八種實現(xiàn)形式,在所述方法的第九種實現(xiàn)形式中,所述方法還包括:如果所述數(shù)據(jù)包的路線的所述分層中的FER發(fā)生故障,所述SDN控制器選擇新的FER用于路由所述數(shù)據(jù)包穿過相關(guān)分層。
因此可以提高路由數(shù)據(jù)包穿過所述SDN的魯棒性。
根據(jù)第一方面的第七種實現(xiàn)形式至第九種實現(xiàn)形式中的任一項,在所述方法的第十種實現(xiàn)形式中,所述方法還包括:所述SDN控制器利用分層的多條FER實現(xiàn)所述分層中的負載均衡。
尤其是每個分層中的負載均衡極大地提升了穿過所述SDN的數(shù)據(jù)包的路由性能。
根據(jù)第一方面的第七種實現(xiàn)形式至第十種實現(xiàn)形式中的任一項,在所述方法的第十一種實現(xiàn)形式中,所述選擇路線包括:由所述SDN控制器選擇包含所述源邊緣交換機的分層中的FER,由包含在所述分層中的各個源網(wǎng)絡(luò)實體基于至少一個預(yù)先配置的路由規(guī)則確定每個其他分層中的FER。
因此,一方面降低了所述SDN控制器的負載,另一方面路線的選擇可以更加快速高效地進行。
根據(jù)第一方面的第十一種實現(xiàn)形式,在所述方法的第十二種實現(xiàn)形式中,所述至少一個預(yù)先配置的路由規(guī)則是基于所述數(shù)據(jù)包的類和/或優(yōu)先級。
因此,根據(jù)所述數(shù)據(jù)包的類和/或優(yōu)先級,可以在每個分層中針對不同的數(shù)據(jù)包選擇不同的路線。
本發(fā)明的第二方面提供了在軟件定義網(wǎng)絡(luò)(software-defined networking,簡稱SDN)中路由數(shù)據(jù)包的方法,包括:SDN控制器在覆蓋所有交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線,并且通過預(yù)先配置的路線轉(zhuǎn)發(fā)源邊緣交換機接收的新的數(shù)據(jù)包。
第二方面呈現(xiàn)的方法可以替代第一方面提供的方法。通過所述SDN控制器預(yù)先配置多條路線,可以避免上述OF協(xié)議中固有的競態(tài)條件的威脅,同時可以不需要修改就可以使用OF協(xié)議。
根據(jù)第二方面,在所述方法的第一種實現(xiàn)形式中,所述方法還包括:所述源邊緣交換機將所述源邊緣交換機接收的新的數(shù)據(jù)包或者所述數(shù)據(jù)包的頭轉(zhuǎn)發(fā)至所述SDN控制器用于更新。
因此,所述源邊緣交換機通知所述SDN控制器新的數(shù)據(jù)包到達,必要時允許所述SDN控制器對預(yù)先配置的路線進行修改。
根據(jù)第二方面或者第二方面的第一種實現(xiàn)形式,在所述方法的第二種實現(xiàn)形式中,所述方法還包括:所述SDN控制器沿著所述預(yù)先配置的路線監(jiān)測所述數(shù)據(jù)包的流動;如果監(jiān)測到預(yù)定事件,所述SDN控制器在所述數(shù)據(jù)包流動期間將預(yù)先配置的路線變更為新的路線。
根據(jù)第二方面或者第二方面的上述任一種實現(xiàn)形式,在所述方法的第三種實現(xiàn)形式中,所述配置多條路線包括:在所述SDN的每個分層中創(chuàng)建多條轉(zhuǎn)發(fā)等效路線(forwarding equivalent route,簡稱FER),其中每條FER在分層中共享相同的源網(wǎng)絡(luò)實體和目的網(wǎng)絡(luò)實體,但是跨越不同的路徑。
根據(jù)第二方面的第三種實現(xiàn)形式,在所述方法的第四種實現(xiàn)形式中,所述配置多條路線包括:連接不同分層的多條FER以獲得路線。
根據(jù)第二方面的第三種實現(xiàn)形式或者第四種實現(xiàn)形式,在所述方法的第五種實現(xiàn)形式中,所述方法還包括:如果所述數(shù)據(jù)包的路線的所述分層中的FER發(fā)生故障,所述SDN控制器選擇新的FER用于路由所述數(shù)據(jù)包穿過相關(guān)分層。
根據(jù)第二方面的第三種實現(xiàn)形式至第五種實現(xiàn)形式中的任一項,在所述方法的第六種實現(xiàn)形式中,所述方法還包括:所述SDN控制器利用分層的多條FER實現(xiàn)所述分層中的負載均衡。
第二方面的第二種實現(xiàn)形式至第六種實現(xiàn)形式分別與第一方面的第五種實現(xiàn)形式至第九種實現(xiàn)形式有著相同的優(yōu)勢。
本發(fā)明的第三方面提供了在軟件定義網(wǎng)絡(luò)(software-defined networking,簡稱SDN)中路由數(shù)據(jù)包的SDN控制器,包括:路由單元,用于在覆蓋所有非邊緣交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線;接收單元,用于從源邊緣交換機接收新的數(shù)據(jù)包或者所述數(shù)據(jù)包的頭;選擇單元,用于根據(jù)所述數(shù)據(jù)包的目的邊緣交換機選擇其中一條所述路線;配置單元,用于僅分別配置源邊緣交換機和目的邊緣交換機,以沿著所選擇的路線發(fā)送所述數(shù)據(jù)包。
根據(jù)第三方面,在所述SDN控制器的第一種實現(xiàn)形式中,所述配置單元用于配置所述源邊緣交換機和所述目的邊緣交換機,以指示所述源邊緣交換機發(fā)送所述數(shù)據(jù)包至所選擇路線上的下一個網(wǎng)絡(luò)實體。
根據(jù)第三方面或者第三方面的第一種實現(xiàn)形式,在所述SDN控制器的第二種實現(xiàn)形式中,所述配置單元用于配置所述源邊緣交換機和所述目的邊緣交換機包括:指示所述源邊緣交換機通過隧道傳輸發(fā)送所述數(shù)據(jù)包。
根據(jù)第三方面或者第三方面的上述任一種實現(xiàn)形式,在所述SDN控制器的第三種實現(xiàn)形式中,所述配置單元用于配置所述源邊緣交換機和所述目的邊緣交換機,以在所述源邊緣交換機和所述目的邊緣交換機的至少一個流表中創(chuàng)建與所述數(shù)據(jù)包相關(guān)的新表項。
根據(jù)第三方面或者第三方面的上述任一種實現(xiàn)形式,在所述SDN控制器的第四種實現(xiàn)形式中,所述路由單元用于配置多條路線,以針對任意兩個邊緣交換機之間每一種可能的連接創(chuàng)建至少一條路線。
根據(jù)第三方面或者第三方面的上述任一種實現(xiàn)形式,在所述SDN控制器的第五種實現(xiàn)形式中,所述SDN控制器還包括:監(jiān)測單元,用于沿著所選擇的路線監(jiān)測所述數(shù)據(jù)包的流動;如果監(jiān)測到預(yù)定事件,所述選擇單元用于在所述數(shù)據(jù)包流動期間將所選擇的路線變更為新的路線。
根據(jù)第三方面或者第三方面的上述任一種實現(xiàn)形式,在所述SDN控制器的第六種實現(xiàn)形式中,所述選擇單元用于根據(jù)以下一項或者多項為所述數(shù)據(jù)包選擇路線:所述數(shù)據(jù)包頭中的源互聯(lián)網(wǎng)協(xié)議(Internet Protocol,簡稱IP)地址、所述數(shù)據(jù)包頭中的服務(wù)類型(Type of Service,簡稱ToS)字段項、分配給所述數(shù)據(jù)包的優(yōu)先級以及所述SDN中的當(dāng)前負載分布。
根據(jù)第三方面或者第三方面的上述任一種實現(xiàn)形式,在所述SDN控制器的第七種實現(xiàn)形式中,所述路由單元用于配置多條路線,以在所述SDN的每個分層中創(chuàng)建多條轉(zhuǎn)發(fā)等效路線(forwarding equivalent route,簡稱FER),其中每條FER在分層中共享相同的源網(wǎng)絡(luò)實體和目的網(wǎng)絡(luò)實體,但是跨越不同的路徑。
根據(jù)第三方面的第七種實現(xiàn)形式,在所述SDN控制器的第八種實現(xiàn)形式中,所述路由單元用于配置多條路線,連接不同分層的多條FER以獲得路線。
根據(jù)第三方面的第七種實現(xiàn)形式或者第八種實現(xiàn)形式,在所述SDN控制器的第九種實現(xiàn)形式中,如果所述數(shù)據(jù)包的路線的所述分層中的FER發(fā)生故障,所述選擇單元用于選擇新的FER用于路由所述數(shù)據(jù)包穿過相關(guān)分層。
根據(jù)第三方面的第七種實現(xiàn)形式至第九種實現(xiàn)形式中的任一項,在所述SDN控制器的第十種實現(xiàn)形式中,所述SDN控制器還用于利用分層的多條FER實現(xiàn)所述分層中的負載均衡。
根據(jù)第三方面的第七種實現(xiàn)形式至第十種實現(xiàn)形式中的任一項,在所述SDN控制器的第十一種實現(xiàn)形式中,所述選擇單元用于選擇路線,由所述SND控制器選擇包含所述源邊緣交換機的分層中的FER,并且由包含在所述分層中的各個源網(wǎng)絡(luò)實體基于至少一個預(yù)先配置的路由規(guī)則確定每個其他分層中的FER。
根據(jù)第三方面的第十一種實現(xiàn)形式,在所述SDN控制器的第十二種實現(xiàn)形式中,所述至少一個預(yù)先配置的路由規(guī)則是基于所述數(shù)據(jù)包的類和/或優(yōu)先級。
第三方面的SDN控制器與第一方面的方法有相同的優(yōu)勢。
本發(fā)明的第四方面提供了包括程序代碼的計算機程序,當(dāng)所述計算機程序在計算機上運行時,所述程序代碼用于執(zhí)行第一方面,第二方面或者第一方面和第二方面的任一種實現(xiàn)形式提供的方法。
由于所述計算機程序允許運行上述方法,因此第一方面提供的方法和第二方面提供的方法中的相同優(yōu)勢就可以分別實現(xiàn)。
需要說明的是,本申請中描述的所有設(shè)備、元件、單元和方法均可以在軟件元件、硬件元件或者二者的任意組合中實現(xiàn)。本申請描述的各個實體所執(zhí)行的所有步驟以及所描述的由各個實體執(zhí)行的功能旨在說明各個實體用于執(zhí)行各自步驟和功能。即使在下面特定實施例的描述中,完全由永久性實體執(zhí)行的特定功能或步驟沒有在執(zhí)行特定步驟或功能的實體的特定細節(jié)元件的描述中體現(xiàn),技術(shù)人員也應(yīng)該了解這些方法和功能可以在各自軟件元件、硬件元件或者二者的任意組合中實現(xiàn)。
附圖說明
結(jié)合所附附圖,下面具體實施例的描述將闡述上述本發(fā)明的各方面及其實現(xiàn)形式,其中:
圖1示出本發(fā)明提供的方法的基本實施例;
圖2示出本發(fā)明提供的SDN控制器的基本實施例;
圖3示出本發(fā)明提供的路由方案;
圖4示出本發(fā)明實施例提供的路由方案;
圖5示出本發(fā)明實施例提供的方法步驟的流程圖;
圖6示出現(xiàn)有技術(shù)中的路由。
具體實施方式
圖1在(a)中示出本發(fā)明實施例提供的基本方法100。在第一步驟101中,SDN控制器在覆蓋所有非邊緣交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線。在第二步驟102中,源邊緣交換機將所述源邊緣交換機接收的新的數(shù)據(jù)包轉(zhuǎn)發(fā)至所述SDN控制器,例如作為“數(shù)據(jù)包進入消息”。替代性地,所述邊緣交換機只將所述數(shù)據(jù)包的頭轉(zhuǎn)發(fā)至所述SDN控制器。
在第三步驟103中,所述SDN控制器根據(jù)所述數(shù)據(jù)包的目的邊緣交換機選擇其中一條所述路線。最后,在第四步驟104中,所述SDN控制器分別配置源邊緣交換機和目的邊緣交換機,以沿著所選擇的路線發(fā)送所述數(shù)據(jù)包。例如,所述SDN控制器分別發(fā)送“flow-mod命令”至源邊緣交換機和目的邊緣交換機,以根據(jù)所述新的數(shù)據(jù)包修改這些交換機的流表項。
圖1在(b)中示出本發(fā)明實施例提供的替代性基本方法110。在第一步驟111中,SDN控制器在覆蓋所有交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線。在第二步驟112中,通過預(yù)先配置的路線轉(zhuǎn)發(fā)源邊緣交換機接收的新的數(shù)據(jù)包。
圖2示出本發(fā)明實施例提供的基本的SDN控制器200。所述SDN控制器200專門用于執(zhí)行圖1中所示的方法100和/或方法110的方法步驟。所述SDN控制器200包括至少一個路由單元201、接收單元202、選擇單元203以及配置單元204。這些單元201至204中的每個單元都可以執(zhí)行圖1中所示的方法100的方法步驟。但是所述單元201至204也可以包含在一個更大的單元中,例如微控制器或者處理器,這個更大的單元根據(jù)所述方法100的方法步驟執(zhí)行各自功能。
所述路由單元201至少用于在覆蓋所有非邊緣交換機的網(wǎng)絡(luò)中的任意兩個邊緣交換機之間配置多條路線。所述接收單元202至少用于從源邊緣交換機接收新的數(shù)據(jù)包或者所述數(shù)據(jù)包的頭,并且相應(yīng)地通知所述選擇單元203。然后所述選擇單元203至少用于根據(jù)所述數(shù)據(jù)包的目的邊緣交換機從所述路由單元201建立的所述路線中選擇其中的一條。所述數(shù)據(jù)包的目的邊緣交換機例如包含在所述數(shù)據(jù)包的頭中。
最后,根據(jù)所述選擇單元203的選擇,所述配置單元204至少用于僅為所述數(shù)據(jù)包配置源邊緣交換機和目的邊緣交換機,以沿著所選擇的路線發(fā)送所述數(shù)據(jù)包。所述配置源邊緣交換機和目的邊緣交換機是通過例如修改流表項來實現(xiàn),從而使得這些邊緣交換機沿著所選擇的路線發(fā)送所述數(shù)據(jù)包。
圖3示出本發(fā)明其中一個實施例,該實施例是圖1和圖2所示的基本實施例的擴展。特別地,圖3示出SDN 300,其中包括至少一個SDN控制器301和多個邊緣交換機。圖3所示的SDN 300包括不同的網(wǎng)絡(luò)層,特別地,三層分別稱為“邊緣層”、“聚合層”和“核心層”。但是這只是示例,本發(fā)明也可以應(yīng)用于只有一層的SDN或者不止3層的SDN中。來自H1的數(shù)據(jù)包旨在通過所述SDN 300發(fā)送至H2。因此,由源邊緣交換機302從H1接收數(shù)據(jù)包,然后由目的邊緣交換機303發(fā)送至H2。
根據(jù)本發(fā)明的方案,SDN控制器301在所述SDN 300中從所述源邊緣交換機302到所述目的邊緣交換機303配置多條路線。優(yōu)選地,所述SDN控制器301在所述源邊緣交換機302和所述目的邊緣交換機303之間配置多種可能的連接,即所述SDN的一個或者多個分層中多個可能的網(wǎng)絡(luò)節(jié)點。新的數(shù)據(jù)包一到達所述源邊緣交換機302,所述源邊緣交換機302就將該數(shù)據(jù)包或者該數(shù)據(jù)包的頭發(fā)送至所述SDN控制器301。然后所述SDN控制器301確定路徑,即數(shù)據(jù)包穿過所述SDN 300應(yīng)采用的路線,并且通過分別配置所述源邊緣交換機302和所述目的邊緣交換機303建立連接。如果穿過所述SDN 300只存在一種可能的路線,則所述源邊緣交換302可能直接路由該數(shù)據(jù)包,即無需發(fā)送數(shù)據(jù)包或者數(shù)據(jù)包的頭至所述SDN控制器301。
特別地,對于圖3示出的有三個分層(邊緣層、聚合層和核心層)的SDN 300,尤其是對于Clos架構(gòu)、超立方體或者胖樹等fabric網(wǎng)絡(luò),分層與分層上下之間存在多條路徑。因此,所述SDN控制器301可以創(chuàng)建穿過不同分層的多條路線,優(yōu)選每個分層中每個節(jié)點之間的連接。所述SDN控制器301可以特別創(chuàng)建所謂的轉(zhuǎn)發(fā)等效路線(Forwarding Equivalent Route,簡稱FER),其中每條FER在分層中共享相同的源網(wǎng)絡(luò)實體和目的網(wǎng)絡(luò)實體,但是跨越不同的路徑。從圖3中可以看出,存在幾組FER,例如C和D都是聚合層與核心層之間的FER(稱之為“第一分層FER”),A和B都是邊緣層與聚合層之間的FER(稱之為“第二分層FER”)。例如,C和D在聚合層有相同的源實體和目的實體,但是在聚合層與核心層之間跨越不同的路徑。A和B在邊緣層有相同的源邊緣交換機和目的邊緣交換機,但是在邊緣層與聚合層之間跨越不同的路徑。
優(yōu)選由所述SDN控制器301創(chuàng)建FER,不同分層的FER可以在各個分層之間連接,以形成所述網(wǎng)絡(luò)中的任意兩個邊緣交換機之間的多條路線。例如,在圖3中,第一分層FER可以與第二分層FER連接。從而可以分別控制每個分層的FER。每個分層可以保持自己的一組FER。
在圖3中,H1和H2之間的路徑可以采用不同分層的不同F(xiàn)ER連接的路線,例如,從H1發(fā)送至H2的數(shù)據(jù)包可以遍歷A→C→B或者A→D→B。所述SDN控制器301在接收到所述源邊緣交換機302發(fā)送的數(shù)據(jù)包進入消息時,優(yōu)先確定該數(shù)據(jù)包將采用的路線。所述SDN控制器301可以基于數(shù)據(jù)包頭中的源IP地址、數(shù)據(jù)包頭中的服務(wù)類型字段項、分配給該數(shù)據(jù)包的優(yōu)先級或者所述SDN 300中的當(dāng)前負載分布等確定該數(shù)據(jù)包將采用的路線。在所述SDN控制器301選擇路線之后,所述源邊緣交換機302通知該數(shù)據(jù)包在特定路線上傳輸,然后該數(shù)據(jù)流的所有后續(xù)數(shù)據(jù)包均沿著此路線發(fā)送,所述SDN控制器301不需要進一步配置沿著此路線的不同網(wǎng)絡(luò)實體。
如果所述SDN控制器301選擇的路線發(fā)生故障或者一個分層中所選擇路線的FER發(fā)生故障,可以自動選擇不同的FER路線。每個分層的FER也可以用于保護或者負載均衡。在每個分層中,數(shù)據(jù)包可以通過沿著FER的標(biāo)簽交換路線或者通過隧道傳輸發(fā)送。
所述SDN控制器301還能夠沿著所選擇的路線監(jiān)測所述數(shù)據(jù)包的流動,必要時為相關(guān)數(shù)據(jù)包或者數(shù)據(jù)流(例如FTP會話或者載波業(yè)務(wù)等長期數(shù)據(jù)流)選擇新的路線。每個新選擇的路線可以再次與不同分層的多個FER連接。因此,相比標(biāo)準(zhǔn)的常規(guī)機制,fabric架構(gòu)可以實現(xiàn)更多益處。
圖4示出本發(fā)明另一個實施例,該實施例是上述實施例的擴展。與圖3相同,SDN控制器301在每個分層之間建立多條路線。例如,路線2和路線3是從源邊緣交換機302到目的邊緣交換機303的兩條可能路線。如上所述,所述SDN控制器301能夠為每個到達所述源邊緣交換機302的新的數(shù)據(jù)包穿過SDN 300選擇路線。因此,針對不同的數(shù)據(jù)包或者數(shù)據(jù)流的不同類,從H1到H2可能選擇不同的默認(rèn)路線。例如,針對高優(yōu)先級的數(shù)據(jù)包可以選擇路線2,針對低優(yōu)先級的數(shù)據(jù)包可以選擇路線3。針對短期數(shù)據(jù)流和長期數(shù)據(jù)流(例如FTP、載波業(yè)務(wù)等),可以分別使用不同的路線。這與標(biāo)準(zhǔn)路由中的默認(rèn)網(wǎng)關(guān)概念完全不同,在標(biāo)準(zhǔn)路由中,(有且只有)一個下一跳按照指定發(fā)送所有的未知數(shù)據(jù)包。
圖5示出本發(fā)明實施例提供的方法500的流程圖。本實施例是圖1所示的方法100或者110的擴展。在圖5中,在步驟501中,SDN應(yīng)用在SDN控制器301上運行。然后在步驟502中,將所述SDN劃分成N個分層。例如,圖3所示的SDN 300被劃分成3個分層。在步驟503中,可以在每個分層的任意兩個端口之間建立連接。此連接就是上文所述的FER。優(yōu)選地,每個FER都分配有路線ID。在步驟504中,配置最少的一組路線,使得SDN中每個分層的任意兩個實體之間具有連通性。然后,在步驟505中,所述系統(tǒng)等待連接。所述步驟502至步驟504對應(yīng)于圖1所示的步驟101或者步驟111,即步驟502至步驟504是步驟101或者步驟111的擴展。
在步驟506中,數(shù)據(jù)流的第一數(shù)據(jù)包到達源邊緣交換機302。在步驟507中,所述SDN控制器301配置相關(guān)端點,即源邊緣交換機302和目的邊緣交換機304,并且為發(fā)送數(shù)據(jù)包穿過所述SDN分配默認(rèn)路線。因此,可選地,所述SDN控制器針對隧道傳輸進行配置。步驟507對應(yīng)于圖1所示的步驟103和步驟104。在步驟508中,所述第一數(shù)據(jù)包通過選擇的預(yù)先配置的路線發(fā)送。優(yōu)選地,在步驟509中,所述SDN控制器301監(jiān)測所述數(shù)據(jù)包的流動。由于這是FTP會話或者Telco業(yè)務(wù)等長期數(shù)據(jù)流,因此所述SDN控制器301可以確定該數(shù)據(jù)包是否存在優(yōu)化的或者可替代的路線等。如果所述SDN控制器301確定需要優(yōu)化的或者可替代的路線,所述SDN控制器301計算新的路線并且相應(yīng)地配置相關(guān)網(wǎng)絡(luò)實體,使得所述數(shù)據(jù)包沿著新的路線發(fā)送。在計算新的路線之后或者如果確定不需要優(yōu)化的或者可替代的路線,到達數(shù)據(jù)流終點。
綜上,在本發(fā)明中,SDN控制器在覆蓋所有非邊緣交換機的SDN中的任意兩個邊緣交換機之間預(yù)先配置多條路線。因此,可以消除或者至少可以減少OF協(xié)議中眾所周知的競態(tài)條件問題,因為所有的路線都是已知的,并且SDN控制器在運行期間僅需要配置源邊緣交換機和目的邊緣交換機。
已經(jīng)結(jié)合作為實例的不同實施例以及實施方案描述了本發(fā)明。但本領(lǐng)域技術(shù)人員通過實踐所申請發(fā)明并且研究附圖以及公開且獨立的權(quán)利要求書能夠理解并獲得其他變體。在權(quán)利要求以及說明書中,術(shù)語“包括”不排除其他元件或步驟,并且“一個”并不排除復(fù)數(shù)可能。單個元件或其它單元可滿足權(quán)利要求書中所敘述的若干實體或項目的功能。僅憑某些措施記載于相互不同的從屬權(quán)利要求書中這個單純的事實并不意味著這些措施的結(jié)合不能在有利的實現(xiàn)方式中使用。