專利名稱:減少計(jì)算機(jī)網(wǎng)絡(luò)中的消息洪泛的傳播的制作方法
減少計(jì)算機(jī)網(wǎng)絡(luò)中的消息洪泛的傳播
背景技術(shù):
計(jì)算機(jī)網(wǎng)絡(luò)通常由將一組計(jì)算機(jī)連接在一起的多個(gè)網(wǎng)絡(luò)交換機(jī)組成。理想地,計(jì)算機(jī)網(wǎng)絡(luò)快速并且可靠地在計(jì)算機(jī)之間傳遞消息。另外,可能期望的是計(jì)算機(jī)網(wǎng)絡(luò)是自我組態(tài)和自我修復(fù)的。在以太網(wǎng)交換網(wǎng)絡(luò)中,常常使用生成樹(spanning tree)算法來自動(dòng)地生成可行的網(wǎng)絡(luò)構(gòu)形。然而,當(dāng)在大型數(shù)據(jù)中心和計(jì)算機(jī)集群中實(shí)現(xiàn)以太網(wǎng)交換網(wǎng)絡(luò)時(shí)存在多個(gè)挑戰(zhàn)。一個(gè)挑戰(zhàn)涉及這樣的實(shí)例,即網(wǎng)絡(luò)交換機(jī)不具有將消息傳遞至其目的地的必要信息。在這種情況下,網(wǎng)絡(luò)交換機(jī)遍及整個(gè)網(wǎng)絡(luò)廣播消息,導(dǎo)致消息洪泛(message flood)。消息洪泛最終導(dǎo)致消息到期望的終端站的遞送,但是產(chǎn)生大量的網(wǎng)絡(luò)流量。在其中終端站的數(shù)目較大的大規(guī)模網(wǎng)絡(luò)中,消息洪泛的可能性和數(shù)量急劇地增加。
附圖舉例說明本文所述的原理的各種實(shí)施例,并且是本說明書的一部分。所示的實(shí)施例僅僅是示例而不限制權(quán)利要求的范圍。圖1是根據(jù)本文所述的原理的一個(gè)實(shí)施例的一個(gè)說明性計(jì)算機(jī)網(wǎng)絡(luò)的圖示。圖2是根據(jù)本文所述的原理的一個(gè)實(shí)施例的說明性計(jì)算機(jī)網(wǎng)絡(luò)的一部分的圖示。圖3是根據(jù)本文所述的原理的一個(gè)實(shí)施例的、網(wǎng)絡(luò)交換機(jī)確定如何路由輸入消息的說明性方法的圖示。圖4是根據(jù)本文所述的原理的一個(gè)實(shí)施例的、使消息洪泛局限于計(jì)算機(jī)網(wǎng)絡(luò)的相關(guān)部分的說明性計(jì)算機(jī)網(wǎng)絡(luò)的一部分的圖示。圖5是根據(jù)本文所述的原理的一個(gè)實(shí)施例的、用于在散列函數(shù)中使用局部唯一常量(local unique constant)來減少消息洪泛的說明性方法的圖示。圖6是示出了根據(jù)本文所述的原理的一個(gè)實(shí)施例的、用于減少計(jì)算機(jī)網(wǎng)絡(luò)中的消息洪泛的傳播的說明性方法的流程圖。遍及各圖,相同的附圖標(biāo)記指示類似但不一定相同的元件。
具體實(shí)施例方式構(gòu)成計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)交換機(jī)結(jié)合了包含將消息路由到其預(yù)期目的地所需的轉(zhuǎn)發(fā)信息的轉(zhuǎn)發(fā)表。轉(zhuǎn)發(fā)表使用基于對(duì)終端站地址進(jìn)行散列以實(shí)現(xiàn)目的地查找表的技術(shù)的高速緩沖存儲(chǔ)器。在轉(zhuǎn)發(fā)路由被高速緩存之后,交換機(jī)僅在朝著其預(yù)期目的地發(fā)送數(shù)據(jù)的端口上轉(zhuǎn)發(fā)數(shù)據(jù)。 然而,轉(zhuǎn)發(fā)表通常被存儲(chǔ)在具有有限存儲(chǔ)器容量的隨機(jī)存取存儲(chǔ)器(RAM)上,這可能阻止網(wǎng)絡(luò)交換機(jī)保持一整套轉(zhuǎn)發(fā)數(shù)據(jù)。采用有限尺寸的RAM,散列沖突(hash collision) 導(dǎo)致散列表缺失。散列表缺失引起網(wǎng)絡(luò)內(nèi)的降低網(wǎng)絡(luò)性能的洪泛式廣播。現(xiàn)有系統(tǒng)未完全利用相鄰交換機(jī)的能力來在轉(zhuǎn)發(fā)高速緩存缺失導(dǎo)致廣播時(shí)使洪泛的傳播局限于網(wǎng)絡(luò)的相關(guān)部分。 另外,網(wǎng)絡(luò)交換機(jī)依賴于通過網(wǎng)絡(luò)來傳播的適當(dāng)?shù)霓D(zhuǎn)發(fā)信息。如果能夠使輸入消息的目的地與包含在轉(zhuǎn)發(fā)表內(nèi)的適當(dāng)路由信息匹配,則交換機(jī)沿著適當(dāng)?shù)穆酚赊D(zhuǎn)發(fā)消息。 然而,如果不存在對(duì)應(yīng)于期望目的地的路由信息,則交換機(jī)向整個(gè)網(wǎng)絡(luò)廣播消息。這產(chǎn)生通過整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)傳播的消息洪泛,最終到達(dá)期望的終端站。特別地,在大型計(jì)算網(wǎng)絡(luò)中, 此消息洪泛可能消耗大部分網(wǎng)絡(luò)容量,導(dǎo)致降低的性能和/或構(gòu)建更昂貴的網(wǎng)絡(luò)(其具有比否則可能需要的大得多的容量)的需求。本說明書描述了在仍允許消息到達(dá)期望終端站的同時(shí)減少消息洪泛的傳播的聯(lián)網(wǎng)技術(shù)。特別地,本說明書描述了在不要求硬件變化或升級(jí)的情況下提高相鄰交換機(jī)的能力以減輕廣播損失的技術(shù)。這允許網(wǎng)絡(luò)在提供等效性能水平的同時(shí)結(jié)合較小的轉(zhuǎn)發(fā)高速緩沖存儲(chǔ)器?,F(xiàn)有轉(zhuǎn)發(fā)技術(shù)經(jīng)受兩個(gè)不適當(dāng)之處。首先,由于一個(gè)交換機(jī)中的轉(zhuǎn)發(fā)高速緩沖存儲(chǔ)器使用與相鄰交換機(jī)中的轉(zhuǎn)發(fā)高速緩沖存儲(chǔ)器相同的散列函數(shù),所以在一個(gè)交換機(jī)中產(chǎn)生的高速緩沖存儲(chǔ)器沖突可能在相鄰交換機(jī)中被復(fù)制。特別地,一個(gè)交換機(jī)內(nèi)的廣播動(dòng)作可能引起高速緩存缺失(cache miss)和到相鄰交換機(jī)的廣播。這可能使高速緩存缺失遍及計(jì)算機(jī)網(wǎng)絡(luò)從交換機(jī)傳播至交換機(jī)。根據(jù)一個(gè)說明性實(shí)施例,可在每個(gè)交換機(jī)內(nèi)實(shí)現(xiàn)不同的散列函數(shù)。用這種技術(shù),即使當(dāng)在一個(gè)交換機(jī)中的轉(zhuǎn)發(fā)高速緩沖存儲(chǔ)器內(nèi)發(fā)生散列沖突時(shí),也不可能在相鄰交換機(jī)中發(fā)生散列沖突。這能夠提高阻止不必要的廣播流量的相鄰交換機(jī)能力。通過在每個(gè)交換機(jī)內(nèi)引入不同散列的概念,減少了廣播流量和浪費(fèi)的網(wǎng)絡(luò)帶寬。限制廣播流量的范圍還減少了在不直接在通信路徑上的交換機(jī)高速緩沖存儲(chǔ)器內(nèi)必須保持的不必要的轉(zhuǎn)發(fā)條目(forwarding entry)的數(shù)目。第二不適當(dāng)之處是在許多情況下,使作為正缺失其高速緩存的交換機(jī)的鄰居的交換機(jī)獲悉針對(duì)缺失的終端站地址的轉(zhuǎn)發(fā)方向是困難的。本說明書描述了一種檢測(cè)正在發(fā)生高速緩存缺失并且指示相鄰交換機(jī)作為缺失的終端站的位置以便消除廣播流量的不必要傳播的方法。另外或可替換地,能夠?qū)崿F(xiàn)相鄰交換機(jī)獲悉針對(duì)缺失的終端站地址的轉(zhuǎn)發(fā)方向的方法。首先,網(wǎng)絡(luò)交換機(jī)檢測(cè)作為高速緩存缺失的癥狀的條件。在這種情況下,有意地執(zhí)行選擇性廣播以將轉(zhuǎn)發(fā)條目存放在缺失的交換機(jī)附近的交換機(jī)的高速緩沖存儲(chǔ)器中。這再次提高了相鄰交換機(jī)限制廣播流量的影響的能力。采用本發(fā)明,在減少不必要的廣播流量的量的同時(shí)可以使用更簡(jiǎn)單的散列函數(shù)和更小的轉(zhuǎn)發(fā)表RAM來構(gòu)造網(wǎng)絡(luò)。在以下說明中,出于解釋的目的,闡述許多特定細(xì)節(jié)以便提供對(duì)本系統(tǒng)和方法的透徹理解。然而,對(duì)于本領(lǐng)域的技術(shù)人員來說將顯而易見的是,可以在沒有這些特定細(xì)節(jié)的情況下實(shí)施本設(shè)備、系統(tǒng)和方法。在說明書中對(duì)“實(shí)施例”、“示例”或類似語言的參考意指結(jié)合該實(shí)施例或示例所述的特定特征、結(jié)構(gòu)或特性被包括在至少那一個(gè)實(shí)施例中,但不一定在其它實(shí)施例中。在本說明書中的不同位置中的短語“在一個(gè)實(shí)施例中”或類似短語的各種實(shí)例不必定全部涉及同一實(shí)施例。圖1示出連接多個(gè)終端站(105)的三層計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)說明性實(shí)施例。每個(gè)終端站(105)被連接到邊緣交換機(jī)(110)。邊緣交換機(jī)(110)又被連接到被連接至核心交換機(jī) (120、122)的更大的聚合交換機(jī)(115)。因此,此說明性計(jì)算機(jī)網(wǎng)絡(luò)具有包括邊緣層(125)、 聚合層(130)和核心層(140)的三層結(jié)構(gòu)。使用計(jì)算機(jī)網(wǎng)絡(luò)(100),任何終端站(105)能夠與其它終端站(105)中的任何一個(gè)通信。
計(jì)算機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和管理對(duì)于使計(jì)算機(jī)網(wǎng)絡(luò)的性能最大化、降低成本、增加靈活性并且提供期望的穩(wěn)定性而言是重要的。早期在計(jì)算機(jī)網(wǎng)絡(luò)的開發(fā)中,必須克服許多問題。那些問題中的一個(gè)是由于對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的微小修改(諸如添加鏈路或終端站)而使消息被俘獲在無限循環(huán)中。被俘獲的消息將在從不允許消息到達(dá)預(yù)期目的地的閉合循環(huán)中在各種網(wǎng)絡(luò)組件之間被反復(fù)地傳遞。這可以產(chǎn)生巨大量的無用流量,常常使得網(wǎng)絡(luò)不可使用。
開發(fā)了生成樹算法以消除網(wǎng)絡(luò)內(nèi)的潛在循環(huán)。生成樹算法識(shí)別跨越網(wǎng)絡(luò)并且允許每個(gè)終端站與每個(gè)其它終端站通信的一組鏈路。冗余鏈路被阻止以防止可能引起循環(huán)的環(huán)路。在遍及整個(gè)網(wǎng)絡(luò)識(shí)別生成樹之后,網(wǎng)絡(luò)內(nèi)的每個(gè)交換機(jī)可以使用非常簡(jiǎn)單的轉(zhuǎn)發(fā)程序。 當(dāng)從任何終端站A向任何終端站B發(fā)送消息時(shí),每個(gè)交換機(jī)在除了消息到達(dá)其上的端口之外的所有活動(dòng)(生成樹)端口上轉(zhuǎn)發(fā)輸入消息。此過程被稱為洪泛,并且其可以在沒有除定義活動(dòng)端口所需的信息之外的路由信息的情況下加以執(zhí)行。此簡(jiǎn)單程序保證正確的網(wǎng)絡(luò)傳輸。從終端站A發(fā)送的每個(gè)消息穿過整個(gè)生成樹并且被保證到達(dá)終端站B,在那里,其在B 識(shí)別了其目標(biāo)地址時(shí)被接收。其它終端站丟棄被呈送給終端站B的消息,因?yàn)槠洳⒉怀仕徒o它們。生成樹的使用防止了無止境的消息傳輸。當(dāng)消息到達(dá)生成樹的終點(diǎn)時(shí),不再發(fā)生進(jìn)一步的消息傳輸。對(duì)于大型網(wǎng)絡(luò)而言,此基于廣播的程序可能是非常低效的。圖2舉例說明了其中已經(jīng)實(shí)現(xiàn)生成樹的計(jì)算機(jī)網(wǎng)絡(luò)(200)的一部分。計(jì)算機(jī)網(wǎng)絡(luò)(200)包含終端站A (205)、 終端站B (210)和多個(gè)上游交換機(jī)(215、220、225)。當(dāng)從終端站A (205)向相鄰終端站B (210)發(fā)送消息時(shí),該消息穿過整個(gè)生成樹中的每個(gè)鏈路,盡管可以僅使用終端站A (205)、 交換機(jī)1 (215)和終端站B (210)之間的鏈路(230、235)來支持從A至B的通信。已經(jīng)開發(fā)了自適應(yīng)轉(zhuǎn)發(fā)以使用獲悉到每個(gè)目的地的適當(dāng)路由的轉(zhuǎn)發(fā)表來提高通信效率。消息包含唯一地標(biāo)識(shí)以太網(wǎng)絡(luò)內(nèi)的所有終端站的MAC(媒體訪問控制器)地址。每個(gè)消息具有源MAC地址和目的地MAC地址。源指示起點(diǎn)終端站,并且目的地指示目標(biāo)終端站。每當(dāng)在具有源地址X的鏈路上接收到消息時(shí),則產(chǎn)生轉(zhuǎn)發(fā)表?xiàng)l目,從而使得僅在此鏈路上轉(zhuǎn)發(fā)去往X的所有后續(xù)消息。例如,在從具有源地址B的終端站B (205)發(fā)送第一消息之后,在交換機(jī)1 (215)內(nèi)產(chǎn)生到B的轉(zhuǎn)發(fā)條目。(例如從終端站A)被發(fā)送到交換機(jī)1中具有目的地地址B的后續(xù)消息僅穿過鏈路1 (230)和鏈路2 (235)。此程序被用來遍及大型網(wǎng)絡(luò)自適應(yīng)地產(chǎn)生轉(zhuǎn)發(fā)表以減少網(wǎng)絡(luò)流量。此自適應(yīng)轉(zhuǎn)發(fā)程序要求交換機(jī)高效地實(shí)現(xiàn)基于硬件的查找表。查找硬件讀取輸入目的地MAC地址,根據(jù)尋址標(biāo)準(zhǔn),其包括48或64位的地址信息。如果成功,則查找結(jié)果識(shí)別到被尋址終端站的唯一轉(zhuǎn)發(fā)端口。如果未找到用于輸入MAC地址的轉(zhuǎn)發(fā)條目,則在除消息到達(dá)其上的鏈路之外的所有活動(dòng)鏈路上轉(zhuǎn)發(fā)消息。已經(jīng)開發(fā)了高效的散列映射方法以實(shí)現(xiàn)用于自適應(yīng)轉(zhuǎn)發(fā)的硬件查找。圖3是說明性關(guān)聯(lián)查找方法(300)的圖示。在左側(cè)接收輸入MAC地址(305)。MAC地址(305)被執(zhí)行隨機(jī)化函數(shù)的散列函數(shù)(310)接收到,所述隨機(jī)化函數(shù)產(chǎn)生針對(duì)讀取的每個(gè)MAC地址的一致隨機(jī)值。在簡(jiǎn)單示例中,散列函數(shù)(310)可以將MAC地址與非常大的素?cái)?shù)相乘并且從結(jié)果中選擇十個(gè)數(shù)字。這十個(gè)數(shù)字是可以在給定MAC地址的情況下一致地生成的擬隨機(jī)數(shù)。 因此,每當(dāng)在輸入端上應(yīng)用相同的MAC地址時(shí),就產(chǎn)生相同的隨機(jī)地址。散列函數(shù)允許RAM 地址空間內(nèi)的MAC地址的快速查找和均勻分布。在一個(gè)示例性系統(tǒng)中,散列函數(shù)讀取48位 MAC地址并且產(chǎn)生12位散列地址。此散列地址被用來同時(shí)在兩個(gè)4096字查找轉(zhuǎn)發(fā)表隨機(jī)存取存儲(chǔ)器(RAM) (315、320)內(nèi)查找轉(zhuǎn)發(fā)條目。在此雙向集合關(guān)聯(lián)查找中,表?xiàng)l目被存儲(chǔ)在兩個(gè)RAM (總計(jì)8192個(gè)潛在條目)中。每個(gè)條目被標(biāo)記為空的或非空的。每個(gè)非空條目保持轉(zhuǎn)發(fā)指令,該轉(zhuǎn)發(fā)指令包括確認(rèn)匹配的標(biāo)記字段和在發(fā)生匹配時(shí)指示正確轉(zhuǎn)發(fā)動(dòng)作的結(jié)果字段。在本示例中,標(biāo)記字段包含完整的目的地MAC地址,并且結(jié)果字段包含應(yīng)在其上面發(fā)送數(shù)據(jù)以到達(dá)該地址的端口的索引。例如,如果匹配的條目得到值6,則使用第6個(gè)端口來轉(zhuǎn)發(fā)數(shù)據(jù)。在目的地地址查找期間,得到兩個(gè)潛在轉(zhuǎn)發(fā)指令。然后由標(biāo)記比較模塊(325、330) 在其內(nèi)比較標(biāo)記字段。如果用于那些轉(zhuǎn)發(fā)指令之一的標(biāo)記字段精確地匹配輸入目的地MAC 地址,則可以使用來自匹配指令的結(jié)果字段來轉(zhuǎn)發(fā)數(shù)據(jù)。每當(dāng)消息進(jìn)入交換機(jī)時(shí),處理其源地址和目的地地址兩者。處理目的地地址是為了確定正確的轉(zhuǎn)發(fā)端口。處理源地址是為了確定是否應(yīng)將新條目放在轉(zhuǎn)發(fā)表中。當(dāng)處理源地址時(shí),查詢查找表以查看源地址是否已在表中。如果沒有針對(duì)源地址的條目位于表中,則不存在關(guān)于如何到達(dá)具有該源地址的終端站的當(dāng)前指令。在這種情況下,可以向表中添加新條目。如果任一個(gè)條目是空的,則用等于源地址的標(biāo)記字段和等于消息在其上面到達(dá)交換機(jī)中的端口的結(jié)果字段來設(shè)置用于該轉(zhuǎn)發(fā)條目的值。對(duì)于此交換機(jī)而言,將僅在正確的轉(zhuǎn)發(fā)端口上發(fā)送被發(fā)送到該源地址的后續(xù)消息。如果地址已在表中,并且指示了正確的轉(zhuǎn)發(fā)端口,則不需要進(jìn)一步動(dòng)作。如果地址已在表中并且指示了不正確的轉(zhuǎn)發(fā)端口,則用正確的轉(zhuǎn)發(fā)指令來覆寫該條目。隨著新條目被輸入到表中,需要替換策略。當(dāng)消息從具有給定源地址的終端站到達(dá)時(shí),查找過程可以確定兩個(gè)條目都是非空的并且不匹配新到達(dá)的消息。在這種情況下,新條目可以取代從雙向集合隨機(jī)選擇的條目。因此,替換“擲硬幣(flip a coin)”并判定將用新條目來替換哪個(gè)條目。存在多個(gè)被頻繁使用的目的地碰巧散列至同一散列地址時(shí)的機(jī)會(huì)。對(duì)于此雙向集合關(guān)聯(lián)方案而言,只有兩個(gè)不同的轉(zhuǎn)發(fā)指令可被保持在兩個(gè)RAM中的每一個(gè)內(nèi)的同一散列地址位置處。如果存在到同一散列地址的第三公共通信,則這些通信中的至少一個(gè)將反復(fù)地未能識(shí)別轉(zhuǎn)發(fā)指令。這被稱為轉(zhuǎn)發(fā)表查找缺失。在這種情況下,數(shù)據(jù)在除消息到達(dá)其上的端口之外的所有生成樹端口上被洪泛或轉(zhuǎn)發(fā)。根據(jù)一個(gè)說明性實(shí)施例,可以對(duì)上述架構(gòu)進(jìn)行若干修改,其可以降低成本并且改善計(jì)算機(jī)網(wǎng)絡(luò)的性能。當(dāng)多個(gè)目的地地址產(chǎn)生同一散列地址時(shí),發(fā)生轉(zhuǎn)發(fā)效率降低。例如, 在單向集合關(guān)聯(lián)表中,在每個(gè)散列位置處僅可以存在單個(gè)轉(zhuǎn)發(fā)條目。當(dāng)多個(gè)轉(zhuǎn)發(fā)地址散列至同一位置時(shí),轉(zhuǎn)發(fā)缺失(forwarding miss)將促使某些輸入消息被洪泛??梢詫⒅辽賰蓚€(gè)特征引入網(wǎng)絡(luò)架構(gòu)中,其減少網(wǎng)絡(luò)內(nèi)的消息洪泛的傳播。這些特征的目的是幫助相鄰交換機(jī)停止廣播洪泛遍及較大網(wǎng)絡(luò)的傳播并且減少網(wǎng)絡(luò)內(nèi)所需的總轉(zhuǎn)發(fā)表空間。減少表空間要求再次減少網(wǎng)絡(luò)內(nèi)的洪泛動(dòng)作(flooding action)的數(shù)目,因?yàn)槊總€(gè)要求的條目能夠替換另一所需條目。為了簡(jiǎn)化示例,我們假設(shè)交換機(jī)使用單向關(guān)聯(lián)散列表來實(shí)現(xiàn)自適應(yīng)轉(zhuǎn)發(fā)。圖4示出說明性計(jì)算機(jī)網(wǎng)絡(luò)(400),其中假設(shè)由于目的地地址的不合宜的選擇而導(dǎo)致終端站B (410)和終端站C (415)沖突或映射到同一散列地址。沖突的B和C轉(zhuǎn)發(fā)條目不能同時(shí)存在于任何交換機(jī)內(nèi)。對(duì)于本示例而言,假設(shè)在終端站A和B(405、410)之間發(fā)生大的雙向通信流,并且在終端站A和C (405、415)之間發(fā)生另一大的雙向流。由于流量首先從終端站A交替至B (405、410),并且隨后從終端站A交替至C (405、415),所以交換機(jī)4 (435)不能保持用于兩個(gè)通信流的轉(zhuǎn)發(fā)條目。所述流之一將在其轉(zhuǎn)發(fā)查找期間缺失, 并將在包括要求的通信路徑的所有路徑上洪泛消息。確定哪個(gè)流缺失取決于用于沖突的B 和C終端站(410、415)的轉(zhuǎn)發(fā)條目的替換順序。在終端站B (410)與終端站A (405)通信之后,隨后從終端站A (405)至終端站B (410)的消息不再缺失,但是從終端站A (405)至終端站C (415)的消息現(xiàn)在缺失。同樣地,在終端站C (415)與終端站A (405)通信之后, 隨后從終端站A (405)至終端站C (415)的消息不再缺失,但是從終端站A (405)至終端站B (410)的消息現(xiàn)在缺失。假設(shè)在網(wǎng)絡(luò)被初始化之后,恰好第一通信是從終端站A (405)至終端站B (410)。 由于在整個(gè)網(wǎng)絡(luò)內(nèi)沒有交換機(jī)具有用于終端站B(410)的轉(zhuǎn)發(fā)條目,所以消息被遍及整個(gè)生成樹廣播,并且自適應(yīng)轉(zhuǎn)發(fā)程序?qū)⒂糜诮K端站A (405)的條目放置在每個(gè)交換機(jī)中?,F(xiàn)在, 被發(fā)送到終端站A (405)的所有消息穿過適當(dāng)?shù)耐ㄐ怕窂?。例如,從終端站B (410)發(fā)送至終端站A (405)或者從終端站C (415)發(fā)送至終端站A (405)的消息從未穿過交換機(jī)5 (440)。因此,交換機(jī)5 (440)和更遠(yuǎn)的交換機(jī)可能從未發(fā)現(xiàn)用于終端站B (410)或終端站 C (415)的轉(zhuǎn)發(fā)條目。結(jié)果,用于從終端站A (405)至終端站B (410)或從終端站A (405) 至終端站C (415)的流的交換機(jī)2 (435)處的缺失遍及不具有終端站B (410)或終端站C (415)的位置的知識(shí)的大的網(wǎng)絡(luò)區(qū)域進(jìn)行傳播??梢酝ㄟ^保證交換機(jī)5 (440)變得知曉針對(duì)其反復(fù)發(fā)生缺失的終端站的位置來緩解此問題。如果交換機(jī)5 (440)具有用于終端站B (410)的轉(zhuǎn)發(fā)條目并且交換機(jī)5 (440) 從交換機(jī)4 (435)接收用于終端站B (410)的消息,則該消息可能被丟棄,因?yàn)槠湟训竭_(dá)也是到目的地的正確路由的輸入鏈路上。如果交換機(jī)5 (440)能夠獲悉所需的終端站位置信息,則交換機(jī)5 (440)能夠提供限制由于交換機(jī)4 (435)中的轉(zhuǎn)發(fā)表缺失導(dǎo)致的不必要的消息傳播的屏障。傳播所需信息的一種方法在每個(gè)交換機(jī)中使用邏輯來檢測(cè)每次輸入新的轉(zhuǎn)發(fā)條目。例如,從終端站B (410)至終端站A (405)的消息可以促使用于B的新轉(zhuǎn)發(fā)條目被添加在交換機(jī)4 (435)中。這指示被發(fā)送到終端站B (410)的消息將剛好在此添加之前已缺失,并因此,到終端站B (410)的缺失可能在未來每當(dāng)替換此新條目時(shí)發(fā)生。當(dāng)處理從終端站B (410)至終端站A (405)的消息并且添加B條目時(shí),此消息被人為地洪泛,雖然用于終端站A (405)的查找條目存在于轉(zhuǎn)發(fā)表中。這允許在交換機(jī)4 (435)處從終端站A (405) 至終端站B (410)的后續(xù)缺失時(shí),交換機(jī)5 (440)將阻止否則可能遍及網(wǎng)絡(luò)傳播的洪泛。 雖然將交換機(jī)4 (435)連接到交換機(jī)5 (440)的鏈路被洪泛,但洪泛并不傳播越過交換機(jī) 5 (440)。不需要對(duì)每個(gè)新條目插入來執(zhí)行將終端站的位置告知網(wǎng)絡(luò)的此人為洪泛動(dòng)作,因?yàn)槟强赡芾速M(fèi)過度的鏈路帶寬。在每次添加新條目時(shí)可能以某個(gè)低概率引起人為洪泛動(dòng)作。例如,當(dāng)處理從終端站B (410)至終端站A (405)的消息并且發(fā)生B轉(zhuǎn)發(fā)條目的替換時(shí),交換機(jī)可能以某個(gè)低概率P (例如,P = .01)洪泛。這允許交換機(jī)5 (440)將最后(在交換機(jī)4 (435)處的目的地的約100次替換之后)獲悉在交換機(jī)4 (435)處反復(fù)地缺失的終端站的位置??梢哉{(diào)整轉(zhuǎn)發(fā)概率以產(chǎn)生期望的轉(zhuǎn)發(fā)頻率。例如,可以使用低轉(zhuǎn)發(fā)概率,其中,存在大量的通信流和不足夠的散列表尺寸,從而使得轉(zhuǎn)發(fā)過程可能頻繁地缺失。這可以減少總體網(wǎng)絡(luò)流量并且使得當(dāng)此缺失發(fā)生時(shí)在長(zhǎng)距離內(nèi)廣播消息的費(fèi)用最小化。通過將沖突的終端站的位置告知相鄰交換機(jī),可以使得相鄰交換機(jī)能夠自動(dòng)地充當(dāng)屏障以限制消息到計(jì)算機(jī)網(wǎng)絡(luò)的其余部分的洪泛。仍要解決顯著的問題。如果在所有交換機(jī)內(nèi)使用相同的散列函數(shù),則交換機(jī)將全部表現(xiàn)出相同的沖突。例如,當(dāng)交換機(jī)4 (435)在流量被可選擇地發(fā)送到終端站B和C (410、415)時(shí)反復(fù)地缺失時(shí),則交換機(jī)5 (440)具有相同的沖突并且可能再次將缺失傳播至其鄰居。在我們的示例中,不能將用于B和C的轉(zhuǎn)發(fā)條目同時(shí)保持在交換機(jī)4 (435)或交換機(jī)5 (440)內(nèi)。由于交換機(jī)5 (440)具有相同的構(gòu)造并且使用同一散列函數(shù),所以交換機(jī)5 (440)也不能同時(shí)保持用于終端站B和終端站C (410、415)的目的地的條目。由具有到散列函數(shù)的新輸入(505)的、圖5中所示的說明性關(guān)聯(lián)查找方法(500) 來矯正此問題。如上文所討論的,每個(gè)交換機(jī)對(duì)輸入MAC地址(305)執(zhí)行散列運(yùn)算。然而, 如果每個(gè)交換機(jī)對(duì)所有輸入MAC地址執(zhí)行相同的散列運(yùn)算,則所有交換機(jī)將表現(xiàn)出相同的性態(tài)。通過向散列函數(shù)(310)中引入局部唯一常量(505)或其它變量,每個(gè)交換機(jī)則將以不同方式對(duì)輸入MAC地址(305)分類。根據(jù)一個(gè)說明性實(shí)施例,交換機(jī)所使用的局部唯一常量(505)可以是其MAC地址。交換機(jī)的MAC地址然后充當(dāng)散列函數(shù)(505)中的操作數(shù) (operand)以保證在每個(gè)交換機(jī)處將不同的散列函數(shù)應(yīng)用于終端站地址。這保證相鄰交換機(jī)表現(xiàn)出同一轉(zhuǎn)發(fā)表查找缺失的可能性極低。返回圖4中所示的示例,當(dāng)在每個(gè)交換機(jī)處使用局部唯一常量作為散列函數(shù)中的操作數(shù)時(shí),該情況已顯著地改善。當(dāng)B和C目標(biāo)地址的不適宜選擇導(dǎo)致交換機(jī)4 (435)查找表中的沖突時(shí)面臨相同的困難。再次地,當(dāng)?shù)浇K端站B (410)或終端站C (415)的消息在轉(zhuǎn)發(fā)表查找期間缺失時(shí),這引起到相鄰交換機(jī)的洪泛。然而,包括交換機(jī)5 (440)的周圍交換機(jī)現(xiàn)在使用不同的散列函數(shù)來識(shí)別查找表位置。采用此新散列,終端站B (410)和終端站C (415)也在交換機(jī)5 (440)內(nèi)沖突是非常不可能的。因此,現(xiàn)在交換機(jī)5 (440)形成對(duì)在交換機(jī)4 (435)中產(chǎn)生的缺失的有效屏障。此架構(gòu)減少了在組織(fabric)內(nèi)傳播的缺失消息的總數(shù)以及組織中的查找表所需的存儲(chǔ)器的總量。以前,當(dāng)在一交換機(jī)處發(fā)生重復(fù)缺失時(shí),該缺失也可能在相鄰交換機(jī)處重復(fù)。在某些條件下,缺失可能遍及整個(gè)組織進(jìn)行傳播。這些缺失還系統(tǒng)地采用潛在無用的轉(zhuǎn)發(fā)條目來洪泛網(wǎng)絡(luò)。在我們的示例中,從終端站A至終端站B和終端站A至終端站C的沖突流引起遍及網(wǎng)絡(luò)插入用于終端站A的轉(zhuǎn)發(fā)條目的重復(fù)洪泛,即使在不需要的情況下也潛在地取代有用條目。采用此改進(jìn)的架構(gòu),在交換機(jī)內(nèi)仍發(fā)生缺失,但相鄰交換機(jī)通過充當(dāng)減少浪費(fèi)的帶寬和浪費(fèi)的轉(zhuǎn)發(fā)表空間的屏障來限制成本高的洪泛的影響。圖6是用于減少計(jì)算機(jī)網(wǎng)絡(luò)中的消息洪泛的傳播的說明性方法的流程圖。在第一步驟中,當(dāng)向第一交換機(jī)的轉(zhuǎn)發(fā)表添加新條目時(shí)將信息洪泛至相鄰交換機(jī)(步驟600)。相鄰交換機(jī)向被洪泛的信息應(yīng)用唯一散列函數(shù)(步驟610),以及將信息存儲(chǔ)在結(jié)果得到的轉(zhuǎn)發(fā)表?xiàng)l目中(步驟620)。當(dāng)發(fā)生后續(xù)缺失時(shí),相鄰交換機(jī)接收被洪泛的信息并且訪問轉(zhuǎn)發(fā)表(步驟630),并確定被洪泛的消息已到達(dá)也是到目的地的正確路由的輸入鏈路上(步驟 640)。然后可以丟棄該消息,從而減少遍及不需要向其預(yù)期目的地傳送消息的計(jì)算機(jī)網(wǎng)絡(luò)區(qū)域的不期望的信息洪泛(步驟650)。總之,通過遍及網(wǎng)絡(luò)傳播缺失的轉(zhuǎn)發(fā)信息,相鄰交換機(jī)獲悉關(guān)于可能已重新發(fā)生轉(zhuǎn)發(fā)表缺失的交換機(jī)的相關(guān)信息。在每個(gè)交換機(jī)處的散列函數(shù)的計(jì)算中引入變化保證了存在相鄰交換機(jī)將表現(xiàn)出相同轉(zhuǎn)發(fā)表缺失的非常低的可能性。然后,相鄰交換機(jī)能夠充當(dāng)屏障以防止在轉(zhuǎn)發(fā)表缺失之后到計(jì)算機(jī)網(wǎng)絡(luò)的其它區(qū)域中的不必要的洪泛。通過應(yīng)用這些原理,能夠在不替換交換機(jī)或增加每個(gè)交換機(jī)中的轉(zhuǎn)發(fā)查找表RAM的情況下提高計(jì)算機(jī)網(wǎng)絡(luò)的總體效率。 已經(jīng)僅僅為了舉例說明和描述所述原理的實(shí)施例和示例而提出了先前的說明。本說明并不旨在是詳盡的或使這些原理局限于所公開的任何精確形式。按照以上教導(dǎo),可以有許多修改和變化。
權(quán)利要求
1.一種計(jì)算機(jī)網(wǎng)絡(luò)(400),包括第一交換機(jī)(435);以及相鄰交換機(jī)(440);其中,由于轉(zhuǎn)發(fā)表缺失,所述第一交換機(jī)(435)對(duì)所述計(jì)算機(jī)網(wǎng)絡(luò)(400)進(jìn)行洪泛,所述相鄰交換機(jī)(440)充當(dāng)屏障以防止所述洪泛傳播至所述計(jì)算機(jī)網(wǎng)絡(luò)(400)的無關(guān)區(qū)域內(nèi)。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其中,所述相鄰交換機(jī)(440)通過信息的有意洪泛來獲取關(guān)于適當(dāng)目的地的所述信息。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò),其中,當(dāng)新轉(zhuǎn)發(fā)表?xiàng)l目被添加到所述第一交換機(jī)(435) 的所述轉(zhuǎn)發(fā)表(315、320 )時(shí),所述第一交換機(jī)(435 )執(zhí)行所述有意洪泛。
4.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò),其中,所述第一交換機(jī)(435)針對(duì)被添加到所述第一交換機(jī)(435)的所述轉(zhuǎn)發(fā)表(315、320)的僅一部分新轉(zhuǎn)發(fā)表?xiàng)l目執(zhí)行所述有意洪泛。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其中,所述第一交換機(jī)(435)和所述相鄰交換機(jī)(440) 使用不同的唯一散列函數(shù)(310)來計(jì)算用于轉(zhuǎn)發(fā)表?xiàng)l目的散列地址,從而使得所述第一交換機(jī)(435)和所述相鄰交換機(jī)(440)具有相同轉(zhuǎn)發(fā)表沖突的可能性被顯著地降低。
6.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò),其中,所述交換機(jī)(435、440)在散列函數(shù)(310)中使用唯一局部常量來計(jì)算散列地址。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò),其中,所述唯一局部常量是局部MAC地址(305)。
8.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其中,所述第一交換機(jī)(435)和所述相鄰交換機(jī)(440) 使用不同的唯一散列函數(shù)(310)來計(jì)算用于轉(zhuǎn)發(fā)表?xiàng)l目的散列地址,從而使得所述第一交換機(jī)(435)和所述相鄰交換機(jī)(440)具有相同轉(zhuǎn)發(fā)表沖突的可能性被顯著地降低;其中,所述相鄰交換機(jī)(440)通過信息的有意洪泛來獲取與適當(dāng)目的地相關(guān)的所述信息;當(dāng)新條目被添加到所述第一交換機(jī)(435)的所述轉(zhuǎn)發(fā)表(315、320)時(shí)發(fā)生所述有意洪泛。
9.一種網(wǎng)絡(luò)交換機(jī)(4;35、440),包括多個(gè)端口,所述多個(gè)端口的至少一部分被連接到計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的周圍網(wǎng)絡(luò)元件;散列函數(shù)(310),所述散列函數(shù)從所述多個(gè)端口之一接收輸入MAC地址,并且使用局部唯一常量來計(jì)算散列地址;轉(zhuǎn)發(fā)表RAM (315、320);所述轉(zhuǎn)發(fā)表RAM包括查找表,所述查找表包含目的地地址和由散列地址組織的關(guān)聯(lián)目的地端口。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)交換機(jī),其中,所述網(wǎng)絡(luò)交換機(jī)(435、440)記錄輸入 MAC地址和關(guān)聯(lián)輸入端口以獲悉計(jì)算機(jī)網(wǎng)絡(luò)(400)內(nèi)的網(wǎng)絡(luò)元件的位置;所述網(wǎng)絡(luò)交換機(jī) (435,440)從所述計(jì)算機(jī)網(wǎng)絡(luò)(400)中的其它交換機(jī)接收被有意洪泛的信息;當(dāng)所述其它交換機(jī)向轉(zhuǎn)發(fā)表(315、330)中制作新條目時(shí)生成所述被有意洪泛的信息。
11.根據(jù)權(quán)利要求10所述的網(wǎng)絡(luò)交換機(jī),其中,所述網(wǎng)絡(luò)交換機(jī)(435、440)不轉(zhuǎn)發(fā)在適當(dāng)?shù)哪康牡囟丝谏辖邮盏降妮斎胂?;所述網(wǎng)絡(luò)交換機(jī)(435、440)訪問所述查找表以確定在所述適當(dāng)?shù)哪康牡囟丝谏鲜欠窠邮盏剿鲚斎胂ⅰ?br>
12.—種減少計(jì)算機(jī)網(wǎng)絡(luò)(400)內(nèi)的洪泛的方法,包括當(dāng)由第一網(wǎng)絡(luò)交換機(jī)(435)制作新的轉(zhuǎn)發(fā)表?xiàng)l目時(shí),有意地對(duì)所述計(jì)算機(jī)網(wǎng)絡(luò)(400) 進(jìn)行洪泛,從而使得包含在所述新轉(zhuǎn)發(fā)表?xiàng)l目?jī)?nèi)的信息被相鄰網(wǎng)絡(luò)交換機(jī)(440)記錄;以及所述相鄰交換機(jī)(440)阻止在適當(dāng)?shù)哪康牡囟丝谏辖邮盏暮罄m(xù)消息。
13.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括所述相鄰交換機(jī)(440)向與所述被有意洪泛的信息相關(guān)聯(lián)的MAC地址應(yīng)用局部唯一散列函數(shù)(310)以生成散列地址;以及所述相鄰交換機(jī)(440)將所述被有意洪泛的信息記錄在轉(zhuǎn)發(fā)表(315、320)內(nèi)、在所述散列地址處。
14.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括所述相鄰交換機(jī)(440)在輸入端口上接收后續(xù)消息;所述后續(xù)消息包含關(guān)聯(lián)的目的地地址和源地址;所述相鄰交換機(jī)(400)訪問所述轉(zhuǎn)發(fā)表?xiàng)l目以確定與所述目的地地址相關(guān)聯(lián)的目的地端口是否與所述輸入端口相同;以及如果與所述目的地地址相關(guān)聯(lián)的所述目的地端口與所述輸入端口相同,則所述相鄰交換機(jī)(440)拒絕將所述消息轉(zhuǎn)發(fā)到其它端口。
15.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括所述相鄰交換機(jī)(440)使用唯一局部常量(505)來生成所述唯一局部散列函數(shù),所述唯一局部常量是所述相鄰交換機(jī)(440)的MAC地址。
全文摘要
一種計(jì)算機(jī)網(wǎng)絡(luò)(400)包括第一交換機(jī)(435)和相鄰交換機(jī)(440),其中,由于轉(zhuǎn)發(fā)表缺失,所述第一交換機(jī)(435)對(duì)所述計(jì)算機(jī)網(wǎng)絡(luò)(400)進(jìn)行洪泛,并且所述相鄰交換機(jī)(440)充當(dāng)屏障以防止所述洪泛傳播至所述計(jì)算機(jī)網(wǎng)絡(luò)(400)的無關(guān)區(qū)域內(nèi)。減少計(jì)算機(jī)網(wǎng)絡(luò)(400)內(nèi)的洪泛的方法包括當(dāng)由第一網(wǎng)絡(luò)交換機(jī)(435)制作新的轉(zhuǎn)發(fā)表?xiàng)l目時(shí)故意地對(duì)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行洪泛,從而使得包含在新轉(zhuǎn)發(fā)表?xiàng)l目?jī)?nèi)的信息被相鄰網(wǎng)絡(luò)交換機(jī)(440)記錄,其隨后阻止在適當(dāng)?shù)哪康牡囟丝谏辖邮盏降南ⅰ?br>
文檔編號(hào)H04L12/56GK102273141SQ200980154309
公開日2011年12月7日 申請(qǐng)日期2009年1月12日 優(yōu)先權(quán)日2009年1月12日
發(fā)明者H. 卡普 A., 施蘭斯克 M., 亞拉甘杜拉 P. 申請(qǐng)人:惠普開發(fā)有限公司