Rstp的P A機制是怎麼樣的?

2021-08-21 16:38:34 字數 1341 閱讀 1812

角色縮寫: dp=指定埠,ap=阻塞埠(非指定埠) rp=根埠

p/a的根本目的:為了加快某dp埠和rp埠互聯鏈路上兩端口快速進入**狀態不等30s的2xforwarding delay。

要成功進行pa快速協商機制只會出現在上邊dp下邊rp的情況下。首先兩台裝置比bpdu確定誰是上游dp,誰是下游rp(或ap)。所謂p/a機制,就是在這個過程以後,上游dp捉急要進入**狀態,這才向下發p置位bpdu的請求。p/a協商根本目的就是為了加快某dp埠和rp埠互聯鏈路上兩端口快速進入**狀態而無需等30s(

2倍forwarding delay )。

p/a簡要過程:

0.比如兩台裝置新加了一條線路。然後在這條線路上依次進行下述步驟(初始上下游介面均為dp角色,在第1步的操作後才變為dp/ap/rp):

1.兩台裝置互聯介面互比快取bpdu,確認誰是上游(埠角色為dp)誰是下游(埠角色為rp或ap。如果下游是rp埠則繼續看step2,如果下游是ap埠則直接參見第三段文字)

2.上游因為是dp,特別著急進入forwarding狀態,所以才傳送p置位bpdu發起p/a協商。

3.如果下游介面在第一步比較bpdu中確定為rp,則會將自己的所有下游dp介面

(除edge port以外)和原rp介面變為discarding狀態阻塞掉(即埠sync)。

4.sync完成後,下游直接將其rp口變成forwarding狀態,並向上游傳送a置位bpdu(該bpdu源自上游傳送的p置位的最新bpdu)以示同意。

5.然後上游交換機收到下游交換機傳送的a置位bpdu,則會將其dp埠直接變成forwarding狀態。至此上下游的dp埠和rp埠均已進入**狀態,免去等待30s的痛苦。

6.下游交換機繼續向其被discarding的其他dp口發起p/a協商以便快點進入forwarding狀態。

注:相比stp協議中dp埠變forwarding前需要等待兩個**延遲的30s時間,這個p/a協商可能只需要幾秒鐘就協商完進入forwarding狀態了。

注:如果下游的介面並未被選舉為rp而只是個普通ap怎麼辦?

如果下游裝置發現這個介面收到的bpdu沒其他某個介面(如現存的rp介面)收到的bpdu優先則下游裝置會認為這個介面角色應為ap介面而不是rp。則該(ap)介面就不會去回應上游傳送a置位bpdu而只傳送普通bpdu。這樣上游會一直每兩秒發乙個p置位bpdu,下游一直不響應a置位bpdu。直到等待1個forwarding delay後該上游dp才會由discarding變為learning狀態,再等乙個forwarding delay後上游dp才會變為forwarding狀態

include是怎麼樣工作的?

大多數園友可能對 include 比較熟悉,因為我們寫c c 程式的時候都會寫的字串之一,但是它是具體怎麼工作的?或者它的原理是什麼呢?可能不太熟悉,也有可能沒有去關心過。我們只關心程式能否正確執行,或者程式怎麼實現等等一些問題。這裡筆者就為介紹下我們熟悉又不太熟悉的 include 首先我們了解下...

include是怎麼樣工作的?

大多數園友可能對 include 比較熟悉,因為我們寫c c 程式的時候都會寫的字串之一,但是它是具體怎麼工作的?或者它的原理是什麼呢?可能不太熟悉,也有可能沒有去關心過。我們只關心程式能否正確執行,或者程式怎麼實現等等一些問題。這裡筆者就為介紹下我們熟悉又不太熟悉的 include 首先我們了解下...

include是怎麼樣工作的?

大多數園友可能對 include 比較熟悉,因為我們寫c c 程式的時候都會寫的字串之一,但是它是具體怎麼工作的?或者它的原理是什麼呢?可能不太熟悉,也有可能沒有去關心過。我們只關心程式能否正確執行,或者程式怎麼實現等等一些問題。這裡筆者就為介紹下我們熟悉又不太熟悉的 include 首先我們了解下...