本節書摘來異步社群《ip多點傳播網絡的設計與部署(第1卷)》一書中的第2章,第2.5節,作者:【美】beau williamson,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
ip多點傳播網絡的設計與部署(第1卷)
目前的多點傳播協定可以劃分為以下3個基本的類别。
密集模式協定(dvmrp和pim-dm)。
稀疏模式協定(pim-sm和cbt)。
鍊路狀态協定(mospf)。
依據路由器的配置方式,某些協定(例如pim)可以運作在密集模式或稀疏模式中。也可以對cisco pim路由器進行配置,使其在多點傳播組的基礎上動态地做出稀疏/密集模式決策。
密集模式協定(例如dvmrp和pim dm)隻使用spt并利用推送原則(push principle)來發送(s,g)多點傳播流量。該推送原則假定網絡中的每一個子網都至少有一個(s,g)多點傳播流量的接收者,是以流量将被推送或泛洪到網絡中的所有節點。該過程與以空氣作為傳播媒介,把信号傳輸到覆寫區域内的所有使用者的無線電廣播或電視廣播相似。接收者隻需要調諧到該廣播頻率(頻道)就可以收聽節目。
1.泛洪和剪枝行為
與通過空氣廣播無線電波不同,将多點傳播流量泛洪到網絡中的每一個節點時,将會産生相關的開銷(帶寬、路由器cpu等)。是以,為了避免有價值的網絡資源的不必要消耗,路由器将剪枝(prune)消息發送回源分發樹,以切斷(shut off)不需要的多點傳播流量。這使得沒有接收者的分支從分發樹上被剪枝掉,分發樹上隻留下包含接收者的分支。
在圖2-20中,路由器b正在使用剪枝消息對不想要的多點傳播流量作出反應。

當路由器a從外出接口(在本例中是ethernet0)上接收到用于(s,g)多點傳播流量流的剪枝資訊時,路由器将該接口設定為剪枝狀态,并并指通過該接口轉發(s,g)流量。在本例中,該接口連接配接到一個多路通路(multi-access)網絡上,并且我們假定在該接口上沒有其他下遊路由器想要接收流量。用來确定多路通路接口上的其他路由器是否需要繼續多點傳播流量的方法,與正在使用的協定有關。每一個協定如何處理該情形的詳情會在本書後面章節中講到。
剪枝狀态有一個時間值,這使得在逾時後,促使路由器将接口重新置為轉發狀态,并再次在該接口上向外泛洪多點傳播流量。
例2-2所示為圖2-20中路由器a的cisco多點傳播路由表條目。
例2-2 路由器a的cisco多點傳播路由表條目
可以注意到,接口ethernet0處于剪枝狀态(由prune/dense訓示符表示),沒有組224.2.127.254的流量(由源151.10.3.21發出)從該接口上轉發出去。本例還顯示出剪枝狀态将在2分35秒(由最後一行的最後一個計時器的值來訓示)後逾時。當剪枝狀态逾時以後,該接口的狀态将傳回forward/dense狀态,并且流量将再次從該接口流出去。假定下遊路由器(這裡是路由器b)仍然不需要接收多點傳播流量,它将再次發送一條剪枝消息,以切斷不需要的流量。
用于剪枝狀态的逾時值與正在使用的多點傳播路由協定有關,一般是2~3分鐘的範圍。周期性的泛洪和剪枝行為是密集模式協定(如dvmrp和pim-dm)的特征。
2.嫁接
大多數密集模式協定通常可以将先前剪枝掉的分支嫁接(graft)回分發樹。例如,當位于已被剪枝掉的分支上的一個新接收者加入到多點傳播組後,将會用到這一嫁接性能。在本例中,路由器檢測到新接收者,并立即沿着分發樹向上發送一條剪枝(graft)消息到源。當上遊路由器接收到該嫁接消息後,路由器立即把接收到嫁接消息的接口置為轉發狀态,以使多點傳播流量開始向下發送給接收者。
圖2-21所示為一個嫁接過程。在本例中,源主機e正在沿着spt(由實線箭頭表示)向下發送多點傳播流量,以到達主機a、b和c。
由于路由器e剛開始沒有直接相連的接收者,是以它已經剪枝掉了與路由器c之間的鍊路。而在本例中,主機d作為新的接收者加入到多點傳播組中。這一行為促使路由器e沿着spt向路由器c發送一條嫁接消息,以立即重新開始發送多點傳播流。通過使用該嫁接過程,路由器e可以不用非要等到先前的剪枝狀态逾時,進而減少了主機d可以看到的加入延遲。
稀疏模式協定使用共享樹,偶爾也會使用spt(在pim-sm中)來将多點傳播流量發送給網絡中的多點傳播接收者。與使用推送模型不同,稀疏模式協定使用拉模型(pull model)來發送多點傳播流量,即多點傳播流量被下拉到網絡中的接收者。是以,拉模型假定接收者不需要多點傳播流量,除非使用顯式的加入(join)機制來明确請求多點傳播流量。這裡再次使用電視來做類比,拉模型類似于電視中的付費收看節目,如果觀衆沒有明确請求節目,則節目将不會發送給接收者。
注意
我意識到,在這裡對有線電視的付費收看模型進行了略微擴充。事實是,觀衆總是可以收到電視節目的。當時你請求付費收看的電影時,有線電視公司将向你的有線電視接收盒發送某種授權代碼,這些代碼可以用來對電視節目進行解碼,進而收看到該節目。我想,你一定明白了!
1.共享樹加入消息
在稀疏模式網絡中,為了把多點傳播流量向下發送到接收者,必須建構一棵從根節點(pim-sm中的rp或者cbt中的核心)到接收者的共享樹。為了建構共享樹的分支,路由器向共享樹的根發送一條共享樹加入消息。該加入消息朝着根節點逐路由器傳輸,進而建構出了共享樹的分支。
圖2-22所示為加入消息正在沿着共享樹向上發送給根。在本例中,路由器e有一個本地連接配接的接收者,是以通過路由器c向根發送一條加入消息(有虛線箭頭表示)。該消息逐跳傳輸,直到到達根,然後建構共享樹的一個分支(如實線箭頭所示)。
在某些情況下(如pim-sm),spt加入消息也可以在源的方向上發送,進而在網絡中建構一棵從單獨的多點傳播源到接收者的spt。spt允許有直連接配接收者的路由器能夠穿過網絡并旁路掉根節點,進而使得源發送的多點傳播流量能夠通過一條更直接的路徑被接收到。
圖2-23所示為一棵正在建構的spt。它通過向一個特定的多點傳播源發送加入消息來建構。在本例中,路由器e通過路由器c向源發送一條spt加入消息(如虛線箭頭所示)。spt加入消息逐跳傳輸,直到到達路由器a,其所經指出即為spt(如實線箭頭所示)。
需要重點強調的是,在稀疏模式網絡中(共享樹或spt),如果分發樹的分支沒有重新整理,它們将會逾時并被删除,是以會停止沿着共享樹的分支向下發送流量。為了避免這個問題,需要用一定形式的周期性加入更新機制(由路由器沿着分支發送)來維護稀疏模式分發樹的分支。有些協定(比如pim-sm)通過沿着分發樹重新發送加入消息來定期地重新整理分支。
2.剪枝消息
在稀疏模式下,當不再需要多點傳播組流量時,将會沿着分發樹向上發送剪枝消息。這一行為使得共享樹或spt的分支(通過顯式的加入消息建立的)在不再被需要時,可以被拆下來。例如,如果一台葉節點路由器檢測到它不再有用于某特定多點傳播組的直連主機(或下遊多點傳播路由器)時,将沿着分發樹向上發送一條剪枝消息,以切斷不需要的多點傳播組流量。通過發送剪枝消息,而不是等待稀疏模式分發樹的分支逾時,可以縮短分支離開網絡的延遲。
圖2-24所示為本過程的操作情況。主機a剛離開多點傳播組,是以路由器a不再需要沿着共享樹(由實線箭頭表示)向下傳輸流量,是以将會沿着共享樹向上發送一條剪枝消息到rp。該消息間斷了位于共享樹上的路由器a和路由器b之間的連接配接,并停止向路由器a發送不需要的多點傳播流量。
鍊路狀态協定(如mospf)與密集模式協定很相似,因為它們都是用spt在網絡中将多點傳播流量分發到接收者。然而,鍊路狀态協定不使用在dvmrp或pim-dm中應用的泛洪和剪枝機制。相反,鍊路狀态協定泛洪特殊的多點傳播鍊路狀态資訊,該資訊可以識别組成員(即接收者)在網絡中的位置。網絡中的所有路由器都使用這一組成員資格(group membership)資訊,建構從每一個源到所有接收者的最短路徑樹(第9章将詳細介紹mospf)。