本節內容主要對流量控制原理認識,接下來的章節會對二層通信知識點進行系統講解。
流量控制需求產生:
流量控制可以有效的防止由于網絡中瞬間的大量數據對網絡帶來的沖擊,保證用戶網絡高效而穩定的運行。
流量控制定義:
流量控制用于防止在端口阻塞的情況下丟幀,這種方法是當發送或接收緩沖區開始溢出時通過將阻塞信號發送回源地址實現的,是點到點的協議。
控制流量的方式:
1)在半雙工方式下,流量控制是通過反壓(Backpressure)實現的。
2) 在全雙工方式下,流量控制一般遵循IEEE 802.3X標準,是由交換機向信息源發送“pause”幀【 01-80-C2-00-00-01 】令其暫停發送。
單工(Simplex Communication):
通信雙方中,一方固定為發送端,一方則固定為接收端。信息只能沿一個方向傳輸,使用一根傳輸線,不需要回傳信息想回通信的可以用單工模式。
半雙工(Half Duplex):
指數據可以在一個信號載體的兩個方向上傳輸,但是不能同時傳輸,相對于單方向一次性傳輸。
全雙工(Full Duplex):
數據傳輸允許在兩個方向上同時傳輸,它在能力上相當于兩個單工通信方式的結合。
當以太網交換控制電路端口工作在半雙工模式時,符合IEEE 802.3協議的載波偵聽多路訪問/沖突檢測(CSMA/CD)算法,可以實現隱式的流量控制,即采用背壓技術(Back Pressure)防止緩沖區的溢出,在發送方數據到來前采取某種動作,阻止發送方發送數據。
背壓技術(Back Pressure):
背壓技術是交換控制電路發出一種偽碰撞信號(False Collision Signal)技術。就是消費者需要多少,生產者就生產多少,接收方根據自己的接收端口的情況來控制接收速率,并通過反向的ACK包來控制發送方的發送速率。
背壓技術實現分析:
根據已經使用緩沖區的容量比例來判斷,當已用緩沖區容量達到一個預先設定的比例時,端口將根據這個閾值生成阻塞信號,類似告警功能,主動發出信號包ACK。
而當空閑緩沖區容量比例高于設定值時,端口將取消阻塞信號。
在擁塞端口所在的網段內,阻塞信號ACK包的傳輸可以使該網段里所有的端口都能檢測到沖突,等待阻塞信號結束后再傳輸數據幀,從而阻止更多的碰撞,暫時中止了數據的傳輸,使緩沖區的空間得到釋放。
這個是一種防止丟包策略的技術,相應的還有節流(丟棄),打包(小包裹轉大包裹降低傳輸開銷)等技術。
全雙工網絡控制:
而在全雙工網絡中,交換控制電路端口不會檢測沖突,并且忽略可延遲傳送的載波偵聽,
所以不能采用背壓技術解決擁塞,需要采用顯式的流量控制機制,使交換控制電路能夠阻塞處
于擁塞狀態的站點。于是,IEEE 802.3協議為mac控制子層提供了一個全雙工流量控制結構框架,MAC控制子層是介于邏輯鏈路控制子層和介質訪問控制子層間的可選功能。既然是全雙工可以互相通信,所以接收方可以告訴發送方利用“pause”幀方式。