主頁 > 軟體設計 > stp:生成樹協議的簡單總結

stp:生成樹協議的簡單總結

2021-01-17 13:30:30 軟體設計

是什么是STP?

生成樹協議(STP)是一種為了解決企業網三層架構,二層橋接環路的類似于廣播風暴的一系列問題的一種演算法;而生成樹是一種結構,是在一個二層交換網路中,生成一棵樹型結構,邏輯的阻塞部分介面,使得從根到所有的節點僅存在唯一的路徑;當最佳路徑故障時,自動打開部分阻塞埠,來實作線路備份的作用;在解決這些問題的時候,我們把生成樹的路徑盡量做到最短,即星型結構,

這一系列問題包括:

  1. 廣播風暴;
  2. MAC地址表翻滾 —在一臺交換機上,同一個MAC地址只能映射唯一的介面;但同一個介面可以映射多個不同的MAC地址;
  3. 同一資料幀的重復拷貝;
  4. 以上3個條件最終導致設備作業過載,導致重啟保護,

stp主要分為6類:802.1D,PVST,PVST+,RSTP(CISCO),RSTP(802.1W),MSTP(802.1S).
這6類的關系如下:
在這里插入圖片描述
下面來詳細的介紹一下這幾個stp,首先說說802.1D.
802.1D在交換機間使用BPDU—橋協議資料單元 – 交換機間溝通互動收發的資料配置BPDU—只有根網橋可以發送,在交換網路初始狀態時,所有交換機均定義本地為根網橋,進行BPDU的發送;使得網路中所有交換機均收到其他設備的BPDU,之后基于資料中的引數進行比對,選舉出根網橋;再所有非根網橋不再發送BPDU,而是僅接收和轉發根網橋的BPDU,周期2s發送,hold time 20s,本地交換機鏈路故障后,STP重新收斂,為了快速重繪全網所有交換機的MAC表,將向本地所有STP介面發送TCN(標記位中的TCN位置1),鄰居交換機收到TCN后,先標記為ACK位為回復,用于可靠傳輸訊息;之后將TCN逐級轉發到根網橋處,由根網橋回復TC訊息來逐級回復到所有交換機;使所有交換機臨時將MAC表的老換時間修改為15s(默認的,轉發延時),所以,在一個生成樹中,最主要的就是進行選舉,
1.根網橋的的選舉(在一棵生成樹實體中,有且僅有一臺交換機為root):
BPDU中的 橋ID(網橋優先級,默認32768 + MAC地址)來決定, 先比較優先級,會選舉優先級小的; 若優先級相同,比較mac,選舉mac值小的,
2.根埠的選舉(在每臺非根網橋上,有且僅有一個介面):
(1)比較從根網橋發出后,通過該介面進入時的cost值,選舉cost值小的;
(2)若cost值相同,則比較該介面對端設備的BID,選舉BID小的;
(3)若cost值相同,該介面對端設備的BID也相同,則比較該介面對端設備的介面的PID(埠號),選舉PID小的;
(4)若前面三者都相同,則比較本地PID,還是選舉PID小的,
3.指定埠的選舉(在每一段存在STP的物理鏈路上,有且僅有一個,默認根網橋上所有介面為指定埠):
(1)比較從根網橋發出后,通過該介面進入這段鏈路時的cost值,選舉cost值小的;
(2)若cost值相同,則比較該介面本地設備的BID,選舉BID小的;
(3)若本地BID相同,則比較本地的PID,還是選舉小的;
(4)若本地PID也相同,直接阻塞該埠,
4.非指定埠(阻塞埠)的選舉:
當以上所有角色全部選舉完成后,剩余沒有任何角色的介面為非指定,
該介面邏輯阻塞,實際可以接收到資訊,但不轉發,
那么stp為什么要改進呢,它的缺點是收斂慢,那么它是怎么收斂的呢?
首先進行偵聽:強制15s,(所有交換機進行BPDU收發,選舉所有角色;介面角色為非指定埠直接進入阻塞狀態,若為指定埠和根埠進入下一狀態);
然后學習:強制15s,(指定埠和根埠學習所有介面連接設備的MAC地址,生成MAC表;之后進入下一狀態);
最后才轉發,邏輯阻塞,
所以收斂時間=偵聽時間+學習時間=30s,
PVST 是cisco的技術,他將一個vlan劃為一個生成樹,然后每個樹的作業原理同802.1d一致,這樣的話就利用了備用線路,不存在阻塞埠了,提高了鏈路利用率,僅支持 trunk干道封裝為ISL,但是還是沒有解決收斂慢的難題,
PVST+ Cisco在Pvst的基礎上,想要解決收斂時間的問題,進行了升級,它兼容802.1q的trunk封裝,啟用了埠加速,上行鏈路加速,骨干加速的技術,大大減少了收斂的時間,但是還是沒有徹底解決,
埠加速:接入層連接用戶的介面,可以直接省去30s的收斂時間;
上行鏈路加速:針對直連檢測(本地存在阻塞埠,若其他埠斷開,該阻塞埠馬上進入15是偵聽,結果若為啟用,那么將再進入15s學習—總30s
),可以省去30s的收斂時間;
骨干加速:針對次優BPDU,當我們有倆個valn的時候,要選舉一個主root和一個次root作為備用,這個時候次優BPDU就可以直接省去30s的收斂時間了,直接選舉成功,
4.RSTP又稱快速生成樹,分為Cisco的和公有的(802.1w)倆種,他們的原理都是一樣的:
1、取消了計時器,而是在一個狀態作業完成后,直接進入下一狀態;
2、分段式同步,兩臺設備間逐級收斂;使用請求和同意標記;依賴標記位的第1和第6位;
3、BPDU的保活為6s,hello time 2s;
4、將埠加速(邊緣介面)、上行鏈路加速、骨干加速集成了;
5、兼容802.1d和PVST,但802.1d和PVST沒有使用標記位中的第1-6位,故不能快速收斂;因此如果網路中有一臺設備不支持快速收斂,那么其他開啟快速收斂的設備也不能快速,當tcn訊息出現時,不需要等待根網橋的BPDU,就可以重繪本地的cam表,雖然,RSTP解決了收斂時間的問題,但是還是沒有解決一個vlan一顆樹的問題,當vlan特別多的時候,那豈不是要很多樹,這就造成了很多不必要的結果,
5.MSTP則是繼承了快速生成樹的基礎,徹底解決了一個valn一顆樹的難題,將多個vlan放置于一個組內,基于每個組一棵生成樹,不同組間的BPDU中優先級= 4096倍數+組號,其實就是多個RSTP的結合,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/249886.html

標籤:其他

上一篇:nginx + mysql(主從復制)

下一篇:CRMEB v4二開檔案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more