一開始先簡單扼要地再介紹一次何謂無線Ad Hoc網路,以及與其相關的行動Ad Hoc網路,然後深入說明使用在無線Ad Hoc網路中的路由協定——「動態來源路由協定」(Dynamic Source Routing,DSR),先講解DSR路由的運作方式,再分析該路由協定的優點與缺點。
無線Ad Hoc網路的特性使得原本有線網路的路由協定很難直接套用上來。在無線Ad Hoc網路中,因為各個節點的高度移動性,還有無線網路的連線品質,以及計算路由所需要耗費的系統資源,使得路由的設計變得複雜了些。無線Ad Hoc網路因為其高度的變化,整體的路由計算需要變得更加動態地調整。
對此,本文將介紹主要使用在無線Ad Hoc網路中的路由協定「動態來源路由協定」,英文全稱為Dynamic Source Routing,簡稱DSR。
何謂無線Ad Hoc網路
無線Ad Hoc網路的英文是Wireless Ad hoc Network(WANET),中文也被稱為無線隨意網路,是一種分散式無線網路系統,起源於1970年代左右,由Defense Advanced Research Projects Agency(DARPA)資助,到了1990年代,又經過幾個改革,因此更加進化。
無線Ad Hoc網路與既有的有線網路不同的是,整個網路中沒有依賴於某些特定的網路路由器與交換機,甚至不依賴於網路基地台等。在這樣的網路中,每一個節點都扮演著這些路由器的角色,每個節點都需要幫忙轉發網路封包以及協助計算路由。
了解行動Ad Hoc網路
行動Ad Hoc網路(Mobile Ad hoc Network,MANET)有時也稱為行動隨意網路,或是移動臨時網路,它是無線Ad Hoc網路的一種,是利用行動裝置透過無線的方式連接,各自演進,各自協同合作所組成的無線網路。
這種網路最大的特色是,每一個節點(也就是每一個行動裝置)都可以移動,能夠隨意改變連結,而與無線Ad Hoc網路相同,每一個節點也都必須幫忙轉發整個網路上的封包,因為不會依賴於任何一個路由器,而即便是和自己無關的網路封包,也必須幫忙轉發。這種行動Ad Hoc網路的複雜度相當高,因為除了每個節點都要適度地知道整個網路的情況以便有效地轉發網路封包外,還要考慮到各個節點可能會移動所增加的複雜度。
在這樣的網路中,只要每一個節點維護一份足夠讓它們轉發封包到正確的方向,就可讓整個網路持續運作,所以整個網路的運作與維護都極具高度彈性。另外,因為高度移動性的特性,所以要持續保證整個網路正常運作,對於每個節點所需要的電力使用和運算成本是行動Ad Hoc需要探討的議題之一。
畢竟,這種網路並不能像一般傳統網路隨意或定期地互相交換網路拓撲資訊,其耗電量過高,運算成本過高,而且也很容易因為高度移動性經常地更改網路拓撲而使得這樣的更新動作沒有太大的意義。
路由表的產生與維護方式
介紹過無線Ad Hoc網路的特性後,可以理解到,在這樣的網路中,每一個節點並不知道整個網路的拓撲為何,每一個網路節點只會知道它們能連到哪裡,基本上,它們會去通報自己的「存在性」,並且等候別人送出的廣播通知,以便於知道有誰是鄰居。也因為這樣的特性,衍生出不同路由表的產生與維護方式。在這樣的網路環境中,主要可以分為主動式與被動式的路由表更新方式。
主動式的方式會持續地維護一個包含目的地以及相關網路路徑的清單,然後會定期地更新這樣的路由清單來保證整個網路的路由能夠正常地運作。根據上述的解釋,可以容易地看出這種路由方式最大的缺點就是要經常性地維護並且傳送大量的路由資訊,也因此對任何網路的改變會有比較慢的反應,較為經典的範例包括OLSR、Babel、DSDV、DREAM以及BATMAN等等。
而被動式路由方式,只有當有網路封包發送的需求時,才去了解如何執行路由的動作,執行方式可能是直接對整個網路做大量Flooding的發送。很明顯地,這樣的缺點是當有這樣的需求時需要一段時間才會知道應該要如何執行路由,而且也很可能因為Flooding的行為讓整個網路堵塞。比較常見的路由演算法有ABR、AODV、DSRFLOW以及現在將要介紹的DSR等等。
認識DSR路由協定
DSR(Dynamic Source Routing)路由協定一樣也是設計用於無線Ad Hoc網路之中,與AODV很類似,只是DSR路由協定是根據來源端來做路由,也被稱為Source Routing(來源路由),而不是根據路由表的資訊。
AODV(Ad-hoc On-demand Distance Vector)這種路由方式的特別之處是,只有當要發送網路封包的時候,才趕快去看看目的地在哪裡,才去研究最佳路由是什麼,所以叫做Ad-hoc On-demand。而與DSDV類似,每一個路由請求會有一個序號,大家使用這個序號以免重複發送相同的請求。每個請求會有一段「生存時間」,一旦逾時,這個請求就會失效。
因為這種路由方式的設計,應該可以想像得到,一旦這個網路環境內沒有任何的封包發送行為時,整個網路是非常靜止的,不會像其他路由方式一樣,會一直想要互相發送更新以便於維護最新的路由表。