資料傳輸最佳化路由協定設計
3.2 最佳化路由協定設計
最佳化路由協定由二個部分所組成,即建立車輛移動路徑表與車輛移 動路徑最佳化。首先,每一輛車會定期廣播 beacon message 給地區內的 感測節點,感測節點接收之後立即廣播 advertisement message 給鄰居感測 節點。透過訊息交換之後,感測節點建立自己的車輛移動路徑表。如表 3.1 所示,Vehicle ID 表示車輛 ID,Next Node 表示感測節點下個要傳送 的目標,Count 表示車輛行駛經過幾個地區。最後,每一個地區中的感測 節點藉由 control message 更新車輛移動路徑表將車輛移動路徑最佳化。
透過車輛移動路徑最佳化,將能夠知道車輛移動的最佳距離。如圖 3.2 所
表 3.1 Vehicle
Node J
Movement Path Table
Vehicle ID Next Node Count
XX XX 6
示,當車輛 XX 由 G 地區移動到 F 地區時,B 地區感測節點藉由 F 地區 感測節點所廣播的訊息更新車輛 XX 的車輛移動路徑表。將可以將圖 3.2 簡化成圖 3.3 中的車輛移動路經最佳化鏈結,透過這條鏈結不管車輛如何 移動,都能找出車輛的最佳路徑。
圖 3.2 最佳化車輛移動路徑
Node B
Vehicle ID Next Node Count
XX F 6
圖 3.3 最佳化車輛移動路徑鏈結
在車輛行駛中,車輛會定期的廣播 beacon message,包括車輛的 ID,
車輛的位置,車輛的 Count(初始為零)和地區感測節點的 ID(初始為 null)。地區中的感測節點接收到立即判斷車輛是否在自己地區內,並且 訊息不重複(判斷訊息內容是否重複,藉由地區感測節點的 ID 與車輛所 傳送的地區感測節點的 ID 封包內容是否相同)。如果訊息不重複,首先 , 檢查車輛移動路徑表中是否有這輛車的資訊,如果沒有這輛車的資訊則 加入這輛車的資訊至車輛移動路徑表中, Next Node 為車輛 ID,車輛的 Count 加 1,車輛資訊建立完成立即回傳 ACK message 給車輛,包括已更 新過的車輛 Count 和感測節點 ID,車輛接收到 ACK message 會將地區感 測節點的 ID 更改為接收到的感測節點 ID 並更新 Count。最後,車輛所在 地區感測節點廣播 advertisement message 給鄰居的感測節點,包括感測節 點 ID , 車 輛 ID 和 已 更 新 過 車 輛 的 Count , 鄰 居 感 測 節 點 接 收 到 advertisement message,會將這輛車的資訊加入至自己的車輛移動路徑表 中,並且將 Next Node 更改為廣播這輛車資訊的感測節點。當車輛行駛至 下一個地區時,由於感測節點已有這輛車的資訊,所以直接將車輛移動 路徑表中的 Next Node 更改為車輛 ID 和 Count 加 1,更新完之後廣播
advertisement message。重複上面所描述的動作,車輛行駛經過的地區和 鄰居都能擁有車輛的資訊。
如果需要最佳的距離且最快的時間找到車輛,只有車輛行駛經過的地 區和鄰居擁有車輛的資訊是不足夠的,所以必須將車輛移動路徑最佳化。
在 車 輛 移 動 路 徑 最 佳 化 中 , 感 測 節 點 接 收 到 來 自 鄰 居 所 廣 播 的 advertisement message。首先,更新自己的車輛移動路徑表,更新完畢之 後隨機等待時間再廣播 control message,包括車輛 ID,車輛的 Count 和 感測節點 ID 給自己的鄰居,接收到 control message 的鄰居,立即檢查自 己的車輛移動路徑表是否有這輛車的資訊,如果沒有這輛車的資訊直接 忽略這個封包,如果有這輛車的資訊將比較這輛車的 Count 大小,Count 值如果比傳送過來的值小,將車輛移動路徑表中這輛車的 Next Node 更改 為廣播這輛車資訊的感測節點並更新這輛車的 Count 值。最後,當這輛 車的 Next Node 及 Count 值更新完畢,感測節點再次廣播 control message 給自己的鄰居來比較這輛車的 Count 值。重複上面所描述的動作,直到 沒有這輛車的資訊,或者接收到的 Count 值不大於自己所擁有的 Count 值,將停止廣播。演算法 1 表示最佳化路由協定。如圖 3.4 中所示,當車 輛由 F 地區移動至 J 地區時,J 地區感測節點廣播 advertisement message 給鄰居 I、K、F,I、K、F 接收到之後立即廣播 control message 給自己的 鄰居,鄰居再次廣播 control message 直到沒有這輛車資訊或已更新過。