第四章 Per-proxy-oriented Partition-based (POP) Crossover Node Discovery
4.1 簡介
本論文提出一探索交叉點之機制,我們稱為 Per-proxy-oriented Partition-based discovery(POP),透過此機制可以針對每一網狀擷取點在一次性的探索交叉點過程 中將以此出發點網狀擷取點所建立的樹狀拓樸其任意兩網狀擷取點的交叉點資訊建立 出來,此機制有以下幾個特點:
¾ 針對每個網狀擷取點(Per-proxy-oriented)之交叉點找尋
¾ 每個網狀結點一次性(One-time)分群(Partition-based)之交叉點找尋
¾ 交叉點資訊分散式化
前章提到當 MN 與 CN 在同一網域內時,交叉點會隨著 CN 的位置不同而有所改 變,必須是以 CN 所連接上的擷取點去找尋交叉點而非 GW。有鑑於此,POP 針對每個 網狀擷取點(Per-proxy-Oriented)去找尋交叉點,建立各個網狀擷取點的交叉點資訊,
如此,在任何行動裝置換手的情形時,所欲利用的便會是最正確的交叉點;所謂的一次 性(One-time)分群(Partition-based)之交叉點找尋則是本機制透過分群的概念,
在一次的探索程序中便將以此出發點至所有其它節點建立之樹狀拓樸其任兩節點間的 交叉點資訊找尋完成,利用最少的訊息建立最多的交叉點資訊為本機制之特色。無線網 狀網路的環境下其網狀節點通常不具有行動能力,我們可以假定封包的路徑不太改變,
而透過這種一次性探索的動作便可以減少不必要的重複性找尋,上一章有提過,先前研 究通常是利用行動裝置連接上擷取點時才去找尋交叉點,當不同的行動裝置連上相同的 擷取點,若與先前行動裝置有相同的來源節點與候選擷取點時,其交叉點便會是相同 的,此時若還要再找尋一次,則會造成不必要重複性找尋,對頻寬亦是種浪費;此外,
本機制的交叉點資訊是分散在找尋交叉點路徑的網狀節點上,這樣的方式其好處是當行 動裝置連接上新擷取點後,便可以立即利用交叉點,亦即,不管換手前、後手後欲利用 交叉點都可以立即使用,而不需要再找尋一次。不同於相關研究章節中介紹的 CRPD 機 制,其交叉點表格資訊必須沿路傳遞到行動裝置連接上的擷取點,所傳遞的資料量以及 Hop 數都較本機制多,且行動裝置換手後亦不能立即利用交叉點,這是因為新擷取點沒 有交叉點表格資訊,當然,CRPD 的機制原本便不是拿來做換手後利用交叉點的情景。
- 29 -
4.2 交叉點探索機制
本論文之交叉點探索機制-POP 為一利用分群(Partition)的概念,依據已建立好 的路由表建立交叉點資訊,透過此交叉點資訊表格便可以很清楚的呈現兩兩節點間以任 一來源網狀擷取點的交叉點為何。而此機制的特點在於交叉點資訊分散在交叉點上,亦 即只有交叉點本身會知道自己為哪兩個節點的交叉點,除了將儲存空間分散在交叉點 外,對於換手前、後欲利用交叉點的情景都可以立即得知交叉點為何。底下就交叉點探 索機制之概念以及交叉點探索機制之 Model 做介紹。
4.2.1 交叉點探索機制 POP 之概念
首先,本機制有個假設(Assumption),即所有網狀節點其路徑表格皆已經建立 完成,也就是說所有網狀節點都具有到其它網狀節點的路徑資訊。依據前述,網狀網路 路由演算法在當有封包要傳送,且不知道如何到目的節點時便會觸發,因此在無線網狀 網路運行一段時間後,網狀節點的路由表便會建立完成,因此假設所有路徑建立好的情 形是合理的。在無線網狀網路環境,每個網狀節點在路由演算法完成後,都會有以此節 點到其它所有節點的路徑資訊,將此節點到其它所有節點的路徑連接起來即為一個樹
(Tree),此節點為樹的 Root。如 Figure 4-1 所示:節點 A 有其自己生成的 Tree,
同樣的,節點 C 亦有其自己生成的 Tree。
A
B C
D E
F
G
H I
Tree rooted from A Tree rooted from C
Figure 4-1 路徑生成的 Tree 示意圖
而對於一個 Tree 來說,其可以被分群為數個不同的 Sub-trees,分別如下所示:
- 30 -
1. Root 節點自己本身
2. 以其 Child 為 Root 之 Sub- trees
若我們視每一 Sub-tree 裡的所有節點為一集合(Set),即一個 Sub-tree 為一個 Set,這些 Sets 便為這個 Tree 的分群(Partition)。我們可以由 Figure 4-2 看到,由 Root 為 A 的 Tree 所分群而來的便是:{A}本身以及{B, D, E}以及{C, F, G, H, I}這三個 Sets。
Figure 4-2 Tree rooted from A 之分群示意圖
根據分群,我們可以得到一個資訊,分群節點本身(節點 A),即為這些不同 Set 裡頭任選二個節點的交叉點。亦即,{A, B} {B, C} {D, F}等以此類推的交叉點即為節點 A 本身,當來源擷取點為 A 時。
這樣的觀念同樣可以套用到每一個 Sub-tree 上。每一個 Sub-tree 同樣可以再被分 群為數個不同的 Sub sub-trees,分別如下所示:
1. Root 節點自己本身
2. 以其 Child 為 Root 之 Sub sub-trees
因此,我們可以由 Figure 4-3 看出,Sub sub-tree {C, F, G, H, I}同樣可以被分 群為{C}Root 節點本身以及{F, H, I}與{G}這三群,同樣地此分群所呈現的資訊亦同 上:{C, F} {F, G}等以此類推的交叉點即為節點 C 本身,當來源擷取點為 A 時。
- 31 -
Figure 4-3 Sub-tree rooted from C 之分群示意圖
4.2.2 交叉點探索機制 POP 之方法
有了上述的分群概念後,本節將介紹如何將這觀念套用到真實的網狀網路節點上。
上節我們可以由一樹狀架構拓樸很清楚的知道如何分群,但站在節點的角度上要如何知 道怎麼分群呢。前面有提到此 Tree 其實為根據路由演算法所形成的,亦即由路由表的 資訊將此 Tree 建立起來,因此,我們便可以知道,依據路由表裡的 Next hop,便可以 做分群的動作。接著我們描述每個節點進行分群的步驟,我們假定路由表有到所有節點 的資訊,起始節點:
1. 將路由表中的每一節點依據 Next hop 做分群,相同的 Next hop 為同一群。
2. 將這些分群儲存在自身的交叉點表格上,供之後使用。這邊有一點要注意的 是,節點自己本身即自成一群,但路由表內部並不會有到『本身節點的下一個 節點為何』這一個資訊,因此若有節點本身要分群,我們便自行在交叉點表格 創立節點本身這一群,而其 Child 的分群則由路由表查詢並將之分群。
3. 針對每分群裡有兩個以上的節點,分別將之傳遞給其 Next hop,讓 Next hop 節點再針對這些未分群的節點依 1.之概念查詢路由表做分群動作。
上述為交叉點探索機制之基本流程,我們接著直接舉一個以一節點出發之交叉點探 索流程:
- 32 -
1.
2. CrN table of A
Src Subsets of a partition A A B D E C F G H I 3b. 3a.
Figure 4-4 節點 A 交叉點探索機制之流程(一)
如 Figure 4-4 所示,節點 A 開始此程序,其 Table 4-1 路由表中會有到 B, C, D, E, F, G, H, I 的下一個節點為何之資訊,由路由表便可得知,到 B, D, E 的下一個節點為 B,
到 C, F, G, H, I 的下一個節點為 C。因此可以將節點分為{B, D, E}與{C, F, G, H, I}兩群。
接著將此儲存在交叉點表格上,上述說明了節點本身為一群,因此交叉點表格會有節點 自己,另外再將分群出來的儲存至交叉點表格上,即為圖中的 CrN table of A。而分群 出來且有兩個以上節點的為{B, D, E}與{C, F, G, H, I},所以還需要向下一個節點去做分 群:{B, D, E}往下一個節點 B,{C, F, G, H, I}往下一個節點 C。
Table 4-1 節點 A 之路由表格 A Routing Table
Destination Next Hop
B B
C C
D B
E B
F C
G C
- 33 -
H C
I C
接著我們舉節點 C 收到{C, F, G, H, I}為例:
1.
CrN table of C
Src Subsets of a partition A C F H I G 2.
3.
Figure 4-5 節點 A 交叉點探索機制之流程(二)
如 Figure 4-5 所示,C 欲分群節點為{C, F, G, H, I},其查詢 Table 4-2 路由表裡的 F, G, H, I 的下一個節點為何之資訊,由路由表便可得知,到 F, H, I 的下一個節點為 F,
到 G 的下一個節點為 G。因此可以將節點分為{B, D, E}與{C, F, G, H, I}兩群。接著將此儲 存在交叉點表格上,同樣的,交叉點表格會有節點 C 自己,另外再將分群出來的儲存至 交叉點表格上,即為圖中的 CrN table of C。而分群出來且有兩個以上節點的為{F, H, I},所以還需要向下一個節點去做分群:{F, H, I}往下一個節點 F。
Table 4-2 節點 C 之路由表格 C Routing Table
Destination Next Hop
A A
B A
D A
E A
F F
- 34 -
G G
H F
I F
接著舉節點 F 收到{F, H, I}為例:
1.
CrN table of F
Src Subsets of a partition
A F H I
2.
Figure 4-6 節點 A 交叉點探索機制之流程(三)
如 Figure 4-6 所示,F 欲分群節點為{F, H, I},其查詢 Table 4-3 路由表裡的 H, I 的下一個節點為何之資訊,由路由表便可得知,到 H 的下一個節點為 H,到 I 的下一個節點為 I。因此可以將節點分為{H}與{ I}兩群。接著將此儲存在交叉點表格 上,同樣的,交叉點表格會有節點 F 自己,另外再將分群出來的儲存至交叉點表格 上,即為圖中的 CrN table of F。而分群出來的皆沒有兩個節點以上,因此不需要 再往下找尋,此節點便不用再往下做交叉點探索的程序。
Table 4-3 節點 F 之路由表格 F Routing Table
Destination Next Hop
A C
B C
C C
D C
- 35 -
E C
G G
H H
I I
同樣的,對於節點 A 分群出的{B, D, E}也是做相同的分群動作,因此,最後的 交叉點資訊如 Figure 4-7 所示:
CrN table of A
Src Subsets of a partition A A B D E C F G H I
Src Subsets of a partition
A C F H I G
CrN table of C
CrN table of F
Src Subsets of a partition
A F H I
CrN table of B
Src Subsets of a partition
A B D E
Figure 4-7 節點 A 交叉點探索機制之交叉點表格資訊
我們可以看到,交叉點表格的資訊為分散在交叉點本身上,如此可適用於由新舊擷 取點直接延來源節點方向找尋便可知道交叉點為何。而其它節點同樣依據這樣的機制便 可將所有節點生成的樹其交叉點資訊建立完畢,如此便可適用於任何 MN 與 CN 溝通的 情形。以上介紹的便是 POP 交叉點探索機制。
如此便可以把以節點 A 為來源節點其底下任兩節點間的交叉點資訊建立完成,透過 這樣一次性探索,可以用最少的訊息量建立最多的交叉點資訊,我們可以看到,僅需三 個訊息,便可以建立好來源節點 A 的交叉點表格資訊,而這是不會浪費的,因為我們僅 是將資訊建立好,要查找的時候再針對特定的節點去做找尋即可。而對任何一個節點所 長出的 Tree 都可以透過這樣的方式將以此節點為出發點其底下任兩節點間的交叉點資 訊建立完畢,接下來我們透過一個比較公式的概念來將本交叉點找尋機制做 Model。
- 36 -
RTu 的表示方式為<dst,next>,代表欲到此目的節點 dst 需將封包往下一個節點 next 傳送。dst 為網狀節點內的所有點但不包括 u 節點本身,next 為節點 u 的鄰居。