網路–QOS(PAUSE幀與BackPressure背壓)

來源:互聯網
上載者:User

BCM56224晶片支援4種QOS模式:基於連接埠(Port-ID)、基於MAC地址、基於802.1p、基於DiffServ的優先順序設定。

基於802.1p、基於DiffServ的優先順序設定的寄存器在Register Definitions中很快找到;而基於連接埠的優先順序設定寄存器卻在802.1Q Vlan章節中

置過程中會遇到QOS PAUSE Enable Register寄存器,後來才明白他的作用:

(寫在出發前:通常,儲存轉寄的乙太網路交換控制電路有3種緩衝方式:連接埠輸入緩衝,共用中央緩衝和連接埠輸出緩衝。當發送方和接收方資料轉送率不匹配時,為了防止高速發送方的資料把低速接收方“淹沒”,需要通過流量控制機制使發送方在接收方緩衝區將滿時,停止發送資料幀,在緩衝區將空時,繼續發送資料幀。在資料連結層實現流量控制,可以調整串連裝置的傳輸速率、解決擁塞問題和減少幀丟失。)

1、乙太網路流量控制技術

IEEE802.3協議把資料連結層分為邏輯鏈路控制子層、MAC控制子層和介質存取控制(MAC)子層。其中MAC控制子層為可選子層,該子層規定了一個通用的全雙工系統流量控制結構架構;載波偵聽多路訪問/衝突檢測(CSMA/CD)演算法則實現了半雙工流量控制。

1.1、半雙工網路的流量控制技術

當乙太網路交換控制電路連接埠工作在半雙工模式時,符合IEEE802.3協議的載波偵聽多路訪問/衝突檢測(CSMA/CD)演算法,可以實現隱式的流量控制,即採用背壓技術(BackPressure)防止緩衝區的溢出,在發送方資料到來前採取某種動作,阻止發送方發送資料。
背壓技術是交換控制電路發出一種偽碰撞訊號(false collision signal)技術。背壓技術通常根據已用緩衝區的容量比例來實現,當已用緩衝區容量達到一個預先設定的比例時,連接埠將根據這個閾值產生阻塞訊號,而當空閑緩衝區容量超過另一個較低的比例時,連接埠將取消阻塞訊號。在擁塞連接埠所在的網段內,阻塞訊號的傳輸可以使該網段裡所有的連接埠都能檢測到衝突,等待阻塞訊號結束後再傳輸資料幀,從而阻止更多的碰撞,暫時中止了資料的傳輸,使緩衝區的空間得到釋放。(實現方法這裡不做說明)

1.2、全雙工系統網路的流量控制技術

全雙工系統網路中,交換控制電路連接埠不檢測衝突,忽略可延遲傳送的載波偵聽,所以不能採用背壓技術解決擁塞,需要採用顯式的流量控制機制,使交換控制電路能夠阻塞處於擁塞狀態的網站。

IEEE802.3協議為MAC控制子層提供了一個全雙工系統流量控制結構架構,MAC控制子層是介於邏輯鏈路控制子層和介質存取控制子層間的可選功能,MAC控制子層在OSI體系中的位置如下面所示。

OSI參考模型

   應用程式層

   展示層

   會話層

   傳輸層

   網路層

資料連結層
(從上之下可分為:a、LLC——邏輯鏈路控制 b、MAC 控制——(可選項)
c、MAC——介質存取控制)

   物理層

交換控制電路要防止緩衝區溢位,可以利用MAC控制子層來控制乙太網路介質存取控制子層的操作。當已用緩衝區容量達到一個預先設定的閾值時,連接埠向全雙工系統鏈路對方發出停止發送資料的請求,這個請求通過MAC控制子層產生的控制幀實現。

同樣,連接埠可以接收由其他網站MAC控制子層產生的控制幀,控制幀夾在客戶資料幀流中發送,接收方會根據幀的內容將控制幀分離出來,提交到MAC控制子層中的流量控制模組,流量控制模組解析控制幀的內容,提取幀中的控制參數,根據控制參數決定暫停發送的時間。

在全雙工系統MAC控制架構下,流量控制機制是通過PAUSE功能實現的。PAUSE功能可以防止瞬時過載導致緩衝區溢位時不必要的幀丟失。PAUSE操作實現了一種簡單的停-等式流量控制機制。如果某個連接埠要停止幀的接收,可以發送一個帶有參數的PAUSE幀,參數指示全雙工系統鏈路對方在開始發送資料前需要等待的時間。當鏈路對方接收到PAUSE幀後,在參數指定的時間內停止發送資料。當指定時間超出,或連接埠流量控制狀態解除後,原擁塞連接埠重新發出巨集指令引數為0的PAUSE幀,鏈路對方從暫停位置繼續發送資料幀。
MAC控制幀是符合IEEE802.3協議的乙太網路幀,可以通過其唯一的類型域標識符(0x8808)識別。MAC控制幀在網路上的發送和接收與資料幀類似,除了前置碼和幀開始符外,長度為乙太網路幀的最小幀長度(64位元組)。MAC控制幀的資料域內,前兩個位元組標識了MAC控制的作業碼,表示幀請求的控制功能。目前協議只定義了一種作業碼,即PAUSE操作,作業碼為0x0001。作業碼後是操作所需的參數,參數只用了資料欄位的2個位元組,資料欄位中其餘位將填充0。

PAUSE框架格式 (幀長64位元組):

前置碼(7位元組)+

目的地址(6位元組)+

源地址(6位元組)+

類型(2位元組)+

幀開始符(1位元組)+

作業碼(2位元組)+

巨集指令引數(2位元組)+

保留(42位元組)+

校正序列(4位元組)

2、交換控制電路全雙工系統流量控制機制的實現

2.1、PAUSE操作的實現

當鏈路雙方通過自動協商啟用流量控制以後,鏈路連接埠可以產生PAUSE幀,同時在接收幀的過程中識別PAUSE幀,響應停-等請求,交換控制電路PAUSE操作的實現主要有3個方面。
第1個方面:PAUSE幀要及時發送。乙太網路交換裝置按序發送資料幀,當緩衝區將要溢出時插入PAUSE幀。PAUSE幀會因為排隊等候發送而造成延遲,因此,PAUSE幀應該具有發送優先權。如果在發送PAUSE幀前資料幀正在傳輸,PAUSE幀必須等待當前資料幀傳輸完畢,在幀間隔過後才能發送。
第2個方面:對接收到的PAUSE幀進行識別。識別過程需要512位鏈路傳輸時間,這是完整地接收64位元組PAUSE幀所需的時間。接收埠對所有接收的幀進行協議分析,結合PAUSE幀的格式對接收幀的目的地址、框架類型、MAC控制作業碼和幀校正序列進行檢查,確定是否收到了正確的PAUSE幀,用提取的暫停時間乘以512位鏈路傳輸時間,得到連接埠暫停時間。若收到暫停時間為零的PAUSE幀,則解除連接埠流量控制狀態。
第3個方面:合理設定發出流量控制請求時機。由於全雙工系統鏈路存在傳播延遲和響應延遲,發出PAUSE幀後,對方不能立即停止資料幀的發送。發送方必須考慮在發出PAUSE幀後能夠接收的最大資料量,避免緩衝區溢位。本設計的乙太網路交換控制電路支援10M/100M鏈路傳送,最壞情況下需要考慮的因素包括:
(1)在發送PAUSE幀前正在發送一個最長資料幀(1 536位元組);
(2)發送PAUSE幀花費的時間為512位鏈路傳輸時間;
(3)發送幀間隔為96位鏈路傳輸時間;
(4)對方在解析PAUSE幀的同時,正開始發送一個最長資料幀 (1 536位元組);
(5)接收幀間隔為96位鏈路傳輸時間;
(6)鏈路的往返傳輸延遲時間。
根據上述因素,流量控制請求發出以後,還需要大約3.2K位元組的資料等待接收與緩衝,PAUSE幀才能終止鏈路對方資料幀的發送。在設計緩衝容量和選擇流量控制閾值時,需要考慮這些延遲因素,有效地實現流量控制機制,防止幀丟失。

2.2、 緩衝區策略的實現

雖然IEEE802.3已經定義了流量控制機制,但是何時啟動流量控制,卻完全取決於供應商或者使用者。根據實現的複雜度可以有不同的方法,比如設定PAUSE幀中暫停時間和交換控制電路的緩衝能力等這裡就不做說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.