欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于處理未知單播數(shù)據(jù)包的方法和系統(tǒng)的制作方法

文檔序號:8003888閱讀:457來源:國知局
用于處理未知單播數(shù)據(jù)包的方法和系統(tǒng)的制作方法
【專利摘要】本申請涉及用于處理未知單播數(shù)據(jù)包的方法和系統(tǒng)。所述系統(tǒng)包括:適于運(yùn)行交換機(jī)控制器應(yīng)用的處理器,用于檢測網(wǎng)絡(luò)中的交換機(jī)的邏輯器,用于確定交換機(jī)能夠通過交換機(jī)控制器應(yīng)用進(jìn)行通信的邏輯器,以及用于改寫用于處理交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),交換機(jī)將由其接收到的任何未知單播數(shù)據(jù)包發(fā)送到系統(tǒng)代替泛洪的默認(rèn)規(guī)則的邏輯器。所述方法包括:檢測網(wǎng)絡(luò)中的交換機(jī),確定交換機(jī)能夠通過交換機(jī)控制器應(yīng)用進(jìn)行通信,以及改寫用于處理交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),交換機(jī)將由其接收到的任何未知單播數(shù)據(jù)包發(fā)送到交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則。
【專利說明】用于處理未知單播數(shù)據(jù)包的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)中心基礎(chǔ)結(jié)構(gòu),具體來說,本發(fā)明涉及通過避免由交換機(jī)MAC地址表溢出所產(chǎn)生的未知單播泛洪(unicast flood)來改善結(jié)構(gòu)帶寬使用率。
【背景技術(shù)】
[0002]在分組交換網(wǎng)絡(luò)交換機(jī)中,通常對目的地媒體訪問控制(MAC)地址執(zhí)行查詢,以發(fā)現(xiàn)用于轉(zhuǎn)發(fā)數(shù)據(jù)包的交換設(shè)備的實(shí)際目的地端口。對MAC地址學(xué)習(xí)表執(zhí)行此查詢。大多數(shù)系統(tǒng)使用某種類型的交換處理器,諸如專用集成電路(ASIC),來進(jìn)行此判斷。交換處理器維護(hù)用于執(zhí)行查詢解析的查詢表,該查詢表在典型的網(wǎng)絡(luò)可以相當(dāng)長,可能具有成千上萬個(gè)條目。查詢表存儲在芯片中或者存儲在芯片外部。
[0003]當(dāng)交換機(jī)的MAC地址表變滿時(shí),沒有容量學(xué)習(xí)新MAC地址條目,盡管在數(shù)據(jù)包處理過程中可能由交換機(jī)發(fā)現(xiàn)新的未知的MAC地址。在此情況下,當(dāng)帶有不在MAC地址表里的目的地MAC的單播數(shù)據(jù)包到達(dá)時(shí),交換機(jī)可能既不能從傳入的數(shù)據(jù)包“學(xué)習(xí)IAC地址,交換機(jī)也不能夠確定將傳入的數(shù)據(jù)包轉(zhuǎn)發(fā)到哪一個(gè)端口,因?yàn)镸AC地址不與交換機(jī)的外出端口相關(guān)聯(lián)。
[0004]為了解決此情況,當(dāng)前,交換機(jī)的默認(rèn)行為是在全部外出端口(排除在其上接收到數(shù)據(jù)包的傳入端口)上創(chuàng)建未知單播泛洪(發(fā)送到多個(gè)端口的單播數(shù)據(jù)包),好像單播泛洪是廣播數(shù)據(jù)包(多播數(shù)據(jù)包)。在發(fā)送單播泛洪的時(shí)間和接收到響應(yīng)的時(shí)間兩者之間,MAC地址表中的一個(gè)或多個(gè)MAC地址條目必須老化(age out),以便來自具有目的地MAC地址的設(shè)備的響應(yīng)通過創(chuàng)建MAC地址/交換機(jī)端口關(guān)聯(lián),允許交換機(jī)“學(xué)習(xí)”作出響應(yīng)的設(shè)備的MAC地址,以便用于未來的轉(zhuǎn)發(fā)引用。如果MAC地址表仍滿(B卩,在響應(yīng)時(shí)間間隔內(nèi),沒有現(xiàn)有的MAC地址條目老化),那么相同的問題會持續(xù),并且未知的單播廣播反復(fù)地泛洪結(jié)構(gòu)。
[0005]此默認(rèn)交換機(jī)行為存在兩個(gè)問題。首先,此行為消耗諸如結(jié)構(gòu)帶寬之類的關(guān)鍵資源,其次,此行為可能會導(dǎo)致非希望的主機(jī)接收到敏感的流量(以單播泛洪的形式)的安全問題。
[0006]相應(yīng)地,具有能夠解決接收具有未知MAC地址的數(shù)據(jù)包而不會產(chǎn)生單播泛洪的問題的系統(tǒng)和/或方法是有益的。

【發(fā)明內(nèi)容】

[0007]在一個(gè)實(shí)施例中,系統(tǒng)包括以硬件實(shí)現(xiàn)的適于運(yùn)行交換機(jī)控制器應(yīng)用的處理器,被配置成用于檢測網(wǎng)絡(luò)中的交換機(jī)的邏輯器,被配置成用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的邏輯器,以及被配置成用于改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述系統(tǒng)代替泛洪的默認(rèn)規(guī)則的邏輯器。
[0008]根據(jù)另一實(shí)施例,用于處理未知單播數(shù)據(jù)包的計(jì)算機(jī)程序產(chǎn)品包括實(shí)現(xiàn)了計(jì)算機(jī)可讀的程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀的程序代碼包括:被配置成用于檢測網(wǎng)絡(luò)中的交換機(jī)的計(jì)算機(jī)可讀的程序代碼,被配置成用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的計(jì)算機(jī)可讀的程序代碼,以及被配置成用于改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則的計(jì)算機(jī)可讀的程序代碼,其中所述交換機(jī)控制器能夠運(yùn)行所述交換機(jī)控制器應(yīng)用和與所述交換機(jī)進(jìn)行通信。
[0009]在再一個(gè)實(shí)施例中,一種用于處理未知單播數(shù)據(jù)包的方法包括:檢測包括交換機(jī)和交換機(jī)控制器的網(wǎng)絡(luò)中的交換機(jī),確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信,以及改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則。
[0010]根據(jù)另一實(shí)施例,交換機(jī)包括以硬件實(shí)現(xiàn)的適于運(yùn)行OpenFlow應(yīng)用的處理器,被配置成用于允許OpenFlow控制器改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述OpenFlow控制器代替泛洪的默認(rèn)規(guī)則的邏輯器,被配置成用于接收未知單播數(shù)據(jù)包的邏輯器,被配置成用于確定何時(shí)本地媒體訪問控制(MAC)地址表已滿的邏輯器,被配置成用于當(dāng)所述本地MAC地址不滿時(shí)學(xué)習(xí)與所述數(shù)據(jù)包相關(guān)聯(lián)的源MAC地址的邏輯器,被配置成用于當(dāng)所述本地MAC地址已滿時(shí)準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目并將所述源MAC進(jìn)入端口關(guān)聯(lián)條目發(fā)送到所述OpenFlow控制器的邏輯器,被配置成用于確定與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址何時(shí)位于所述本地MAC地址表中的邏輯器,被配置成用于當(dāng)與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址位于所述本地MAC地址表中時(shí),根據(jù)所述目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯器,以及被配置成用于根據(jù)存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包或者廣播所述數(shù)據(jù)包的邏輯器,其中當(dāng)具有所述目的地MAC地址的條目位于所述擴(kuò)展的MAC地址表中時(shí),從所述OpenFlow控制器接收存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址。
[0011]通過閱讀下面參考附圖進(jìn)行的作為本發(fā)明的原理飛示例示出的詳細(xì)描述,本發(fā)明的其他方面和實(shí)施例將變得顯而易見。
【專利附圖】

【附圖說明】
[0012]圖1示出了根據(jù)一個(gè)實(shí)施例的網(wǎng)絡(luò)體系結(jié)構(gòu)。
[0013]圖2示出了根據(jù)一個(gè)實(shí)施例的可以與圖1的服務(wù)器和/或客戶端相關(guān)聯(lián)的代表性的硬件環(huán)境。
[0014]圖3A是根據(jù)一個(gè)實(shí)施例的網(wǎng)絡(luò)的簡圖。
[0015]圖3B示出了根據(jù)一個(gè)實(shí)施例的網(wǎng)絡(luò)的簡圖。
[0016]圖4示出了根據(jù)一個(gè)實(shí)施例的使用OpenFlow的網(wǎng)絡(luò)的簡圖。
[0017]圖5是根據(jù)一個(gè)實(shí)施例的方法的流程圖。
[0018]圖6是根據(jù)另一實(shí)施例的方法的流程圖。
[0019]圖7是根據(jù)再一個(gè)實(shí)施例的方法的流程圖。
[0020]圖8是根據(jù)另一實(shí)施例的方法的流程圖?!揪唧w實(shí)施方式】
[0021]下面的描述只用于說明本發(fā)明的一般原理,而不對下列的權(quán)利要求書中所敘述的發(fā)明構(gòu)思作出限制。進(jìn)一步地,此處所描述的特定特征可以與各種可能的組合和置換中的每一種中的其他所描述的特征組合地使用。
[0022]除非此處以別的方式具體地定義,所有術(shù)語都是作為它們的最廣泛的可能的解釋給出的,包括從說明書暗示的含義以及所屬領(lǐng)域的技術(shù)人員所理解的含義和/或如在詞典、專著等等中所定義的。
[0023]還必須指出,如在說明書和所附權(quán)利要求書中所使用的,除非另作說明,單數(shù)形成“一”,“一個(gè)”包括多個(gè)涉及的對象。
[0024]在一種方法中,用于學(xué)習(xí)單播數(shù)據(jù)包的未知媒體訪問控制(MAC)地址的默認(rèn)規(guī)則可以使用諸如OpenFlow控制器(OFC)之類的交換機(jī)控制器來實(shí)現(xiàn),該交換機(jī)控制器與在交換機(jī)上操作的諸如OpenFlow代理(OFA)之類的代理進(jìn)行通信。交換機(jī)控制器可以代表交換機(jī)(其本機(jī)MAC地址表可能已滿)維護(hù)擴(kuò)展的MAC地址表,以指示向交換機(jī)的轉(zhuǎn)發(fā)決定,如此避免了網(wǎng)絡(luò)中的廣播泛洪(broadcast flood)。
[0025]在一個(gè)一般性的實(shí)施例中,系統(tǒng)包括以硬件實(shí)現(xiàn)的適于運(yùn)行交換機(jī)控制器應(yīng)用的處理器,被配置成用于檢測網(wǎng)絡(luò)中的交換機(jī)的邏輯,被配置成用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的邏輯,以及被配置成用于改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述系統(tǒng)代替泛洪的默認(rèn)規(guī)則的邏輯。
[0026]根據(jù)另一一般性的實(shí)施例,用于處理未知單播數(shù)據(jù)包的計(jì)算機(jī)程序產(chǎn)品包括實(shí)現(xiàn)了計(jì)算機(jī)可讀的程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀的程序代碼包括:被配置成用于檢測網(wǎng)絡(luò)中的交換機(jī)的計(jì)算機(jī)可讀的程序代碼,被配置成用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的計(jì)算機(jī)可讀的程序代碼,以及被配置成用于改寫用于處理所述交換機(jī)中的未知單 播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則的計(jì)算機(jī)可讀的程序代碼,其中所述交換機(jī)控制器能夠運(yùn)行所述交換機(jī)控制器應(yīng)用和與所述交換機(jī)進(jìn)行通信。
[0027]在再一個(gè)一般性的實(shí)施例中,一種用于處理未知單播數(shù)據(jù)包的方法包括:檢測包括交換機(jī)和交換機(jī)控制器的網(wǎng)絡(luò)中的交換機(jī),確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信,以及改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則。
[0028]根據(jù)另--般性的實(shí)施例,交換機(jī)包括以硬件實(shí)現(xiàn)的適于運(yùn)行OpenFlow應(yīng)用的
處理器,被配置成用于允許OpenFlow控制器改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述OpenFlow控制器代替泛洪的默認(rèn)規(guī)則的邏輯,被配置成用于接收未知單播數(shù)據(jù)包的邏輯,被配置成用于確定何時(shí)本地媒體訪問控制(MAC)地址表已滿的邏輯,被配置成用于當(dāng)所述本地MAC地址不滿時(shí)學(xué)習(xí)與所述數(shù)據(jù)包相關(guān)聯(lián)的源MAC地址的邏輯,被配置成用于當(dāng)所述本地MAC地址已滿時(shí)準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目并將所述源MAC進(jìn)入端口關(guān)聯(lián)條目發(fā)送到所述OpenFlow控制器的邏輯,被配置成用于確定與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址何時(shí)位于所述本地MAC地址表中的邏輯,被配置成用于當(dāng)與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址位于所述本地MAC地址表中時(shí)根據(jù)所述目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯,以及被配置成用于根據(jù)存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包或者廣播所述數(shù)據(jù)包的邏輯,其中當(dāng)具有所述目的地MAC地址的條目位于所述擴(kuò)展的MAC地址表中時(shí),從所述OpenFlow控制器接收存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址。
[0029]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為〃邏輯"、〃電路"、〃模塊〃或〃系統(tǒng)"。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0030]可以使用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或非瞬時(shí)的計(jì)算機(jī)可讀存儲介質(zhì)。非瞬時(shí)的計(jì)算機(jī)可讀介質(zhì)可以是,例如,但不僅限于,電、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)、裝置、或設(shè)備或前面的各項(xiàng)的任何合適的組合。非瞬時(shí)的計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡列表)包括下列各項(xiàng):便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、便攜式壓縮光盤只讀存儲器(⑶-ROM)、藍(lán)光盤只讀存儲器(BD-R0M)、光存儲設(shè)備、磁存儲設(shè)備,或前面的各項(xiàng)的任何合適的組合。在此文檔的上下文中,非瞬時(shí)的計(jì)算機(jī)可讀存儲介質(zhì)可以是能夠包含、或存儲供指令執(zhí)行系統(tǒng)、設(shè)備使用或與它們一起使用的程序或應(yīng)用程序的任何有形的介質(zhì)。
[0031]計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是非瞬時(shí)的計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序,諸如具有一個(gè)或多個(gè)電線的電連接,光纖等。
[0032]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纖電纜、RF等等,或者上述的任意合適的組合。
[0033]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如"C"程序設(shè)計(jì)語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)或服務(wù)器可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)(SAN)和/或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商(ISP)來通過因特網(wǎng)連接)。[0034]下面將參照根據(jù)本發(fā)明各個(gè)實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的裝置。
[0035]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)0
[0036]計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備,或其他設(shè)備中,以使一系列操作步驟在計(jì)算機(jī)上、其他可編程設(shè)備上或其他設(shè)備上執(zhí)行,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,以便在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的多個(gè)框中所指定的功能/動作的過程。
[0037]圖1示出了根據(jù)一個(gè)實(shí)施例的網(wǎng)絡(luò)體系結(jié)構(gòu)100。如圖1所示,提供了多個(gè)遠(yuǎn)程網(wǎng)絡(luò)102,包括第一遠(yuǎn)程網(wǎng)絡(luò)104和第二遠(yuǎn)程網(wǎng)絡(luò)106。網(wǎng)關(guān)101可以I禹合在遠(yuǎn)程網(wǎng)絡(luò)102和附近網(wǎng)絡(luò)108之間。在本網(wǎng)絡(luò)體系結(jié)構(gòu)100的上下文中,網(wǎng)絡(luò)104,106中每一個(gè)都可以呈現(xiàn)任何形式,包括但不僅限于,LAN、諸如因特網(wǎng)之類的WAN、公用交換電話網(wǎng)(PSTN)、內(nèi)部電話網(wǎng)絡(luò)等等。
[0038]在使用中,網(wǎng)關(guān)101充當(dāng)從遠(yuǎn)程網(wǎng)絡(luò)102到附近網(wǎng)絡(luò)108的進(jìn)入點(diǎn)。如此,網(wǎng)關(guān)101可以充當(dāng)能夠定向到達(dá)網(wǎng)關(guān)101的數(shù)據(jù)的給定數(shù)據(jù)包的路由器,以及對于給定數(shù)據(jù)包提供進(jìn)出網(wǎng)關(guān)101的實(shí)際路徑的交換機(jī)。
[0039]還包括耦合到附近網(wǎng)絡(luò)108的并且通過網(wǎng)關(guān)101從遠(yuǎn)程網(wǎng)絡(luò)102可訪問的至少一個(gè)數(shù)據(jù)服務(wù)器114。應(yīng)該注意,數(shù)據(jù)服務(wù)器114可以包括任何類型的計(jì)算設(shè)備/組件式軟件(group ware)。耦合到每一個(gè)數(shù)據(jù)服務(wù)器114的是多個(gè)用戶設(shè)備116。這樣的用戶設(shè)備116可以包括臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)、打印機(jī),和/或任何其他類型的包含邏輯的設(shè)備。應(yīng)該注意,在某些實(shí)施例中,用戶設(shè)備111也可以直接耦合到網(wǎng)絡(luò)中的任何一種。
[0040]外圍設(shè)備120或外圍設(shè)備系列120,例如,傳真機(jī)、打印機(jī)、掃描儀、硬盤驅(qū)動器、聯(lián)網(wǎng)的和/或本地存儲器單元或系統(tǒng),等等,可以耦合到網(wǎng)絡(luò)104、106、108中的一個(gè)或多個(gè)。應(yīng)該注意,數(shù)據(jù)庫和/或額外的組件可以與耦合到網(wǎng)絡(luò)104、106、108的任何類型的網(wǎng)絡(luò)元件一起使用或集成到它們中。在本描述的上下文中,網(wǎng)絡(luò)元件可以是指網(wǎng)絡(luò)的任何組件。
[0041]根據(jù)某些方法,此處所描述的方法和系統(tǒng)可以利用虛擬系統(tǒng)和/或模仿一個(gè)或多個(gè)其他系統(tǒng)的系統(tǒng)來實(shí)現(xiàn),諸如仿真IBM z/OS環(huán)境的UNIX系統(tǒng),虛擬地托管MICROSOFTWINDOWS環(huán)境的UNIX系統(tǒng),仿真IBM z/0S環(huán)境的MICROSOFT WINDOWS系統(tǒng)等等。在某些實(shí)施例中,此虛擬化和/或仿真可以通過使用VMWARE軟件來增強(qiáng)。
[0042]在更多方法中,一個(gè)或多個(gè)網(wǎng)絡(luò)104、106、108可以表示通常被稱為“云”的系統(tǒng)集群。在云計(jì)算中,諸如處理能力、外圍設(shè)備、軟件、數(shù)據(jù)、服務(wù)器等等之類的共享資源,以按需關(guān)系被提供到云中的任何系統(tǒng),從而允許跨許多計(jì)算系統(tǒng)的服務(wù)的訪問和分布。云計(jì)算通常涉及在云中操作的系統(tǒng)之間的因特網(wǎng)連接,但是如當(dāng)前已知的,也可以使用連接系統(tǒng)的其他技術(shù)。
[0043]圖2示出了根據(jù)一個(gè)實(shí)施例的與圖1的用戶設(shè)備116和/或服務(wù)器114相關(guān)聯(lián)的代表性的硬件環(huán)境。圖2示出了根據(jù)多個(gè)實(shí)施例的具有諸如微處理器之類的中央處理單元(CPU)210以及通過一個(gè)或多個(gè)總線212互連的若干個(gè)其他單元的工作站的典型硬件配置,總線212可以是不同類型,諸如局部總線、并行總線、串行總線等等。
[0044]圖2所示出的工作站包括隨機(jī)存取存儲器(RAM) 214、只讀存儲器(ROM) 216、用于將諸如磁盤存儲器單元220之類的外圍設(shè)備連接到一個(gè)或多個(gè)總線212的I/O適配器218,用于將鍵盤224、鼠標(biāo)226、揚(yáng)聲器228、麥克風(fēng)232、和/或諸如觸摸屏、數(shù)碼相機(jī)(未示出)等等之類的其他用戶接口設(shè)備連接到一個(gè)或多個(gè)總線212的用戶接口適配器222,用于將工作站連接到通信網(wǎng)絡(luò)235 (例如,數(shù)據(jù)處理網(wǎng)絡(luò))的通信適配器234,以及用于將一個(gè)或多個(gè)總線212連接到顯示設(shè)備238的顯示適配器236。
[0045]工作站可以具有諸如MICROSOFT WINDOWS操作系統(tǒng)(OS)、MAC OS,UNIX OS等等之類的操作系統(tǒng)??梢岳斫?,優(yōu)選實(shí)施例也可以在除所提及的那些以外的平臺和操作系統(tǒng)上實(shí)現(xiàn)。優(yōu)選實(shí)施例可以使用JAVA、XML、C和/或C++語言,或其他編程語言,以及面向?qū)ο蟮木幊谭椒▉砭帉???梢允褂迷絹碓蕉嗟乇挥脕黹_發(fā)復(fù)雜應(yīng)用的面向?qū)ο蟮木幊?OOP)。
[0046]現(xiàn)在參考圖3A,示出了根據(jù)一個(gè)實(shí)施例的系統(tǒng)300。系統(tǒng)300包括諸如OFC之類的交換機(jī)控制器302,以及交換機(jī)304。交換機(jī)控制器302適于維護(hù)指出了對未知單播數(shù)據(jù)包的特殊處理的興趣的交換機(jī)中的每一個(gè)的頁面目錄。對于此描述,假設(shè)交換機(jī)304指出了對未知單播數(shù)據(jù)包的特殊處理的興趣。每一個(gè)頁面目錄條目都是每交換機(jī)的,并指向由交換機(jī)控制器302為該特定交換機(jī)維護(hù)的擴(kuò)展的MAC地址到端口號的表。
[0047]如圖3B所示,當(dāng)由已經(jīng)填充了其MAC地址表306的交換機(jī)304接收到未知單播數(shù)據(jù)包時(shí),交換機(jī)304將帶有進(jìn)入端口信息的數(shù)據(jù)包送到(punt)交換機(jī)控制器302。交換機(jī)控制器302在擴(kuò)展的MAC地址表312中為數(shù)據(jù)包中指定的源設(shè)備308創(chuàng)建MAC地址表?xiàng)l目,并通知交換機(jī)304發(fā)出第一廣播,以學(xué)習(xí)與數(shù)據(jù)包相關(guān)聯(lián)的目的地地址。當(dāng)目的地設(shè)備310 (在學(xué)習(xí)其地址之后,在轉(zhuǎn)發(fā)時(shí),應(yīng)該接收數(shù)據(jù)包)作出響應(yīng)時(shí),規(guī)則將帶有額外的進(jìn)入端口信息的響應(yīng)數(shù)據(jù)包送到交換機(jī)控制器302,在交換機(jī)控制器302中,為目的地設(shè)備310創(chuàng)建MAC地址表?xiàng)l目。然后,交換機(jī)控制器302參考擴(kuò)展的MAC地址表312中的以前創(chuàng)建的源設(shè)備308的條目,以指示交換機(jī)304有關(guān)涉及接收到的數(shù)據(jù)包的轉(zhuǎn)發(fā)決定。這導(dǎo)致源設(shè)備308連接到的外出端口上的單播傳輸。
[0048]源設(shè)備308和目的地設(shè)備310之間的任何隨后的通信都請求交換機(jī)控制器302指南,這會導(dǎo)致單播通信(而不是不合需要的廣播或泛洪)。這會持續(xù)直到交換機(jī)的本機(jī)MAC地址表306中的一個(gè)或多個(gè)條目老化,為新條目騰出空間。此時(shí),交換機(jī)控制器302將擴(kuò)展的MAC地址表與交換機(jī)的MAC地址表306同步。由于現(xiàn)在本地“學(xué)習(xí)”源和目的地設(shè)備的MAC地址,因此當(dāng)接收到指出目的地設(shè)備310作為目的地地址的數(shù)據(jù)包時(shí),不再觸發(fā)未知單播處理規(guī)則,由交換機(jī)304本身本地作出外出決定。
[0049]總的來說,在常規(guī)默認(rèn)規(guī)則下作為廣播泛洪發(fā)送的東西僅限于單播傳輸,這會節(jié)省會話時(shí)間上的顯著結(jié)構(gòu)帶寬,并提供安全通信,因?yàn)閺V播不會發(fā)送到由于隱私/權(quán)限設(shè)置潛在地不應(yīng)該接收到它們的設(shè)備。[0050]在一個(gè)示例中,網(wǎng)絡(luò)400包括啟用OpenFlow的以太網(wǎng)交換機(jī)404、源設(shè)備408、目的地設(shè)備410、以及運(yùn)行OFC軟件的服務(wù)器402。服務(wù)器可以運(yùn)行任何合適的操作系統(tǒng),諸如Windows服務(wù)器、Linux等等。根據(jù)各實(shí)施例,假設(shè)圖4中所描述的布局,參考圖5_8更詳細(xì)地說明了規(guī)則建立、對于正反向路徑的決策序列、以及MAC地址表同步。當(dāng)然,相同描述可以應(yīng)用于任何布局,包括圖3A-3B中所示出的那些,等等。
[0051]根據(jù)更多實(shí)施例,交換機(jī)控制器(服務(wù)器402)可以為諸如網(wǎng)絡(luò)400中的其他交換機(jī)和/或交換設(shè)備之類的多個(gè)設(shè)備維護(hù)擴(kuò)展的MAC地址表??梢詾槊恳粋€(gè)設(shè)備,為每一個(gè)VLAN,為每一個(gè)單獨(dú)的虛擬專用網(wǎng)絡(luò)(VPN),每個(gè)域等等,單獨(dú)地維護(hù)每一個(gè)擴(kuò)展的MAC地址表,或者該表可以被包括在單一擴(kuò)展的MAC地址表中。
[0052]現(xiàn)在參考圖5,示出了根據(jù)一個(gè)實(shí)施例的用于初始化交換機(jī)中的默認(rèn)規(guī)則的方法500的流程圖。根據(jù)本發(fā)明,其中在各種實(shí)施例中,方法500可以在圖1-4中所描繪的環(huán)境中的任何一個(gè)環(huán)境中執(zhí)行。當(dāng)然,如本領(lǐng)域技術(shù)人員在閱讀本描述之后所理解的,比圖5中具體描述的那些操作多一些或少一些的操作可以被包括在方法500中。
[0053]方法500的步驟中的每一個(gè)都可以通過操作環(huán)境的任何合適的組件來執(zhí)行。例如,根據(jù)各實(shí)施例,方法500可以部分地或完全地由交換機(jī)、源設(shè)備、目的地設(shè)備、和/或運(yùn)行OpenFlow軟件的服務(wù)器或某種其他交換機(jī)控制器來執(zhí)行。
[0054]如圖5所示,方法500可以利用操作502啟動,此時(shí),檢測交換機(jī)??梢允褂卯?dāng)前已知的任何方法檢測交換機(jī),諸如監(jiān)測心跳信號,通過發(fā)送對響應(yīng)的請求來初始化通信,接收添加了交換機(jī)的指示等等。這也可以被稱為交換機(jī)發(fā)現(xiàn)操作,并可以包括當(dāng)前已知的任何交換機(jī)發(fā)現(xiàn)技術(shù)。
[0055]在操作504中,確定交換機(jī)是否能夠通過諸如OpenFlow之類的交換機(jī)控制器應(yīng)用進(jìn)行通信,該交換機(jī)控制器應(yīng)用適于修改諸如交換機(jī)、路由器、網(wǎng)關(guān)等等之類的網(wǎng)絡(luò)設(shè)備的行為。此確定可以通過根據(jù)交換機(jī)控制器應(yīng)用來發(fā)送消息并確定交換機(jī)是否能夠作出響應(yīng)而作出。在另一種方法中,能夠通過交換機(jī)控制器應(yīng)用進(jìn)行通信的任何交換機(jī)可以在它對被設(shè)計(jì)用于在操作502中檢測交換機(jī)的消息作出響應(yīng)時(shí)指出這種兼容性。
[0056]在操作506中,當(dāng)確定交換機(jī)不能夠通過交換機(jī)控制器應(yīng)用進(jìn)行通信時(shí),默認(rèn)未知單播處理規(guī)則不被改寫,例如,交換機(jī)控制器對發(fā)現(xiàn)的交換機(jī)不執(zhí)行進(jìn)一步的動作。
[0057]在操作508中,當(dāng)確定交換機(jī)能夠通過交換機(jī)控制器應(yīng)用進(jìn)行通信時(shí),默認(rèn)未知單播處理規(guī)則被改寫,以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),向交換機(jī)控制器發(fā)送由交換機(jī)接收到的任何未知單播數(shù)據(jù)包,代替讓交換機(jī)泛洪,例如未知單播數(shù)據(jù)包被發(fā)送到交換機(jī)控制器,然后該交換機(jī)控制器可以執(zhí)行涉及未知單播數(shù)據(jù)包的額外的操作。
[0058]現(xiàn)在參考圖6,示出了根據(jù)一個(gè)實(shí)施例的用于對數(shù)據(jù)包作出響應(yīng)的方法600的流程圖。根據(jù)本發(fā)明,其中,在各種實(shí)施例中,方法600可以在圖1-4中所描繪的環(huán)境中的任何一個(gè)環(huán)境中執(zhí)行。當(dāng)然,如本領(lǐng)域技術(shù)人員在閱讀本描述之后所理解的,比圖6中具體描述的那些操作多一些或少一些的操作可以被包括在方法600中。
[0059]方法600的步驟中的每一個(gè)都可以通過操作環(huán)境的任何合適的組件來執(zhí)行。例如,根據(jù)各實(shí)施例,方法600可以部分地或完全地由交換機(jī)、源設(shè)備、目的地設(shè)備、和/或運(yùn)行OpenFlow軟件的服務(wù)器或某種其他交換機(jī)控制器來執(zhí)行。
[0060]如圖6所示,方法600可以利用操作602啟動,此時(shí)接收數(shù)據(jù)包。對于這些描述,假設(shè)數(shù)據(jù)包是未知單播數(shù)據(jù)包。如果它是多播數(shù)據(jù)包,那么方法600可以在操作602之后結(jié)束。
[0061]數(shù)據(jù)包可以在任何設(shè)備中接收,對于這些描述,假設(shè)數(shù)據(jù)包在交換機(jī)中接收。然而,能夠接收網(wǎng)絡(luò)流量的任何其他設(shè)備都可以接收數(shù)據(jù)包,并且方法600可以與其一起實(shí)現(xiàn)。
[0062]在操作604中,確定本地MAC地址表是否已滿,例如,如果在交換機(jī)本地的表中有任何空間可以添加另一個(gè)設(shè)備的MAC地址的另一個(gè)條目,那么表未滿。
[0063]在操作606中,當(dāng)MAC地址表已滿時(shí),準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目,并將其發(fā)送到交換機(jī)控制器。關(guān)聯(lián)表示在其上面接收到數(shù)據(jù)包的進(jìn)入端口和在數(shù)據(jù)包中指出的源MAC地址(可能在數(shù)據(jù)包的標(biāo)頭中)之間的關(guān)系。
[0064]在操作608中,交換機(jī)控制器接收源MAC進(jìn)入端口關(guān)聯(lián)條目,并創(chuàng)建和/或更新存儲在交換機(jī)控制器上的或以別的方式可以被交換機(jī)控制器訪問的擴(kuò)展的MAC地址表中的條目。
[0065]在操作610中,交換機(jī)控制器指示交換機(jī)廣播數(shù)據(jù)包。
[0066]在操作612中,交換機(jī)廣播數(shù)據(jù)包。執(zhí)行此操作,以便確定數(shù)據(jù)包的目的地地址。
[0067]如果存儲在交換機(jī)控制器上的擴(kuò)展的MAC地址表已經(jīng)包括了源MAC進(jìn)入端口關(guān)聯(lián)條目,例如,交換機(jī)控制器在操作608中只更新條目,那么交換機(jī)控制器發(fā)回交換機(jī)的目的地地址,以用來將單播數(shù)據(jù)包發(fā)送到其打算的目的地,代替廣播數(shù)據(jù)包,如在操作612中所指出的。
[0068]在操作614中,當(dāng)本地MAC地址表未滿時(shí),在數(shù)據(jù)包中指出的源MAC地址由接收到數(shù)據(jù)包的交換機(jī)學(xué)習(xí)。
[0069]現(xiàn)在參考圖7,示出了根據(jù)一個(gè)實(shí)施例的用于對數(shù)據(jù)包作出響應(yīng)的方法700的流程圖。根據(jù)本發(fā)明,其中,在各種實(shí)施例中,方法700可以在圖1-4中所描繪的環(huán)境中的任何一個(gè)環(huán)境中執(zhí)行。當(dāng)然,如本領(lǐng)域技術(shù)人員在閱讀本描述之后所理解的,比圖7中具體描述的那些操作多一些或少一些的操作可以被包括在方法700中。
[0070]方法700的步驟中的每一個(gè)都可以通過操作環(huán)境的任何合適的組件來執(zhí)行。例如,根據(jù)各實(shí)施例,方法700可以部分地或完全地由交換機(jī)、源設(shè)備、目的地設(shè)備、和/或運(yùn)行OFC軟件的服務(wù)器或某種其他交換機(jī)控制器來執(zhí)行。
[0071]如圖7所示,方法700可以利用操作702啟動,此時(shí),接收數(shù)據(jù)包。對于這些描述,假設(shè)數(shù)據(jù)包是未知單播數(shù)據(jù)包。如果它是多播數(shù)據(jù)包,那么方法700可以在操作702之后結(jié)束。
[0072]數(shù)據(jù)包可以在任何設(shè)備中接收,對于這些描述,假設(shè)數(shù)據(jù)包在交換機(jī)中接收。然而,能夠接收網(wǎng)絡(luò)流量的任何其他設(shè)備都可以接收數(shù)據(jù)包,并且方法700可以與其一起實(shí)現(xiàn)。
[0073]在操作704中,確定本地MAC地址表是否已滿,例如,如果在交換機(jī)本地的表中有任何空間可以添加另一個(gè)設(shè)備的MAC地址的另一個(gè)條目,那么表未滿。
[0074]在操作706中,當(dāng)本地MAC地址表未滿時(shí),在數(shù)據(jù)包中指出的源MAC地址由接收到數(shù)據(jù)包的交換機(jī)學(xué)習(xí)。
[0075]在操作708中,當(dāng)MAC地址表已滿時(shí),準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目,并將其發(fā)送到交換機(jī)控制器。關(guān)聯(lián)表示在其上接收到數(shù)據(jù)包的進(jìn)入端口和在數(shù)據(jù)包中指出的源MAC地址(可能在數(shù)據(jù)包的標(biāo)頭中)之間的關(guān)系。
[0076]在操作710中,交換機(jī)控制器接收源MAC進(jìn)入端口關(guān)聯(lián)條目,并創(chuàng)建和/或更新存儲在交換機(jī)控制器上的或以別的方式可以被交換機(jī)控制器訪問的擴(kuò)展的MAC地址表中的條目。
[0077]在操作712中,確定數(shù)據(jù)包的目的地MAC地址是否存儲在本地MAC地址表中。
[0078]在操作714中,當(dāng)目的地MAC地址位于本地MAC地址表中時(shí),交換機(jī)根據(jù)存儲的目的地MAC地址來轉(zhuǎn)發(fā)數(shù)據(jù)包。
[0079]在操作716中,當(dāng)目的地MAC地址未存儲在本地MAC地址表中時(shí),交換機(jī)控制器分析存儲在交換機(jī)控制器上的或以別的方式可以被交換機(jī)控制器訪問的擴(kuò)展的MAC地址表,以查找數(shù)據(jù)包的目的地MAC地址。
[0080]在操作718中,當(dāng)在擴(kuò)展的MAC地址表中發(fā)現(xiàn)目的地MAC地址條目時(shí),交換機(jī)控制器利用外出端口轉(zhuǎn)發(fā)信息來對交換機(jī)作出響應(yīng),以及方法700繼續(xù)操作714。
[0081]在操作720中,當(dāng)在擴(kuò)展的MAC地址表中未發(fā)現(xiàn)目的地MAC地址條目時(shí),交換機(jī)控制器指示交換機(jī)廣播數(shù)據(jù)包,以便確定數(shù)據(jù)包的目的地MAC地址。
[0082]現(xiàn)在參考圖8,示出了根據(jù)一個(gè)實(shí)施例的用于同步MAC地址表的方法800的流程圖。根據(jù)本發(fā)明,其中,在各種實(shí)施例中,方法800可以在圖1-4中所描繪的環(huán)境中的任何一個(gè)環(huán)境中執(zhí)行。當(dāng)然,如本領(lǐng)域技術(shù)人員在閱讀本描述之后所理解的,比圖8中具體描述的那些操作多一些或少一些的操作可以被包括在方法800中。
[0083]方法800的步驟中的每一個(gè)都可以通過操作環(huán)境的任何合適的組件來執(zhí)行。例如,根據(jù)各實(shí)施例,方法800可以部分地或完全地由交換機(jī)、源設(shè)備、目的地設(shè)備、和/或運(yùn)行OpenFlow軟件的服務(wù)器或某種其他交換機(jī)控制器來執(zhí)行。
[0084]如圖8所示,方法800可以利用操作802啟動,此時(shí),確定是否發(fā)生了觸發(fā)事件。在一個(gè)實(shí)施例中,觸發(fā)事件可以是同步時(shí)間間隔超時(shí)。在另一個(gè)實(shí)施例中,觸發(fā)事件可以是同步計(jì)時(shí)器到期。如本領(lǐng)域技術(shù)人員所理解的,也可以使用其他觸發(fā)事件。
[0085]在操作804中,當(dāng)發(fā)生了觸發(fā)事件時(shí),確定交換機(jī)的本地MAC地址表是否已滿,例如,如果在交換機(jī)本地的表中有任何空間可以添加另一個(gè)設(shè)備的MAC地址的另一個(gè)條目,那么表未滿。
[0086]在操作806中,當(dāng)本地MAC地址表已滿時(shí),觸發(fā)事件停止,以便它可以被再次觸發(fā)。例如,當(dāng)觸發(fā)事件是計(jì)時(shí)器時(shí),計(jì)時(shí)器被復(fù)位。在另一個(gè)示例中,當(dāng)觸發(fā)事件是同步時(shí)間間隔時(shí),時(shí)間間隔周期被復(fù)位到開始。
[0087]在操作808中,當(dāng)本地MAC地址表未滿時(shí),交換機(jī)控制器上的擴(kuò)展的MAC地址表與交換機(jī)上的本地MAC地址表同步,例如,擴(kuò)展的MAC地址表中的條目被導(dǎo)入到本地MAC地址中達(dá)到可能的范圍,最有用的條目首先導(dǎo)入??梢允褂卯?dāng)前已知的任何方法,諸如先進(jìn)、最后進(jìn)、使用最多、最重要的等等,來確定有用的條目。
[0088]如圖5-8所不,根據(jù)各實(shí)施例的方法500-800中的任何一個(gè)都可以在系統(tǒng)和/或計(jì)算機(jī)程序產(chǎn)品中實(shí)現(xiàn)。
[0089]根據(jù)一個(gè)實(shí)施例,交換機(jī)可以包括在各種實(shí)施例中以硬件實(shí)現(xiàn)的或以軟件實(shí)現(xiàn)的處理器。處理器可以適于執(zhí)行邏輯并運(yùn)行OpenFlow應(yīng)用或某種其他交換機(jī)控制器應(yīng)用。根據(jù)各實(shí)施例,下列邏輯中的任何或全部都可以被包括在交換機(jī)中:被配置成用于允許諸如OpenFlow控制器之類的交換機(jī)控制器改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包,以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述OpenFlow控制器代替泛洪的默認(rèn)規(guī)則的邏輯,被配置成用于接收未知單播數(shù)據(jù)包的邏輯,被配置成用于確定本地MAC地址表何時(shí)已滿的邏輯,被配置成用于當(dāng)所述本地MAC地址不滿時(shí)學(xué)習(xí)與所述數(shù)據(jù)包相關(guān)聯(lián)的源MAC地址的邏輯,被配置成用于當(dāng)所述本地MAC地址已滿時(shí)準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目并將所述源MAC進(jìn)入端口關(guān)聯(lián)條目發(fā)送到所述交換機(jī)控制器的邏輯,被配置成用于確定與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址何時(shí)位于所述本地MAC地址表中的邏輯,被配置成用于當(dāng)與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址位于所述本地MAC地址表中時(shí)根據(jù)所述目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯,以及被配置成用于根據(jù)存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包或者廣播所述數(shù)據(jù)包的邏輯。當(dāng)具有所述目的地MAC地址的條目位于所述擴(kuò)展的MAC地址表中時(shí),從所述交換機(jī)控制器接收存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址。
[0090]盡管上文描述了各實(shí)施例,但是應(yīng)該理解,它們只是作為示例來呈現(xiàn)的,而不作為限制。如此,本發(fā)明的實(shí)施例的范圍不應(yīng)該受到上文描述的任何示例性實(shí)施例的限制,而只應(yīng)根據(jù)下面的權(quán)利要求和它們的等效內(nèi)容進(jìn)行限定。
【權(quán)利要求】
1.一種系統(tǒng),包括: 以硬件實(shí)現(xiàn)的適于運(yùn)行交換機(jī)控制器應(yīng)用的處理器; 被配置成用于檢測網(wǎng)絡(luò)中的交換機(jī)的邏輯器; 被配置成用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的邏輯器;以及 被配置成用于改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述系統(tǒng)代替泛洪的默認(rèn)規(guī)則的邏輯器。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述交換機(jī)控制器應(yīng)用遵循OpenFlow。
3.如權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括: 被配置成用于從所述交換機(jī)接收源媒體訪問控制(MAC)進(jìn)入端口關(guān)聯(lián)條目的邏輯器,其中所述進(jìn)入端口涉及在所述交換機(jī)處接收到的未知單播數(shù)據(jù)包;以及 被配置成用于在擴(kuò)展的MAC地址表中創(chuàng)建或更新帶有所述源MAC進(jìn)入端口關(guān)聯(lián)條目中所包括的信息的條目的邏輯器。
4.如權(quán)利要求3所述的系統(tǒng),進(jìn)一步包括: 被配置成用于確定所述數(shù)據(jù)包的目的地MAC地址在位于所述交換機(jī)上的本地MAC地址表中的邏輯器;以及 被配置成用于指示所述交換機(jī)根據(jù)存儲在所述本地MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯器。
5.如權(quán)利要求3所述的系統(tǒng),進(jìn)一步包括: 被配置成用于確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中的邏輯器; 被配置成用于確定所述數(shù)據(jù)包的目的地MAC地址在所述擴(kuò)展的MAC地址表中的邏輯器;以及 被配置成用于指示所述交換機(jī)根據(jù)存儲在所述擴(kuò)展的MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯器。
6.如權(quán)利要求3所述的系統(tǒng),進(jìn)一步包括: 被配置成用于確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中的邏輯器; 被配置成用于確定所述數(shù)據(jù)包的目的地MAC地址不在所述擴(kuò)展的MAC地址表中的邏輯器;以及 被配置成用于指示所述交換機(jī)廣播所述數(shù)據(jù)包的邏輯器。
7.如權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括: 被配置成用于確定何時(shí)發(fā)生了觸發(fā)事件的邏輯器; 被配置成用于確定位于所述交換機(jī)上的本地媒體訪問控制(MAC)地址表不滿的邏輯器;以及 被配置成用于將可以被所述系統(tǒng)訪問的擴(kuò)展的MAC地址表與位于所述交換機(jī)上的所述本地MAC地址表同步的邏輯器。
8.如權(quán)利要求7所述的系統(tǒng),其中,所述觸發(fā)事件是同步計(jì)時(shí)器到期,以及其中,所述被配置成用于將所述擴(kuò)展的MAC地址表與所述本地MAC地址表同步的邏輯器包括:被配置成用于從所述擴(kuò)展的MAC地址表向所述本地MAC地址表導(dǎo)入條目的邏輯器,其中更有用的條目在不太有用的條目之前被導(dǎo)入。
9.一種用于處理未知單播數(shù)據(jù)包的計(jì)算機(jī)系統(tǒng),包括: 用于檢測網(wǎng)絡(luò)中的交換機(jī)的裝置; 用于確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信的裝置;以及用于改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則的裝置,其中所述交換機(jī)控制器能夠運(yùn)行所述交換機(jī)控制器應(yīng)用并與所述交換機(jī)進(jìn)行通信。
10.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中,所述交換機(jī)控制器應(yīng)用遵循OpenFlow。
11.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括: 用于從所述交換機(jī)接收源媒體訪問控制(MAC)進(jìn)入端口關(guān)聯(lián)條目的裝置,其中所述進(jìn)入端口涉及在所述交換機(jī)處接收到的未知單播數(shù)據(jù)包;以及 用于在擴(kuò)展的MAC地址表中創(chuàng)建或更新帶有所述源MAC進(jìn)入端口關(guān)聯(lián)條目中所包括的信息的條目的裝置。
12.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括: 用于確定所述數(shù)據(jù)包的目的地MA C地址在位于所述交換機(jī)上的本地MAC地址表中的裝置;以及 用于指示所述交換機(jī)根據(jù)存儲在所述本地MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包的裝置。
13.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括: 用于確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中的裝置; 用于確定所述數(shù)據(jù)包的目的地MAC地址在所述擴(kuò)展的MAC地址表中的裝置;以及用于指示所述交換機(jī)根據(jù)存儲在所述擴(kuò)展的MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包的裝置。
14.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括: 用于確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中的裝置; 用于確定所述數(shù)據(jù)包的目的地MAC地址不在所述擴(kuò)展的MAC地址表中的裝置;以及 用于指示所述交換機(jī)廣播所述數(shù)據(jù)包的裝置。
15.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括: 用于確定何時(shí)發(fā)生了觸發(fā)事件的裝置; 用于確定位于所述交換機(jī)上的本地媒體訪問控制(MAC)地址表不滿的裝置;以及用于將可以被所述交換機(jī)控制器訪問的擴(kuò)展的MAC地址表與位于所述交換機(jī)上的所述本地MAC地址表同步的裝置。
16.如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其中,所述觸發(fā)事件是同步計(jì)時(shí)器到期,以及其中,所述用于將所述擴(kuò)展的MAC地址表與所述本地MAC地址表同步的裝置包括:用于從所述擴(kuò)展的MAC地址表向所述本地MAC地址表導(dǎo)入條目的裝置,其中更有用的條目在不太有用的條目之前被導(dǎo)入。
17.一種用于處理未知單播數(shù)據(jù)包的方法,所述方法包括: 檢測網(wǎng)絡(luò)中的交換機(jī),所述網(wǎng)絡(luò)包括所述交換機(jī)和交換機(jī)控制器; 確定所述交換機(jī)能夠通過所述交換機(jī)控制器應(yīng)用進(jìn)行通信;以及 改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述交換機(jī)控制器代替泛洪的默認(rèn)規(guī)則。
18.如權(quán)利要求17所述的方法,其中,所述交換機(jī)控制器應(yīng)用遵循OpenFlow。
19.如權(quán)利要求17所述的方法,進(jìn)一步包括: 從所述交換機(jī)接收源媒體訪問控制(MAC)進(jìn)入端口關(guān)聯(lián)條目,其中所述進(jìn)入端口涉及在所述交換機(jī)處接收到的未知單播數(shù)據(jù)包;以及 在擴(kuò)展的MAC地址表中創(chuàng)建或更新帶有所述源MAC進(jìn)入端口關(guān)聯(lián)條目中所包括的信息的條目,其中所述擴(kuò)展的MAC地址表能夠被所述交換機(jī)控制器訪問。
20.如權(quán)利要求19所述的方法,進(jìn)一步包括: 確定所述數(shù)據(jù)包的目的地MAC地址在位于所述交換機(jī)上的本地MAC地址表中;以及指示所述交換機(jī)根據(jù)存儲在所述本地MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包。
21.如權(quán)利要求19所述的方法,進(jìn)一步包括: 確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中; 確定所述數(shù)據(jù)包的目的地MAC地址在所述擴(kuò)展的MAC地址表中;以及指示所述交換機(jī)根據(jù)存儲在所述擴(kuò)展的MAC地址表中的所述目的地MAC地址來轉(zhuǎn)發(fā)所述數(shù)據(jù)包。
22.如權(quán)利要求19所述的方法,進(jìn)一步包括: 確定所述數(shù)據(jù)包的目的地MAC地址不在位于所述交換機(jī)上的本地MAC地址表中; 確定所述數(shù)據(jù)包的目的地MAC地址不在所述擴(kuò)展的MAC地址表中;以及 指示所述交換機(jī)廣播所述數(shù)據(jù)包。
23.如權(quán)利要求17所述的方法,進(jìn)一步包括: 確定何時(shí)發(fā)生了觸發(fā)事件; 確定位于所述交換機(jī)上的本地媒體訪問控制(MAC)地址表不滿;以及將可以被所述交換機(jī)控制器訪問的擴(kuò)展的MAC地址表與位于所述交換機(jī)上的所述本地MAC地址表同步。
24.如權(quán)利要求23所述的方法,其中,所述觸發(fā)事件是同步計(jì)時(shí)器到期,以及其中,將所述擴(kuò)展的MAC地址表與所述本地MAC地址表同步包括:從所述擴(kuò)展的MAC地址表向所述本地MAC地址表導(dǎo)入條目,其中更有用的條目在不太有用的條目之前被導(dǎo)入。
25.一種交換機(jī),包括: 以硬件實(shí)現(xiàn)的適于運(yùn)行OpenFlow應(yīng)用的處理器; 被配置成用于允許OpenFlow控制器改寫用于處理所述交換機(jī)中的未知單播數(shù)據(jù)包以便當(dāng)接收到未知單播數(shù)據(jù)包時(shí),所述交換機(jī)將由所述交換機(jī)接收到的任何未知單播數(shù)據(jù)包發(fā)送到所述OpenFlow控制器代替泛洪的默認(rèn)規(guī)則的邏輯器; 被配置成用于接收未知單播數(shù)據(jù)包的邏輯器; 被配置成用于確定何時(shí)本地媒體訪問控制(MAC)地址表已滿的邏輯器; 被配置成用于當(dāng)所述本地MAC地址不滿時(shí)學(xué)習(xí)與所述數(shù)據(jù)包相關(guān)聯(lián)的源MAC地址的邏輯器; 被配置成用于當(dāng)所述本地MAC地址已滿時(shí)準(zhǔn)備源MAC進(jìn)入端口關(guān)聯(lián)條目并將所述源MAC進(jìn)入端口關(guān)聯(lián)條目發(fā)送到所述OpenFlow控制器的邏輯器; 被配置成用于確定與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址何時(shí)位于所述本地MAC地址表中的邏輯器; 被配置成用于當(dāng)與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址位于所述本地MAC地址表中時(shí),根據(jù)所述目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包的邏輯器;以及 被配置成用于根據(jù)存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的目的地MAC地址轉(zhuǎn)發(fā)所述數(shù)據(jù)包或者廣播所述數(shù)據(jù)包的邏輯器, 其中當(dāng)具有所述目的地MAC地址的條目位于所述擴(kuò)展的MAC地址表中時(shí),從所述OpenFlow控制器接收存儲在所述擴(kuò)展的MAC地址表中的與所述數(shù)據(jù)包相關(guān)聯(lián)的所述目的地MAC地址。
【文檔編號】H04L12/741GK103581062SQ201310345224
【公開日】2014年2月12日 申請日期:2013年8月9日 優(yōu)先權(quán)日:2012年8月9日
【發(fā)明者】B·G·巴納瓦利卡, K·G·坎伯, A·P·庫布海爾 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
郯城县| 武邑县| 新乡县| 阿荣旗| 和林格尔县| 彭州市| 武平县| 大连市| 交口县| 黄山市| 额敏县| 象州县| 沂南县| 尖扎县| 邵武市| 云霄县| 临安市| 峨边| 南投县| 调兵山市| 营山县| 柳江县| 江北区| 浦江县| 永春县| 应城市| 海丰县| 于田县| 楚雄市| 丹凤县| 读书| 衡南县| 隆林| 乐清市| 呼图壁县| 泰宁县| 东海县| 青田县| 彰化市| 依安县| 塘沽区|