Rotation sweep(RS) algorithm[9][10][11]主要是用來解決 local minimum 的 問題,當封包到達一中繼點(stuck node)卡住後,為了可以繼續傳送下去會 從 greedy forwarding 轉成 recovery routing,一般在 geographic routing 發送點 因為已經假設發送點知道鄰居點的位置,所以可以直接利用 sweep curve 和 旋轉方向(順、逆時針),被 sweep curve 最先掃到的鄰居點當成下個中繼 點,將資料封包傳送給此中繼點。然而在 BLR 方法中,發送點在沒有鄰居 點的位置資訊來決定中繼點的情況下,只會負責將 RTS 封包廣播給周圍鄰 居點,其中發送點廣播的 RTS 封包會儲存發送點和發送點的前一點的位置 資訊,如果發送點是剛從 greedy forwarding 轉成 recovery routing 的 stuck node,前一點的位置資訊就會替換成目的點的位置資訊,廣播 RTS 封包
封包提供相關的位置資訊,鄰居點可以各自計算自己被 Reuleaux triangle 圖
2.2 Cooperative rotational sweep algorithm
在 UDA 環境下,beaconless geographic routing 在 recovery mode 下使用 RS algorithm 去決定中繼點是十分完美的設計,只要給定 Reuleaux triangle 一邊 的圓弦長,鄰居點就可以競爭出下一個中繼點。然而節點的通訊範圍一定
每一個中繼點皆是 timer 最小的節點,這樣的問題稱為 hidden node prob-lem,為此有發展出 cooperative rotational sweep algorithm[13]來解決 hidden node problem。
Cooperative rotational sweep algorithm 主要是 cooperative approach[13]和 rotation sweep based on TT[9][11]的方法結合在一起,其中 cooperative ap-proach 是借用封包 header 的空間以有序序列(ordered sequence list)來儲存之 前資料封包曾拜訪過的歷史節點的位置資訊,然後每次資料封包到達新的 中繼點被提前 sweep 到的鄰居點是這些歷史節點的 hidden node,就要選擇 有序序列中能 sweep 到目前中繼點且順序最小的歷史節點當上個中繼點並更 新歷史紀錄,此被提前 sweep 到的鄰居點成為封包下個中繼點,在此中繼點 重複上述流程,直到有序序列不存在歷史節點能提前 sweep 到目前中繼點的 鄰居,就會立刻執行 TT 決定下個中繼點。另一個方法 rotation sweep based on TT 是基於 curve stick[11],curve stick 的長度會跟節點的傳輸半徑相關,
讓發送點以 curve stick 和旋轉方向,選擇被第一個 sweep 到的節點當封包的 下個中繼點。
Cooperative rotational sweep algorithm 整個運作方式是當封包一開始在 stuck node 時,因為 header 的空間內的有序序列還未儲存任何節點,所以只
會執行 TT 並將 stuck node 儲存到有序序列,然後每次到達一個節點都會執 行 cooperative approach,檢查封包目前傳送的過程是否有 hidden node prob-lem,當確認沒有 hidden node problem 才會執行 TT,如果目前封包到達的發 送點和目的地的距離小於 stuck node 到目的地的距離,就會停止執行 coop-erative rotational sweep,變成執行 greedy forwarding 繼續傳送。整體而言 co-operative rotational sweep algorithm 犧牲封包 header 長度的儲存成本來提高 路由的成功率。
在真實網路環境中,節點只依據收到的訊號強度來決定是否相連,已經 不存在固定的傳輸半徑(non-UDA),為了解決這樣的問題,根據論文[23]假 設有一個最小半徑ηL的虛擬圓用來模擬節點的傳輸範圍,讓節點可以依據 ηL的虛擬圓來執行 cooperative rotational sweep algorithm。
雖然 cooperative rotational sweep algorithm 使用在 non-UDA 上,可以解決 hidden node 的問題,然而這方法並不能直接應用到 BLR 上,因為在 BLR 的 封包路由條件下,發送點是沒有足夠的鄰居點位置資訊來做出路由決定,
但相對的可以使用 RTS/CTS 廣播機制把發送點和目的點等其他適當的位置 資訊傳送給相鄰的鄰居點,讓鄰居點可以透過 MAC contention 決定出中繼 點。