如圖所示有三颱交換機,從sw1到sw3優先順序分別為4096、8192、32768
整個stp運**況如下:
第一步:根橋選舉
假設三颱交換機是同步啟動的,剛開始的時候,三颱交換機都認為自己是根交換機,將自己所有的埠都設定為指定埠,並向外傳送配置bpdu,在配置bpdu中起到根橋選舉的多元組是(如果四元組都一樣再看接受埠id。)
sw1的配置bpdu中的4元組為,為了方便,之後用交換機名字代表它的橋id。sw2、sw3的配置bpdu的四元組分別為、。
對於sw1,它從g1和g2口會分別受到sw2和sw3發來的bpdu,通過與自己傳送的bpdu比較發現,自己兩個埠傳送的bpdu分別都比從兩個埠接受到的bpdu更加優秀,所以sw1忽略收到的配置bpdu並確定自己是根橋,然後按照hello time從g1和g2這兩個指定埠傳送自己的配置bpdu。
對於sw2,它從g1和g3埠分別接收到sw1和sw3傳送過來的配置bpdu,發現從g1收到的bpdu最優,於是在自己的g1埠用sw1傳送過來的配置bpdu替換自己之前的bpdu,從g2口收到的配置bpdu不如自己的優秀,所以忽略。綜合比較接收和自己傳送的配置bpdu,選出g1為根橋。
對於sw3,它從g2和g3埠分別接收到sw1和sw1傳送過來的配置bpdu,發現從兩個口端接收到的bpdu都比自己的優秀,於是在g2和g3埠分別用sw1和sw2傳送過來的bpdu來替換自己的bpdu(這裡的替換是指把埠裡快取的bpdu換掉)。綜合比較接收和自己傳送的配置bpdu,選出g1為根橋。
第二步:非根橋的根埠選舉
sw2的 g1埠現在快取的是sw1傳送過來的bpdu,g3埠快取的是自己的bpdu,通過比較兩個埠快取的bpdu優先順序可以發現g1快取的更加優秀,所以g1埠成為sw2的根埠。
sw3的g2埠現在快取的是sw1傳送過來的bpdu,g3埠快取的是sw2傳送過來的bpdu,通過比較這兩個埠快取的bpdu優先順序可以發現g2埠快取的更加優秀,所以g2埠成為sw3的根埠。
第三步:非根橋交換機非根埠的bpdu計算
sw2從g1口接收的bpdu以及現在g1口快取的bpdu是,sw2給除了根埠外的其他埠重新計算乙份bpdu,sw2的g3埠重新計算的bpdu為。
同理sw3上的g3埠重新計算出的bpdu為。
注意:如果一台非根橋交換機有多個非根埠,則每個埠都要重新計算bpdu,每個埠重新計算的bpdu的根橋id,根路徑開銷,網橋id都一樣,不同的是portid。
第四步:選舉dp
sw2的g3埠和sw3的g3埠開始相互傳送重新計算後的bpdu來選舉dp,sw2傳送自己g3口快取的bpdu,sw3也傳送自己g3快取的bpdu由於sw2傳送的bpdu更優秀,所以sw2的g3口成為指定埠。
sw2的g3口收到sw3的g3口傳送的bpdu時,由於自己快取的bpdu更優秀,所以它會忽略收到的bpdu;sw3的g3口收到sw2的g3口傳送的bpdu時,由於自己快取的bpdu沒有收到的優秀,所以這個時候sw3的g3口會更新自己g3口的bpdu為
第五步:阻塞埠
sw3的g3口現在儲存的bpdu是,而它從根埠計算得到的bpdu是,很明顯,從根埠計算得到的bpdu現在沒有它自己快取的bpdu優秀,所以現在sw3的g3口被阻塞。
注意:華為的stp阻塞埠有兩種狀態:bp和ap;因為sw3快取的bpdu的橋id和自己不一樣,所以sw3的g3成為ap。(關於ap和bp埠的詳細分析見文章「如何決定ap和bp埠」)
小結:華為實現中stp執行分5步驟
1、根橋選舉(比較不同交換機傳送的bpdu,誰小選誰)
2、非根橋根埠選舉(比較本交換不同埠快取的bpdu,誰小選誰)、
3、非根埠bpdu計算(以根埠快取的bpdu為原型計算交換機其他埠的bpdu)
4、選舉dp(同一網段上bpdu最優的埠成為根埠)
5、阻塞埠(同一網段上除了乙個dp埠,其他埠都會被阻塞,和dp埠在同一交換機上則成為bp,和dp不在乙個交換機上的埠成為ap)
vlc內部執行機制以及架構分
vlc 架構剖析 1.videolan簡介 1.1 videolan組成 videolan有以下兩部分組成 vls 是一種流伺服器,專門用來解決流的各種問題,它也具有一些vlc的特徵。videolan作 為伺服器可以輸出http,rtp,rtsp的流。1.2 vlc優點 下圖表示出了videolan...
C 中cout的執行機制
關於c 中cout的使用,相信大家再熟悉不過了,然而對於cout是如何輸出的?輸出的機制是啥,需要進一步的了解。本章娓娓道來。前幾天在網上看到這麼乙個題目 include using namespace std int hello1 int hello2 int main int a b cout ...
Hadoop中yarn的執行機制
轉至 1.1 yarn 基本架構 1.2 yarn基本組成結構 1.resourcemanager rm 1 排程器 排程器根據容量 佇列等限制條件 如每個佇列分配一定的資源,最多執行一定數量的作業等 將系統中的資源分配給各個正在執行的應用程式。2 應用程式管理器 使用者提交的每個應用程式均包含1個...