STP、RSTP、MSTP
?STP(生成樹協(xié)議)、RSTP(快速生成樹協(xié)議)、MSTP(多生成樹協(xié)議),這三個協(xié)議都是二層交換網(wǎng)絡(luò)中為了防止環(huán)路和實現(xiàn)鏈路冗余而設(shè)計的,他們之間有什么區(qū)別與聯(lián)系呢?本文為您詳細(xì)介紹。
STP、RSTP、MSTP基本概念
1、STP(802.1d)
? ? ? STP協(xié)議生來就是為了冗余而存在的,單純樹型的網(wǎng)絡(luò)無法提供足夠的可靠性,由此我們引入了額外的鏈路,這才出現(xiàn)了環(huán)路這樣的問題。但單純是標(biāo)準(zhǔn)的802.1D STP協(xié)議并不能實現(xiàn)真正的冗余與負(fù)載分擔(dān)。
? ? ? STP為IEEE 802.1D標(biāo)準(zhǔn),它內(nèi)部只有一棵STP tree,因此必然有一條鏈路要被blocking,不會轉(zhuǎn)發(fā)數(shù)據(jù),只有另外一條鏈路出現(xiàn)問題時,這條被blocking的鏈路才會接替之前鏈路所承擔(dān)的職責(zé),做數(shù)據(jù)的轉(zhuǎn)發(fā)。無論怎樣,總會有一條鏈路處于不被使用的狀態(tài),冗余是有了,但是負(fù)載分擔(dān)是不可想象的。
? ? ? cisco對STP做了改進,它使得每個VLAN都運行一棵stp tree,這樣第一條鏈路可以為vlan 1 2 3服務(wù),對vlan 4 5 6 blocking,第二條鏈路可以為vlan 4 5 6 forwarding,對vlan 1 2 3關(guān)閉,無形中實現(xiàn)了鏈路的冗余,負(fù)載分擔(dān)。這種技術(shù)被稱之為PVST+隨著網(wǎng)絡(luò)的發(fā)展,人們發(fā)現(xiàn)傳統(tǒng)的STP協(xié)議無法滿足主備快速切換的需求,因為STP協(xié)議將端口定義了5種狀態(tài),分別為:blocking listening learning forwarding disabling,想要從blocking切換至forwarding狀態(tài),必需要經(jīng)過50秒的周期,這50秒我們只能被動地去等待。20秒的blocking狀態(tài)下,如果沒有檢測到鄰居發(fā)來的BPDU包,則進入listening,這時要做的是選舉Root Bridge、Designate Port、Root Port,15秒后,進入learning,learning狀態(tài)下可以學(xué)習(xí)MAC地址,為最后的forwarding做準(zhǔn)備,同樣是15秒,最后到達(dá)轉(zhuǎn)發(fā)狀態(tài)。這樣的延時在現(xiàn)代網(wǎng)絡(luò)環(huán)境下是讓人極為難以忍受的。
2、RSTP(802.1w)
? ? ? RSTP的出現(xiàn)解決了延時的問題,它的收斂速度很快,當(dāng)然CISCO也針對這種技術(shù)推出了自已的RPVST+技術(shù)。RSTP在STP基礎(chǔ)上額外定義了兩種port role(注意這里的概念,端口角色),分別是alternate與backup。另外重新規(guī)定了port state(端口狀態(tài)),分別為discarding、Learning、Forwarding.
? ? ? STP的一大失敗之處在于混淆了port role與port state兩種概念,在RSTP上,這樣的問題不再存在了,port state與port role無關(guān)了。alternate port責(zé)任是為另一臺交換機上的鏈路作備份,而backup port是為本交換機上的端口作備。
? ? ? RSTP最重要的變化在于對BPDU中type字段的利用上,之前STP只使用了其中的兩個位,另外6個位中實現(xiàn)了很多的功能,包括不再需要去等待50秒的時間完成主備切換,直接利用proposal與agreement協(xié)商即可,這樣大大縮短了收斂時間。
? ? ? RSTP還定義了兩個新的概念:edge port與link type,如果是edge port,表明下面接的只能是主機,環(huán)路的存在是不可能的,所以我們可以直接將其從discarding切換到forwarding狀態(tài),類似于STP中的port fast技術(shù)。而link type定義了這條鏈路是point-to-point的還是shared。如果有pt-pt環(huán)境下,我們就可以做快速的切換了。
3、MSTP(802.1s)
? ? ? STP和RSTP都采用了一棵STP tree,負(fù)載分擔(dān)不可實現(xiàn),而CISCO的PVST+與RPVST+采用了每個VLAN一棵生成樹,雖然實現(xiàn)了負(fù)載分擔(dān),但是會占用非常多的CPU時間。這也正是MSTP(802.1s)產(chǎn)生的原因
? ? ? MSTP可以將多個VLAN的生成樹映射為一個實例,即vlan map to a instance,我們不需要那么多的生成樹,只需要按照冗余鏈路的條數(shù)來得出需要幾棵生成樹。
? ? ? 如果只有兩條鏈路,并且有1-1000個VLAN,我們可以將1-500定義為instance 1,將501-1000定義到instance 2。只生成兩棵樹1和2,同樣實現(xiàn)了冗余與負(fù)載分擔(dān)。
? ? ? MSTP是基于RSTP的,沒有RSTP,MSTP是無法運行的。
STP、RSTP、MSTP的對比分析總結(jié)
1、STP不能使端口狀態(tài)快速遷移,即使是在點對點鏈路或邊緣端口,也必須等待2 倍的Forward delay 的時間延遲,端口才能遷移到轉(zhuǎn)發(fā)狀態(tài)。
2、RSTP可以快速收斂,但是和STP 一樣存在以下缺陷:局域網(wǎng)內(nèi)所有網(wǎng)橋共享一棵生成樹,不能按VLAN 阻塞冗余鏈路,所有VLAN 的報文都沿著一棵生成樹進行轉(zhuǎn)發(fā)。
3、MSTP將環(huán)路網(wǎng)絡(luò)修剪成為一個無環(huán)的樹型網(wǎng)絡(luò),避免報文在環(huán)路網(wǎng)絡(luò)中的增生和無限循環(huán),同時還提供了數(shù)據(jù)轉(zhuǎn)發(fā)的多個冗余路徑,在數(shù)據(jù)轉(zhuǎn)發(fā)過程中實現(xiàn)VLAN 數(shù)據(jù)的負(fù)載均衡。
4、MSTP兼容STP 和RSTP,并且可以彌補STP 和RSTP的缺陷。它既可以快速收斂,也能使不同VLAN的流量沿各自的路徑分發(fā),從而為冗余鏈路提供了更好的負(fù)載分擔(dān)機制
轉(zhuǎn)載于:https://blog.51cto.com/xuzhiming302/1241211
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的STP、RSTP、MSTP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: androidHandler讲解
- 下一篇: Entity Framework中IQu