交換機生成樹協(xié)議研究畢業(yè)論文_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  交換機生成樹協(xié)議研究</p><p><b>  摘 要</b></p><p>  生成樹協(xié)議(Spanning Tree Protocol STP)是用于局域網(wǎng)中消除數(shù)據(jù)鏈路層物理環(huán)路的協(xié)議。運行該協(xié)議的交換機通過彼此交互報文發(fā)現(xiàn)網(wǎng)絡(luò)中的環(huán)路,并有選擇性的對某些端口進行阻塞,最終將環(huán)路網(wǎng)絡(luò)結(jié)構(gòu)修剪成無環(huán)路的樹型網(wǎng)絡(luò)結(jié)構(gòu),從而達到消除二層環(huán)路的

2、目的。STP的缺點是收斂速度慢,為解決這一缺陷,RSTP應(yīng)運而生??焖偕蓸鋮f(xié)議(Rapid Spanning Tree Protocol RSTP)在STP的基礎(chǔ)上,縮短了轉(zhuǎn)發(fā)延時可以快速收斂,但是和STP一樣,局域網(wǎng)內(nèi)所有交換機共享一棵生成樹,不能解決鏈路負載分擔的問題,多生成樹協(xié)議(Multiple Spanning Tree Protocol MSTP)可以彌補這一缺陷,它既可以快速收斂,也能使不同VLAN的流量沿各自的路徑轉(zhuǎn)發(fā)

3、,從而為冗余鏈路提供了更好的負載分擔機制。本論文論述了STP,RSTP和MSTP的產(chǎn)生背景和發(fā)展,基本概念和原理,以及它們各自的缺陷,并針對這些問題提出了自己的見解。</p><p>  關(guān)鍵詞:生成樹協(xié)議,快速生成樹協(xié)議,虛擬局域網(wǎng),多生成樹協(xié)議</p><p>  Spanning Tree Protocol</p><p>  Abstract:Spannin

4、g Tree Protocol (Spanning Tree Protocol STP) is used for LAN data link layer to eliminate the physical loops in the agreement. Switch by running the protocol packets that the network interact with each other in the loop,

5、 and selectively blocking certain ports, and ultimately into the loop network loop-free tree pruning the network structure, to achieve the elimination of two layer loop purposes. STP drawback is slow convergence, to addr

6、ess this shortcoming, RSTP came into being. </p><p>  Keyword:Spanning Tree Protocol,Rapid Spanning Tree Protocol,VLAN,Multiple Spanning Tree Protocol</p><p><b>  目 錄</b></p>

7、<p><b>  第一章前言1</b></p><p>  第二章 以太網(wǎng)交換機2</p><p>  2.1 以太網(wǎng)發(fā)展歷史及現(xiàn)狀2</p><p>  2.2 傳統(tǒng)以太網(wǎng)2</p><p>  2.3 透明橋工作原理3</p><p>  2.4 傳統(tǒng)以太網(wǎng)與交換式以

8、太網(wǎng)3</p><p>  2.5 STP的產(chǎn)生3</p><p>  第三章 生成樹協(xié)議 STP5</p><p>  3.1 STP協(xié)議基本原理5</p><p>  3.2 STP基本概念5</p><p>  3.3 STP端口7</p><p>  3.3.1 端口狀態(tài)7

9、</p><p>  3.3.2 端口狀態(tài)遷移8</p><p>  3.4 STP協(xié)議報文9</p><p>  3.4.1 配置BPDU9</p><p>  3.4.2 TCN BPDU10</p><p>  3.5STP算法實現(xiàn)的具體過程11</p><p>  3.5.1

10、 配置消息比較原則11</p><p>  3.5.2 最優(yōu)配置消息的選擇11</p><p>  3.5.3 根橋的選擇11</p><p>  3.6 STP的配置消息傳遞機制12</p><p>  3.7 STP定時器13</p><p>  3.8 STP拓撲結(jié)構(gòu)的改變13</p>

11、<p>  3.9 STP算法舉例15</p><p>  3.10 STP 的缺點18</p><p>  第四章 快速生成樹協(xié)議 RSTP19</p><p>  4.1 RSTP的產(chǎn)生背景19</p><p>  4.2 RSTP協(xié)議的改進20</p><p>  4.3 RSTP的缺點27

12、</p><p>  第五章 虛擬局域網(wǎng)28</p><p>  5.1 VLAN概述28</p><p>  5.2 VLAN原理29</p><p>  第六章 多生成樹 MSTP31</p><p>  6.1 MSTP的產(chǎn)生背景31</p><p>  6.2 MSTP基本概念

13、32</p><p>  6.3端口角色和端口狀態(tài)34</p><p>  6.3.1 端口角色34</p><p>  6.3.2 端口狀態(tài)35</p><p>  6.4 MSTP的基本原理35</p><p>  6.4.1 CIST生成樹的計算36</p><p>  6.

14、4.2 MSTI的計算36</p><p>  6.4.3 生成樹協(xié)議算法實現(xiàn)過程36</p><p><b>  結(jié) 論38</b></p><p><b>  致 謝39</b></p><p><b>  參考文獻40</b></p><

15、;p><b>  前言</b></p><p>  在實際的交換網(wǎng)絡(luò)中,為了提高整個網(wǎng)絡(luò)的可靠性,消除單點失效故障,通常在網(wǎng)絡(luò)設(shè)計中采用多臺設(shè)備、多個端口、多條線路的冗余連接方式。但是這樣的拓撲結(jié)構(gòu)會導(dǎo)致二層環(huán)路的產(chǎn)生,如果交換機不對二層環(huán)路做處理,將會導(dǎo)致嚴重的網(wǎng)絡(luò)問題,如:廣播風暴,幀的重復(fù)復(fù)制,交換機的MAC地址漂移等問題。生成樹協(xié)議就是為了解決二層環(huán)路而產(chǎn)生的,STP能夠自動發(fā)

16、現(xiàn)冗余網(wǎng)絡(luò)拓撲中的環(huán)路,保留一條最佳鏈路做轉(zhuǎn)發(fā)鏈路,阻塞其他冗余鏈路,并且在網(wǎng)絡(luò)拓撲結(jié)構(gòu)發(fā)生變化的情況下重新計算,保證所有的網(wǎng)段的可達且無環(huán)路。STP協(xié)議和其它網(wǎng)絡(luò)協(xié)議一樣,是隨著網(wǎng)絡(luò)的不斷發(fā)展而不斷更新?lián)Q代的。最初被廣泛應(yīng)用的是IEEE802.1d版本,隨后又出現(xiàn)了IEEE802.1w RSTP協(xié)議和IEEE802.1s MSTP協(xié)議。RSTP協(xié)議提供了端口狀態(tài)的快速轉(zhuǎn)換功能,使網(wǎng)絡(luò)拓撲的收斂時間大大減少。MSTP協(xié)議在RSTP協(xié)議的

17、基礎(chǔ)上引入了域和實例的概念,首先將網(wǎng)絡(luò)中不同的橋設(shè)備及其VLAN劃分為不同的域,在域內(nèi)設(shè)定各個VLAN到生成樹實例的映射關(guān)系,這樣既提供了快速收斂能力,同時也在域內(nèi)對網(wǎng)絡(luò)冗余的網(wǎng)絡(luò)帶寬進行了有效應(yīng)用。MSTP具有LVAN認知</p><p>  第二章 以太網(wǎng)交換機</p><p>  2.1 以太網(wǎng)發(fā)展歷史及現(xiàn)狀</p><p>  以太網(wǎng)是在70年代由Xerox

18、公司Palo Alto研究中心推出的。由于介質(zhì)技術(shù)的發(fā)展,Xerox可以將許多機器相互連接,形成巨型打印機,這就是以太網(wǎng)的原型。后來,Xerox公司推出了帶寬為2Mb/s的以太網(wǎng),又和Intel和DEC公司合作推出了帶寬為10Mb/s的以太網(wǎng),這就是通常所稱的以太網(wǎng)Ⅱ或以太網(wǎng)DIX(Digital,Intel和Xerox)。IEEE(電器和電子工程師協(xié)會)下屬的802協(xié)委員會制定了一系列局域網(wǎng)標準,其中以太網(wǎng)標準(IEEE 802.3)

19、與由Intel、Digital 和Xerox推出的以太網(wǎng)Ⅱ非常相似。</p><p>  隨著以太網(wǎng)技術(shù)的不斷進步與帶寬的提升,目前在很多情況下以太網(wǎng)成為了局域網(wǎng)的代名詞。</p><p><b>  2.2 傳統(tǒng)以太網(wǎng)</b></p><p>  以太網(wǎng)使用CSMA/CD(Carrier Sense Multiple Access with

20、Collision Detection,帶有沖突監(jiān)測的載波偵聽多址訪問)。</p><p>  首先,以太網(wǎng)網(wǎng)段上需要進行數(shù)據(jù)傳送的節(jié)點對導(dǎo)線進行監(jiān)聽,這個過程稱為 CSMA/CD的載波偵聽。如果,這時有另外的節(jié)點正在傳送數(shù)據(jù),監(jiān)聽節(jié)點將不得不等待,直到傳送節(jié)點的傳送任務(wù)結(jié)束。如果某時恰好有兩個工作站同時準備傳送數(shù)據(jù),以太網(wǎng)網(wǎng)段將發(fā)出“沖突”信號。這時,節(jié)點上所有的工作站都將檢測到?jīng)_突信號,因為,這時導(dǎo)線上的電壓

21、超出了標準電壓。沖突產(chǎn)生后,這兩個節(jié)點都將立即發(fā)出擁塞信號,以確保每個工作站都檢測到這時以太網(wǎng)上已產(chǎn)生沖突,然后,網(wǎng)絡(luò)進行恢復(fù),在恢復(fù)的過程中,導(dǎo)線上將不傳送數(shù)據(jù)。當兩個節(jié)點將擁塞信號傳送完,并過了一段隨機時間后,這兩個節(jié)點便開始啟動隨機計時器。第一個隨機計時器到期的工作站將首先對導(dǎo)線進行監(jiān)聽,當它監(jiān)聽到?jīng)]有任何信息在傳輸時,便開始傳輸數(shù)據(jù)。當?shù)诙€工作站隨機計時器到期后,也對導(dǎo)線進行監(jiān)聽,當監(jiān)聽到第一個工作站已經(jīng)開始傳輸數(shù)據(jù)后,就只好

22、等待了。在 CSMA/CD 方式下,在一個時間段,只有一個節(jié)點能夠在導(dǎo)線上傳送數(shù)據(jù)。如果其他節(jié)點想傳送數(shù)據(jù),必須等到正在傳輸?shù)墓?jié)點的數(shù)據(jù)傳送結(jié)束后才能開始傳輸數(shù)據(jù)。以太網(wǎng)之所以稱作共享介質(zhì)就是因為節(jié)點共享同一傳輸介質(zhì)這一事實。</p><p>  2.3 透明橋工作原理</p><p>  在網(wǎng)絡(luò)發(fā)展初期,透明網(wǎng)橋是一個不得不提的重要角色。它比只會放大和廣播信號的HUB聰明的多,它會悄悄把

23、發(fā)向它的數(shù)據(jù)幀的源MAC和端口記錄下來,下次碰到這個目的MAC的報文就只從記錄中的端口號發(fā)送出去,除非目的的MAC沒有記錄或者目的的MAC就是多播地址才會向所有端口發(fā)送,通過透明網(wǎng)橋不同的局域網(wǎng)之間可以互通,而且由于具備MAC地址學(xué)習(xí)功能而不會像HUB那樣造成網(wǎng)絡(luò)報文沖撞泛濫。</p><p>  2.4 傳統(tǒng)以太網(wǎng)與交換式以太網(wǎng)</p><p>  HUB(集線器)只對信號做簡單的再生與

24、放大,所有設(shè)備共享一個傳輸介質(zhì),設(shè)備必須遵循CSMA/CD方式進行通訊。使用HUB連接的傳統(tǒng)共享式以太網(wǎng)中所有工作站處于同一個沖突域和同一個廣播域之中。交換機根據(jù)MAC地址轉(zhuǎn)發(fā)或過濾數(shù)據(jù)幀,隔離了沖突域,工作在數(shù)據(jù)鏈路層。所以交換機每個端口都是單獨的沖突域。如果工作站直接連接到交換機的端口,此工作站獨享帶寬。但是由于交換機對目的地址為廣播的數(shù)據(jù)幀做洪泛的操作,廣播幀會被轉(zhuǎn)發(fā)到所有端口,所以所有通過交換機連接的工作站都處于同一個廣播域之中

25、。</p><p>  2.5 STP的產(chǎn)生</p><p>  在現(xiàn)在的局域網(wǎng)結(jié)構(gòu)中,為了提高整個網(wǎng)絡(luò)的可靠性,消除單點失效故障,通常在網(wǎng)絡(luò)設(shè)計中采用多臺設(shè)備、多個端口、多條線路的冗余連接方式。但是這樣的連接方式會產(chǎn)生環(huán)路問題,如圖2-1所示:</p><p><b>  圖2-1 冗余連接</b></p><p> 

26、 在圖2-1所示的網(wǎng)絡(luò)中,可能產(chǎn)生如下的兩種情況:</p><p><b>  廣播環(huán)路</b></p><p>  當PC A發(fā)出一個廣播數(shù)據(jù)幀時,該廣播會被無休止的轉(zhuǎn)發(fā)。在很短的時間內(nèi)大量重復(fù)的廣播幀被不斷循環(huán)轉(zhuǎn)發(fā)消耗掉整個網(wǎng)絡(luò)的帶寬,而連 接在這個網(wǎng)段上的所有主機設(shè)備也會受到影響,CPU 將不得不產(chǎn)生中斷來處理不 斷到來的廣播幀,極大地消耗系統(tǒng)的處理能力,嚴重的

27、可能導(dǎo)致死機。</p><p><b>  MAC地址表震蕩</b></p><p>  在圖2-1中,即使是單播,也有可能導(dǎo)致異常。交換機SW1可以在端口B上學(xué)習(xí)到PC B的MAC地址,但是由于SW2會將PC B發(fā)出的數(shù)據(jù)幀向自己其它的端口轉(zhuǎn)發(fā),所以SW1也可能在端口A上學(xué)習(xí)到PC B的MAC地址。如此SW1會不停的修改自己的MAC地址表。這樣就引起了MAC地址表的

28、抖動。</p><p>  在實際的組網(wǎng)應(yīng)用中經(jīng)常會形成復(fù)雜的多環(huán)路連接。面對如此復(fù)雜的環(huán)路,網(wǎng)絡(luò)設(shè)備必須有一種解決辦法阻止環(huán)路的發(fā)生。在這種情況下,生成樹協(xié)議以救世主的角色出現(xiàn)了。</p><p>  第三章 生成樹協(xié)議 STP</p><p>  3.1 STP協(xié)議基本原理</p><p>  STP協(xié)議的基本原理非常簡單,自然界生長的樹

29、是不會出現(xiàn)環(huán)路的,如果網(wǎng)絡(luò)也能夠像一棵樹一樣的生長就不會出現(xiàn)環(huán)路。因此,STP協(xié)議中定義了根橋(Root Bridge)、根端口(Root Port)、指定端口(Designated Port)、路徑開銷(Path Cost)等概念,目的就在于通過構(gòu)造一棵自然樹的方法達到剪裁冗余環(huán)路的目的,同時實現(xiàn)鏈路備份和路徑最優(yōu)化。</p><p>  為了實現(xiàn)這些功能,交換機之間就必須進行一些信息交流,這些信息交流單元成為

30、配置消息BPDU(Bridge Protocol Data Unit),STP BPDU為二層報文,數(shù)據(jù)區(qū)攜帶了用于生成樹計算的所有有用信息,所有支持STP協(xié)議的交換機都會接收并處理收到的BPDU報文。</p><p>  用于構(gòu)造這棵樹的算法稱為生成樹算法SPA(Spanning Tree Algorithm),STP的基本思想是生成“一棵樹”,樹的根是稱為根橋的交換機,根據(jù)橋ID不同, 較優(yōu)的交換機被選為根橋

31、,任意時刻只能有一個根橋。由根橋開始,逐級形成一棵樹,根橋定時發(fā)送配置消息,非根橋接收配置報文并轉(zhuǎn)發(fā),如果某臺交換機能夠從兩個以上的端口收到配置報文,則說明從該交換機到根有不止一條路徑,便構(gòu)成了循環(huán)回路,從此交換機根據(jù)端口的配置選出一個端口并把其他的端口阻塞,消除循環(huán)。當某個端口長時間不能接收到配置報文的時候,交換機認為端口的配置超時,網(wǎng)絡(luò)拓撲可能已經(jīng)改變,此時重新計算網(wǎng)絡(luò)拓撲,重新生成一棵樹。</p><p>

32、  3.2 STP基本概念</p><p>  跟橋(Root Bridge)</p><p>  樹形的網(wǎng)絡(luò)結(jié)構(gòu),必須要有樹根,于是STP引入了跟橋的概念。</p><p>  根橋在全網(wǎng)中只有一個,而且根橋會根據(jù)網(wǎng)絡(luò)拓撲的變化而改變,因此根橋并不是固定的。</p><p>  網(wǎng)絡(luò)收斂后,根橋會按照一定的時間間隔產(chǎn)生并向外發(fā)送配置BPDU

33、,其他的設(shè)備對該配置BPDU進行轉(zhuǎn)發(fā),從而保證拓撲的穩(wěn)定。</p><p>  根端口(Root Port) </p><p>  所謂根端口,是指一個非根橋的設(shè)備上離根橋最近的端口。根端口負責與根橋進行通信。非根橋設(shè)備上有且只有一個根端口,根橋上沒有根端口。</p><p>  指定橋(Designated Bridge)與指定端口(Designated Port

34、)</p><p>  對于一臺設(shè)備而言,指定橋是與交換機直接相連并且負責向交換機轉(zhuǎn)發(fā)BPDU報文的設(shè)備,指定端口為指定橋向本機轉(zhuǎn)發(fā)BPDU報文的端口;</p><p>  對于一個局域網(wǎng)而言,指定橋是負責向本網(wǎng)段轉(zhuǎn)發(fā)BPDU報文的設(shè)備,指定端口為指定橋向本網(wǎng)段轉(zhuǎn)發(fā)BPDU報文的端口。</p><p>  指定橋與指定端口如圖3-1所以,AP1、AP2、BP1、BP

35、2、CP1、CP2分別表示設(shè)備Device A、Device B、Device C的端口。</p><p>  Device A通過端口AP1向Device B轉(zhuǎn)發(fā)配置消息,則Device B的指定橋就是Device A,指定端口就是Device A的端口AP1;</p><p>  與局域網(wǎng)LAN相連的有兩臺設(shè)備:Device B和Device C,如果Device B負責向LAN轉(zhuǎn)發(fā)配

36、置消息,則LAN的指定橋就是Device B,指定端口就是Device B的BP2。</p><p>  圖3-1 指定橋和指定端口</p><p>  路徑開銷(Path Cost)</p><p>  路徑開銷是STP協(xié)議用于選擇鏈路的參考值。STP協(xié)議通過計算路徑開銷,</p><p>  選擇較為“強壯”的鏈路,阻塞多余的鏈路,將網(wǎng)絡(luò)

37、修剪成無環(huán)路的樹型網(wǎng)絡(luò)結(jié)構(gòu)。</p><p><b>  3.3 STP端口</b></p><p>  3.3.1 端口狀態(tài)</p><p>  STP協(xié)議中的端口有五種狀態(tài),如下所示:</p><p>  Blocking(阻塞狀態(tài))</p><p>  該端口處于使能狀態(tài),但根據(jù)STP算法的

38、計算結(jié)果,該端口不屬于生成樹的有效組成端口(既有其他路徑可以生成生成樹結(jié)構(gòu),同時比該端口所在的路徑具有更優(yōu)的結(jié)構(gòu))。處于阻塞狀態(tài)的端口只接受STP BPDU報文,不轉(zhuǎn)發(fā)STP BPDU報文,不接收和轉(zhuǎn)發(fā)其他業(yè)務(wù)報文。</p><p>  Listening(監(jiān)聽狀態(tài))</p><p>  該端口處于使能狀態(tài),同時該端口已近被選為生成樹的有效組成端口,但為了防止網(wǎng)絡(luò)拓撲結(jié)構(gòu)的動蕩變化造成生成

39、樹的不穩(wěn)當,在blocking和forwarding狀態(tài)之間添加了listening狀態(tài),該狀態(tài)監(jiān)聽網(wǎng)絡(luò)中的BPDU報文判斷是否有更優(yōu)的路徑,同時該端口開始將FDB表中的相關(guān)表項進行清除,該狀態(tài)接收轉(zhuǎn)發(fā)STP BPDU報文,不接受和轉(zhuǎn)發(fā)普通業(yè)務(wù)報文。</p><p>  Learning(學(xué)習(xí)狀態(tài))</p><p>  該端口處于使能狀態(tài),同時該端口已經(jīng)被選為生成樹的有效組成端口。但為了防

40、止網(wǎng)絡(luò)拓撲結(jié)構(gòu)的動蕩變化造成生成樹的不穩(wěn)當,在blocking和forwarding狀態(tài)之間添加了learning狀態(tài),在端口保持在listening狀態(tài)一定時間之后,若沒有發(fā)現(xiàn)其他更有路徑,則該端口由listening狀態(tài)轉(zhuǎn)到learning狀態(tài)。該狀態(tài)監(jiān)聽網(wǎng)絡(luò)中的BPDU報文判斷是否有更優(yōu)的路徑,同時端口接收和轉(zhuǎn)發(fā)STP BPDU報文,接收普通業(yè)務(wù)報文,并學(xué)習(xí)報文MAC地址,不轉(zhuǎn)發(fā)普通業(yè)務(wù)報文。</p><p&g

41、t;  Forwarding(轉(zhuǎn)發(fā)狀態(tài))</p><p>  該端口處于使能狀態(tài),同時該端口已經(jīng) 被選為生成樹的有效組成端口。在端口處于listening狀態(tài)一定時間之后,若沒有發(fā)現(xiàn)其他更優(yōu)路徑,該端口由listening狀態(tài)轉(zhuǎn)到forwarding轉(zhuǎn)臺。該狀態(tài)接收和轉(zhuǎn)發(fā)STP BPDU報文,同時接收和轉(zhuǎn)發(fā)普通業(yè)務(wù)報文。</p><p>  Disable(禁用狀態(tài))</p>

42、<p>  該狀態(tài)可以認為是物理上沒有連通的端口。</p><p>  STP端口狀態(tài)和各狀態(tài)情況如表3-1所示。</p><p><b>  表3-1 端口狀態(tài)</b></p><p>  3.3.2 端口狀態(tài)遷移</p><p>  STP協(xié)議端口狀態(tài)遷移情況如圖3-2所示:</p><

43、;p>  圖3-2端口狀態(tài)遷移</p><p>  (1)端口enable (4)端口被選為備用端口(阻塞)</p><p>  (2)端口disable (5)Forward delay 延時</p><p>  (3)端口被選為根端口或指定端口 </p&g

44、t;<p>  3.4 STP協(xié)議報文</p><p>  STP采用的協(xié)議報文是BPDU(Bridge Protocol Data Unit,橋協(xié)議數(shù)據(jù)單元),也稱為配置消息。STP BPDU為二層報文,缺省每2秒發(fā)出,數(shù)據(jù)區(qū)攜帶了用于生成樹計算的所有有用信息。</p><p>  STP通過在設(shè)備之間傳遞BPDU來確定網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。BPDU中包含了足夠的信息來保證設(shè)備完

45、成生成樹的計算過程。</p><p>  BPDU在STP協(xié)議中分為兩類:</p><p>  配置BPDU(Configuration BPDU)</p><p>  用于進行生成樹計算和維護生成樹拓撲的報文。</p><p>  TCN BPDU(Topology Change Notification BPDU)</p>

46、<p>  當拓撲結(jié)構(gòu)發(fā)生變化時,用于通知相關(guān)設(shè)備網(wǎng)絡(luò)拓撲結(jié)構(gòu)發(fā)生變化的報文。 </p><p>  3.4.1 配置BPDU</p><p>  STP通過在設(shè)備之間傳遞BPDU來確定網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。配置消息中包含了足夠的信息來保證設(shè)備完成生成樹的計算過程。如圖3-3所示:</p><p>  圖3-3 配置BPDU</p><p&g

47、t;  BPDU數(shù)據(jù)報文的最后8個字段,分別是:</p><p>  根橋ID:由樹根的優(yōu)先級(0-65535,默認32768)和MAC地址組合而成,到樹根的最短路徑開銷(實際由PortPathCost疊加而成),有兩個標準——dot1d-1998,默認值為100和dot1t,默認值為200000;</p><p>  指定橋的ID:由指定交換機的優(yōu)先級和MAC地址組合而成;</p&

48、gt;<p>  指定端口的ID:由指定端口的優(yōu)先級(0-256,默認128)和端口編號組成;</p><p>  配置消息的生存期:MessageAge;</p><p>  配置消息的最大生存期:MaxAge;</p><p>  配置消息發(fā)送的周期:HelloTime;</p><p>  端口狀態(tài)遷移的延時:Forwar

49、dDelay。</p><p>  啟動了STP的交換機互相之間通過發(fā)送配置BPDU來完成根橋,指定橋的選舉,各端口狀態(tài)的選擇和整個網(wǎng)絡(luò)拓撲結(jié)構(gòu)的確定。比較的關(guān)鍵部分在于這八個字段中的前四個字段,即:根橋ID、根路徑開銷、指定橋ID和指定端口的ID。其實還有一個接收端口的ID,用于本地比較(當交換機的2個端口都收到相同的BPDU時——比如上連一個stp disable的交換機或hub)。比較的原則:從上到下、從左

50、到右數(shù)值小者優(yōu)先。</p><p>  STP協(xié)議使用的所有BPDU都是組播報文,目的MAC是01-80-c2-00-00-00。</p><p>  3.4.2 TCN BPDU</p><p>  TCN BPDU 格式如表3-2所示:</p><p>  表3-2 TCN BPDU</p><p>  協(xié)議號:占

51、用兩個字節(jié),STP協(xié)議的對應(yīng)值為0000 0000 0000 0000</p><p>  版本:占用一個字節(jié),STP協(xié)議的對應(yīng)值是0000 0000</p><p>  類型:占用一個字節(jié),configuration BPDU對應(yīng)值是1000 0000</p><p>  STP算法實現(xiàn)的具體過程</p><p>  3.5.1 配置消息比

52、較原則</p><p>  配置消息的比較原則如下:</p><p>  根橋ID較小的配置消息優(yōu)先級高;</p><p>  若根橋ID相同,則比較根路徑開銷,比較方法為:用配置消息中的根路</p><p>  徑開銷加上本端口對應(yīng)的路徑開銷,假設(shè)兩者之和為S,則S較小的配置消息優(yōu)先級較高;</p><p>  若根

53、路徑開銷也相同,則比較以下的配置消息優(yōu)先級,優(yōu)先級較高的為</p><p>  根橋:指定橋ID、指定端口ID、接收該配置消息的端口ID等。</p><p>  3.5.2 最優(yōu)配置消息的選擇</p><p>  各臺設(shè)備都向外發(fā)送自己的配置消息,同時也會收到其他設(shè)備發(fā)送的配置消息。最優(yōu)配置消息的選擇過程如下所示:</p><p>  每個端

54、口收到配置消息后的處理過程如下:</p><p>  當端口收到的配置消息比本端口配置消息的優(yōu)先級低時,設(shè)備會將接收到的配置消息丟棄,對該端口的配置消息不作任何處理。</p><p>  當端口收到的配置消息比本端口配置消息的優(yōu)先級高時,設(shè)備就用接收到的配置消息中的內(nèi)容替換該端口的配置消息中的內(nèi)容。</p><p>  設(shè)備將所有端口的配置消息進行比較,選出最優(yōu)的配

55、置消息。</p><p>  3.5.3 根橋的選擇</p><p>  網(wǎng)絡(luò)初始化時,網(wǎng)絡(luò)中所有的STP設(shè)備都認為自己是“根橋”,根橋ID為自身的橋ID。通過交換配置消息,設(shè)備之間比較根橋ID,網(wǎng)絡(luò)中根橋ID最小的設(shè)備被選為根橋。</p><p>  根端口、指定端口的選擇</p><p>  根端口、指定端口的選擇如下所示:</p&

56、gt;<p>  非根橋設(shè)備將接收最優(yōu)配置消息的那個端口定為根端口。</p><p>  設(shè)備根據(jù)根端口的配置消息和根端口的路徑開銷,為每個端口計算一個指定端口配置消息:</p><p>  跟橋ID替換為根端口的配置消息的根橋ID;</p><p>  根路徑開銷替換為根端口配置消息的根路徑開銷加上根端口對應(yīng)的路徑開銷;</p><

57、;p>  指定橋ID替換為自身設(shè)備的ID;</p><p>  指定端口ID替換為自身端口ID。</p><p>  設(shè)備使用計算出來的配置消息和需要確定端口角色的端口上的配置消息進行比較,并根據(jù)比較結(jié)果進行不同的處理:</p><p>  如果計算出來的配置消息優(yōu),則設(shè)備就將該端口定為指定端口,端口上的配置消息被計算出來的配置消息替換,并周期性向外發(fā)送。&l

58、t;/p><p>  如果端口上的配置消息優(yōu),則設(shè)備不更新該端口配置消息并將此端口阻塞,該端口將不再轉(zhuǎn)發(fā)數(shù)據(jù),只接收但不發(fā)送配置消息;</p><p>  一旦根橋、根端口、指定端口選舉成功,則整個樹形拓撲就建立完畢了。</p><p>  3.6 STP的配置消息傳遞機制</p><p>  當網(wǎng)絡(luò)初始化時,所有的設(shè)備都將自己作為根橋,生成以自

59、己為根的配置消息,并以Hello Time為周期定時向外發(fā)送。</p><p>  接收到配置消息的端口如果是根端口,且接收的配置消息比該端口的配置消息優(yōu),則設(shè)備將配置消息中攜帶的Message Age按照一定的原則遞增,并啟動定時器為這條配置消息計時,同時將此配置消息從設(shè)備的指定端口轉(zhuǎn)發(fā)出去。</p><p>  如果指定端口收到的配置消息比本端口的配置消息優(yōu)先級低時,會立刻發(fā)出自己的更

60、好的配置消息進行回應(yīng)。</p><p>  如果某條路徑發(fā)生故障,則這條路徑上的根端口不會再收到新的配置消息,舊的配置消息將會因為超時而被丟棄,設(shè)備重新生成以自己為根的配置消息并向外發(fā)送BPDU和TCN BPDU,從而引發(fā)生成樹的重新計算,得到一條新的通路替代發(fā)生故障的鏈路,恢復(fù)網(wǎng)絡(luò)連通性。</p><p>  不過,重新計算得到的新配置消息不會立刻就傳遍整個網(wǎng)絡(luò),因此舊的根端口和指定端口

61、由于沒有發(fā)現(xiàn)網(wǎng)絡(luò)拓撲變化,將仍按原來的路徑繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)。如果新選出的根端口和指定端口立刻就開始數(shù)據(jù)轉(zhuǎn)發(fā)的話,可能會造成暫時性的環(huán)路。</p><p>  3.7 STP定時器</p><p>  STP計算中,需要使用三個重要的時間參數(shù):Forward Delay、Hello Time和Max Age。</p><p>  Forward Delay為交換機狀態(tài)遷移

62、的延遲時間。</p><p>  鏈路故障會引發(fā)網(wǎng)絡(luò)重新進行生成樹的計算,生成樹的結(jié)構(gòu)將發(fā)生相應(yīng)的變化。不過重新計算得到的新配置消息無法立刻傳遍整個網(wǎng)絡(luò),如果新選出的根端口和指定端口立刻就開始數(shù)據(jù)轉(zhuǎn)發(fā)的話,可能會造成暫時性的路徑回環(huán)。為此,生成樹協(xié)議采用了一種狀態(tài)遷移的機制,根端口和指定端口重新開始數(shù)據(jù)轉(zhuǎn)發(fā)之前要經(jīng)歷一個中間狀態(tài),中間狀態(tài)經(jīng)過2倍的Forward Delay的延時后才能進入Forwarding狀態(tài)

63、,這個延時保證了新的配置消息已經(jīng)傳遍整個網(wǎng)絡(luò)。</p><p>  Hello Time用于交換機檢測鏈路是否存在故障。</p><p>  交換機每隔Hello Time時間會向周圍的交換機發(fā)送hello報文,以確認鏈路是否存在故障。</p><p>  Max Age是用來判斷配置消息在交換機內(nèi)保存時間是否“過時”的參數(shù),交換機會將過時的配置消息丟棄。</

64、p><p>  3.8 STP拓撲結(jié)構(gòu)的改變</p><p>  STP的BPDU除了配置BPDU以外,還有TCN BPDU(Topology Change Notification BPDU)。TCN BPDU的結(jié)構(gòu)很簡單,只有Configuration BPDU的前3個字段,也就是Protocol、Version、Type,其余的字段均為填充字節(jié),可以說這是一個不帶橋信息的BPDU。TCN

65、的發(fā)送按照本地配置的Hello Time,不同于配置BPDU的2s的Hello Time。</p><p>  STP中網(wǎng)橋怎么會認為拓撲結(jié)構(gòu)發(fā)生改變了呢?根據(jù)以下2個原則:</p><p>  原來處于轉(zhuǎn)發(fā)狀態(tài)的端口down了(處于Blocking狀態(tài)——非disable狀態(tài));</p><p>  一個端口轉(zhuǎn)移到了Forwarding狀態(tài),并且網(wǎng)橋有一個指定端口

66、。</p><p>  對于拓撲結(jié)構(gòu)改變可以作如下理解:這里的拓撲結(jié)構(gòu)不是指物理上的拓撲變化,而是指樹的結(jié)構(gòu)的變化,比如A,B,C三臺交換機互聯(lián),原本的結(jié)構(gòu)是A(R),B,C——A,C之間不通,后來變?yōu)锳(R),C,B——A,B之間不通。這就叫做拓撲結(jié)構(gòu)的改變。同樣如果A,B之間又加了一條鏈路,但是新加的鏈路被阻斷了——即不影響原來數(shù)據(jù)流量的轉(zhuǎn)發(fā),則認為拓撲結(jié)構(gòu)沒有發(fā)生變化。只要2個原則中的任何一種情況發(fā)生,則認

67、為是拓撲結(jié)構(gòu)發(fā)生了變化,檢測到拓撲結(jié)構(gòu)變化的交換機會從自己的根端口向上發(fā)送TCN,上行的指定端口接收到發(fā)來的TCN以后,會以本身的配置BPDU(此時將Flag字段中的TCA置1,F(xiàn)lag中一共有2個有效比特位,一個是TC,一個是TCA,關(guān)于Flag的描述見表3-3)回送一個確認。并通過它的根端口繼續(xù)向上發(fā)TCN,一直到達根橋為止。發(fā)送TCN的交換機收到確認以后將不再發(fā)送TCN,如果上行指定端口沒有發(fā)回確認,則下行的根端口會不斷發(fā)送TCN

68、。</p><p>  表3-3 Flag字段</p><p>  當根橋受到TCN以后由根橋向全網(wǎng)泛洪TC位置1的配置BPDU,所有的交換機都會轉(zhuǎn)發(fā)這個報文直到整個網(wǎng)絡(luò)都知道拓撲結(jié)構(gòu)發(fā)生了改變。根橋發(fā)送這個BPDU的時間是20s+15s=35s,MaxAge + Forwarding Time的時間。</p><p>  根橋發(fā)送這個BPDU的實質(zhì)是為了加快MA

69、C地址表的老化——一般情況下MAC地址表要300s才能老化,而已經(jīng)知道拓撲結(jié)構(gòu)發(fā)生變化的情況下還要等上數(shù)分鐘才能通過其他鏈路轉(zhuǎn)發(fā)數(shù)據(jù),這會在一段時間內(nèi)造成報文的無法轉(zhuǎn)發(fā),最糟糕的就是剛好要等5分鐘。</p><p>  圖3-4 拓撲變化導(dǎo)致A一段時間內(nèi)無法ping通B</p><p>  在圖3-4中,B的mac地址學(xué)習(xí)在1端口,當拓撲變化后,2端口所在鏈路變成Forwarding,1被

70、阻斷,但是B的MAC地址還是學(xué)習(xí)在端口1,如果B不發(fā)送任何數(shù)據(jù)報文來刷新MAC表,那么A只有等到B的MAC地址老化后才能重新訪問到B。</p><p>  TC正是通知各交換機將MAC地址老化時間更新為ForwardingTime=15s。交換機收到TC15s以后開始刪除MAC地址表并重新學(xué)習(xí),正好完成狀態(tài)的遷移。</p><p>  3.9 STP算法舉例</p><

71、p>  下面舉例說明一下STP算法的具體實現(xiàn)過程,拓撲圖如圖3-5所示;</p><p>  圖3-5 STP算法拓撲圖</p><p>  為了描述方便,這里指比較BPDU的前四項:根橋ID(以以太網(wǎng)交換機的優(yōu)先級表示),根路徑開銷,指定交換機ID(以以太網(wǎng)交換機的優(yōu)先級表示),指定端口ID(以端口號表示)。</p><p>  假設(shè)SWA,SWB,SWC的

72、橋優(yōu)先級分別為0,1,2。各鏈路開銷為2,3,6。這里要特別說明一點:Root Path Cost不是一個可配置項,即它是由交換機根據(jù)Port Path Cost比較而累積得出的,Port Path Cost才是一個可配置的選項。圖中的鏈路開銷可理解為2端端口的Port Path Cost,只不過它們恰好相同而已。</p><p><b>  初始狀態(tài)</b></p><

73、p>  各臺交換機的各個端口在初始時會生成以自己為根的配置消息,根路徑開銷為0,指定交換機ID為自身交換機ID,指定端口為本端口。</p><p><b>  Switch A:</b></p><p>  端口AP1配置消息:{0,0,0,AP1}</p><p>  端口AP2配置消息:{0,0,0,AP2}</p>&

74、lt;p><b>  Switch B:</b></p><p>  端口BP1配置消息:{1,0,1,BP1}</p><p>  端口BP2配置消息:{1,0,1,BP2}</p><p><b>  Switch C:</b></p><p>  端口CP2配置消息:{2,0,2,CP2

75、}</p><p>  端口CP1配置消息:{2,0,2,CP1}</p><p><b>  選出最優(yōu)配置消息</b></p><p>  各臺交換機都向外發(fā)送自己的配置消息。相互進行比較,如果收到比自己更優(yōu)的BPDU則進行BPDU的更新,把對方的BPDU信息緩存下來,并不再發(fā)送BPDU。</p><p>  確定根橋

76、,確定根端口,確定其余端口為指定端口還是Block端口。</p><p>  圖3-5中各臺交換機的比較過程如下:</p><p><b>  Switch A:</b></p><p>  端口AP1收到Switch B的配置消息,Switch A發(fā)現(xiàn)本端口的配置消息優(yōu)先級優(yōu)于接收到的配置消息的優(yōu)先級,就把接收到的配置消息丟棄。端口AP2的配

77、置消息處理過程與端口AP1類似。Switch A發(fā)現(xiàn)自己各個端口的配置消息中樹根和指定交換機都是自己,則認為自己是樹根,各個端口的配置消息都不作任何修改,以后周期性的向外發(fā)送配置消息。此時兩個端口的配置消息如下:</p><p>  端口AP1配置消息:{0,0,0,AP1}。</p><p>  端口AP2配置消息:{0,0,0,AP2}。</p><p><

78、;b>  Switch B:</b></p><p>  端口BP1收到來自Switch A的配置消息,經(jīng)過比較后Switch B發(fā)現(xiàn)接收到的配置消息的優(yōu)先級比端口BP1的配置消息的優(yōu)先級優(yōu),于是更新端口BP1的配置消息。</p><p>  端口BP2收到來自Switch C的配置消息,Switch B發(fā)現(xiàn)該端口的配置消息優(yōu)先級優(yōu)于接收到的配置消息的優(yōu)先級,就把接收到的

79、配置消息丟棄。</p><p>  則此時各個端口的配置消息如下:端口BP1配置消息:{0,0,0,AP1},端口BP2配置消息:{1,0,1,BP2}。</p><p>  確定根端口:Switch B對各個端口的配置消息進行比較,(這是一個計算的過程,將各個端口的配置BPDU讀取并加上Port Path Cost然后進行比較,其他的字段值不變。)選出端口BP1的配置消息為最優(yōu)配置消息,

80、然后將端口BP1定為根端口。BP1配置消息不作改變:{0,0,0,AP1}。</p><p>  確定指定端口:每一個非根端口都會做如下比較:將根端口保存的BPDU加上根端口的Port Path Cost并把BID修改為本橋PID修改為本端口后和本端口的BPDU比較,如果比本端口的BPDU更優(yōu),則本端口被選為指定端口,(如果本端口的更優(yōu),那么本端口被選為Blocking端口)并且原BPDU被刷新,下一次向外發(fā)送更

81、優(yōu)的BPDU。端口BP2配置消息中,樹根ID更新為最優(yōu)配置消息中的樹根ID,根路徑開銷更新為2,指定交換機ID更新為本交換機ID,指定端口ID更新為本端口ID,配置消息變?yōu)椋簕0,2,1,BP2}。</p><p><b>  Switch C:</b></p><p>  端口CP2先會收到來自Switch B端口BP2更新前的配置消息{1,0,1,BP2},Swi

82、tch C觸發(fā)更新過程,更新后的配置消息如下:{1,0,1,BP2}。</p><p>  端口CP1收到來自Switch A的配置消息{0,0,0,AP2}后Switch C也觸發(fā)更新過程,更新后的配置消息如下:{0,0,0,AP2}。</p><p>  經(jīng)過比較,端口CP1的配置消息被選為最優(yōu)的配置消息,端口CP1就被定為根端口;而端口CP2就會被選為指定端口,并發(fā)送更新后的BPDU

83、:{0,6,2,CP2}</p><p>  接著端口CP2會收到Switch B更新后的配置消息{0,2,1,BP2},由于收到的配置消息比原配置消息優(yōu),則Switch C觸發(fā)更新過程,更新后的配置消息為:{0,2,1,BP2}。</p><p>  同時端口CP1收到來自Switch A配置消息,比較后Switch C不會觸發(fā)更新過程,配置消息仍然為:{0,0,0,AP2}。</

84、p><p>  經(jīng)過內(nèi)部比較,( CP1{0,6,0,AP2},CP2{0,5,1,BP2} )端口CP2的配置消息被選為最優(yōu)的配置消息,端口CP2就被選為根端口,而端口CP1就被阻塞,狀態(tài)穩(wěn)定后,不接收從Switch A轉(zhuǎn)發(fā)的數(shù)據(jù),直到新的情況觸發(fā)生成樹的計算,比如從Switch A到Switch C的鏈路down掉,或者端口收到更優(yōu)的配置消息。</p><p>  3.10 STP 的缺點

85、</p><p>  STP協(xié)議雖然可以很好的解決網(wǎng)絡(luò)環(huán)路的問題,但是還是有它自身的缺陷,主要表現(xiàn)在收斂速度上,STP收斂時間為秒級。當拓撲發(fā)生變化,新的配置消息要等待兩倍的forward delay(協(xié)議默認值為15秒)的時間延遲網(wǎng)絡(luò)才能傳播到整個網(wǎng)絡(luò)。在這段收斂時間內(nèi),交換機會出現(xiàn)嚴重的丟包現(xiàn)象。在一個10M的以太網(wǎng)中,對于1526字節(jié)的最長幀,一秒內(nèi)最多會有812個幀通過;對于72字節(jié)的最短幀,最多有148

86、80個幀通過,這樣會造成上萬個數(shù)據(jù)包的丟失,這對于一些高質(zhì)量要求的業(yè)務(wù)是不能滿足的。如衛(wèi)星傳輸,實時會議等,這樣嚴重的丟包對之造成的影響是不言而喻的。</p><p>  為了解決STP的這一缺陷,快速生成樹RSTP應(yīng)運而生。</p><p>  第四章 快速生成樹協(xié)議 RSTP</p><p>  4.1 RSTP的產(chǎn)生背景</p><p>

87、;  STP協(xié)議雖然能夠解決環(huán)路問題,但是還是有很多不足之處。</p><p>  首先,STP并沒有細致區(qū)分端口狀態(tài)和端口角色。網(wǎng)絡(luò)協(xié)議的優(yōu)劣往往取決于協(xié)議是否對各種情況加以細致區(qū)分。事實上,從用戶角度上看Listening、Learning和Blocking狀態(tài)是沒有區(qū)別的,都同樣不轉(zhuǎn)發(fā)用戶流量。從使用和配置上來講,端口之間最本質(zhì)的區(qū)別并不在于端口狀態(tài),而是在于端口扮演的角色。根端口和指定端口也可能處于Lis

88、tening狀態(tài),也可能都處Forwarding狀態(tài)。</p><p>  其次,STP算法是被動的算法,對網(wǎng)絡(luò)是否已經(jīng)達到收斂沒有一種反饋機制。對待拓撲變化的基本的方法是通知根橋,修改MAC地址表老化時間,自動學(xué)習(xí),確立新路徑。這種以計時器來等待的方式顯然是浪費時間,響應(yīng)遲緩。</p><p>  再次,STP的算法要求在穩(wěn)定拓撲里,根橋主動發(fā)出BPDU而其他交換機進行中繼,這樣整個ST

89、P網(wǎng)絡(luò)龐大而笨拙。</p><p>  STP協(xié)議的缺陷主要表現(xiàn)在收斂速度上。</p><p>  當拓撲發(fā)生變化,新的配置消息要經(jīng)過一定的時延才能傳播到整個網(wǎng)絡(luò),這個時延稱為Forward Delay,協(xié)議默認值是15秒。在所有網(wǎng)橋收到這個變化的消息之前,若舊拓撲結(jié)構(gòu)中處于轉(zhuǎn)發(fā)的端口還沒有發(fā)現(xiàn)自己應(yīng)該在新的拓撲中停止轉(zhuǎn)發(fā),則可能存在臨時環(huán)路。為了解決臨時環(huán)路的問題,生成樹使用了一種定時器

90、策略,即在端口從阻塞狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)中間加上一個只學(xué)習(xí)MAC地址但不參與轉(zhuǎn)發(fā)的中間狀態(tài),兩次狀態(tài)切換的時間長度都是Forward Delay,這樣就可以保證在拓撲變化的時候不會產(chǎn)生臨時環(huán)路。但是,這個看似良好的解決方案實際上帶來的卻是至少兩倍Forward Delay的收斂時間。</p><p>  為了解決STP協(xié)議的這些缺陷,在世紀之初IEEE推出了802.1w標準,作為對802.1D標準的補充。在IEEE 8

91、02.1w標準里定義了快速生成樹協(xié)議RSTP(Rapid Spanning Tree Protocol)。</p><p>  RSTP協(xié)議在STP協(xié)議基礎(chǔ)上做了三點重要改進,使得收斂速度快得多(最快1秒以內(nèi))。</p><p>  第一點改進:為根端口和指定端口設(shè)置了快速切換用的替換端口(Alternate Port)和備份端口(Backup Port)兩種角色,當根端口/指定端口失效的

92、情況下,替換端口/備份端口就會無時延地進入轉(zhuǎn)發(fā)狀態(tài)。</p><p>  第二點改進:在只連接了兩個交換端口的點對點鏈路中,指定端口只需與下游網(wǎng)橋進行一次握手就可以無時延地進入轉(zhuǎn)發(fā)狀態(tài)。如果是連接了三個以上網(wǎng)橋的共享鏈路,下游網(wǎng)橋是不會響應(yīng)上游指定端口發(fā)出的握手請求的,只能等待兩倍Forward Delay時間進入轉(zhuǎn)發(fā)狀態(tài)。</p><p>  第三點改進:直接與終端相連而不是把其他網(wǎng)橋相

93、連的端口定義為邊緣端口(Edge Port)。邊緣端口可以直接進入轉(zhuǎn)發(fā)狀態(tài),不需要任何延時。由于網(wǎng)橋無法知道端口是否是直接與終端相連,所以需要人工配置。</p><p>  可見,RSTP協(xié)議相對于STP協(xié)議的確改進了很多。為了支持這些改進,BPDU的格式做了一些修改,但RSTP協(xié)議仍然向下兼容STP協(xié)議,可以混合組網(wǎng)。</p><p>  4.2 RSTP協(xié)議的改進 </p>

94、<p><b>  端口角色的增補</b></p><p>  根據(jù)STP的不足,RSTP新增加了端口的角色概念。并且把端口屬性充分的按照狀態(tài)和角色解耦,使得可以更加精確的描述端口。</p><p>  RSTP的端口角色共有4種:即根端口、指定端口、Alternate端口和Backup端口。Alternate端口如圖4-1所示,Backup端口如圖4-

95、2所示。</p><p>  圖4-1 Alternate端口</p><p>  圖4-2 Backup端口</p><p>  從BPDU的發(fā)送上來看,Alternate端口就是由于學(xué)習(xí)到其它交換機的發(fā)送的BPDU而阻塞的端口;而Backup端口就是由于學(xué)習(xí)到自己發(fā)送的BPDU而阻塞的端口。從用戶流量上來看,Alternate端口提供了從指定橋到根的另一條可切

96、換路徑,作為指定端口的備選切換;而同時Backup端口,作為根端口的備份,提供了另外一條從根橋到葉節(jié)點的可切換的通路。給一個RSTP域內(nèi)所有端口分配角色的過程就是整個拓撲收斂的過程。</p><p>  端口狀態(tài)的重新劃分 </p><p>  RSTP的狀態(tài)規(guī)范把原來的5種狀態(tài)縮減為3種。根據(jù)端口是否轉(zhuǎn)發(fā)用戶流量和學(xué)習(xí)MAC地址來劃分。如果不轉(zhuǎn)發(fā)用戶流量也不學(xué)習(xí)MAC地址,那么就是Dis

97、carding狀態(tài);如果不轉(zhuǎn)發(fā)用戶流量但是學(xué)習(xí)MAC地址,那么就是Learning狀態(tài);如果既轉(zhuǎn)發(fā)用戶流量又學(xué)習(xí)地址,那么就是Forwarding狀態(tài)。RSTP和STP的端口狀態(tài)對比如表4-1所示。</p><p>  表4-1 STP和RSTP端口狀態(tài)比較</p><p><b>  BPDU格式的改變</b></p><p>  在BPDU

98、的格式上,除了保證和STP格式基本一致之外,RSTP作了一些小的變化。一個是在Type字段,配置BPDU類型不再是0而是2,版本號也變成了2。所以運行STP的交換機收到該類BPDU時會丟棄。另一個變化是在Flag字段,把原來保留的中間6位使用起來。這樣改變了的配置BPDU叫做RST BPDU。RSTP BPDU的Flag字段格式如表4-2所示。 </p><p>  表4-2 RSTP Flag字段</p&

99、gt;<p><b>  BPDU的處理方式</b></p><p>  RSTP對BPDU的處理發(fā)生的變化,主要表現(xiàn)在以下幾個方面:</p><p>  穩(wěn)態(tài)BPDU的發(fā)送方式:靠收到上游BPDU而觸發(fā)發(fā)送BPDU的方式使得STP龐大而笨拙。RSTP穩(wěn)態(tài)后,BPDU由每個交換機自主按照每個個Hello時間進行發(fā)送。</p><p&g

100、t;  更短的BPDU超時計時:如果一個端口連續(xù)三個Hello時間接受不到上游指定橋送來的BPDU,那么該交換機認為與此鄰居之間的鏈路失敗,不等待Max Age。</p><p>  處理次等BPDU:當一個端口收到上游的指定橋發(fā)來的RSTP BPDU中的信息,不如自己端口信息的時候,會立刻回應(yīng)自己的信息。上游的指定端口馬上接受這個信息,并且更新自己的信息。</p><p><b&g

101、t;  快速轉(zhuǎn)換到轉(zhuǎn)發(fā)狀態(tài)</b></p><p>  STP的網(wǎng)絡(luò)端口從阻斷到轉(zhuǎn)發(fā)狀態(tài),如果想快速收斂的話,需要修改默認的轉(zhuǎn)發(fā)延遲和老化時間定時器。RSTP可以快速收斂而不依賴于定時器,這些快速的收斂主要依賴邊緣端口和點到點鏈路來實現(xiàn)。</p><p><b>  邊緣端口</b></p><p>  直接與終端相連而不是把其他網(wǎng)

102、橋相連的端口定義為邊緣端口(Edge Port)。邊緣端口可以直接進入轉(zhuǎn)發(fā)狀態(tài),不需要任何延時。由于網(wǎng)橋無法知道端口是否是直接與終端相連,所以需要人工配置。</p><p><b>  點到點鏈路</b></p><p>  兩臺交換機之間的鏈路只有一根鏈路,同時端口之間的連接為全雙工,這樣的鏈路類型叫點到點鏈路。對于半雙工的鏈路叫共享端口。鏈路類型交換機自己檢查,也

103、可人為修改。</p><p>  P/A協(xié)商 快速收斂機制</p><p>  P/A機制即Proposal/Agreement機制。其目的是使一個指定端口盡快進入Forwarding狀態(tài)。其過程的完成根據(jù)以下幾個端口變量:</p><p><b>  Proposing</b></p><p>  當一個指定端口處于D

104、iscarding或Learning狀態(tài)的時候,該變量置位。向下游交換機傳遞Proposing位被置位的RSTP BPDU。</p><p><b>  Proposed</b></p><p>  當端口收到對端的指定端口發(fā)來的攜帶proposal的RSTP BPDU的時候,該變量置位。該變量指示本網(wǎng)段上的指定端口希望盡快進入Forwarding狀態(tài)。</p&

105、gt;<p><b>  Sync</b></p><p>  當Proposed被設(shè)置以后,收到Proposal根端口會依次為自己的其他端口置位sync變量。如果端口是非邊緣的指定端口時則會進入Discarding狀態(tài)。</p><p><b>  Synced</b></p><p>  當端口完成轉(zhuǎn)到D

106、iscarding后,會設(shè)置自己的synced變量。Alternate、Backup 和邊緣端口會馬上設(shè)置該變量。根端口監(jiān)視其他端口的synced,當所有其他端口的synced全被設(shè)置,根端口會設(shè)置自己的synced,然后傳回RST BPDU,其中Agreement位被置位。</p><p><b>  Agreed</b></p><p>  當指定端口接收到一個R

107、ST BPDU時,如果該BPDU中的Agreement位被置位且端口角色字段是“根端口”,該變量被設(shè)置。Agreed變量一旦被置位,指定端口馬上轉(zhuǎn)入Forwarding狀態(tài)。</p><p>  P/A協(xié)商具體實現(xiàn)如圖4-3所示:</p><p>  圖4-3 P/A協(xié)商機制</p><p>  在當前狀態(tài)下,SW2的另外幾個端口p2是Alternate端口,p3是

108、指定端口且處于Forwarding狀態(tài),p4是邊緣端口。一旦新鏈路連接,p0和p1兩個端口馬上都先成為指定端口,發(fā)送RST BPDU。SW2的P1口收到更好的BPDU,馬上意識到自己將成為根端口,而不是指定端口,停止發(fā)送BPDU。這時SW1的p0進入Discarding狀態(tài),滿足條件指定端口處于Discarding狀態(tài),于是發(fā)送的RST BPDU中把proposal置1。SW2收到根橋發(fā)送來的攜帶proposal的BPDU,于是開始讓自

109、己的將所有端口進入sync變量置位。P2已經(jīng)是阻塞的了,狀態(tài)不變;p4是邊緣端口,不參與運算;所以只需要阻塞非邊緣指定端口p3。當p2、p3、p4都進入Discarding狀態(tài)之后,各端口的synced變量置位,根端口p1的synced也置位,于是便向SW1返回Agreement位置置位的回應(yīng)BPDU。該BPDU攜帶和剛才根橋發(fā)過來的BPDU一樣的信息,除了Agreement位置置位之外(Proposal位清零)。SW1判斷出這是對剛剛

110、發(fā)出的Proposal的回應(yīng),于是端口p0馬上進入</p><p>  這個P/A過程是可以向下游繼續(xù)傳遞的。</p><p>  事實上,經(jīng)典的STP協(xié)議指定端口的角色選擇是很快的,主要的速度瓶頸在于超時等待:為了避免環(huán)路,必須等待足夠長的時間,使全網(wǎng)的端口狀態(tài)全部確定,在協(xié)議中就是至少要等待一個Forward Delay后所有端口才能進行轉(zhuǎn)發(fā)。而RSTP的主要目的就是消除這個瓶頸。通過

111、阻塞自己的非根端口來保證不會出現(xiàn)環(huán)路。而使用P/A機制這種積極的手段來加快“上游”端口轉(zhuǎn)到Forwarding狀態(tài)的速度。</p><p>  這里要強調(diào)的是,P/A機制要求兩臺交換機之間鏈路必須是點對點的全雙工狀態(tài)。要注意的是,一旦P/A協(xié)商不成功,就會等待正常的STP中的兩個Forward Delay,此時的行為就回到了STP。</p><p>  RSTP 的拓撲變化處理</p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論