2. 相關工作
3.1 基本戳記演算法
戳記式演算法的基本概念,主要是使用公文傳遞時的部門印章註記為出發點。當一 份文件需傳遍所有的部門,但又不希望有部門重複收到已簽收過的文件,可以藉由在文 件上蓋章表示此文件已經過哪些部門。
N(0)={ID1,ID2} ←→ ID0 連接 ID1, ID2 N(1)={ID0,ID4} ←→ ID1 連接 ID0, ID4 N(2)={ID0,ID3} ←→ ID2 連接 ID0, ID3 N(3)={ID2,ID5} ←→ ID3 連接 ID2, ID5 N(4)={ID1,ID5} ←→ ID4 連接 ID1, ID5
N(5)={ID3,ID4,ID6,ID7} ←→ ID5 連接 ID3, ID4, ID6, ID7 N(6)={ID3,ID7} ←→ ID6 連接 ID3, ID7
N(7)={ID5,ID6} ←→ ID7 連接 ID5, ID6
在基本戳記法中,節點會在訊息傳遞前,加入發送者的戳記。例如,當訊息經過節 點 r 時,節點 r 會在廣播前在訊息中的 Stamp 欄位中加入自己的 ID。當 r 的鄰居 n 接收 到訊息時,會檢查 Stamp 中的資訊,進而得知 r 為此訊息的發送者,而在廣播時將 r 從 廣播的目標中排除,而 n 在發送前,也會將自己加入到戳記欄位中。藉由過濾掉發送者 本身,來減少冗餘的訊息傳遞。基本戳記法可達到自我修剪泛流式廣播法同樣的效益。
我們以來詳細說明在八節點拓撲圖中,基本戳記法如何減少重複的訊息傳遞。在圖 3-3 中,ID0為訊息的起始廣播節點,它將訊息廣播給它的鄰居 ID1與 ID2,並在傳遞的 訊息的 Stamp 欄位中,加入了自己 ID。當節點 ID1與 ID2收到訊息後,欲廣播訊息時,
會將 Stamp 欄位中的節點資訊與自己的鄰居集合 N(1)、N(2)做比較。在有線網路的情況 中,ID1的鄰居有 ID1,ID3,而 Stamp 欄位中記錄有 ID0,因此 ID1僅將訊息廣播給除了 ID0以外的節點,其他的節點收到封包時,也依照同樣的方法傳遞訊息;由圖 3-3 可以 看出,在有線網路環境下的基本戳記中,可以防止資料回傳給發送者,進而達到減少冗 餘的傳送封包。在無線網路的情況中,ID1同樣比對自己的鄰居 N(1)與 Stamp,發現雖
Basic-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
msgsend←true endif
end for
Stamp(M)=Stamp(M)∪{IDr} if msgsend=true then
rebroadcasts end if
EXIT
圖 圖
圖圖 3-2 基本戳記演算法基本戳記演算法基本戳記演算法基本戳記演算法
然 ID0已記錄在 Stamp 中,但 ID3仍未有人傳送訊息,因此 ID1仍會將訊息廣播出去;
其他節點則依據上述的方法傳遞訊息。當拓撲最邊緣的 ID7,從它的鄰居 ID5與 ID6接 收訊息時,在 ID7要廣播前,會比對 Stamp 欄位與 N(7),發現 N(7)皆已包含在 Stamp 欄位中,因此 ID7便不進行廣播。
詳細的訊息傳遞路徑與發送廣播訊息的節點,以圖 3-3 表示。圖 3-3 中的實線為 有傳遞訊息的封包,虛線則是與簡單泛流式比較後,節省的封包傳遞狀況。灰色的節點,
是有進行訊息廣播的節點,白色的節點則是利用基本戳記法後,比簡單泛流式節省而不 廣播的節點。可以很明顯地看到,在有線網路中,藉由基本戳記法,可以比簡單泛流式 節省虛線部分的封包;而在無線的部分,則節省了一個節點的廣播。
Stamp:{0} Stamp:{0}
Stamp:{0,1} Stamp:{0,2}
Stamp:{0,2,4}
Stamp:{0,1,3}
Stamp:{0,1,3}
Stamp:{0,1,3,6}
Stamp:{0,1,3,5}
0
1 2
3 4
5
6
7 Stamp:
{0,1,3,5}
圖圖
圖圖 3-3 基本戳記法訊息傳遞圖基本戳記法訊息傳遞圖基本戳記法訊息傳遞圖基本戳記法訊息傳遞圖