TWI617179B - 單層網路、在單層網路中對封包或部分封包進行路由的方法及在單層網路中對封包進行路由的方法 - Google Patents
單層網路、在單層網路中對封包或部分封包進行路由的方法及在單層網路中對封包進行路由的方法 Download PDFInfo
- Publication number
- TWI617179B TWI617179B TW101107591A TW101107591A TWI617179B TW I617179 B TWI617179 B TW I617179B TW 101107591 A TW101107591 A TW 101107591A TW 101107591 A TW101107591 A TW 101107591A TW I617179 B TWI617179 B TW I617179B
- Authority
- TW
- Taiwan
- Prior art keywords
- switch
- network
- source
- packet
- sink
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明涉及一種單層網路、以及在單層切換式網路中進行路由的方法和設備。該設備包括封包或部分封包的動態路由,其在網路中通過作出局部決定避免了擁擠和阻塞。該設備進一步包括創建和更新路由表,該路由表將交換機的輸出端映射到可到達的網路輸出埠。此外,在進入網路前或部分進入網路時,對進入網路的封包報頭進行處理。處理的封包或部分封包最好包括完整的路由資訊或最終目的地位址,該最終目的地位址使得不用進一步對封包報頭進行處理便能夠通過網路進行快速路由。組合本發明的其他方面來實現本發明的一個或多個方面,以進一步提高網路的效率。
Description
本發明涉及在網路中路由封包(packet)的設備和方法。
許多資料網路如電腦網路或視頻傳輸網路使用封包交換機制來傳輸資料。在通常被稱為節點的實體之間路由封包。
一種用於在節點之間傳輸封包的機制是交換機,其含有多個輸入埠和多個輸出埠。一些切換類型可以在任何輸入埠和任何輸出埠之間傳輸資料封包。可以構建這樣的交換機,使得在輸入和輸出埠之間的任何可能同時發生的路由組合是可行的。這樣的交換機被稱為無阻塞。無阻塞交換機的一種類型是縱橫制交換機。
當所需的交換機的大小大於單個設備能容納的大小時,可以組合一些設備來形成較大的交換機。當組合一些交換機如縱橫製交換機時,該組合在本發明中被稱為架構(fabric)或網路。就像交換機,網路可以是阻塞或無阻塞。
網路的一個示例架構使用多個設備作為源交換機(source switch)、另一多個設備作為宿交換機(sink switch)和第三多個設備作為中間交換機。源交換機與網路的輸入埠相連接,且用作網路的輸出埠的資料的來源。宿交換機與網路的輸出埠相連接,且充當來自網路的輸入埠的資料的宿。不同的路由可以共用網路中的許多鏈路,這些路由可以允許單個源通過壟斷網路中的關鍵鏈路來阻塞交換機。特別地,與網路相連接的一個宿或宿交換機可能超載資料。通常宿或宿交換機
具有資料緩存區來容納資料的爆滿。然而,在沒有對輸入資料進行控制的情況下,緩存區可能超載。
控制網路中的資料流程量的一種方法是,使每個源交換機向宿交換機請求頻寬。宿交換機相應地為資料頻寬生成“信用值(credits)”,並將這些信用發送到請求源。系統使用本領域所知悉的信用值和在被全文引用的專利US7619970中所描述的信用值。
現有的網路/架構的一個缺點是一個路由可能會阻塞另一個路由。雖然可以共用鏈路,某些路由有時可能被阻塞。繞過被阻塞的路徑而進行路由可能是可行的,但其可能需要使一些或全部現有的路由進行路由,來容納被阻塞的路由。通過網路的流量的路由可能需要以各種交換機來暫停(halting)資料流程量,導致在到輸出埠的資料傳輸中產生不合意的延遲。
現有的網路的另一個缺點是需要在每一階段/網路中的交換機對封包報頭進行處理。通常封包包含資料部分和報頭部分。通常構建報頭以支援眾所周知的協定如TCP/IP。在每一階段/網路中的交換機中,通常對報頭進行處理,來提取路由資訊。這種處理要求會大大增加成本、記憶體大小和交換機的處理要求。
現有的網路還有一個缺點是,缺乏關於網路的整體拓撲的資訊。在網路中的單個交換機僅可以知道網路或本地連接的原始拓撲。如果網路中的一條鏈路變為無效的,資料可能丟失或延遲。
因此,提供一種在網路中阻止阻塞的路由、減少或消除每個交換機的封包報頭處理開銷的設備和方法,以及一種繞過網路中損壞的或無效的鏈路而進行路由的設備和方法,這是可取的。
本發明提供了一種包括交換機的網路,結合至少一幅附圖進行了詳細描述,並在申請專利範圍中得到了更完整的闡述。該網路可以包括阻止阻塞的路由的機制。此外,網路可以減少和/或消除在網路中由交換機進行的報頭處理和可以繞過無效的鏈路而對資料封包進行路由。
根據本發明的一個方面,提供一種單層網路,所述網路包括:至少一個輸入埠;至少一個輸出埠;至少一個源交換機,所述源交換機包括至少一個輸入、至少兩個輸出和至少一個虛擬輸出佇列,其中,所述至少一個虛擬輸出佇列與至少一個宿相關;至少一個宿交換機,所述宿交換機包括至少一個輸入、至少兩個輸出和至少一個調度機制;及連接所述至少一個源交換機和至少一個宿交換機的架構;其中,所述至少一個虛擬輸出佇列提供所述至少一個調度機制的佇列狀態資訊,所述至少一個調度機制回應於所述佇列狀態資訊的接收,生成信用值,其中,所述源交換機回應於所述信用值的接收,使用至少一個負載分配演算法,通過多個輸出發送單個資料流程量的封包或部分封包;及其中,通過所述源交換機對所述封包或部分封包進行排序和通過所述宿交換機對所述封包或部分封包進行重新排序。
較佳地,所述網路進一步包括至少一個中間交換機,其中所述至少一個中間交換機與所述至少一個宿交換機相連接。
較佳地,所述網路進一步包括至少一個中間交換機,其中所述至少一個中間交換機與所述至少一個源交換機相連接。
較佳地,所述至少一個源交換機和所述至少一個宿交換機是相同的。
較佳地,所述至少一個中間交換機使用至少一個負載分配演算法,通過多個輸出發送資料的封包或部分封包。
較佳地,所述至少一個源交換機儲存至少一個源表,所述至少一個源表用於將所述至少一個源交換機的所述至少一個輸出映射到所述至少一個宿交換機,及其中,使用所述源表,通過所述源交換機的多個輸出對所述資料流程量進行路由;其中,所述資料流程量包含多個封包或部分封包。
較佳地,所述網路進一步包括至少一個中間交換機,其中,所述至少一個中間交換機與所述至少一個源交換機相連接,所述至少一個中間交換機儲存至少一個中間表。
較佳地,所述網路進一步包括至少一個中間交換機,其中所述中間交換機包括至少兩個輸出和至少一個資料流程量,使用所述中間表,通過所述中間交換機的多個輸出對所述資料流程量進行路由。
較佳地,所述至少一個源交換機對至少一個封包報頭進行處理,來產生至少一個處理的封包或處理的部分封包,
其中,將所述至少一個處理的封包或處理的部分封包路由到所述宿交換機,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一個在所述網路中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
根據本發明的一個方面,提供一種單層網路,所述網路包括:至少一個輸入埠;至少一個輸出埠;至少一個源交換機,所述源交換機包括至少一個輸入和至少一個輸出;至少一個宿交換機,所述宿交換機包括至少一個輸入和至少一個輸出;及連接所述至少一個源交換機和至少一個宿交換機的架構;其中,所述至少一個源交換機儲存至少一個源表,所述至少一個源表用於將所述至少一個源交換機的所述至少一個輸出映射到所述至少一個宿交換機,所述源表從所述至少一個宿交換機或至少一個中間交換機中接收更新的拓撲資訊,及其中,通過變換模組或通過所述至少一個源交換機對進入網路的每個封包報頭進行處理。
較佳地,所述網路進一步包括至少一個中間交換機,其中所述至少一個中間交換機與所述至少一個源交換機相連
接,所述至少一個中間交換機儲存至少一個中間表,所述中間表從所述至少一個宿交換機中接收更新的拓撲資訊。
較佳地,所述至少一個源表基於所述至少一個中間表,以及所述至少一個源交換機輸出從所述至少一個中間交換機中接收的所述中間表。
較佳地,所述至少一個宿交換機對至少一個源表進行更新。
較佳地,至少一個無效的連接引發至少一個源表的至少一個更新。
較佳地,將所述處理的封包或或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一個在所述網路中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述至少一個源交換機對至少一個封包報頭進行處理,來產生至少一個處理的封包,其中使用所述源表,將所述至少一個處理的封包路由到所述架構的所述至少一個輸出埠,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,所述至少一個源交換機對至少一個封包報頭進行處理,來產生至少一個處理的封包,其中使用所述至少一個中間表,將所述至少一個處理的封包路由到所述網路的所
述至少一個輸出埠,其獨立於所述至少一個封包報頭的進一步處理。
根據本發明的一個方面,提供一種單層網路,所述網路包括:至少一個輸入埠;至少一個輸出埠;至少一個源交換機,所述源交換機包括至少一個輸入和至少一個輸出;至少一個宿交換機,所述宿交換機包括至少一個輸入和至少一個輸出;及連接所述至少一個源交換機和至少一個宿交換機的架構;其中所述至少一個源交換機對至少一個封包報頭進行處理,來產生至少一個處理的封包或處理的部分封包,將所述至少一個處理的封包或處理的部分封包路由到所述宿交換機,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一個在所述架構中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處理的部分封包路由到所述架構的所述至少一個輸出埠。
根據本發明的一個方面,提供一種在單層網路中對封包或部分封包進行路由的方法,其中,所述網路包括輸入埠、輸出埠,以及至少一個源交換機和至少一個宿交換機的架構,所述至少一個源交換機包括至少一個虛擬輸出佇列,所述至少一個宿交換機包括至少一個調度機制,所述方法包
括:將佇列狀態資訊從至少一個虛擬輸出佇列發送到至少一個調度機制;響應於所述佇列狀態資訊的接收,將至少一個信用值從所述至少一個調度機制發送到所述虛擬輸出佇列;對在所述源交換機的至少兩個封包或至少兩個部分封包進行排序;回應於所述信用值的接收,使用至少一個負載分配演算法,通過多個輸出,將排序的封包或部分封包的至少一個資料流程量從所述至少一個源交換機發送到所述至少一個宿交換機,其中所述資料流程量包含多個封包;及對在所述宿交換機的所述封包或部分封包進行重新排序。
較佳地,所述網路進一步包括至少一個中間交換機:其中將所述佇列狀態資訊從所述至少一個源交換機,通過所述至少一個中間交換機,發送到所述至少一個宿交換機;其中將所述至少一個信用值從所述至少一個宿交換機,通過所述至少一個中間交換機,發送到所述至少一個源交換機;將排序的封包的所述至少一個資料流程量從所述至少一個源交換機,通過至少一個中間交換機,發送到所述至少一個宿交換機;及進一步包括:使用至少一個負載分配演算法,通過所述中間交換機的多個輸出,將至少兩個排序的封包或部分封包發送到所述至少一個宿交換機。
較佳地,所述方法進一步包括:將至少一個源表儲存在至少一個宿交換機中,所述至少一個源表用於將所述至少一個宿交換機的所述至少一個輸出映射到所述網路的所述至少一個輸出埠;及使用所述至少一個源表,通過所述至少一個宿交換機的多個輸出對所述資料流程量進行路由。
較佳地,所述方法進一步包括:將至少一個源表從所述至少一個源交換機,通過所述至少一個中間交換機輸出,發送到所述至少一個中間交換機;根據所述至少一個中間交換機輸出,將至少一個中間表儲存在所述至少一個中間交換機中,所述至少一個中間交換機輸出接收所述源表;及使用所述至少一個中間表,通過所述至少一個中間交換機的多個輸出對所述資料流程量進行路由。
較佳地,所述方法進一步包括:通過至少一個源交換機輸出,將至少一個中間表發送到所述至少一個源交換機;根據所述至少一個中間表和所述至少一個源交換機輸出,將至少一個源表儲存在所述至少一個源交換機中,所述至少一個源交換機輸出接收的所述中間表;及使用所述源表,通過所述源交換機的多個輸出對所述資料流程量進行路由。
較佳地,所述方法進一步包括:回應於至少一個無效的連接,對至少一個源表進行更新。
較佳地,所述方法進一步包括:對至少一個封包報頭進行處理,來產生至少一個處理的封包或處理的部分封包;及將所述至少一個處理的封包或處理的部分封包路由到所述宿交換機,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一
個在所述網路中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
根據本發明的一個方面,提供一種在單層網路中對封包或部分封包進行路由的方法,其中所述網路包括至少一個輸入埠、至少一個輸出埠,以及至少一個源交換機和至少一個宿交換機的架構,所述方法包括:通過變換模組或通過所述至少一個源交換機,對每一個封包或處理的部分封包進行處理,所述處理產生至少一個處理的封包或處理的部分封包;將至少一個源表儲存在所述至少一個源交換機中,所述至少一個源表用於將所述至少一個宿交換機的所述至少一個輸出映射到所述網路的所述至少一個輸出埠,及將至少一個資料流程量從所述至少一個源交換機發送到所述網路的所述至少一個輸出,其中使用所述源表,對所述資料流程量進行路由,所述資料流程量包含多個封包或多個部分封包,至少一個封包或部分封包包含至少一個報頭。
較佳地,所述網路進一步包括至少一個中間交換機,所述方法進一步包括:通過至少一個中間交換機輸出,將所述至少一個源表發送到所述至少一個中間交換機;及根據所述至少一個源表和所述至少一個中間交換機輸出,對所述至少一個中間表進行儲存,所述至少一個中間交換機輸出接收所述源表。
較佳地,所述方法進一步包括:通過至少一個源交換機輸出,將所述至少一個中間表發送到所述至少一個源交換
機;及根據所述至少一個中間表和所述至少一個源交換機輸出,對至少一個源表進行儲存,所述至少一個源交換機輸出接收中間表。
較佳地,所述方法進一步包括對所述至少一個源表進行更新。
較佳地,所述方法進一步包括對至少一個源表進行更新,其中,由至少一個無效的連接引發所述更新。
較佳地,所述方法進一步包括將至少一個處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一個在所述網路中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠。
較佳地,所述方法進一步包括:在所述至少一個源交換機,對至少一個封包報頭或部分封包進行處理,來產生至少一個處理的封包或處理的部分封包;及使用所述宿表,將所述至少一個處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,所述方法進一步包括:在所述至少一個源交換機,對至少一個封包報頭進行處理,來產生至少一個處理的封包或處理的部分封包;及使用所述中間表,將所述至少一
個處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,所述方法進一步包括:在所述至少一個源交換機,對至少一個封包報頭進行處理,來產生至少一個處理的封包或處理的部分封包;及使用所述源表,將所述至少一個處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出埠,其獨立於所述至少一個封包報頭的進一步處理。
根據本發明的一個方面,提供一種在單層網路中對封包進行路由的方法,其中所述網路包括至少一個輸入埠、至少一個輸出埠,以及至少一個源交換機和至少一個宿交換機的架構,所述方法包括:通過變換模組或通過所述至少一個源交換機,對每一個封包或部分封包進行處理,所述處理產生至少一個處理的封包或處理的部分封包;將至少一個處理的封包從所述至少一個源交換機路由到所述至少一個宿交換機,其獨立於所述至少一個封包報頭的進一步處理。
較佳地,將所述處理的封包或處理的部分封包路由到所述網路的所述至少一個輸出。
較佳地,所述處理的封包或處理的部分封包包括最終目的地。
較佳地,所述處理的封包或處理的部分封包包括至少一個在所述網路中的顯式路由。
較佳地,根據所述最終目的地,將所述處理的封包或處
理的部分封包路由到所述網路的所述至少一個輸出埠。
通過下面結合附圖對本發明進行詳細的描述,本發明及其優點是顯而易見的,其中相同的附圖標記表示相同的元件。
本發明提供了提高資料傳輸網路的效率的設備和方法。為包含網路的設備減少了處理的時間和記憶體的要求。此外,減少了資料丟失,從而在故障條件下提高傳輸效率。
現在將結合附圖對根據本發明的原理的設備和方法的示例進行描述,這些附圖形成本發明的一部分。應當理解,在不離開本發明的精神和範圍情況下,可以使用其他實施例做出架構上、功能上和程式上的改變。
本領域的技術人員知悉,本發明可以整體或部分地體現為方法、資料處理系統或電腦程式產品。因此,本發明可以採取全硬體、全固件/軟體、軟體、固件、硬體結合或任何其他適合的方式的實施例形式。
此外,這些方面可以採取這樣的形式:由含有電腦可讀程式碼或指令的一個或多個電腦可讀儲存媒介儲存的電腦程式產品,在儲存媒介裡或上實施電腦可讀程式碼或者指令。可以使用任何適合的電腦可讀儲存媒介,包括硬碟、EEPROM、快閃記憶體、SRAM、DRAM、CD-ROM、光存放裝置、磁存放裝置和/或任何以上的結合。此外,可以以電磁波的形式在源和目的地之間傳輸代表本發明所描述的資料或事件的各種信號,該電磁波在信號傳導媒介如金屬線、
光纖,和/或無線傳輸媒介如空氣和/或空間中進行傳播。
圖1是網路100的示例的示意圖。網路100最好包括一層源交換機110、111和112、一層中間交換機120、121和122,以及一層宿交換機130、131和132。網路100含有9個輸入埠1-9和9個輸出埠11-19。網路100通常以封包或部分封包的形式,將資料從輸入埠傳輸到輸出埠。通常使用網路100來將資料從與輸入埠相連接的硬碟驅動器傳輸到與輸出埠相連接的另一個硬碟驅動器。
所示的網路100含有輸入埠和輸出埠,從而支持只在一個方向的資料流程量。然而,最好的拓撲允許資料同樣從名義上的“輸出埠”傳輸到名義上的“輸入埠”。因此,最好的拓撲最好允許網路中的每一條鏈路同樣在任何一個方向上傳輸資料。在這樣最好的拓撲中,不需要從宿返回到源的額外的鏈路。因此,同一路徑可以用於傳輸資料,也可以用於傳輸控制資訊。
例如,如果宿130想發送控制資訊返回給源111,它能使用退出源111的鏈路。如果相應的源和宿在它們之間具有各自的通訊通道,這是有可能的。這樣的通訊通道通常是簡單的和局部的(local),因為相應的源和宿可以是相同的網路元件的一部分。例如,宿130和源111可以是相同的網路服務器的一部分。
因此,正如在下面的描述所示,允許資料在系統中“反向(backwards)”流動來支援控制資訊和路由表的傳輸是方便的。其他允許資料在一個方向上流動或僅允許在一個方向上
的高速資料移動的配置是可以設想的且包含於本發明的範圍之內。同樣,“帶外”的提供或控制資訊的各自的控制流量路徑是可以設想的且包含於本發明的範圍之內。為了簡化網路100的實施例的描述,將僅對從輸入埠到輸出埠的、含有在相同鏈路中以任何一個方向流動的控制資訊的資料傳輸進行描述。
在先前的描述中,每一個交換機含有幾個輸入端和輸出端,該輸入端和輸出端通過鏈路連接至其他交換機和/或網路的輸入/輸出埠。為了短暫的利益,將通過其端點對鏈路進行描述,例如,將在源交換機111的輸出116z到中間交換機122的輸入端127B之間的鏈路描述為鏈路(116z,127B)。該鏈路也可以描述為鏈路(127B,116z),其使用一個或另一個描述沒有區別。將以類似的方式對在網路埠和交換機之間的鏈路進行描述,例如,將在宿交換機輸出138y到網路輸出埠18之間的鏈路描述為(138y,18)。可以通過已知的標準,如通過乙太網的TCP/IP或通過專有的(proprietary)方法或機制,來執行每一條鏈路。
源交換機110分別通過輸入端113A、113B和113C與輸入埠1、2、3相連接。在網路100的輸入埠1-3和源交換機的輸入端113A-113C之間的鏈路可以是通過已知的標準如基於乙太網的TCP/IP或專有的標準的。網路的輸入埠(或輸出埠)的一個實施例可以使用變換模組來將資料從已知的標準轉換為專有鏈路協定(或從專有鏈路協定轉換為已知的標準)。變換模組可以被執行為一個或多個線卡。或者,一個或多個變換
模組可以被配置為“比薩盒”或任何其他適合執行的架構。這個架構允許同一源交換機與不同的網路通訊協定相連接,而每一網路通訊協定可需要不同的變換模組。
在本發明的一些實施例中,網路可以包括在網路的起點和終點的伺服器。這樣,伺服器最好可以替換在網路的輸入端上的源交換機、替換在網路的輸出端上的宿交換機,或不僅替換在網路的輸入端上的源交換機,也替換在網路的輸出端上的宿交換機。在一些實施例中,單個伺服器不僅可以充當源交換機,也可以充當宿交換機。
在源交換機的另一個實施例中,其可以包含作為輸入端113A-113C的一部分的一個或多個標準協議。在這樣的配置中,網路100的輸入埠成為至少一個源交換機110-112的輸入端。然而,在另一個實施例中,網路的幾個輸入埠可以通過共用的媒介,與源交換機的單個輸入端相連接。所述這樣的實施例和這些實施例的組合都是可以設想的且包含於本發明的範圍之內。
下面的描述通過假設變換模組架構而標準化。在這個架構中,一張卡連接於網路的每一個輸入端或輸入端。源交換機111和112類似地分別與輸入埠4-6和7-9相連接。
源交換機110通過鏈路(114x,123A)與中間交換機120相連接。源交換機110以類似的方式,分別通過鏈路(114y,125A)和鏈路(114z,127A)與中間交換機121和122相連接。類似地,源交換機111和112還與中間交換機120-122相連接,因此,網路100中的每一個源交換機都通過至少一條鏈
路與網路100中的每一個中間交換機相連接。
雖然所述的實施例示出了在每一個源交換機110-112和中間交換機120-122之間的一條或僅一條鏈路,但其他配置也是可能的。這些配置包括在幾對源交換機110-112和中間交換機120-122之間的多個連接,和/或在幾對源交換機110-112和中間交換機120-122之間沒有連接。所有這些可能的變化都是可以設想的且包含於本發明的範圍之內,網路100的實施例反應設備的一個可能的配置。
中間交換機120通過鏈路(124y,133A)與宿交換機130相連接。中間交換機120以類似的方式,分別通過鏈路(124y,135A)和鏈路(124z,137A)與宿交換機131和132相連接。類似地,中間交換機121和122還與宿交換機130-132相連接,因此,每一個中間交換機都通過至少一條鏈路與每一個宿交換機相連接。
雖然所述的實施例示出了在每一個中間交換機120-122和宿交換機130-132之間的一條或僅一條鏈路,但其他配置也是可能的。這些配置包括在幾對中間交換機120-122和宿交換機130-132之間的多個連接,和/或在幾對中間交換120-122和宿交換機130-132之間沒有連接。所有這些可能的變化都是可以設想的且包含於本發明的範圍之內,網路100的實施例反應設備的一個可能的配置。
宿交換機130分別通過輸出端134x、134y和134z與輸出埠11、12、13相連接。在網路100的輸出埠11-13和宿交換機的輸出端134x-134z之間的鏈路可以是通過已知的標準如基
於乙太網的TCP/IP或專有的標準的。網路的輸入埠的一個實施例可以使用變換模組來將資料從專有鏈路協定轉換為已知的標準。這個架構允許同一宿交換機與不同的網路通訊協定相連接,而每一網路通訊協定可需要不同的變換模組介面。在宿交換機的另一個實施中,其可以包含作為輸出端134x-134z的一部分的一個或多個標準協議,並減少對轉換模組的需求。在這樣的配置中,網路的輸出埠成為至少一個宿交換機130-132的輸出端。然而,在另一個實施例中,網路的幾個輸出埠可以通過共用的媒介,與宿交換機的單個輸出端相連接。所述這樣的實施例和這些實施例的組合都是可以設想的且包含於本發明的範圍之內。宿交換機131和132類似地分別與輸出埠14-16和17-19相連接。
網路100最好配置為本領域所知悉的COLS網路。但其他包括完全連接的交叉交換機的阻塞和無阻塞的配置是可以設想的且包含於本發明的範圍之內。
雖然網路100的配置僅含有單層中間交換機120、121、122,但可以使用多層中間交換機,且包含於本發明的範圍之內。同樣,源交換機110-112和宿交換機130-132可以彼此相同或不同。如果網路中的所述鏈路是相同的,那麼源交換機和宿交換機也最好是相同的。同樣,所述交換機,源交換機110-112、中間交換機120-122和宿交換機130-132可以是相同的。每一個這些變化可以設想的且包含於本發明的範圍之內。
在網路100的交換機110-112的每層中,示出了三個中間
交換機120-122和三個宿交換機130-132。任何數量的交換機都可以包括在層中,從單個交換機到三個以上的交換機,使網路100的實施例代表一種可能的配置。每個層具有與任何可能的組合中的其他層不同數量的交換機。交換機的所有這些配置是可以設想的且包含於本發明的範圍之內。
雖然所示的源交換機110-112、中間交換機120-122和宿交換機130-132為不同的設備,以任何組合形式來組合源交換機110-112和中間交換機120-122的功能、源交換機110-112和宿交換機130-132的功能的其他設備配置也是可能的。所有可能的配置都包含於本發明的範圍之內,包括使用單層設備來執行網路100。
圖2是源交換機110的一個實施例的示意圖。源交換機110含有三個輸入端113A、113B和113C。輸入端113A-113C可以與記憶體140相連接。源交換機110含有三個輸出端114x、114y和114z。輸出端114x-114z可以與記憶體140相連接。記憶體140可以用於執行N個虛擬輸出佇列141A、141B、141C...141N。每個虛擬輸出佇列141A-141N為某一目的地而緩存數據。從虛擬輸出佇列141A-141N至目的地的資料傳輸,需要將資料路由到網路100的特定輸出埠。
雖然描述示出了使用單個記憶體140來執行所有的虛擬輸出佇列141A-141N,但是其他的執行,例如,每個虛擬輸出佇列141A-141N的單獨的記憶體也是可能的,且包含於本發明的範圍之內。單獨的記憶體可以用於執行無阻塞的交叉交換機,但是其他配置,包括阻塞的配置,是可以設想的且
包含於本發明的範圍之內。
雖然源交換機110的實施例示出了三個輸入端和三個輸出端,但是其他任何組合的更多或更少的輸入端和/或更多或更少的輸出端的配置是可以設想的。同樣,源交換機可以有不匹配的輸入端和輸出端,例如,2個輸入端和5個輸出端,這也是可以設想的。每一個上述的任何組合的可能是可以設想的且包含於本發明的範圍之內。
圖3是宿交換機130的一個實施例的示意圖。宿交換機含有三個輸入端133A、133B和133C。輸入端133A-133C可以與控制模組150相連接。宿交換機130含有三個輸出端134x、134y和134z。輸出端134x-134z可以與控制模組150相連接。控制模組150可以用於執行機制151A、151B...151M。
最好每一個調度機制151A-151M可以控制宿交換機130的輸出端134x-134z中的一個。或者,每個調度機制151A-151M可以控制宿交換機130的輸出端134x-134z中的一些或全部。在另一種選擇中,多個調度機制151A-151M可以被分配給宿交換機130的每一個輸出端134x-134z。特別地,在源交換機中的虛擬輸出佇列的數量N可以等於或可以不等於在宿交換機中的調度機制的數量M。每個這些配置和任何其他適合的配置都是可以設想的且包含於本發明的範圍之內。
每個調度機制151A-151M可以從屬於一個或多個交換機的一個或多個虛擬輸出佇列中接收佇列狀態資訊。可以當已對虛擬輸出佇列進行分配或初始化時,發送佇列狀態資訊。也可以當虛擬輸出佇列的狀態發生變化時,發送佇列狀態資
訊。佇列狀態資訊可以包含狀態,例如佇列滿、佇列幾乎滿、佇列在中點等。佇列狀態資訊可以包括命令,例如加速傳輸、大大加速傳輸、減速等。
調度機制151A-151M可以用於生成信用值來回應佇列狀態資訊。信用值允許通過網路100,將資料從源交換機路由到宿交換機。分配可以採取保留鏈路或保留鏈路的頻寬的一部分的形式。先前的描述,至少需要鏈路,該鏈路攜帶控制資訊例如從虛擬輸出佇列到調度機制的佇列狀態資訊。同樣,鏈路應該攜帶從調度機制到虛擬輸出佇列的信用值。在網路100中的資料連結最好能夠在各個方向都攜帶資料和控制資訊。
雖然描述示出了使用單個控制模組150來執行所有的調度機制151A-151M,但是其他的配置,例如,每個調度機制151A-151M的單獨的模組,也是可能的,且包含於本發明的範圍之內。單個控制模組150可以用於執行無阻塞的交叉交換機和/或宿交換機130的輸出佇列。所有這些配置,包括阻塞的配置和任何其他適合的配置都是可以設想的且包含於本發明的範圍之內。
雖然宿交換機130的實施例示出了三個輸入端和三個輸出端,但是其他任何組合的更多或更少的輸入端和/或更多或更少的輸出端的配置是可以設想的。同樣,宿交換機可以有不匹配的輸入端和輸出端,例如,2個輸入端和5個輸出端,這也是可以設想的。每一個上述的任何組合的可能是可以設想的且包含於本發明的範圍之內。
網路100至少部分地根據頻寬的分配來傳輸資料。資料通常以資料封包(或一部分資料封包)的形式存在於源交換機的輸入端,例如,源交換機110的113A。資料封包(或部分資料封包)可以含有報頭,該報頭包含目的地位址。可以將目地位址映射到網路的輸出埠,例如,網路100的輸出埠11。
可以通過源交換機的報頭處理來啟動資料的傳輸。源交換機最好對虛擬輸出佇列進行分配,例如,將源交換機110的虛擬輸出佇列141A分配給特定輸出埠。可以將資料封包(或部分資料封包)儲存於虛擬輸出佇列。可以有幾乎無限數量的虛擬輸出佇列到同一目的地,包括,例如,不同流量到同一目的地和/或不同流量類別到同一目的地。最好將每個虛擬輸出佇列(或至少每個單傳的(unicast)虛擬輸出佇列)分配給輸出埠(或邏輯輸出埠,其可以是網路100的輸出埠的子埠)。另一種選擇是,資料封包(或部分資料封包)可以儲存於現有的佇列中,該佇列先前已被分配。
在本發明的一些實施例中,當將封包(或部分封包)儲存好時,虛擬輸出佇列將佇列狀態資訊發送到宿交換機中的調度機制,例如宿交換機130的調度機制151A。佇列狀態資訊可以基於佇列狀態的變化。調度機制將以頻寬的適合的信用值來進行回應。根據路由擁擠、在宿交換機中的擁擠或在網路的輸出埠上的擁擠或任何其他適合的標準,來對信用值進行分配。最好根據在所有源交換機中的所有的競爭的虛擬輸出佇列之間的計畫(scheme)來對信用值進行分配,其中,虛擬輸出佇列將一些東西發送到目的地,也就是,虛擬輸出佇
列不能為空或不能處於OFF的狀態。調度利用一個或多個層次(安全加密鏈路(tunnels)、客戶、應用等),可以是簡單的(所有佇列是均等的)或基於優先順序(嚴格的優先順序或重要性)。
當接收到信用值時,虛擬輸出佇列可以通過一個或多個中間交換機,將資料封包(或部分資料封包)發送到宿交換機。由虛擬輸出佇列發送的資料量可以通過接收的信用值來控制。
通過網路發送資料封包(或部分資料封包)要求網路中的交換機被配置來對資料流程量進行路由。圖4a示出了在網路400中的對幾個資料流程量進行路由的實施例。圖中假設已對頻寬信用值進行分配來允許同時地對資料流程量進行路由。然而,路由的選擇可以在網路400中產生瓶頸或阻塞。特別地,當一次一個地對資料流程量進行路由時,可能會存在沿著一條鏈路來對兩個流量進行路由的需要。這樣的衝突可能需要對一些或全部目前的路由進行重新路由。
為了簡化路由的描述,通過網路的資料流程量(或僅僅是流量)將被指定為一系列片段(segments),例如,流量450是片段450A-450D的集合,而圖4a所示的為一系列片段。必須將每一片段進行路由以允許資料流程量的移動。
圖4a示出了在對流量的某一佇列進行路由之後如何發生阻塞的。應當注意的是,圖4a描述了一種靜態路由的形式,一般地,其代表了靜態路由的許多形式。圖4a所示的靜態路由,根據源埠、目的地埠或源埠和目的地埠的組合來進行選
擇。使用宿530作為目標而不直接將封包和/或部分封包傳輸到網路的某一埠也是可能的。因此,中間交換機520能,但不是必須的,知道特定的埠11、12或13。更確切地說,知道如何到達宿交換機是足夠的。當流量到達宿交換機時,宿交換機可以使用特定的輸出資訊來選擇宿交換機的特定的輸出埠。這種方法較好地減少了在網路中的其他設備的路由表中的信息量。
首先,流量450可以連接輸入埠1至輸出埠11。流量450包含片段450A、450B、450C和450D。片段450A可以沿著鏈路(1,413A)路由到源交換410。資料可以緩存在源交換機410裡的虛擬輸出佇列。片段450B可以通過鏈路(414x,423A)路由到中間交換機420。片段450C可以通過鏈路(424x,433A)路由到宿交換機430。最後,片段450D可以通過鏈路(434x,11)路由到網路400的輸出埠11。
接著,可以增加流量453,來連接輸入埠9至輸出埠19。流量453包含片段453A、453B、453C和453D。片段453A可以沿著鏈路(9,417A)路由到源交換機412。可以將資料緩存在源交換機412裡的虛擬輸出佇列。片段453B可以通過鏈路(418z,427C)路由到中間交換機422。片段453C可以通過鏈路(428z,437C)路由到宿交換機432。最後,片段453D可以通過鏈路(438z,19)路由到網路400的輸出埠19。
接著,可以增加流量452,來連接輸入埠8至輸出埠12。流量452包含片段452A、452B、452C和452D。片段452A可以沿著鏈路(8,417B)路由到源交換機412。可以將資料緩存
在源交換機412裡的虛擬輸出佇列。片段452B可以通過鏈路(418y,425C)路由到中間交換機421。片段452C可以通過鏈路(426x,433B)路由到宿交換機430。最後,片段452D可以通過鏈路(434y,12)路由到網路400的輸出埠12。
最後,可以增加流量451,來連接輸入埠7至輸出埠13。然而,流量451僅僅包含片段451A和451B。片段451A沿著鏈路(7,417A)路由到源交換機412。可以將資料緩存在源交換機412裡的虛擬輸出佇列。片段452B可以通過鏈路(418x,423C)路由到中間交換機420。但沒有對更多的片段進行路由,因為流量451所需的目的地是網路400的輸出埠13。這個路徑需要使用已被流量450佔用的鏈路(424x,433A)。這就需要無阻塞流量的一些重新路由,來允許對流量451進行路由。
圖4b示出了網路400的替代的路由安排,其允許四個流量450-453,在不互相阻塞的情況下,可以到達它們的目的地。應當注意的是,僅僅對流量453的路由進行修改,以允許流量451路由到網路400的輸出端13。如圖4a所示,流量450仍然是通過鏈路(1,413A)、(414x,423A)、(424x,433A)和(434x,11)在輸入端1和輸出端11之間進行路由。類似地,流量452仍然是沿著鏈路(8,417B)、(418y,425C)、(426x,433B)和(434y,12)進行路由。
然而,圖4b的流量453的路由與圖4a中的不同。片段453沿著鏈路(9,417C)路由到源交換機412。正如前面可以將資料緩存在源交換機412裡的虛擬輸出佇列。片段453B可以通
過鏈路(418x,423C)路由到中間交換機420。片段453C可以通過鏈路(424z,437A)路由到宿交換機432。最後,片段453D可以通過鏈路(438z,19)路由到網路400的輸出埠19。
流量453的路由的改變允許流量451通過不被阻塞的路徑到達網路400的輸出端13。流量451包含片段451A-451D。片段451A可以沿著鏈路(7,417A)路由到源交換機412。可以將資料緩存在源交換機412裡的虛擬輸出佇列。片段451B可以通過鏈路(418z,427C)路由到中間交換機422。片段451C可以通過鏈路(428x,433C)路由到宿交換機430。最後,片段451D可以通過鏈路(434z,12)路由到所需的網路400的輸出埠13。
應當注意的是,圖4a和圖4b的路由一旦建立,其本質上是靜態的。雖然重新路由允許所有流量同時地運行,但是重新路由過程是複雜的,且需要整個網路400的合作。可能會發生這樣的情況,為了容納單個新的流量,需要改變網路400中的每一個流量的每一個路由。重新路由可能導致目前的流量的中斷且需要大量資源。創建以合作的方式進行運行的路由將是可取的。此外,在局部的基礎上作出路由決定而不是需要透過整個網路400作出決定,這也將是可取的。
圖4c示出了動態路由的實施例,其比先前所描述的靜態路由方法更有優勢。正如前面流量450將在輸入端1和輸出端11之間進行路由,流量451將在輸入端7和輸出端13之間進行路由,流量452將在輸入端8和輸出端12之間進行路由,從及流量453將在輸入端9和輸出端19之間進行路由。
正如先前的圖所描述,流量,例如流量450可以包含片段450A、450B、450C和450D。圖4c示出了每個片段可以進一步包含子片段,例如,片段450B可以包含子片段450B1、450B2和450B3。其他片段,例如片段450A,可以不包含子片段。
流量450可以連接輸入埠1至輸出埠11。流量450包含片段450A、450B、450C和450D。片段450A可以沿著鏈路(1,413A)路由到源交換機410。可以將資料緩存在源交換機410裡的虛擬輸出佇列。片段450B可以包含子片段450B1、450B2和450B3。每個子片段可以用於傳輸通過流量450移動的部分資料。
可以將資料以一個或多個封包(或一個或多個部分封包),分配在子片段中。可以將單個封包分配在幾個子片段中。僅僅使用可用的子片段的一個子片段也是可能的。可以局部性地通過源交換機410,來決定資料封包(或部分封包)在片段450B的子片段的分配。可以根據至少一個分配演算法來作出分配決定。任何數量的子片斷都可用於形成一個片斷。
子片段450B1可以通過鏈路(414x,423A)路由到中間交換機420。片段450B2可以通過鏈路(414y,425A)路由到中間交換機421。片段450B3可以通過鏈路(414z,427A)路由到中間交換機422。分配結果允許流量450使用網路400中的每一個中間交換機。
片段450C可以包含子片段450C1、450C2和450C3。子片
段450C1可以通過鏈路(424x,433A)路由到宿交換機430。片段450C2可以通過鏈路(426x,433B)路由到宿交換機430。片段450C3可以通過鏈路(428x,433C)路由到宿交換機430。片段450D可以通過鏈路(434x,11)路由到網路400的輸出埠11。
接著,可以增加流量453,來連接輸入埠9至輸出埠19。流量453包含片段453A-453D。片段453A可以沿著鏈路(9,417C)路由到源交換機412。可以將資料緩存在源交換機412裡的虛擬輸出佇列。片段453B可以包含子片段453B1、453B2和453B3。每個子片段可以用於傳輸通過流量453移動的部分資料。正如流量450,可以將資料以一個或多個封包(或多個部分封包),分配在子片段中。可以局部性地通過源交換機412,來決定資料封包在片段453B的子片段的分配。
子片段453B1可以通過鏈路(418x,423C)路由到中間交換機420。片段453B2可以通過鏈路(418y,425C)路由到中間交換機421。片段453B3可以通過鏈路(418z,427C)路由到中間交換機422。
片段453C可以包含子片段453C1、453C2和453C3。子片段453C1可以通過鏈路(424z,437A)路由到宿交換機432。片段453C2可以通過鏈路(426z,437B)路由到宿交換機432。片段453C3可以通過鏈路(428z,437C)路由到宿交換機432。片段453D可以通過鏈路(438z,19)路由到所需的網路400的輸出埠19。
接著,可以增加流量452,來連接輸入埠8至輸出埠12。流量452包含片段452A-452D。片段452A可以沿著鏈路(8,417B)路由到源交換機412。片段452B可以包含子片段452B1、452B2和452B3。可以局部性地通過源交換機412,來決定資料封包在片段452B的子片段的分配。
子片段452B1可以通過鏈路(418x,423C)路由到中間交換機420。片段452B2可以通過鏈路(418y,425C)路由到中間交換機421。片段452B3可以通過鏈路(418z,427C)路由到中間交換機422。片段452B的每一個子片段與片段453B的每一個子片段可以共用鏈路,例如,子片段453B3和子片段452B3共用鏈路(418z,427C)。因此,網路400中的鏈路可以比一次路由一個流量的鏈路要路由更多的流量。可以通過每個流量的資料封包(或部分資料封包)的時分複用或通過任何適合的方法,來實現支持多個流量。可以通過由源交換機412執行的分配演算法來控制流量的一個或多子片段對鏈路的使用。
片段452C可以包含子片段452C1、452C2和452C3。子片段452C1可以通過鏈路(424x,433A)路由到宿交換機430。片段452C2可以通過鏈路(426x,433B)路由到宿交換機430。片段452C3可以通過鏈路(428x,433C)路由到宿交換機430。片段452D可以通過鏈路(434y,12)路由到所需的網路400的輸出埠12。應當注意的是,片段452C的子片段與450C的子片段共用鏈路。正如上面所述,可以通過中間交換機420、421和420的分配演算法來控制鏈路共用。
最後,可以增加流量451,來連接輸入埠7至輸出埠13。然而,流量451僅僅包含片段451A-451D。片段451A沿著鏈路(7,417A)路由到源交換機412。片段451B可以包含子片段451B1、451B2和451B3。子片段451B1可以通過鏈路(418x,423C)路由到中間交換機420。片段451B2可以通過鏈路(418y,425C)路由到中間交換機421。片段451B3可以通過鏈路(418z,427C)路由到中間交換機422。片段451C可以包含子片段451C1、451C2和451C3。子片段451C1可以通過鏈路(424x,433A)路由到宿交換機430。片段451C2可以通過鏈路(426x,433B)路由到宿交換機430。片段451C3可以通過鏈路(428x,433C)路由到宿交換機430。片段451D可以通過鏈路(434z,13)路由到所需的網路400的輸出埠13。
使用分配演算法來分配資料到多條鏈路和在這些鏈路上複用資料,其具有幾個優點。第一,路由是無阻塞的。不需要對目前的路由進行重新路由便可以增加每一個可能的路由。第二,路由變為局部的決定,大大簡化了網路400的控制。第三,它可以更容易地繞過無效的鏈路而進行路由,該無效的鏈路是擁擠的或被損壞的。
雖然圖4c示出了每個片段可以進一步包含通過每一個交換機的每一個可能的輸出進行分配的子片段,但是其他配置也是可能的且包含於本發明的範圍之內。例如,一些交換機允許少於最大輸出量的輸出供片段使用。一些流量可以比其他流量有更高的優先順序和比其他流量更大的交換機輸出分配。
同樣,一些片段不被分配,例如,流量450的片段450A可以被分配。片段450A的一個分配例子可以將該片段分成子片段450A1和450A2。子片段450A1使用鏈路(1,413A)來到達源交換機410。子片段450A2使用鏈路(8,417B)來到達源交換機412。這樣的分配假設網路400之外的附加機制。
就圖4c的靜態路由而言,如圖4c所示的動態路由的確具有缺點。靜態路由僅為所有封包提供單一的路徑。因此可以保證封包到達輸出埠的順序。當將封包分配到多個子片段時,沒有辦法保證封包以某一順序到達,如一些鏈路可以比其他鏈路快。因此,動態路由需要對封包(或部分封包)進行編號或排序,以及通過宿交換機對封包(或部分封包)進行重新排序。
圖5a示出了另一個實施例網路500,其包含目的地路由表的分配、下文中的表。網路500的拓撲與圖1所示的網路100的拓撲相同。這個實施例通過分配路由表到系統的交換機,來提高路由效率。路由表的一個實施例可以包括交換機的輸出到容易到達的宿設備的映射,通過網路500的宿設備號碼對其進行識別。
映射最好是完整的,也就是,每一個表都映射所有容易到達的宿設備。然而,短表僅包含一些容易到達的宿設備是可以設想的且包含於本發明的範圍之內。
中間交換機520創建中間表520A、下文中的表520A。表520A將輸出524x映射到宿交換機530。輸出524y被映射到宿交換機531、輸出524z被映射到宿交換機532。中間交換機
521和522以類似的方式創建表521A和522A。表520A、521A、522A與源交換機510、511、512共用。
源交換機510創建表源510A,即下文的表510A。表510A將輸出514x映射到宿交換機530、531和532,即映射到網路的每一個宿交換機。將輸出端514y映射到宿交換機530、531和532,以及將輸出514z映射到宿交換機530、531和532。源交換機511和512以類似的方式創建表511A和512A。
一旦將表儲存在交換機中,對各個流量的封包(或部分封包)進行路由將更加方便。如果一個表將在圖4b所示的靜態流量映射到網路500,流量450和452的路由是簡單的。與流量450的路由衝突的流量451的路由,可以容易地連同流量453和452的路由來進行重新路由,以阻止阻塞。應當注意的是,靜態路由問題的綜合解決方案可能需要知道網路400中的每一個表。進一步應當注意的是,在圖4c中所描述的動態路由使用表510A-512A和520A-522A更有效。
雖然這一次將表儲存在交換機中是可能的,但是最好是連續地或週期性地,最好是以預設的時間間隔,對表進行更新。一個這樣的更新率為每毫秒一次,但其他率是可以設想的且包含於本發明的範圍之內。更新可能會經常發生,為了排除不能到達目的地的路由,即當某一鏈路變為無效時,僅使用能到達所需目的地的路由。根據本發明也可以通過這些系統和方法來處理其他故障(failures),包括多條鏈路故障、設備故障、多個設備故障、模組故障、底盤故障、交換機故障等。
在本發明的另一個實施例中,封包處理更有效和可以使用表510A-512A和520A-522A。圖6a示出了含有資料部分601和報頭602的資料封包600的通用配置。報頭通常包含封包(或部分封包)的目的地位址。根據報頭的佈局(layout),對每種類型的封包,例如,TCP/IP封包進行處理,來獲取目的地位址,以使得封包600(或部分封包)能夠進行路由。封包的路由可以根據預先安排的靜態路由或通過動態路由來發生;不管是哪一種情況,目的地最好是已知的。通常在每一階段的路由都對報頭進行處理。例如,在圖4a中,通過流量450路由的封包經由源交換機410、中間交換機420和宿交換機430傳輸。在每個交換機中,對報頭進行處理來提取目的地位址。在交換機獲得目的地位址之後,就可以接著進行下一階段的路由。
報頭的處理可能需要交換機的處理能力和儲存。在本發明的這個實施例中,在進入網路400之前,通過變換模組對封包報頭進行處理,或在被封包600穿越的第一交換機如源交換機410中,對封包報頭進行處理。在最初的報頭處理後,最好不再對報頭進行處理,因此創建單層網路,即處理一次報頭的處理網路,因此,其獨立於進一步的處理。報頭處理從報頭602中獲取目的地位址。接著,將目的地位址映射到與網路400有關的目的地,即網路的輸出埠。一個示例路由例如流量450具有網路400的輸出埠11的目的地。
可以將最終目的地,如在圖6b中所示的最終目的地603,添加到報頭601。可以不用通過以下儲存於每一個交換
機中的路由表對報頭進行處理,而對改進的封包610(或部分封包)進行路由。在本發明的某些實施例中,可以在宿設備中局部性地作出關於輸出的決定。如在圖5a中所示的路由表路由至宿交換機。
作為一個例子,圖4b示出了流量450可以路由它的封包(或者部分封包)如下:首先,可以通過片段450A將資料封包600(或部分資料封包)發送到源交換機410,其中可以對報頭602進行處理並轉換成封包610(或部分封包,分別地)。流量450的最終目的地603為網路400的輸出埠11。接著,可以通過片段450B將封包610(或部分封包)發送到中間交換機420。中間交換機420可以使用最終目的地603,將封包610路由到宿交換機430。
最後,宿交換機430將封包610轉換成封包600,並將封包600(或部分封包)路由到網路400的最終目的地11。因此,為通過網路400的整個路由,僅對報頭處理一次。內部的路由決定僅決定於最終目的地603。
應當注意的是,儲存路由表,例如,圖5a的表520A,增強了通過高速路由對報頭處理一次而不需進一步對報頭進行處理的優勢。路由表通過提供每個交換機的能夠到達最終目的地的輸出列表,來幫助路由。
本發明的另一個實施例可以執行圖4c所示的在網路500上覆蓋的動態路由。採用流量450作為一個例子,可以建立流量到網路400的輸出埠11。首先,可以通過片段450A將資料封包600(或部分資料封包)發送到源交換機410。其中可以
對報頭602進行處理並轉換成封包610(或部分資料封包)。
接著,源交換機410可以使用分配演算法來選擇應該用於傳輸的子片段。在這個特定的情況下,路由表可以是不必要的,進一步簡化源交換機410。在這個例子中,路由表不是必需的,因為在網路400的這個配置中,每一個中間交換機都可以接入到網路的每一個輸出埠。
選擇一個子片段後,可以將封包610(或部分封包)路由到中間交換機。在這個例子中,選擇子片段450B1並將封包610路由到中間交換機420。接著,中間交換機420可以使用最終目的地603,來通過子片段450C1將封包610路由到宿交換機430。最後,宿交換機430將封包610轉換成封包600,並將封包600路由到網路400的最終目的地11。
圖6c是用於優化封包報頭處理的另一個實施例。封包620(或部分封包)含有資料部分601、報頭602和三個路由部分604a、604b和604c。路由部分包含封包620(或部分封包)的顯式路由指示。網路500的實施例包含三層交換機,該三層交換機限制路由部分的數量。網路500的包含任何層數的其他配置是可以設想的。因此,任何數量的路由部分是可以設想的且包含於本發明的範圍之內。
正如以下這個例子,順著圖4b中的流量450發送封包600(或部分封包)。通過片段450A將封包600發送到宿交換機410,其中對報頭602進行處理以產生封包620。然後,源交換機410從封包620中刪除並取出路由部分604c的值,以產生如圖6d所示的封包630。然後,源交換機410使用輸出端
414x,來通過片段450B將封包630發送到中間交換機420,其中,輸出端414x為從路由部分604c中取出的值。然後,中間交換機420從封包630中刪除並取出路由部分604b的值,以產生如圖6e所示的封包640。然後,中間交換機420使用輸出端424x,來通過片段450C將封包640發送到宿交換機430。然後宿交換機430從封包640中刪除並取出路由部分604a的值,以產生封包600。然後,宿交換機430通過片段450D將封包600發送到網路400的輸出埠11。
處理的封包620(或部分封包)的另一運用是使用圖4c所示的在網路500上覆蓋的動態路由。使用在動態路由方法中的封包620(或部分封包)如下進行。正如前面將流量450的封包600(或部分封包)發送到宿交換機410。宿交換機410對報頭602進行處理,來產生如圖6f所示的報頭620A。在這一點上,通過源交換機410作出動態路由決定。
然後,源交換機410從封包620A中刪除並取出路由部分604e的值,以產生如圖6g所示的封包630A。然後,源交換機410使用輸出端414y,來通過子片段450B2將封包630A發送到中間交換機421。然後中間交換機420從封包630A中刪除並取出路由部分604d的值,以產生如圖6e所示的封包640。然後,中間交換機421使用輸出端414x,來通過子片段450C1將封包640發送到宿交換機430。然後,宿交換機430從封包640中刪除並取出路由部分604a的值,以產生封包600。然後,宿交換機430通過片段450D將封包600發送到網路400的輸出埠11。應當注意的是,最好是,只在宿交換機
410中能為這個路由作出動態路由決定。中間交換機421沒有動態路由選擇,但使用負載分配演算法來協調幾個流量之間的鏈路(426x,433B)的共用。
雖然圖4c中所示的網路400的動態路由的配置允許在源交換機中作出所有動態路由決定,但是其他配置也是可能的且包含於本發明的範圍之內。正如一個例子,二層中間交換機允許在第一層中間交換機中作出動態路由決定。一種選擇是允許源交換機來為整個網路作出所有動態分配,如上述的簡化例子所示。另一個選擇性實施例允許通過每個交換機對封包進行重新處理,來調整局部路由的要求。
雖然使用基於目的地的路由表,連同對單個報頭進行處理,但是每一種技術在其權利內是有用的,並且是可以在本發明的範圍內設想的。僅對報頭處理一次和使用其他的路由方法是有用的,因為中間交換機和宿交換機從來不對報頭進行處理。同樣,在每個交換機中創建表,允許繞過無效的鏈路而重新路由,即使在網路中的每一個交換機中對封包的報頭進行處理。
圖5b示出了圖5a中所示的相同網路500的另一個實施例。然而,在這個例子中,鏈路(524x,533A)已經發生故障。可以對圖5b中所示的表進行更新,並如下建立路由。首先,每個宿交換機獲取交換機輸出到宿交換機的映射。
中間交換機520創建表520B。表520B沒有將輸出524x映射到任何地方。輸出524y被映射到宿交換機531,以及輸出524z被映射到宿交換機532。中間交換機521和522創建表
521A和522A,如上面參考圖5a所示的實施例進行的描述。
源交換機510、511和512共用表520B、521A和522A。源交換機510創建表510B。表510B將輸出514x映射到宿交換機531和532。輸出514y被映射到宿交換機530、531和532,以及輸出514z被映射到宿交換機530、531和532。源交換機511和512創建表511A和512A,如上面參考圖5a所示的實施例進行的描述。
一旦將表儲存在交換機中,各個流量中的封包的路由能將故障的鏈路考慮進去。在參考圖4b進行描述的靜態路由方案實施例中,流量450的路由是阻塞的。這是絕對的阻塞,因為輸出端433B和433C分別被流量452和451佔用。更新的表向網路500暴露了故障,留下協定中的更高的網路層來解決的問題。
參考圖4c進行描述的動態路由實施例可以使用更新的路由表來繞過故障的鏈路而進行路由。作為一個示例,使用流量450,可以建立到達網路400的輸出端11的路由。首先,通過片段450A,將資料封包600(或部分資料封包)發送到源交換機410,其中可以對報頭602進行處理並轉換成封包610。
接著,源交換機410可以使用分配演算法來選擇應該用於傳輸的子片段。在這個例子中,假定鏈路(524x,533A)的故障,僅可以選擇兩個子片段。在這個例子中,選擇子片段450B3,並將封包610路由到中間交換機422。接著,中間交換機422使用最終目的地603,來通過子片段450C3將封包610(或部分資料封包)路由到宿交換機430。最後,宿交換機
430將封包610(或部分資料封包)路由到網路400的輸出埠11。這個路由避免了故障的鏈路(524x,533A)。
雖然較佳的實施例使用動態路以及單個報頭處理、最終目的地封包(或部分封包)和表;但所有其他可以的組合是可以設想的且包含於本發明的範圍之內。
先前的描述為伺服器/網路結合建議了幾個可能的架構。圖7示出了伺服器/網路的架構700,其包含原始伺服器701,原始伺服器701通過一組連接710與網路702的埠1-9相連接。宿伺服器703通過一組連接711與網路702的埠11-19相連接。連接710和711可以是單向的或雙向的。
雖然埠1-9可以被指定為“輸入端”,但信號如信用值和/或資料,可以從網路702流到原始伺服器701。同樣,雖然埠11-19可以被指定為“輸出端”,但信號如信用值和/或資料,可以從網路703流到原始伺服器702。
網路702可以類似於含有源交換機層、中間交換機層和宿交換機層的網路100。然而,可以將源交換機功能歸入原始伺服器。同樣,可以將宿交換機功能歸入宿伺服器。如果源交機和宿交換機功能兩者都被歸入伺服器701、703,然後,網路702僅包含中間交換機功能。還可以將中間交換機功能歸入第三“伺服器”。
圖8示出了伺服器/網路的另一個實施例架構800。伺服器源/宿801作為網路802的源和宿。伺服器源/宿801通過一組連接810與網路802的埠1-9相連接。連接810可以是單向的或雙向的。
網路802可以類似於含有源交換機層、中間交換機層和宿交換機層的網路100。然而,可以將源交換機功能和/或宿交換機功能歸入伺服器源/宿801。如果源交機和宿交換機功能兩者都被歸入伺服器源/宿801,那麼,網路802僅包含中間交換機功能。還可以將中間交換機功能歸入第三“伺服器”。可以在任何適合的配置中使用其他包括多層中間交換機“伺服器”的架構。
因此,本發明提供了提高資料傳輸網路的效率的方法和設備。此外,提供了在故障條件下減少資料丟失從而提高傳輸效率的方法和設備。本領域的技術人員明白,可以用本發明描述的實施例以外的實施例來實現本發明,本發明描述的實施例的目的僅在於舉例說明,而沒有限制性。本發明僅由申請專利範圍來限定。
1-9‧‧‧輸入端口
11-19‧‧‧輸出端口
100‧‧‧網絡
110-112‧‧‧源交換機
120-122‧‧‧中間交換機
130-132‧‧‧宿交換機
113A-113C‧‧‧輸入端
114x-114z‧‧‧輸出端
116z‧‧‧輸出
127B‧‧‧輸入端
133A-133C‧‧‧輸入端
134x-134z‧‧‧輸出端
138y‧‧‧輸出
140‧‧‧記憶體
141A-141N‧‧‧虛擬輸出隊列
150‧‧‧控制模組
151A-151M‧‧‧調度機制
400‧‧‧網絡
410、412‧‧‧源交換機
414x‧‧‧輸出端
414y‧‧‧輸出端
420-422‧‧‧中間交換機
430、432‧‧‧宿交換機
433B、433C‧‧‧輸出端
450-453‧‧‧流量
450A-450D‧‧‧片段
450B1-450B3‧‧‧子片段
450C1-450C‧‧‧子片段
451A-451D‧‧‧片段
452A-452D‧‧‧片段
453A-453D‧‧‧片段
453C1-453C3‧‧‧子片段
500‧‧‧網絡
510-512‧‧‧源交換機
510A-512A‧‧‧表
514x-514z‧‧‧輸出
520-522‧‧‧中間交換機
520A-522A‧‧‧表
524x-524z‧‧‧輸出
530-532‧‧‧宿交換機
601‧‧‧數據部分
602‧‧‧報頭
603‧‧‧最終目的地
604a-604e‧‧‧路由部分
610‧‧‧封包
620‧‧‧封包
620A‧‧‧報頭
630‧‧‧封包
630A‧‧‧封包
640‧‧‧封包
700‧‧‧架構
701‧‧‧源服務器
702‧‧‧網絡
703‧‧‧宿服務器
710‧‧‧連接
711‧‧‧連接
800‧‧‧架構
801‧‧‧服務器源/宿
802‧‧‧網絡
810‧‧‧連接
圖1是包含交換機的典型的網路的示意圖。
圖2是源設備的示意圖。
圖3是宿設備的示意圖。
圖4a是含有阻塞的路由的網路的示意圖。
圖4b是含有無阻塞的路由的網路的示意圖。
圖4c是含有動態路由的網路的示意圖。
圖5a是含有路由表的網路的示意圖。
圖5b是容納無效的鏈路的含有路由表的網路的示意圖。
圖6a是資料封包的示意圖。
圖6b是含有最終目的地的資料封包的示意圖。
圖6c是含有顯式路由資訊的資料封包的示意圖。
圖6d是含有顯式路由資訊的資料封包的示意圖。
圖6e是含有顯式路由資訊的資料封包的示意圖。
圖6f是含有顯式路由資訊的資料封包的示意圖。
圖6g是含有顯式路由資訊的資料封包的示意圖。
圖7是伺服器和網路的示例架構的示意圖。
圖8是伺服器和網路的示例架構的示意圖。
1-9‧‧‧輸入埠
11-19‧‧‧輸出埠
500‧‧‧網路
510-512‧‧‧源交換機
510A-512A‧‧‧表
514x-514z‧‧‧輸出
520-522‧‧‧中間交換機
520A-522A‧‧‧表
524x-524z‧‧‧輸出
530-532‧‧‧宿交換機
Claims (52)
- 一種在一單層網路中對封包(packet)或部分封包(packet portions)進行路由的方法,其中該網路包含輸入埠、輸出埠及至少一個源交換機和至少一個宿(sink)交換機的一架構(fabric),其中該至少一源交換機包含至少一個虛擬輸出佇列(queue),且其中該至少一個宿交換機包含至少一個調度(scheduling)機制,該方法包含:自該至少一個虛擬輸出佇列發送佇列狀態資訊至該至少一個調度機制;回應於該佇列狀態資訊之接收,自該至少一個調度機制發送至少一個信用值至該至少一個虛擬輸出佇列;在該源交換機處對至少兩個封包或至少兩個部分封包進行排序(ordering);回應於該信用值之接收以利用至少一個負載分配演算法以經由多輸出(multiple outputs)自該至少一個源交換機發送經排序之該至少兩個封包或該至少兩個部分封包的至少一個資料流程量(data flow)至該至少一個宿交換機;重新排序在該宿交換機處所接收之該等封包或部分封包;將至少一個源表儲存在該至少一個宿交換機中,該至少一個源表係用於映射該至少一個宿交換機之至少一個輸出至該網路之該至少一個輸出埠;及使用該至少一個源表以經由該至少一個宿交換機之多 輸出而路由該至少一個資料流程量。
- 如申請專利範圍第1項之方法,其中:該網路進一步包含至少一個中間交換機;該佇列狀態資訊係經由該至少一個中間交換機以自該至少一個源交換機發送至該至少一個宿交換機;該至少一個信用值係經由該至少一個中間交換機以自該至少一個宿交換機發送至該至少一個源交換機;經排序之封包或部分封包的該至少一個資料流程量係經由該至少一個中間交換機以自該至少一個源交換機發送至該至該至少一個宿交換機;及該方法進一步包含使用至少一個負載分配演算法以經由該至少一個中間交換機之多輸出而發送該至少一個資料流程量之至少兩個經排序之封包或部分封包至該至少一個宿交換機。
- 如申請專利範圍第2項之方法,其進一步包含:自該至少一個源交換機發送至少一個源表至該至少一個中間交換機;將至少一個中間表儲存於該至少一個中間交換機中;及經由該至少一個中間交換機之多輸出以利用該至少一個中間表來路由該至少一個資料流程量。
- 如申請專利範圍第3項之方法,其進一步包含:藉由該至少一個中間交換機以發送至少一個中間表至該至少一個源交換機; 基於該至少一個中間表以將至少一個源表儲存於該至少一個源交換機中;及經由該源交換機之多輸出以利用該源表來路由該至少一個資料流程量。
- 如申請專利範圍第4項之方法,其進一步包含回應於至少一個不工作連接(inoperative connection)來更新該至少一個源表。
- 如申請專利範圍第1項之方法,其進一步包含:處理至少一個封包報頭(header)以產生至少一個經處理之封包或經處理之部分封包;及獨立於該至少一個封包報頭之進一步處理以路由該至少一個經處理之封包或經處理之部分封包至該至少一個宿交換機。
- 如申請專利範圍第6項之方法,其中該經處理之封包或經處理之部分封包包含一最終目的地。
- 一種網路,其包含:一源交換機,其包含一輸入、一輸出及一虛擬輸出佇列;一宿交換機,其包含一輸入、一輸出及一調度機制;及耦合在該源交換機與該宿交換機之間的一中間交換機,其包含一輸入及一輸出,其中:該虛擬輸出佇列提供佇列狀態資訊至該調度機制;該調度機制回應於該佇列狀態資訊之接收以產生一信 用值;及該中間交換機映射該中間交換機之該輸出到至少一個可存取宿交換機,以產生一中間交換機表並分享該中間交換機表給該源交換機。
- 如申請專利範圍第8項之網路,其中該調度機制基於該網路中之擁擠和阻塞(congestion)以產生該信用值。
- 如申請專利範圍第9項之網路,其中:該虛擬輸出佇列包含複數個虛擬輸出佇列;及該調度機制進一步根據該複數個虛擬輸出佇列之間的一優先方案而產生該信用值。
- 如申請專利範圍第8項之網路,其中:該宿交換機包含至少兩個宿交換機;該源交換機包含至少兩個輸出;及該源交換機映射該源交換機之該至少兩個輸出中之每一者至該至少兩個宿交換機以產生一源交換機表;及該源交換機週期地更新該源交換機表。
- 如申請專利範圍第8項之網路,其中該中間交換機週期地映射該中間交換機之該輸出至該至少一個可存取宿交換機並分享該中間交換機表給該源交換機。
- 如申請專利範圍第8項之網路,其中:該源交換機包含複數個輸出且該虛擬輸出佇列包含用於該源交換機之該複數個輸出中之每一者之一虛擬輸出佇列;及該宿交換機包含複數個輸入且該調度機制包含用於該 宿交換機之該複數個輸入中之每一者之一調度機制。
- 如申請專利範圍第8項之網路,其中:該源交換機包含至少兩個輸出;及該源交換機接收一封包並經由該源交換機之該至少兩個輸出之每一者以傳輸該封包。
- 如申請專利範圍第14項之網路,其中該源交換機根據一負載分配演算法以經由該源交換機之該至少兩個輸出中之每一者以傳輸該封包。
- 如申請專利範圍第8項之網路,其中當該虛擬輸出佇列被分配時、當該虛擬輸出佇列被初始化時或當該虛擬輸出佇列之一佇列狀態改變時,該虛擬輸出佇列提供該佇列狀態資訊至該調度機制。
- 如申請專利範圍第8項之網路,其中該佇列狀態資訊包含一佇列傳輸命令。
- 如申請專利範圍第8項之網路,其中該源交換機處理一封包之一封包報頭以產生該封包之一經處理部分。
- 如申請專利範圍第18項之網路,其中該封包之該經處理部分包含複數個路由部分,其包括一最終目的地路由部分。
- 如申請專利範圍第18項之網路,其中該封包之該經處理部分包含用於該網路之一中間交換機之一第一路由部分及用於該網路之該宿交換機之一第二路由部分。
- 一種網路,其包含:一源交換機,其包含一輸入及一輸出;及 一宿交換機,其包含一輸入及一輸出;及一網路架構,其通信地耦合該源交換機至該宿交換機,其中:該源交換機映射該源交換機之該輸出至該宿交換機以產生一源交換機表,該網路架構包含耦合在該源交換機與該宿交換機之間的一中間交換機,該中間交換機包含一輸入及一輸出;及該中間交換機映射該中間交換機之該輸出到至少一個可存取宿交換機以產生一中間交換機表並分享該中間交換機表給該源交換機。
- 如申請專利範圍第21項之網路,其中該源交換機包含一虛擬輸出佇列且該宿交換機包含一調度機制。
- 如申請專利範圍第22項之網路,其中該虛擬輸出佇列提供佇列狀態資訊至該調度機制,且該調度機制基於該網路中之擁擠和阻塞以回應於該佇列狀態資訊之接收而產生一信用值。
- 如申請專利範圍第21項之網路,其中:該宿交換機包含至少兩個宿交換機;該源交換機包含至少兩個輸出;該源交換機映射該源交換機之該至少兩個輸出中之每一者至該至少兩個宿交換機以產生一源交換機表;及該源交換機週期地更新該源交換機表。
- 如申請專利範圍第21項之網路,其中該中間交換機週期 地映射該中間交換機之該輸出至該至少一個可存取宿交換機並分享該中間交換機表給該源交換機。
- 如申請專利範圍第21項之網路,其中:該源交換機包含至少兩個輸出;及該源交換機接收一封包並根據一負載分配演算法經由該源交換機之該至少兩個輸出以傳輸該封包。
- 如申請專利範圍第21項之網路,其中該源交換機處理一封包之一封包報頭以產生該封包之一經處理部分。
- 如申請專利範圍第27項之網路,其中該封包之該經處理部分包含複數個路由部分,其包括一最終目的地路由部分。
- 如申請專利範圍第27項之網路,其中該封包之該經處理部分包含用於該網路之一中間交換機之一第一路由部分及用於該網路之該宿交換機之一第二路由部分。
- 一種單層網路,其包含:至少一個輸入埠;至少一個輸出埠;一源交換機,其包含一輸入及一輸出;一宿交換機,其包含一輸入及一輸出;及一網路架構,其通信地耦合該源交換機至該宿交換機,其中:該源交換機處理一封包之一封包報頭以產生該封包之一經處理部分,該封包之該經處理部分包含複數個路由部分; 該網路架構包含耦合在該源交換機與該宿交換機之間的一中間交換機,該中間交換機包含一輸入及一輸出;及該中間交換機映射該中間交換機之該輸出至至少一個可存取宿交換機以產生一中間交換機表並分享該中間交換機表給該源交換機。
- 如申請專利範圍第30項之網路,其中該源交換機包含一虛擬輸出佇列且該宿交換機包含一調度機制。
- 如申請專利範圍第31項之網路,其中該虛擬輸出佇列提供佇列狀態資訊至該調度機制,且該調度機制基於該網路中之擁擠和阻塞以回應於該佇列狀態資訊之接收而產生一信用值。
- 如申請專利範圍第30項之網路,其中:該源交換機映射該源交換機之該輸出至該宿交換機以產生一源交換機表;及該源交換機週期地更新該源交換機表。
- 如申請專利範圍第30項之網路,其中該中間交換機週期地映射該中間交換機之該輸出至該至少一個可存取宿交換機並分享該中間交換機表給該源交換機。
- 如申請專利範圍第30項之網路,其中:該源交換機包含至少兩個輸出;及該源交換機接收一封包並根據一負載分配演算法經由該源交換機之該至少兩個輸出以傳輸該封包。
- 如申請專利範圍第30項之網路,其中該封包之該經處理 部分包含一最終目的地路由部分。
- 如申請專利範圍第30項之網路,其中該封包之該經處理部分包含用於該網路之一中間交換機之一第一路由部分及用於該網路之該宿交換機之一第二路由部分。
- 一種在一網路中之方法,其中該網路包含輸入埠、輸出埠及包含一源交換機、一宿交換機及耦合在該源交換機及該宿交換機之間的一中間交換機的一網路架構,該中間交換機包含一輸入及一輸出,其中該源交換機包含一虛擬輸出佇列且其中該宿交換機包含一調度機制,該方法包含:自該虛擬輸出佇列發送佇列狀態資訊至該調度機制;回應於該佇列狀態資訊之接收以自該調度機制發送一信用值至該虛擬輸出佇列;在該源交換機處對封包進行排序;藉由該源交換機以回應於自該調度機制接收該信用值而根據一負載分配演算法而經由該源交換機之複數個輸出中之每一者發送經排序之封包;及藉由該中間交換機以映射該中間交換機之該輸出至至少一個可存取宿交換機以產生一中間交換機表並分享該中間交換機表給該源交換機。
- 如申請專利範圍第38項之方法,其進一步包含在該宿交換機處重新排序該等經排序之封包。
- 如申請專利範圍第38項之方法,其進一步包含藉由該調度機制以基於該網路中之擁擠和阻塞而產生該信用值。
- 如申請專利範圍第40項之方法,其中:該虛擬輸出佇列包含複數個虛擬輸出佇列;及產生該信用值進一步包含根據該複數個虛擬輸出佇列之間的一優先方案而產生該信用值。
- 如申請專利範圍第38項之方法,其進一步包含藉由該源交換機以週期性地更新一源表,該源表映射該源交換機之該輸出至該宿交換機。
- 如申請專利範圍第38項之方法,其中分享該中間交換機表給該源交換機進一步包含週期性地以一週期間隔分享該中間交換機表給該源交換機。
- 如申請專利範圍第38項之方法,其進一步包含處理一封包之一封包報頭而產生該封包之一經處理部分。
- 如申請專利範圍第44項之方法,其中該封包之該經處理部分包含複數個路由部分,其包括一最終目的地路由部分。
- 如申請專利範圍第44項之方法,其中該封包之該經處理部分包含用於該網路之一中間交換機之一第一路由部分及用於該網路之該宿交換機之一第二路由部分。
- 一種在一網路中之方法,其中該網路包含輸入埠、輸出埠及包含一源交換機、一宿交換機及耦合在該源交換機及該宿交換機之間的一中間交換機的一網路架構,該中間交換機包含一輸入及一輸出,該方法包含:處理一封包以產生該封包之一經處理部分;藉由該源交換機以映射該源交換機之一輸出至該宿交 換機以產生一源交換機表;根據該封包之該經處理部分及該源交換機表以路由該封包;藉由該中間交換機以映射該中間交換機之該輸出到至少一個可存取宿交換機以產生一中間交換機表;及藉由該中間交換機以分享該中間交換機表給該源交換機。
- 如申請專利範圍第47項之方法,其中該源交換機包含一虛擬輸出佇列且該宿交換機包含一調度機制。
- 如申請專利範圍第48項之方法,其進一步包含:藉由該虛擬輸出佇列以提供佇列狀態資訊至該調度機制;及藉由該調度機制以回應於該佇列狀態資訊之接收而產生一信用值。
- 如申請專利範圍第49項之方法,其中產生該信用值包含基於該網路中之擁擠和阻塞以產生該信用值。
- 如申請專利範圍第47項之方法,其中:該宿交換機包含至少兩個宿交換機;該源交換機包含至少兩個輸出;及映射該源交換機之該輸出至該宿交換機進一步包含映射該源交換機之該至少兩個輸出中之每一者至該至少兩個宿交換機以產生該源交換機表。
- 如申請專利範圍第47項之方法,其進一步包含藉由該源交換機以週期地更新該源交換機表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/041,507 US8705544B2 (en) | 2011-03-07 | 2011-03-07 | Method and apparatus for routing in a single tier switched network |
US13/041,507 | 2011-03-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201246845A TW201246845A (en) | 2012-11-16 |
TWI617179B true TWI617179B (zh) | 2018-03-01 |
Family
ID=45655094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101107591A TWI617179B (zh) | 2011-03-07 | 2012-03-07 | 單層網路、在單層網路中對封包或部分封包進行路由的方法及在單層網路中對封包進行路由的方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8705544B2 (zh) |
EP (1) | EP2498456B1 (zh) |
KR (1) | KR101409919B1 (zh) |
CN (1) | CN102684990B (zh) |
HK (1) | HK1169237A1 (zh) |
TW (1) | TWI617179B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112012005625B4 (de) * | 2012-01-10 | 2018-08-02 | Intel Corporation | Datenflusssteuerung für einen Speicherserver |
US8867559B2 (en) * | 2012-09-27 | 2014-10-21 | Intel Corporation | Managing starvation and congestion in a two-dimensional network having flow control |
FR3036239B1 (fr) * | 2015-05-13 | 2018-07-06 | Bull Sas | Reseau d'equipements interconnectes par des commutateurs integrant des tables de routage |
CN106302251B (zh) * | 2015-06-26 | 2019-09-06 | 深圳市中兴微电子技术有限公司 | 一种交换网络同步方法及交换装置、接入装置 |
WO2018073674A1 (en) * | 2016-10-21 | 2018-04-26 | Levi Dinor Adam Vestergaard | Flat data routing chain |
CN111901257B (zh) * | 2020-08-10 | 2022-02-25 | 曙光信息产业(北京)有限公司 | 一种交换机、报文转发方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085238A (en) * | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
US20050002410A1 (en) * | 2003-06-19 | 2005-01-06 | Chao Hung-Hsiang Jonathan | Switch module memory structure and per-destination queue flow control for use in a switch |
US6876657B1 (en) * | 2000-12-14 | 2005-04-05 | Chiaro Networks, Ltd. | System and method for router packet control and ordering |
US7397794B1 (en) * | 2002-11-21 | 2008-07-08 | Juniper Networks, Inc. | Systems and methods for implementing virtual switch planes in a physical switch fabric |
TWI332347B (en) * | 2007-01-10 | 2010-10-21 | Switchable transmission device of a vdsl co/cpe circuit |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5519707A (en) * | 1992-10-13 | 1996-05-21 | Synoptics Communications, Inc. | Multiplexing of communications services on a virtual service path in an ATM network or the like |
DE4331618A1 (de) * | 1993-09-17 | 1995-03-23 | Philips Patentverwaltung | Kommunikationselement für ein hierarchisches Verwaltungsnetz |
US5528591A (en) * | 1995-01-31 | 1996-06-18 | Mitsubishi Electric Research Laboratories, Inc. | End-to-end credit-based flow control system in a digital communication network |
AU6549296A (en) | 1995-07-19 | 1997-02-18 | Ascom Nexion Inc. | Method and apparatus for reducing information loss in a communications network |
FI103312B (fi) * | 1996-11-06 | 1999-05-31 | Nokia Telecommunications Oy | Kytkentämatriisi |
US6052375A (en) * | 1997-11-26 | 2000-04-18 | International Business Machines Corporation | High speed internetworking traffic scaler and shaper |
US5999531A (en) | 1998-04-17 | 1999-12-07 | Cabletron Systems, Inc. | Method and system for identifying ports and forwarding packets in a multiport switch |
US6640261B1 (en) * | 1999-10-27 | 2003-10-28 | Intel Corporation | Method and apparatus for scheduler coupled to memory array wherein scheduler addresses array with at least a portion of an identification number |
US7133399B1 (en) * | 2000-10-31 | 2006-11-07 | Chiaro Networks Ltd | System and method for router central arbitration |
US7046661B2 (en) | 2000-11-20 | 2006-05-16 | Polytechnic University | Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme |
US7095744B2 (en) | 2000-11-22 | 2006-08-22 | Dune Networks | Method and system for switching variable sized packets |
US7027443B2 (en) * | 2001-08-23 | 2006-04-11 | Pmc-Sierra Ltd. | Reassembly engines for multilink applications |
US7596627B2 (en) * | 2001-12-18 | 2009-09-29 | Cisco Technology, Inc. | Methods and apparatus for network congestion control |
US7026042B2 (en) | 2003-03-26 | 2006-04-11 | The United States Of America As Represented By The Secretary Of The Navy | Highly conducting and transparent thin polymer films formed from double and multiple layers of poly(3,4-ethylenedioxythiopene) and its derivatives |
US8594087B2 (en) * | 2003-10-17 | 2013-11-26 | Netlogic Microsystems, Inc. | Encoding-based multicast packet duplication control suitable for VLAN systems |
US7738473B2 (en) * | 2006-04-20 | 2010-06-15 | Forestay Research, Llc | Multicast switching in a credit based unicast and multicast switching architecture |
US7619970B2 (en) | 2006-04-27 | 2009-11-17 | Dune Semiconductor Ltd. | Method, device and system of scheduling data transport over a fabric |
US7768995B2 (en) * | 2006-08-01 | 2010-08-03 | Cisco Technology, Inc. | Techniques for one-way synchronization of routing information among intermediate nodes |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
WO2008154390A1 (en) * | 2007-06-08 | 2008-12-18 | New Jersey Institute Of Technology | Scalable two-stage clos-networking switch and module-first matching |
US8200798B2 (en) * | 2007-12-29 | 2012-06-12 | Cisco Technology, Inc. | Address security in a routed access network |
EP2134037B1 (en) | 2008-06-12 | 2011-05-11 | Alcatel Lucent | Method and apparatus for scheduling data packet flows |
US8565247B2 (en) * | 2009-08-19 | 2013-10-22 | Brocade Communications Systems, Inc. | Techniques for efficiently updating routing information upon shortest path tree computation |
-
2011
- 2011-03-07 US US13/041,507 patent/US8705544B2/en active Active
-
2012
- 2012-02-17 EP EP12001072.3A patent/EP2498456B1/en active Active
- 2012-03-07 TW TW101107591A patent/TWI617179B/zh active
- 2012-03-07 KR KR1020120023566A patent/KR101409919B1/ko not_active IP Right Cessation
- 2012-03-07 CN CN201210057915.7A patent/CN102684990B/zh not_active Expired - Fee Related
- 2012-10-10 HK HK12109949.9A patent/HK1169237A1/zh not_active IP Right Cessation
-
2014
- 2014-01-24 US US14/163,672 patent/US9154425B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085238A (en) * | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
US6876657B1 (en) * | 2000-12-14 | 2005-04-05 | Chiaro Networks, Ltd. | System and method for router packet control and ordering |
US7397794B1 (en) * | 2002-11-21 | 2008-07-08 | Juniper Networks, Inc. | Systems and methods for implementing virtual switch planes in a physical switch fabric |
US20050002410A1 (en) * | 2003-06-19 | 2005-01-06 | Chao Hung-Hsiang Jonathan | Switch module memory structure and per-destination queue flow control for use in a switch |
TWI332347B (en) * | 2007-01-10 | 2010-10-21 | Switchable transmission device of a vdsl co/cpe circuit |
Also Published As
Publication number | Publication date |
---|---|
HK1169237A1 (zh) | 2013-01-18 |
EP2498456B1 (en) | 2015-08-05 |
KR20120102026A (ko) | 2012-09-17 |
US20140140214A1 (en) | 2014-05-22 |
CN102684990A (zh) | 2012-09-19 |
US9154425B2 (en) | 2015-10-06 |
CN102684990B (zh) | 2015-12-16 |
US20120230342A1 (en) | 2012-09-13 |
KR101409919B1 (ko) | 2014-06-19 |
EP2498456A1 (en) | 2012-09-12 |
US8705544B2 (en) | 2014-04-22 |
TW201246845A (en) | 2012-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI617179B (zh) | 單層網路、在單層網路中對封包或部分封包進行路由的方法及在單層網路中對封包進行路由的方法 | |
US7545829B2 (en) | Layered network node, network incorporating the same, node, and layered network | |
US7145867B2 (en) | System and method for slot deflection routing | |
US5491690A (en) | Method and apparatus to speed up the path selection in a packet switching network | |
US7239608B2 (en) | Router using measurement-based adaptable load traffic balancing system and method of operation | |
EP1122971A2 (en) | Data channel reservation in optical burst-switched networks | |
US9667570B2 (en) | Fabric extra traffic | |
JP3809873B2 (ja) | ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム | |
US6934760B1 (en) | Method and apparatus for resequencing of packets into an original ordering using multiple resequencing components | |
US6914912B1 (en) | Route selection for alternate paths in connection-oriented networks | |
JP2008541677A (ja) | 内部通信ネットワークを備えた集積回路 | |
US7457239B2 (en) | Method and apparatus for providing a quality of service path through networks | |
US20170126561A1 (en) | Method and system for managing network communications | |
US7385965B2 (en) | Multiprocessor control block for use in a communication switch and method therefore | |
CA2398009C (en) | Method and apparatus for access control for a communications network | |
US7092393B1 (en) | Method and apparatus for distributed reassembly of subdivided packets using multiple reassembly components | |
US20060165081A1 (en) | Deflection-routing and scheduling in a crossbar switch | |
JP5048835B2 (ja) | パケット処理装置およびその方法 | |
JP2002359634A (ja) | 通信経路設計方法、通信経路設計装置及びプログラム | |
JP2005323129A (ja) | 通信路経路決定方法 | |
US7123611B2 (en) | Packet switching | |
JP3857176B2 (ja) | 中継ルータおよびネットワークおよびコネクションのリアレンジ方法 | |
JP4069107B2 (ja) | パケット交換装置 | |
JPH05219117A (ja) | パケット転送システム |