多播路由選擇協議
發布時間:2014/9/4 20:33:47 訪問次數:2559
雖然在TCP/IP中IP多播協議已成為建議標準,但多播路由選擇協議(用來在多播路由器之間傳播路由信息)則尚未標準化。
在多播過程中一個多播組申的成員是動態變化的。例如在收聽網上某個廣播節目時, NAND01GW3B2BN6E隨時會有主機加入或離開這個多播組。多播路由選擇實際上就是要找出以源主機為根節點的多播轉發樹。在多播轉發樹上,每一個多播路由器向樹的葉節點方向轉發收到的多播數據報,但在多播轉發樹上的路由器不會收到重復的多播數據報(即多播數據報不應在互聯網中兜圈子)。不難看出,對不同的多播組對應于不同的多播轉發樹。同一個多播組,對不同的源點也會有不同的多播轉發樹。
已有了多種實用的多播路由選擇協議,它們在轉發多播數據報時使用了以下的三種方法:
(1)洪泛與剪除。這種方法適合于較小的多播組,而所有的組成員接入的局域網也是相鄰接的。一開始,路由器轉發多播數據報使用洪泛的方法(這就是廣播)。為了避免兜圈子,采用了叫做反向路徑廣播RPB (Reverse Path Broadcasting)的策略。RPB的要點是:每一個路由器在收到一個多播數據報時,先檢查數據報是否從源點經最短路徑傳送來的。進行這種檢查很容易,只要從本路由器尋找到源點的最短路徑上(之所以叫做反向路徑,因為在
計算最短路徑時是把源點當作終點)的第一個路由器是否就是剛才把多播數據報送來的路由器。若是,就向所有其弛方向轉發剛才收到的多播數據報(但進入的方向除夕卜),否則就丟棄而不轉發。如果本路由器有好幾個相鄰路由器都處在到源點的最短路徑上(也就是說,存在幾條同樣長度的最短路徑),那么只能選擇一條最短路徑,選擇的準則就是看這幾條最短路徑中的相鄰路由器誰的IP地址最小。圖4-50的例子說明了這一概念。
為簡單起見,在圖4-50中的網絡用路由器之間的鏈路來表示。我們假定各路由器之間的距離都是1。路由器R.收到源點發來的多播數據報后,向R2和R3轉發。R2發現Ri就在自己到源點的最短路徑上,因此向R3和R4轉發收到的數據報。R3發現R2不在自己到源點的最短路徑上,因此丟棄R2發來的數據報。其他路由器也這樣轉發。R,到源點有兩條最短路徑:R7一R4一R2--Rl一源點;R7一R5- R3一Rl一源點。我們再假定R4的IP地址比Rs的IP地址小,所以我們只使用前一條最短路徑。因此R,只轉發R傳過來的數據報,而丟Rs傳過來的數據報。最后就得出了用來轉發多播數據報的多播轉發樹(圖中用粗線表示),以后就按這個多播轉發樹來轉發多播數據報。這樣就避免了多播數據報的兜圈子,同時每一
個路由器也不會接收重復的多播數據報。
圖4-50反向路徑廣播RPB和剪除
如果在多播轉發樹上的某個路由器發現它的下游樹枝(即葉節點方向)已沒有該多播組的成員,就應把它和下游的樹枝一起剪除。例如,在圖4-50中虛線橢圓表示剪除的部分。當某個樹枝有新增加的組成員時,可以再接入到多播轉發樹上。
雖然在TCP/IP中IP多播協議已成為建議標準,但多播路由選擇協議(用來在多播路由器之間傳播路由信息)則尚未標準化。
在多播過程中一個多播組申的成員是動態變化的。例如在收聽網上某個廣播節目時, NAND01GW3B2BN6E隨時會有主機加入或離開這個多播組。多播路由選擇實際上就是要找出以源主機為根節點的多播轉發樹。在多播轉發樹上,每一個多播路由器向樹的葉節點方向轉發收到的多播數據報,但在多播轉發樹上的路由器不會收到重復的多播數據報(即多播數據報不應在互聯網中兜圈子)。不難看出,對不同的多播組對應于不同的多播轉發樹。同一個多播組,對不同的源點也會有不同的多播轉發樹。
已有了多種實用的多播路由選擇協議,它們在轉發多播數據報時使用了以下的三種方法:
(1)洪泛與剪除。這種方法適合于較小的多播組,而所有的組成員接入的局域網也是相鄰接的。一開始,路由器轉發多播數據報使用洪泛的方法(這就是廣播)。為了避免兜圈子,采用了叫做反向路徑廣播RPB (Reverse Path Broadcasting)的策略。RPB的要點是:每一個路由器在收到一個多播數據報時,先檢查數據報是否從源點經最短路徑傳送來的。進行這種檢查很容易,只要從本路由器尋找到源點的最短路徑上(之所以叫做反向路徑,因為在
計算最短路徑時是把源點當作終點)的第一個路由器是否就是剛才把多播數據報送來的路由器。若是,就向所有其弛方向轉發剛才收到的多播數據報(但進入的方向除夕卜),否則就丟棄而不轉發。如果本路由器有好幾個相鄰路由器都處在到源點的最短路徑上(也就是說,存在幾條同樣長度的最短路徑),那么只能選擇一條最短路徑,選擇的準則就是看這幾條最短路徑中的相鄰路由器誰的IP地址最小。圖4-50的例子說明了這一概念。
為簡單起見,在圖4-50中的網絡用路由器之間的鏈路來表示。我們假定各路由器之間的距離都是1。路由器R.收到源點發來的多播數據報后,向R2和R3轉發。R2發現Ri就在自己到源點的最短路徑上,因此向R3和R4轉發收到的數據報。R3發現R2不在自己到源點的最短路徑上,因此丟棄R2發來的數據報。其他路由器也這樣轉發。R,到源點有兩條最短路徑:R7一R4一R2--Rl一源點;R7一R5- R3一Rl一源點。我們再假定R4的IP地址比Rs的IP地址小,所以我們只使用前一條最短路徑。因此R,只轉發R傳過來的數據報,而丟Rs傳過來的數據報。最后就得出了用來轉發多播數據報的多播轉發樹(圖中用粗線表示),以后就按這個多播轉發樹來轉發多播數據報。這樣就避免了多播數據報的兜圈子,同時每一
個路由器也不會接收重復的多播數據報。
圖4-50反向路徑廣播RPB和剪除
如果在多播轉發樹上的某個路由器發現它的下游樹枝(即葉節點方向)已沒有該多播組的成員,就應把它和下游的樹枝一起剪除。例如,在圖4-50中虛線橢圓表示剪除的部分。當某個樹枝有新增加的組成員時,可以再接入到多播轉發樹上。
上一篇:IGMP采用的一些具體措施
上一篇:隧道技術在多播中的應用