在軟件定義網絡中支持任意路由標準的制作方法
【專利說明】
[0001] 相關申請的奪叉引用
[0002] 本申請要求于2013年3月15日提交的美國專利申請序列號13/843,536的權益, 其通過引用被結合于此。
技術領域
[0003] 本公開中呈現的實施例一般涉及軟件定義網絡。更具體地,這里公開的實施例提 供支持任意路由標準的軟件定義網絡。
【背景技術】
[0004] 路由協議已經被設計為在創建和維護路由時考慮許多網絡相關的條件,如可達性 和網絡擁塞。然而,目前,沒有方法基于非網絡相關的條件(如動態延遲、服務水平協議、身 份條件、帶寬,或需要一定量流量流經給定提供商的合同安排)來進行路由,因為不能為每 個客戶將這些能力合并入交換機。
【附圖說明】
[0005] 以使得能夠更詳細地理解本公開的上述特征的方式,可通過參考實施例(其中的 一些實施例被示出在附圖中)來獲得對上面簡述的公開的更具體描述。然而,要注意的是, 附圖僅示出了本公開的典型實施例并因此不被視為限制其范圍,因為此公開可允許其他同 等有效的實施例。
[0006] 圖1A-1C是根據這里所公開的一個實施例示出了在SDN使能網絡中支持任意路由 標準的技術的簡圖。
[0007] 圖2根據這里所公開的一個實施例示出了在SDN使能網絡中支持任意路由標準的 方法。
[0008] 圖3根據這里所公開的一個實施例示出了基于非傳統路由標準修改路由的方法。
[0009] 圖4根據這里所公開的一個實施例示出了在SDN使能網絡中支持任意路由標準的 系統。
【具體實施方式】 [0010]
[0011] 這里公開的實施方案提供了一種基于非路由標準路由數據通信的方法,其中通過 由網絡元件接收數據分組,在網絡元件的路由表中識別第一路由用于路由數據分組,由在 網絡元件上執行的應用計算基于一個或多個非路由標準的第一路由的路由得分,由應用計 算基于一個或多個非路由標準路由數據分組的第二路由的路由得分,并且當確定第二路由 的路由得分小于第一路由的路由得分時,更新路由表使得網絡元件根據第二路由來路由數 據分組。
[0012] 具體實施例
[0013] 這里公開的實施例使能網絡可編程性以在網絡層上定義針對數據轉發和流量分 類的規則。用戶可以在策略引擎中定義策略以在網絡內控制網絡元件的路由動作,基于通 常不用于傳統網絡協議的參數(包括例如,身份考慮、成本考慮、合約考慮以及天氣考慮, 或任何其他任意標準)允許流量控制。例如,在一個實施例中,策略引擎可以通過評估傳輸 成本并將流量轉移到最低成本鏈路來將路由優化為最低成本(在貨幣方面)。在另一實施 例中,策略被優化用于客戶體驗,并且轉移流量以保護服務水平協議(SLA)。充分利用軟件 定義網絡(SDN)使能網絡的可編程方面,這里公開的實施例允許各種各樣的非傳統路由標 準來影響路由和轉發決策。
[0014] 軟件定義網絡(SDN)允許網絡(傳統的靜態實體)本質上變得更加動態。SDN向 應用開發者開放數據網絡,應用開發者可編寫應用來管理網絡元件和通過網絡元件的數據 流而無需到網絡元件自身的物理接入。網絡元件不僅是"器具",SDN將網絡硬件視為能夠 由軟件操縱的分布式計算系統的一部分。為SDN編寫應用的應用開發者可以在可接入網絡 的任何裝置上執行應用。應用可以遠程地或本地位于網絡元件自身上地執行命令并將功能 應用于網絡裝置(和其中的數據流)。通過在SDN中使用應用,開發者可以管理網絡元件的 網絡行為(包括路由、服務質量(QoS)和帶寬分配)以及管理網絡元件自身。更具體地,在 SDN中執行的應用(如路由策略引擎)可以基于任何軟件定義的網絡標準在SDN中修改路 由。此外,不同的編程邏輯可以被應用于相同網絡拓撲中的不同流或分組,從而使得每個網 絡圖不需要具有它自身的SDN應用的實例。
[0015] 各種實施例的描述在下面被呈現用于描述的目的,而并不意圖窮盡或受限于所公 開的實施例。在不背離所述實施例的范圍和精神的情況下,許多修改和變更對于本領域的 普通技術人員將是顯而易見的。這里所用的術語被選取來最佳地描述實施例的原則、實際 應用或者相對于市場上發現的技術的技術改進,或者使得本領域的其他普通技術人員能夠 理解這里所公開的實施例。
[0016] 如將由本領域的技術人員所認識到的那樣,本公開的各方面可被實施為一種系 統、方法或計算機程序產品。因此,本公開的各方法可采取完全硬件實施例、完全軟件實施 例(包括固件、居留軟件、微代碼等等)、或者組合了軟件和硬件方面的實施例,其在這里一 般均可被稱作"電路"、"模塊"或"系統"。另外,本公開的各方面可采取在一個或多個計算 機可讀介質中實施的計算機程序產品的形式,該一個或多個計算機可讀介質具有在其上實 施的計算機可讀程序代碼。
[0017] -個或多個計算機可讀介質的任何組合可被采用。計算機可讀介質可以是計算機 可讀信號介質或計算機可讀存儲介質。計算機可讀存儲介質可以是例如但不限于:電的、磁 的、光的、電磁的、紅外的、或半導體的系統、設備或裝置,或上述各項的任何合適的組合。計 算機可讀存儲介質的更具體示例(非詳盡列表)將包括以下各項:具有一條或多條導線的 電連接、便攜式計算機軟盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(R0M)、可擦除可編 程只讀存儲器(EPROM或閃存)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光存儲設備、磁存 儲設備,或上述各項的任何合適的組合。在本文檔的上下文中,計算機可讀存儲介質可以是 包含或存儲程序以由指令執行系統、設備或裝置使用或與其相連接的任何有形介質。
[0018] 計算機可讀信號介質可以包括其中(例如,在基帶中或者作為載波的一部分)實 施有計算機可讀程序代碼的傳播數據信號。這種傳播信號可采用多種形式中的任何一種, 該多種形式包括但不限于:電磁的、光的,或其任何合適的組合。計算機可讀信號介質可以 是能夠通信、傳播或傳送程序以供由指令執行系統、設備或裝置使用或與其相連接、但不是 計算機可讀存儲介質的任何計算機可讀介質。
[0019] 計算機可讀介質上實施的程序代碼可以使用任何適當的介質進行傳輸,適當的介 質包括但不限于:無線、有線、光纖電纜、射頻(RF)等,或上述各項的任何合適的組合。
[0020] 用于執行本公開的多個方面的操作的計算機程序代碼可以以一種或多種編程語 言的任何組合來編寫,該一種或多種編程語言包括:諸如JAVA、Smalltalk、C++等面向對象 的編程語言,諸如"C"編程語言或類似編程語言之類的傳統程序編程語言。程序代碼可完 全地在用戶的計算機上執行,部分地在用戶的計算機上執行,作為獨立的軟件包執行,部分 地在用戶的計算機上并且部分地在遠程計算機上執行,或者完全地在遠程計算機或者服務 器上執行。在后一種情況中,遠程計算機可以通過任何類型的網絡連接到用戶的計算機,網 絡包括局域網(LAN)或廣域網(WAN),或者可以(例如,通過使用互聯網服務提供商的互聯 網)連接到外部計算機。
[0021] 下面參考根據本公開的實施例的方法、設備(系統)和計算機程序產品的的流程 圖示和/或框圖對本公開的各方面進行描述。將理解的是,流程圖和/或框圖的每個框以 及流程圖和/或框圖中的多個框的組合能夠通過計算機程序指令實現。這些計算機程序指 令可以被提供給通用計算機、專用計算機或其它可編程數據處理設備的處理器以形成一種 機器,以使得通過計算機的處理器或其它可編程指令執行裝置執行的指令創建用于實現流 程圖和/或框圖的一個或多個框中指定的功能/動作的機制。
[0022] 這些計算機程序指令也可以被存儲在計算機可讀介質中,其能夠指導計算機、其 它可編程數據處理設備或其它裝置以特定的方式運行,以使得被存儲在計算機可讀介質中 的指令產生包括指令的制品,其實現流程圖和/或框圖的一個或多個框中指定的功能/動 作。
[0023] 計算機程序指令還可以被加載到計算機、其它可編程指令執行設備或其它裝置以 使得一系列操作步驟在計算機、其它可編程設備或其它裝置上被執行以產生計算機實現的 處理,從而在計算機或其它可編程設備上執行的指令提供用于實現流程圖和/或框圖的一 個或多