TWI792981B - 流量控制方法 - Google Patents
流量控制方法 Download PDFInfo
- Publication number
- TWI792981B TWI792981B TW111114406A TW111114406A TWI792981B TW I792981 B TWI792981 B TW I792981B TW 111114406 A TW111114406 A TW 111114406A TW 111114406 A TW111114406 A TW 111114406A TW I792981 B TWI792981 B TW I792981B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- flow
- frame
- buffer usage
- pause
- Prior art date
Links
Images
Classifications
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Paper (AREA)
- Flow Control (AREA)
Abstract
一種流量控制方法藉由一網路設備實施並包含:計算分別對應多個流量的多個緩衝區使用量;當判斷任一個該緩衝區使用量大於一流量關閉閥值時,先後將一暫停幀及一遷移幀傳送至對應的該流量來源的一上游節點;當判斷任一個該緩衝區使用量大於該流量關閉閥值之後,且再小於一流量開啟閥值時,先後將一恢復幀及一遷回幀傳送至對應的該流量來源的該上游節點;當判斷接收到該暫停幀及該遷移幀時,將對應的該流量改至一暫停出口佇列且暫停輸出;當判斷接收到該恢復幀及該遷回幀時,將該暫停出口佇列輸出且將對應的該流量改至一預設出口佇列。
Description
本發明是有關於一種流量控制方法,特別是指一種用於網路設備的流量控制方法。
由於網路壅塞可能會導致網路交換機(Switch)發生緩衝區溢位(Buffer overflow)的情況,進而導致封包遺失。為解決封包遺失的問題,IEEE 802.3x提出一種每跳(Per-hop)基於鏈結(Link-based)的流量控制方案以確保兩個相鄰網路節點之間的零封包遺失,也就是作為下游節點(Downstream node)的網路交換機判斷其緩衝區的剩餘容量小於一閥值時,通知作為上游節點(Upstream node)的網路交換機暫停傳送封包。但由於是以鏈結為基礎,也造成低鏈結利用率及各流量間不公平的另一個問題。
為此,IEEE 802.1Qbb提出一種基於優先級(Priority- based)的流量控制方案(簡稱PFC方案),以利用IEEE 802.1p工作組所定義的一組3位元的優先級代碼點(Priority code point,PCP)欄位(Field)而支援八種不同優先級,使得網路交換機的每一輸入埠(Input port)能夠擁有至多八個不同服務等級(Class of service,CoS)的入口佇列(Ingress queue)。PFC方案使得下游節點在判斷出任何一個優先級的入口佇列所對應的緩衝區的剩餘容量小於另一閥值時,將PFC方案所定義的一暫停幀(Pause frame)傳送至上游節點,使得上游節點的一輸出埠(Output)的八個不同服務等級的出口佇列(Egress queue)之其中對應優先級者暫停封包的傳送。
舉例來說,八種優先級分別是p0至p7,當下游節點判斷出對應p1的入口佇列的緩衝區的剩餘容量小於該閥值時,上游節點接收到來自該下游節點的該暫停幀,而停止對應p1的出口佇列的封包而不傳送。然而,上游節點之對應p1的出口佇列的封包例如是來自該上游節點所接收的兩個流量(如流量1與流量2),且對應p1的封包中是來自流量1的封包大於來自流量2的封包。也就是說,雖然來自流量1的封包較多才是造成該下游節點之對應p1的入口佇列的緩衝區的剩餘容量小於該閥值的主要原因,但該上游節點卻同時暫停來自流量1與流量2的封包,使得流量2成為受害流量(Victim flow),而成為一個待解決的問題。
因此,本發明的目的,即在提供一種免於習知PFC方案之問題的流量控制方法。
於是,本發明提供一種流量控制方法,適用於一網路設備且藉由該網路設備實施,並包含步驟(A)~(G)。
於步驟(A),計算來自所有上游節點(Upstream node)且尚未被傳送至任一下游節點(Downstream node)且分別屬於多個流量(Flow)的多個封包的封包大小之和,以獲得分別對應該等流量的多個緩衝區使用量,並分別儲存於對應的多個流量緩衝區使用量計數器(Per-flow Buffer usage counter)。
於步驟(B),當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量大於一流量關閉閥值(Xofff)時,先後將一暫停幀(Pause frame)及一遷移幀(Migrate frame)傳送至對應其中該者的該流量來源的該上游節點。
於步驟(C),當判斷所接收到的該封包是該暫停幀時,根據該暫停幀所指示的對應該流量的一優先級及一暫停時間,將對應該優先級的一暫停出口佇列(Paused egress queue,PEQ)暫停輸出而持續該暫停時間。
於步驟(D),當判斷所接收到的該封包是該遷移幀時,根據該遷移幀所指示的一流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至一預設出口佇列(Default egress queue,DEQ)改為輸出至對應該流量的該暫停出口佇列。
於步驟(E),當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量大於該流量關閉閥值之後,且再判斷出該緩衝區使用量小於一流量開啟閥值(Xonf)時,先後將一恢復幀(Resume frame)及一遷回幀(Migrate-back frame)傳送至對應其中該者的該流量來源的該上游節點。
於步驟(F),當判斷所接收到的該封包是該恢復幀時,根據該恢復幀所指示的該流量,將對應該流量的該暫停出口佇列先輸出完畢後再輸出該預設出口佇列。
於步驟(G),當判斷所接收到的該封包是該遷回幀時,根據該遷回幀所指示的該流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至對應該流量的該暫停出口佇列改為輸出至該預設出口佇列。
在一些實施態樣中,該流量控制方法還包含步驟(H),當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量小於該流量關閉閥值(Xofff)時,將來自對應該流量的該等封包,輸出至該預設出口佇列。
在一些實施態樣中,其中,在步驟(B)中,該暫停幀包含一優先級應用向量(Class-enable vector),及分別指示多個不同的優先級的多個該暫停時間,該優先級應用向量用於指示欲暫停的該至少一暫停出口佇列或還與該預設出口佇列所對應的該至少一優先級。
在一些實施態樣中,該流量控制方法還包含步驟(I)及(J)。其中,在步驟(A)中,該網路設備還計算屬於該等流量的該等封包的封包大小之和,以獲得一緩衝區使用總量,並儲存於對應的一封包緩衝區使用量計數器(Packet Buffer usage counter)。
於步驟(I),當判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於一總流量關閉閥值(Xoffs)時,先後將該暫停幀及該等遷移幀傳送至對應該等流量來源的該至少一上游節點。該暫停幀的該優先級應用向量指示欲暫停所有的該等暫停出口佇列及該預設出口佇列所對應的該等優先級。
於步驟(J),當判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於該總流量關閉閥值之後,且再判斷出該緩衝區使用總量小於一總流量開啟閥值(Xons)時,先後將該恢復幀及該等遷回幀傳送至對應該等流量來源的該至少一上游節點。
在步驟(C)中,該網路設備還根據該暫停幀所指示的該等優先級及該等暫停時間,將對應該等優先級的其他該至少一暫停出口佇列及該預設出口佇列暫停輸出而持續分別對應的該等暫停時間。
在一些實施態樣中,該網路設備是一種支援P4語言的P4硬體交換機,其中,在步驟(A)中,當該網路設備判斷所接收的該封包不是事先定義的一計算封包(Accounting packet)且不是一控制幀時,將對應該封包所屬的該流量的該流量緩衝區使用量計數器加上該封包的封包大小,且將該封包緩衝區使用量計數器加上該封包的封包大小。該控制幀包含該暫停幀、該遷移幀、該恢復幀、及該遷回幀。當該網路設備判斷所接收的該封包是該計算封包時,將對應該計算封包所指示的該流量的該流量緩衝區使用量計數器減去該計算封包所指示的封包大小,且將該封包緩衝區使用量計數器減去該計算封包所指示的封包大小。
在一些實施態樣中,其中,在步驟(A)中,當該網路設備在一出口匹配動作管線(Egress match-action pipeline,EMAP)輸出任何一個該封包至對應的該下游節點時,該網路設備在一鏡像緩衝區(Mirror buffer)儲存對應該封包的該計算封包。該計算封包所指示的封包大小等於該封包的封包大小,且具有與該封包相同的該流量。該計算封包經由該鏡像緩衝區、一流量管理器與封包緩衝區(Traffic manager & packet buffer,TMPB)、該出口匹配動作管線、及一再循環埠(Recirculation port)而被傳送至一入口匹配動作管線(Ingress match-action pipeline,IMAP),使得該網路設備接收到該計算封包。
在另一些實施態樣中,該流量控制方法還包含在步驟(A)之前的(K),當該網路設備接收到任何一個該封包時,該網路設備根據該封包的一標頭(Header),產生一個5元組資訊(5-tuple information)的雜湊值(Hash value)而作為該封包所屬的該流量。該5元組資訊包含該標頭(Header)中的一源頭網際協定位址(Source IP address)、一來源埠編號(Source port number)、一目的地網際協定位址(Destination IP address)、一目的地埠編號(Destination port number)、及一協議類型值(value of protocol type)。
在另一些實施態樣中,其中,在步驟(B)中,該遷移幀包含都是4位元組的該流量識別碼及指示屬於該遷移幀的一遷移類型。在步驟(E)中,該遷回幀包含都是4位元組的該流量識別碼及指示屬於該遷回幀的該遷移類型。
本發明的功效在於:藉由判斷分別對應該等流量的該等緩衝區使用量與該流量關閉閥值及該流量開啟閥值的大小關係,決定將該暫停幀及該遷移幀,或該恢復幀及該遷回幀傳送至對應的該上游節點,且根據所接收到的該暫停幀及該遷移幀,或該恢復幀及該遷回幀,作出對應的該流量的暫停或輸出,而能夠解決習知PFC方案的受害流量的問題。
在本發明被詳細描述之前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖1,本發明流量控制方法之一實施例,適用於一網路設備100。該網路設備100例如是一網路交換機(Switch)、一路由器、或一網路卡,在本實施例中,該網路設備100是一種支援P4 (Programming Protocol-independent Packet Processors)語言的P4硬體交換機。P4是一種可程式化資料平面(Data plane)技術,使得開發者能夠在資料平面設計與實現封包處理邏輯。
圖1簡單說明P4交換機的架構。每一封包被一輸入埠(Input port)6接收之後,依序經由一入口匹配動作管線(Ingress match-action pipeline,IMAP)1、一流量管理器與封包緩衝區(Traffic manager & packet buffer,TMPB)2、一出口匹配動作管線(Egress match-action pipeline,EMAP)3、及一輸出埠(Output port)7被傳送而出。該TMPB2提供封包的多個入口佇列(Ingress queues)、多個出口佇列(Egress queues)、及多個排程函式(Scheduling functions)。後設資料(Metadata)是一種資料結構,並用於描述每一封包的狀態或定義對該封包的操作,舉例來說,當該封包被送入該IMAP1時,該封包的後設資料所包含的輸入埠6的識別碼(ID)及該出口佇列的識別碼欄位(ID fields)會被決定與設定,使得該封包離開該IMAP1時,該TMPB2將該封包據以儲存在對應的該出口佇列。在本實施例中,對應每一該輸入埠6的該等入口佇列的數量是八個,且分別對應優先級等於p0至p7。對應每一該輸出埠7的該等出口佇列是八個,且包括一預設出口佇列(Default egress queue,DEQ)及七個暫停出口佇列(Paused egress queue,PEQ)。該預設出口佇列對應優先級等於p0,該七個暫停出口佇列的編號分別是1至7,且分別對應優先級等於p1至p7。
另外要特別補充說明的是:在其他的實施例中,每一該輸入埠6的該等入口佇列及每一該輸出埠7的該等出口佇列的數量也可以是其他數值,且該預設出口佇列的數量也可以是複數個,且該等暫停出口佇列的數量也可以是其他數值。舉例來說,另一網路交換機的一個輸出埠會對應16個出口佇列,網路管理人員可以設定其中兩個是預設出口佇列且對應的優先級是P0,並設定其餘14個是暫停出口佇列且對應的優先級分別是P1、P1、P2、P2至P7、P7。只要任一個預設出口佇列及任一個暫停出口佇列不能對應至同一個優先級即可。
該IMAP1及該EMAP3都包含一解析器(Parser)、多個匹配動作單元(Match-action units,MAUs)、及另一解析器(Deparser)。該解析器(Parser)用於分析每一封包,以獲得多個封包標頭欄位(Header fields),並將該等封包標頭欄位傳送至該等匹配動作單元。每一該匹配動作單元用於定義該封包的處理條件及執行函式(Action function,AF),並藉由一匹配動作表格(Match- action tables,MAT)的集合來描述。
參閱圖1與圖2,該流量控制方法之該實施例包含步驟S1~S13。
於步驟S1,該網路設備100的該IMAP1判斷所接收到的每一該封包是否是事先定義的一計算封包(Accounting packet)。當判斷該封包是該計算封包時,則執行步驟S8。而當判斷該封包不是該計算封包時,則執行步驟S2。
於步驟S2,該網路設備100的該IMAP1判斷所接收到的該封包是否是事先定義的一控制幀(Control frame)。當判斷該封包是該控制封包時,則執行步驟S13。當判斷該封包不是該控制封包時,則執行步驟S3。
於步驟S3,該IMAP1對於該封包所對應的計數器作累加。更詳細地說,該網路設備100的該IMAP1根據該封包的一標頭(Header),產生一個5元組資訊(5-tuple information)的雜湊值(Hash value)而作為該封包所屬的一流量(Flow)(即流量識別碼)。該5元組資訊包含該標頭(Header)中的一源頭網際協定位址(Source IP address)、一來源埠編號(Source port number)、一目的地網際協定位址(Destination IP address)、一目的地埠編號(Destination port number)、及一協議類型值(value of protocol type)。該網路設備100還包含分別對應該等流量的多個流量緩衝區使用量計數器(Per-flow Buffer usage counter,FBU counter)及一封包緩衝區使用量計數器(Packet Buffer usage counter,PBU counter)。該IMAP1將該封包的封包大小(Packet size)累加於對應該封包的該流量的該流量緩衝區使用量計數器及該封包緩衝區使用量計數器。接著,分別執行步驟S4及步驟S6。
由步驟S1、S2、S3可知,因為該控制幀及該計算封包實際上並沒有被儲存在TMPB2中的緩衝區,所以該IMAP1並不需要對該控制幀及該計算封包的該標頭產生對應的該流量。
於步驟S4,該網路設備100的該TMPB2判斷該等流量緩衝區使用量計數器及該封包緩衝區使用量計數器是否符合一閥值條件。該閥值條件是該等流量緩衝區使用量計數器之其中一者大於一流量關閉閥值(Xofff);或該等流量緩衝區使用量計數器之其中一者大於該流量關閉閥值之後且再小於一流量開啟閥值(Xonf);或該封包緩衝區使用量計數器大於一總流量關閉閥值(Xoffs);或該封包緩衝區使用量計數器大於該總流量關閉閥值之後且再小於一總流量開啟閥值(Xons)。當判斷該等流量緩衝區使用量計數器及該封包緩衝區使用量計數器不符合該閥值條件時,則執行步驟S5。而當判斷該等流量緩衝區使用量計數器及該封包緩衝區使用量計數器符合該閥值條件時,則執行步驟S10。
於步驟S5,該網路設備100將該封包經由對應的該輸出埠7傳送至對應的一下游節點(Downstream node)。
於步驟S6,該網路設備100的該EMAP3在一鏡像緩衝區(Mirror buffer)4儲存對應該封包的該計算封包。該計算封包所指示的封包大小等於該封包(即在步驟S5要傳送至該下游節點的該封包)的封包大小,且具有與該封包相同的該流量,但不具有該封包所包括的封包負載(Packet payload)。接著,執行步驟S7。
於步驟S7,該計算封包經由該鏡像緩衝區4、該TMPB2、該EMAP3、及一再循環埠(Recirculation port)5而被傳送至該IMAP1。接著,執行步驟S1,使得該網路設備100的該IMAP1接收到該計算封包。另外要特別補充說明的是:在本實施例中,該再循環埠5的數量是依照P4交換機的硬體設計,而可以是單1個或複數個來實施,只要該計算封包能夠經由對應的該再循環埠5而被傳送至該IMAP1即可。
於步驟S8,該網路設備100的該IMAP1將對應該計算封包所指示的該流量的該流量緩衝區使用量計數器減去該計算封包所指示的封包大小,且將該封包緩衝區使用量計數器減去該計算封包所指示的封包大小。接著,執行步驟S9。
於步驟S9,該網路設備100的該IMAP1丟棄該計算封包。
由步驟S1、S2、S3、S6、S7、S8、S9可知,該網路設備100是計算來自所有上游節點(Upstream node)且尚未被傳送至任一下游節點且分別屬於多個不同的該等流量(Flow)的該等封包的封包大小之和,以獲得分別對應該等流量的多個緩衝區使用量,並分別儲存於對應的該等流量緩衝區使用量計數器。該網路設備100還計算屬於所有的該等流量的該等封包的封包大小之和,以獲得一緩衝區使用總量,並儲存於對應的該封包緩衝區使用量計數器。
於步驟S10,該網路設備100產生該控制幀。該控制幀包含一暫停幀(Pause frame)、一遷移幀(Migrate frame)、一恢復幀(Resume frame)、及一遷回幀(Migrate-back frame)。更詳細地說,當該網路設備100的該TMPB2是判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量大於該流量關閉閥值(Xofff)時,或是判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於該總流量關閉閥值(Xoffs)時,該網路設備100產生該暫停幀。再參閱圖3,圖3說明該暫停幀的格式(Format),且該暫停幀的格式與先前技術的PFC方案所定義的相同。其中,該暫停幀包含16位元組的一優先級應用向量(Class-enable vector),及都是4位元組且分別指示八個不同的優先級(即p0至p7)的八個該暫停時間(即Time 0至Time 7)。該優先級應用向量用於指示欲暫停的該至少一暫停出口佇列或還與該預設出口佇列所對應的該至少一優先級。
而當該網路設備100的該TMPB2是判斷該等流量緩衝區使用量計數器之其中該者的該緩衝區使用量大於該流量關閉閥值之後,且再判斷出該緩衝區使用量小於該流量開啟閥值(Xonf)時,或是判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於該總流量關閉閥值之後,且再判斷出該緩衝區使用總量小於該總流量開啟閥值(Xons)時,該網路設備100產生該恢復幀。
接著,分別執行步驟S11及S12。
於步驟S11,該網路設備100產生另一該控制幀。更詳細地說,當該網路設備100的該TMPB2在步驟S10是產生該暫停幀時,則產生該遷移幀。而當該網路設備100的該TMPB2在步驟S10是產生該恢復幀時,則產生該遷回幀。再參閱圖4,圖4說明該遷移幀及該遷回幀的格式,其中,該遷移幀(或該遷回幀)包含都是4位元組的該流量識別碼(即Flow ID)及指示屬於該遷移幀(或該遷回幀)的一遷移類型(Migration Type)。另外要特別補充說明的是:每一該遷移幀(或遷回幀)所指示的該流量識別碼只能用於指示單一條流量。因此,舉例來說,當步驟S10的該網路設備100是判斷該緩衝區使用總量大於該總流量關閉閥值(Xoffs)時,則步驟S11的該網路設備100所產生的是多個遷移幀,且該等遷移幀的該等流量識別碼分別是欲暫停的所有該等流量。
於步驟S12,該網路設備100的該EMAP3經由對應的該輸出埠7將該控制幀(即先後分別是該暫停幀及該遷移幀,或先後分別是恢復幀及該遷回幀)傳送至對應其中該者的該流量來源的該上游節點。
於步驟S13,該網路設備100根據步驟S12的該控制幀,暫停或恢復對應的佇列。更詳細地說,當該網路設備100判斷所接收到的該封包是該暫停幀時,根據該暫停幀所指示的對應該流量的該至少一優先級及該至少一暫停時間,將該TMPB2中對應該至少一優先級的該至少一暫停出口佇列或還與該預設出口佇列暫停輸出而持續該暫停時間。舉例來說,該暫停幀欲暫停的該流量識別碼等於1,且所對應的該暫停出口佇列是編號1,則該暫停幀的該優先級應用向量等於2(即二進位的0b00000010),且對應的Time 1會填上設定的該暫停時間。再舉另一例來說,該暫停幀欲暫停的該流量識別碼等於32,且所對應的該暫停出口佇列是編號4(即32除以7的餘數),則該暫停幀的該優先級應用向量等於16(即二進位的0b00010000),且對應的Time 4會填上設定的該暫停時間。也就是該優先級應用向量的二進位的數值的第0至7位元分別對應預設出口佇列及編號1至7的該七個暫停出口佇列。再舉另一例來說,該暫停幀是由於另一網路設備判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於該總流量關閉閥值(Xoffs),則該暫停幀要暫停所有來自上游節點的該等流量,故該暫停幀的該優先級應用向量等於255(即二進位的0b11111111),且對應的Time 0至7會填上設定的該暫停時間,以暫停所有的該等暫停出口佇列及該預設出口佇列。
而當該網路設備100判斷所接收到的該封包是該遷移幀時,根據該遷移幀所指示的該流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至一預設出口佇列改為輸出至對應該流量的該暫停出口佇列。
而當該網路設備100判斷所接收到的該封包是該恢復幀時,根據該恢復幀所指示的該流量,將對應該流量的該暫停出口佇列先輸出完畢後再輸出該預設出口佇列。舉例來說,該恢復幀欲恢復的該流量識別碼等於1,且所對應的該暫停出口佇列是編號1,則該暫停幀的該優先級應用向量等於2(即二進位的0b00000010),且對應的Time 1等於0。
而當該網路設備100判斷所接收到的該封包是該遷回幀時,根據該遷回幀所指示的該流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至對應該流量的該暫停出口佇列改為輸出至該預設出口佇列。
由步驟S1、S2、S3、S4、S5可知,當該網路設備100判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量小於該流量關閉閥值(Xofff)時,將來自對應該流量的該等封包,輸出至該預設出口佇列。
另外要特別補充說明的是:每一該控制幀是由該EMAP3產生並儲存至該鏡像緩衝區4,並再經由該TMPB2及該EMAP3而至對應的該輸出埠7作輸出。在本實施例中,該等暫停出口佇列的數量是七個(即編號1至7),而該等流量(即該等流量識別碼)是大於或等於0的整數,因此,該網路設備100是將每一該流量除以該等暫停出口佇列的數量(即7),以藉由計算結果的餘數(即1至6及0)而能夠分別對應到編號1至7的該等暫停出口佇列。此外,在各種實施態樣中:每一該流量會對應到其中一個該入口佇列,任何一個該入口佇列(或該出口佇列)會對應到一種優先級(即一對一或多對一的對應關係),該等入口佇列及該等出口佇列的數量可以是其他數值。
綜上所述,藉由判斷分別對應該等流量的該等緩衝區使用量與該流量關閉閥值及該流量開啟閥值的大小關係,決定將該暫停幀及該遷移幀,或該恢復幀及該遷回幀傳送至對應的該上游節點,且根據所接收到的該暫停幀及該遷移幀,或該恢復幀及該遷回幀,作出對應的該流量的暫停或輸出,不但能夠解決習知基於優先級的PFC方案的受害流量的問題,還能夠與採用習知PFC方案的交換機相容使用。此外,本發明還能夠同時避免先前技術中壅塞擴散(Congestion spreading)、網路拓樸所造成的死結(Deadlock)、 及封包損失(Packet loss)的問題,故確實能達成本發明的目的。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
100:網路設備
1:IMAP(入口匹配動作管線)
2:TMPB(流量管理器與封包緩衝區)
3:EMAP(出口匹配動作管線)
4:Mirror buffer(鏡像緩衝區)
5:Recirculation port(s)(再循環埠)
6:Input port(s)( 輸入埠)
7:Output port(s)( 輸出埠)
S1~S13:步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1是一方塊圖,說明本發明流量控制方法所適用的一P4交換機的架構;
圖2是一流程圖,說明本發明流量控制方法的一實施例;
圖3是一示意圖,說明該實施例的一暫停幀及一恢復幀的格式;及
圖4是一示意圖,說明該實施例的一遷移幀及一遷回幀的格式。
S1~S13:步驟
Claims (8)
- 一種流量控制方法,適用於一網路設備且藉由該網路設備實施,並包含下列步驟: (A)計算來自所有上游節點(Upstream node)且尚未被傳送至任一下游節點(Downstream node)且分別屬於多個流量(Flow)的多個封包的封包大小之和,以獲得分別對應該等流量的多個緩衝區使用量,並分別儲存於對應的多個流量緩衝區使用量計數器(Per-flow Buffer usage counter); (B)當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量大於一流量關閉閥值(Xofff)時,先後將一暫停幀(Pause frame)及一遷移幀(Migrate frame)傳送至對應其中該者的該流量來源的該上游節點; (C)當判斷所接收到的該封包是該暫停幀時,根據該暫停幀所指示的對應該流量的一優先級及一暫停時間,將對應該優先級的一暫停出口佇列(Paused egress queue,PEQ)暫停輸出而持續該暫停時間; (D)當判斷所接收到的該封包是該遷移幀時,根據該遷移幀所指示的一流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至一預設出口佇列(Default egress queue,DEQ)改為輸出至對應該流量的該暫停出口佇列; (E)當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量大於該流量關閉閥值之後,且再判斷出該緩衝區使用量小於一流量開啟閥值(Xonf)時,先後將一恢復幀(Resume frame)及一遷回幀(Migrate-back frame)傳送至對應其中該者的該流量來源的該上游節點; (F)當判斷所接收到的該封包是該恢復幀時,根據該恢復幀所指示的該流量,將對應該流量的該暫停出口佇列先輸出完畢後再輸出該預設出口佇列;及 (G)當判斷所接收到的該封包是該遷回幀時,根據該遷回幀所指示的該流量識別碼,將來自對應該流量識別碼的該流量的該等封包,由原本輸出至對應該流量的該暫停出口佇列改為輸出至該預設出口佇列。
- 如請求項1所述的流量控制方法,還包含步驟(H),當判斷該等流量緩衝區使用量計數器之其中一者的該緩衝區使用量小於該流量關閉閥值(Xofff)時,將來自對應該流量的該等封包,輸出至該預設出口佇列。
- 如請求項2所述的流量控制方法,其中,在步驟(B)中,該暫停幀包含一優先級應用向量(Class-enable vector),及分別指示多個不同的優先級的多個該暫停時間,該優先級應用向量用於指示欲暫停的該至少一暫停出口佇列或還與該預設出口佇列所對應的該至少一優先級。
- 如請求項3所述的流量控制方法,還包含步驟(I)及(J),其中, 在步驟(A)中,該網路設備還計算屬於該等流量的該等封包的封包大小之和,以獲得一緩衝區使用總量,並儲存於對應的一封包緩衝區使用量計數器(Packet Buffer usage counter), (I)當判斷該封包緩衝區使用量計數器的該緩衝區使用總量大於一總流量關閉閥值(Xoffs)時,先後將該暫停幀及該等遷移幀傳送至對應該等流量來源的該至少一上游節點,該暫停幀的該優先級應用向量指示欲暫停所有的該等暫停出口佇列及該預設出口佇列所對應的該等優先級, (J)當判斷該封包緩衝區使用量計數器的該緩衝區使用量總量大於該總流量關閉閥值之後,且再判斷出該緩衝區使用總量小於一總流量開啟閥值(Xons)時,先後將該恢復幀及該等遷回幀傳送至對應該等流量來源的該至少一上游節點, 在步驟(C)中,該網路設備還根據該暫停幀所指示的該等優先級及該等暫停時間,將對應該等優先級的其他該至少一暫停出口佇列及該預設出口佇列暫停輸出而持續分別對應的該等暫停時間。
- 如請求項4所述的流量控制方法,該網路設備是一種支援P4語言的P4硬體交換機,其中,在步驟(A)中, 當該網路設備判斷所接收的該封包不是事先定義的一計算封包(Accounting packet)且不是一控制幀時,將對應該封包所屬的該流量的該流量緩衝區使用量計數器加上該封包的封包大小,且將該封包緩衝區使用量計數器加上該封包的封包大小,該控制幀包含該暫停幀、該遷移幀、該恢復幀、及該遷回幀, 當該網路設備判斷所接收的該封包是該計算封包時,將對應該計算封包所指示的該流量的該流量緩衝區使用量計數器減去該計算封包所指示的封包大小,且將該封包緩衝區使用量計數器減去該計算封包所指示的封包大小。
- 如請求項5所述的流量控制方法,其中,在步驟(A)中,當該網路設備在一出口匹配動作管線(Egress match- action pipeline,EMAP)輸出任何一個該封包至對應的該下游節點時,該網路設備在一鏡像緩衝區(Mirror buffer)儲存對應該封包的該計算封包,該計算封包所指示的封包大小等於該封包的封包大小,且具有與該封包相同的該流量,該計算封包經由該鏡像緩衝區、一流量管理器與封包緩衝區(Traffic manager & packet buffer,TMPB)、該出口匹配動作管線、及一再循環埠(Recirculation port)而被傳送至一入口匹配動作管線(Ingress match-action pipeline,IMAP),使得該網路設備接收到該計算封包。
- 如請求項1所述的流量控制方法,還包含在步驟(A)之前的(K),當該網路設備接收到任何一個該封包時,該網路設備根據該封包的一標頭(Header),產生一個5元組資訊(5-tuple information)的雜湊值(Hash value)而作為該封包所屬的該流量,該5元組資訊包含該標頭(Header)中的一源頭網際協定位址(Source IP address)、一來源埠編號(Source port number)、一目的地網際協定位址(Destination IP address)、一目的地埠編號(Destination port number)、及一協議類型值(value of protocol type)。
- 如請求項1所述的流量控制方法,其中,在步驟(B)中,該遷移幀包含都是4位元組的該流量識別碼及指示屬於該遷移幀的一遷移類型,在步驟(E)中,該遷回幀包含都是4位元組的該流量識別碼及指示屬於該遷回幀的該遷移類型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111114406A TWI792981B (zh) | 2022-04-15 | 2022-04-15 | 流量控制方法 |
US17/823,828 US20230336487A1 (en) | 2022-04-15 | 2022-08-31 | Flow control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111114406A TWI792981B (zh) | 2022-04-15 | 2022-04-15 | 流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI792981B true TWI792981B (zh) | 2023-02-11 |
TW202344021A TW202344021A (zh) | 2023-11-01 |
Family
ID=86689169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111114406A TWI792981B (zh) | 2022-04-15 | 2022-04-15 | 流量控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230336487A1 (zh) |
TW (1) | TWI792981B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
CN101095308A (zh) * | 2004-10-15 | 2007-12-26 | 联合设备技术公司 | 用于队列级联和逻辑标识的系统分组接口分组交换 |
CN106134138A (zh) * | 2014-12-04 | 2016-11-16 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
CN106330742A (zh) * | 2015-06-23 | 2017-01-11 | 华为技术有限公司 | 一种流量控制的方法及网络控制器 |
CN107948103A (zh) * | 2017-11-29 | 2018-04-20 | 南京大学 | 一种基于预测的交换机pfc控制方法及控制系统 |
WO2021217641A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种拥塞控制方法、网络设备及系统 |
-
2022
- 2022-04-15 TW TW111114406A patent/TWI792981B/zh active
- 2022-08-31 US US17/823,828 patent/US20230336487A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
CN101095308A (zh) * | 2004-10-15 | 2007-12-26 | 联合设备技术公司 | 用于队列级联和逻辑标识的系统分组接口分组交换 |
CN106134138A (zh) * | 2014-12-04 | 2016-11-16 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
CN106330742A (zh) * | 2015-06-23 | 2017-01-11 | 华为技术有限公司 | 一种流量控制的方法及网络控制器 |
CN107948103A (zh) * | 2017-11-29 | 2018-04-20 | 南京大学 | 一种基于预测的交换机pfc控制方法及控制系统 |
WO2021217641A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种拥塞控制方法、网络设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230336487A1 (en) | 2023-10-19 |
TW202344021A (zh) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Noormohammadpour et al. | Datacenter traffic control: Understanding techniques and tradeoffs | |
US12034633B2 (en) | System and method for facilitating tracer packets in a data-driven intelligent network | |
CN104954247B (zh) | 用于数据中心覆盖网络的主机网络加速器 | |
Khalili et al. | MPTCP is not Pareto-optimal: Performance issues and a possible solution | |
US9722942B2 (en) | Communication device and packet scheduling method | |
TWI665896B (zh) | 用以傳輸通訊訊號訊框之方法、實體及程式 | |
KR101990235B1 (ko) | 패킷 교환 네트워크 내의 네트워크 노드에 있어서의 트래픽 관리를 위한 방법 및 네트워크 노드 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
JP2013048320A (ja) | 送信レート制御のためのプログラム、制御方法及び情報処理装置 | |
CN105991456A (zh) | 一种OpenFlow交换机、网络系统及带宽共享方法 | |
CN110290072A (zh) | 流量控制方法、装置、网络设备及存储介质 | |
Wang et al. | Pursuing differentiated services in a sdn-based iot-oriented pub/sub system | |
TWI792981B (zh) | 流量控制方法 | |
Zhao et al. | Using multi-link grouping technique to achieve tight latency in network calculus | |
CN107968748A (zh) | 一种多路径流量发送的方法及装置 | |
Lhamo et al. | RED-SP-CoDel: Random early detection with static priority scheduling and controlled delay AQM in programmable data planes | |
CN111224884B (zh) | 拥塞控制的处理方法、报文转发装置及报文接收装置 | |
JP2013197643A (ja) | 通信装置 | |
Kabbani et al. | Data center quantized congestion notification (QCN): Implementation and evaluation on NetFPGA | |
Alharbi et al. | SSA: simple scheduling algorithm for resilient packet ring networks | |
Benito et al. | Non‐minimal adaptive routing based on explicit congestion notifications | |
Geyer et al. | Practical performance evaluation of ethernet networks with flow-level network modeling | |
US20240323114A1 (en) | System and method for facilitating tracer packets in a data-driven intelligent network | |
Adrah et al. | Achieving Guaranteed Performance for Protection Traffic in Smart Grid Wide-Area Networks | |
WO2023123075A1 (zh) | 一种数据交换的控制方法及装置 |