文章出處:www.net1980.com網絡
STP(生成樹協議)、RSTP(快速生成樹協議)、MSTP(多生成樹協議),這三個協議都是二層交換網絡中爲了防止環路和實現鏈路冗餘而設計的,他們之間有什麼區別與聯繫呢?本文爲您詳細介紹。負載均衡
STP、RSTP、MSTP基本概念ide
一、STP(802.1d)學習
STP協議生來就是爲了冗餘而存在的,單純樹型的網絡沒法提供足夠的可靠性,由此咱們引入了額外的鏈路,這纔出現了環路這樣的問題。但單純是標準的802.1D STP協議並不能實現真正的冗餘與負載分擔。spa
STP爲IEEE 802.1D標準,它內部只有一棵STP tree,所以必然有一條鏈路要被blocking,不會轉發數據,只有另一條鏈路出現問題時,這條被blocking的鏈路纔會接替以前鏈路所承擔的職責,作數據的轉發。不管怎樣,總會有一條鏈路處於不被使用的狀態,冗餘是有了,可是負載分擔是不可想象的。.net
cisco對STP作了改進,它使得每一個VLAN都運行一棵stp tree,這樣第一條鏈路能夠爲vlan 1 2 3服務,對vlan 4 5 6 blocking,第二條鏈路能夠爲vlan 4 5 6 forwarding,對vlan 1 2 3關閉,無形中實現了鏈路的冗餘,負載分擔。這種技術被稱之爲PVST+隨着網絡的發展,人們發現傳統的STP協議沒法知足主備快速切換的需求,由於STP協議將端口定義了5種狀態,分別爲:blocking listening learning forwarding disabling,想要從blocking切換至forwarding狀態,必須要通過50秒的週期,這50秒咱們只能被動地去等待。20秒的blocking狀態下,若是沒有檢測到鄰居發來的BPDU包,則進入listening,這時要作的是選舉Root Bridge、Designate Port、Root Port,15秒後,進入learning,learning狀態下能夠學習MAC地址,爲最後的forwarding作準備,一樣是15秒,最後到達轉發狀態。這樣的延時在現代網絡環境下是讓人極爲難以忍受的。設計
二、RSTP(802.1w)ci
RSTP的出現解決了延時的問題,它的收斂速度很快,固然CISCO也針對這種技術推出了自已的RPVST+技術。RSTP在STP基礎上額外定義了兩種port role(注意這裏的概念,端口角色),分別是alternate與backup。另外從新規定了port state(端口狀態),分別爲discarding、Learning、Forwarding.get
STP的一大失敗之處在於混淆了port role與port state兩種概念,在RSTP上,這樣的問題再也不存在了,port state與port role無關了。alternate port責任是爲另外一臺交換機上的鏈路做備份,而backup port是爲本交換機上的端口做備。it
RSTP最重要的變化在於對BPDU中type字段的利用上,以前STP只使用了其中的兩個位,另外6個位中實現了不少的功能,包括再也不須要去等待50秒的時間完成主備切換,直接利用proposal與agreement協商便可,這樣大大縮短了收斂時間。
RSTP還定義了兩個新的概念:edge port與link type,若是是edge port,代表下面接的只能是主機,環路的存在是不可能的,因此咱們能夠直接將其從discarding切換到forwarding狀態,相似於STP中的port fast技術。而link type定義了這條鏈路是point-to-point的仍是shared。若是有pt-pt環境下,咱們就能夠作快速的切換了。
三、MSTP(802.1s)
STP和RSTP都採用了一棵STP tree,負載分擔不可實現,而CISCO的PVST+與RPVST+採用了每一個VLAN一棵生成樹,雖然實現了負載分擔,可是會佔用很是多的CPU時間。這也正是MSTP(802.1s)產生的緣由
MSTP能夠將多個VLAN的生成樹映射爲一個實例,即vlan map to a instance,咱們不須要那麼多的生成樹,只須要按照冗餘鏈路的條數來得出須要幾棵生成樹。
若是隻有兩條鏈路,而且有1-1000個VLAN,咱們能夠將1-500定義爲instance 1,將501-1000定義到instance 2。只生成兩棵樹1和2,一樣實現了冗餘與負載分擔。
MSTP是基於RSTP的,沒有RSTP,MSTP是沒法運行的。
STP、RSTP、MSTP的對比分析總結
一、STP不能使端口狀態快速遷移,即便是在點對點鏈路或邊緣端口,也必須等待2 倍的Forward delay 的時間延遲,端口才能遷移到轉發狀態。
二、RSTP能夠快速收斂,可是和STP 同樣存在如下缺陷:局域網內全部網橋共享一棵生成樹,不能按VLAN 阻塞冗餘鏈路,全部VLAN 的報文都沿着一棵生成樹進行轉發。
三、MSTP將環路網絡修剪成爲一個無環的樹型網絡,避免報文在環路網絡中的增生和無限循環,同時還提供了數據轉發的多個冗餘路徑,在數據轉發過程當中實現VLAN 數據的負載均衡。
四、MSTP兼容STP 和RSTP,而且能夠彌補STP 和RSTP的缺陷。它既能夠快速收斂,也能使不一樣VLAN的流量沿各自的路徑分發,從而爲冗餘鏈路提供了更好的負載分擔機制。