2. 相關工作
3.3 混合戳記演算法
進階戳記法增強了基本戳記法在 1-hop 鄰居的過濾能力,而混合戳記法,則是將這 個想法擴充到如 SBA 的 2-hop 鄰居資訊過濾。但與 SBA 不同的是,SBA 演算法採用的 是設定一個計時器,當節點 r 在一段時間內蒐集從其他封包傳遞過來的 2-hop 鄰居資訊,
如果在該段時間內,r 的所有鄰居 N(r)皆含括在蒐集來的封包中的 2-hop 鄰居資訊中時,
則節點 r 不進行廣播,反之則否。在混合戳記法中,會利用平時交換 hello 封包時,同 時交換 1-hop 的鄰居資訊。當節點 r 收到訊息時,會將 Stamp 欄位中的節點資訊,與欲
Hybrid-stamp Algorithm IF node r receives a new message M then
msgsend←false
for each node n in N(r) do
if n not in Stamp(M) then for each node m in N(n) do
if m in Stamp(M), and IDr smaller than IDm then msgsend ←true
end if
if in the end of N(n) and no node in Stamp(M) msgsend ←true
end if endfor endif end for
Stamp(M)=Stamp(M)∪{IDr , IDN(r)} if msgsend=true then
rebroadcasts end if
EXIT
圖圖
圖圖 3-6 混合戳記演算法混合戳記演算法混合戳記演算法混合戳記演算法
傳送目標節點 IDn的鄰居資訊 N(n)做比對,如果 N(n)中有節點資訊 IDm,且 IDm同時存 在於 IDr收到的 Stamp 中,表示 IDr與 IDm都會傳送訊息給 IDn。然而,實際傳輸中僅須 由 IDr或 IDm其中一個節點傳遞給 IDn即可,因此 IDr與 IDm會比較彼此的 ID 的大小,
由 ID 較小的節點進行訊息的廣播;如果 ID 為較大的一方,則不廣播。藉由上述的方 法,可以進一步的減少多個節點欲廣播給同一節點的情況,降低冗餘廣播訊息的產生。
混合式戳記法的演算法,請詳見圖 3-6 所示。
我們以來說明混合戳記法的訊息傳遞,並與進階戳記法比較、分析冗餘訊息的節省 情況。圖中所傳遞的 Stamp 欄位資訊與進階戳記法並無二異,主是要藉由接收端蒐集 2-hop 的鄰居資訊與 Stamp 欄位進行比對來增強過濾的效果。當 ID1接收到來自 ID0的 訊息時,ID1會利用平時與鄰居交換 hello 封包時取得的 ID3的鄰居資訊{ ID5 , ID6}與接 收到的訊息的 Stamp 欄位進行比對,以過濾是否有其他 ID3的鄰居從 ID0收到訊息,並
Stamp:{0,2} Stamp:{0,1}
Stamp:{0,1,2} Stamp:{0,1,2}
Stamp:{0,1,2,4}
Stamp:{0,1,2,3,5}
Stamp:
{0,1,2,3,6}
Stamp:{0,1,2,3,4,5,6}
0
1 2
3 4
5
6
7
圖 圖
圖圖 3-7 混合戳記法訊息傳遞圖混合戳記法訊息傳遞圖混合戳記法訊息傳遞圖混合戳記法訊息傳遞圖
欲廣播給 ID3。混合戳記法主要的效用發生在 ID3傳遞訊息給 ID5與 ID6時,ID5與 ID6
僅需其中一個節點廣播資訊給 ID3即可。當 ID5與 ID6收到來自 ID3的訊息時,ID5將 hello 封包取得的 ID7的鄰居資訊{ ID5 , ID6},與 Stamp={ID0, ID1, ID2, ID3, ID6}比對,發現 ID6 已記錄在 Stamp 欄位中,但 ID6的 ID 大於 ID5,因此 ID5仍進行廣播。另一方面,ID6
也藉由同樣的方法,發現 ID5已記錄在 Stamp 欄位中,且 ID5的 ID 較小,因此 ID6不進 行廣播。在中,我們可得知當在有線網路環境下,混合戳記法比進階戳記法少了一次訊 息傳遞;無線網路環境中,混合戳記法也比進階戳記法節省了一個節點的廣播。