1. 程式人生 > >網路層—廣播路由選擇演算法

網路層—廣播路由選擇演算法

不同於單播(點對點)通訊的路由選擇協議,廣播路由選擇需要提供一種從源結點到網路中的所有其他結點交付分組的服務。本文主要對廣播路由選擇演算法進行詳細說明:

1、N次單播 如果有N個目的結點,那麼在源結點中就產生N個分組副本,然後將這N份分組傳到N個目的結點,這種方法看上去十分簡單,而且是可以利用單播的協議進行N次傳送。但是這方法有很多致命的缺點,比如:N次單播的第一段路徑都相同,那麼這段路徑就是被利用了N次,第二個路由器也收到了N個重複的分組。那麼,如果從第二個路由器開始傳送這N個分組會不會更好點呢?所以這種方法會使得效率變得很低。 2、無控制的洪泛 首先需要知道的是什麼是洪泛(flooding),洪泛是:每個結點收到了分組之後向它的所有鄰居(除了傳送給他分組的那個鄰居)傳送分組。這個方法看起來是挺好的,但是卻存在這兩個問題:第一個問題是如果這個拓撲中有圓,那麼在這個圓中傳播的分組將要無休止地迴圈下去。第二個問題是路由器將會收到很多重複的分組。
3、受控的洪泛 受控的洪泛主要是通過兩種方法進行控制的。 第一種方法是序號控制洪泛(sequence - number - controlled flooding)中,對需要洪泛的分組新增一個廣播序號,然後每個路由器都維護一個序號列表。當每個路由器收到一個分組的時候,先檢查是否已經存在於序號列表中,如果不在,則記錄該序號,然後轉發分組,如果在的話,就直接丟棄分組並不轉發分組。 第二種方法是反向路徑轉發(Reverse Path Forwarding ,RPF)(也可以稱為反向路徑廣播)。如果一臺路由器接收到一個分組的時候,需要做一件事情,檢視一下分組的源地址,檢查這個分組是否是從源結點到此結點的最短路徑上。如果是的話,就進行繼續轉發,如果不是,則直接丟棄分組。
4、生成樹廣播 現在已經研製出了很多種生成樹的演算法,這裡我們只研究一種簡單的演算法,採用基於中心的方法(center - based approach)建立一顆生成樹。首先需要定義一箇中心結點,然後其他結點都向中心結點單播“加入樹報文”,如果路徑還未在樹中,那麼就直接加入樹,如果路徑中的某些部分已經在樹中,例如該路徑是B -> A -> F -> C -> G,但是F已經在樹中了,那麼就將B -> A加入到樹中。通過  這樣的方法建立一顆生成樹。