一開始先簡單扼要地再介紹一次何謂無線Ad Hoc網路,以及與其相關的行動Ad Hoc網路,然後深入說明使用在無線Ad Hoc網路中的路由協定——「動態來源路由協定」(Dynamic Source Routing,DSR),先講解DSR路由的運作方式,再分析該路由協定的優點與缺點。
DSR路由運作方式說明
DSR所使用的Source Routing路由方式,是指發送端可以指定在網路內應該要如何去被轉發,與一般的路由不同,一般都是讓路由器來決定如何路由。好處是發生問題時的疑難排解比較容易,路由追蹤也較簡單。
進一步來說,DSR路由方式會把從發送端到目的地端整個路由路徑轉發的設備位址全部記錄下來,會記錄到專門使用在探索網路的網路封包裡面。但是,這樣的情況會對網路造成一定的小負擔,而因為會把路徑中的設備位址記錄下來,所以如果是像IPv6這種更長的位址,負擔會更加嚴重。
整個路徑探索過程分為「路徑探索」(Route Discovery)與「路徑維護」(Route Maintenance)這兩個主要的階段。會先經過一段路徑探索過程,之後再來維護所探索的網路路徑。而當網路封包抵達目的地之後,則會傳送Route Reply的回應訊息給來源端。一般來說,當目的地端擁有折返的路徑資料時,當然會使用這份折返的網路路徑,否則會使用原本送過來到目的端的網路路徑以反方向的方式逐一傳送回去。
在網路最開始的時候,大家彼此不知道其他設備在哪裡,與大多的網路協定一樣,還是會需要透過Flooding的方式瘋狂廣播給所有的設備。
此時,假設有一個網路節點想要開始傳送網路封包給某個目的地,因為不知道在哪裡,所以會先對所有人廣播,發送所謂的Route Request,收到Route Request的網路節點,會檢查目的地是不是自己,如果不是,則會繼續對其他人轉發。當然,在轉發之前,會先看看這個Route Request封包裡面的TTL(Time To Live)值,以便於確保沒有重複轉發一模一樣的Route Request。
如此一來,只有當目的地收到這個Route Request或是TTL到達零的時候,這個Route Request才會結束,等目的地收到這個Route Request時,目的地端就會附上Route Reply,以原本的路徑折返,把這樣的訊息傳送回去給來源端。而在這樣的過程中,大家也順便學會了之後要如何傳送類似的網路封包。
DSR路由協定優缺點分析
因為以上的設計運作方式,所以只有當「發送網路封包需求」出現時,所有的設備才會開始去看要如何傳送封包,這樣可以避免像是一般網路協定以Table Driven並且定期地發送更新封包所造成的網路負擔。而且,所有非來源端也非目的地端的其他網路節點可以藉由轉發這網路封包,從中學習到以後應該要如何轉發相同的網路封包。
這樣的方式看來固然不錯,但很明顯地,這種方式所產生的網路路徑資料其實根本不即時,也就是說,如果網路上有某個網路路徑斷了,這種方式並沒有辦法馬上知道。所以,這樣的網路路徑必須經由再次地探索,才能知道哪些地方無法連通。
簡單來說,如果當網路環境很不穩定的時候,這個網路協定在探索的過程就會花很多時間,網路連線的建立,就會花很多時間,但如果在網路品質很穩定,網路節點也都很穩定的情況下,這個網路協定的效能就會極高。
另外一點要注意的是,因為這種探索方式還是一個個地去找尋,所以如果網路路徑很長的時候,會非常大幅度地降低這個網路協定的效能。
結語
之前已經介紹AODV、DSDV、Babel路由協定、OLSR路由協定等,加上這一篇DSR協定,相信大家應該對無線隨意網路的路由方式有更多的了解。未來有機會再介紹BATMAN協定、ABR及DREAM路由方式。
<本文作者:胡凱智,目前在Solera Holdings Inc.擔任亞太區首席技術長,曾於美商Mozilla擔任全球技術專案總監,並在趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者交流建議:https://www.facebook.com/khu.page>