第二章 背景知識介紹
2.2 無接縫漫遊機制之交叉點使用情景
無接縫漫遊機制其主要目的是希望讓使用行動裝置的使用者在其移動的過程中,即 使行動裝置更換擷取點,使用者也不會感覺有任何斷線的情形,即使用者使用網路的情 形不會因為使用者的移動而有任何停頓。要達到無接縫漫遊,一般來說要符合以下兩個 條件:一為無封包遺失(No Packet Loss),即行動裝置在換到新擷取點時不會有任何 的封包遺失掉;另一為延遲時間要短(Low Latency),即行動裝置從舊擷取點斷線後 到連接上新擷取點重新取得封包的時間,要越短越好。無接縫漫遊機制對使用者來說是 很重要的,試想一情形,當您在使用網路電話時移動,網路電話卻突然不通了,這甚至
- 10 -
可能會影響一筆生意的成功與否。也因無接縫漫遊的重要性,便有了許多研究,希望透 過一些機制來達到無接縫漫遊,前章有提到,許多研究會利用交叉點對封包做一些處 理,以改善換手的效益,常見的不外乎是在換手前利用交叉點做封包預先傳送到新擷取 點的動作亦或是換手後利用交叉點提前將封包導向到新擷取點,並利用這些基本概念再 去延伸一些優化的機制,底下便就這些交叉點定義、使用情景及其好處做介紹與討論。
2.2.1 交叉點之定義
既然本論文為提出一交叉點機制,我們就來介紹何謂交叉點,首先先來定義一些名 詞:
¾ 路由路徑(Routing Path):即由來源節點到目的節點依序所需經過節點的集 合。
¾ 相同路徑(Common Sequence of Paths):即有相同來源節點的兩條或多 條路徑其路由路徑中相同的節點。
¾ 交叉點(Crossover Node-CrN):即相同路徑的最後一個節點。
Figure 2-4 交叉點示意圖
Figure 2-4 為交叉點示意圖,由圖中可以看到路由路徑 Path-1={A, B, C, E}、
Path-2={A, B, D, F},而 Path-1 與 Path-2 的相同路徑 Path-1∩Path-2 為{A, B},因此,
根據上述交叉點的定義,交叉點 CrN=B。
- 11 -
2.2.2 換手前使用交叉點之情景(Bi-casting)
在一些可以知道新擷取點的情形下,有許多研究會在行動裝置即將換手的時候利用 交叉點預先建立新擷取點的路徑 [6]~[9]、預先暫存封包 [10]、或是預先將封包複製一 份並傳往新擷取點 [11],其實這些利用交叉點的目的都是希望能縮短行動裝置連接上 新擷取點後還要向舊擷取點拿取封包的這段程序。我們就交叉點將封包複製一份並傳往 新擷取點的情形做探討,這種節點複製一份封包並傳往另一擷取點的行為稱為 Bi-casting,其主要精神為,當行動裝置要離開舊擷取點時,會通知交叉點,使交叉點 再傳送一份封包到新擷取點,新擷取點收到後先將之暫存,等行動裝置連接上新擷取點 後便可以立刻從新擷取點取得暫存資料,這樣的目的是希望減少換手延遲,當行動裝置 連接上新擷取點時,便可以直接由新擷取點取得封包,而不需要再去向舊擷取點拿取封 包。其延遲僅受換手過程的影響,視行動裝置多快連接上新擷取點而定,而換手過程的 延遲改善並非本論文討論的重點。欲使用 Bi-casting 需要預測(Prediction)新擷取點,
即必須知道行動裝置接下來要連接的擷取點才有辦法使用 Bi-casting 機制,因為是要先 將封包送往新的擷取點,而預測新擷取點的機制亦並非本論文所討論。Figure 2-5 為利 用交叉點做 Bi-casting 示意圖:
Figure 2-5 利用交叉點 Bi-casting 示意圖
如 Figure 2-5 所示,行動裝置 MN 現在連接上擷取點 D,接下來要連接的擷取點 為擷取點 N, CN 與 MN 正在傳送資料,原本的傳輸路徑為 RÆAÆBÆD,當 MN 換 手連接上新擷取點 N 後,其傳輸路徑會變為 RÆAÆBÆN,根據上述交叉點定義,此例 B 即為交叉點,因此可以在 MN 要換手的時候通知交叉點 B,請交叉點 B 將封包複製一
- 12 -
份並送往新擷取點 N,擷取點 N 先將封包暫存,如此當 MN 連接上新擷取點 N 後便可 以立即拿取封包,而不需要再去向舊擷取點。
而在 MN 連接上新擷取點後,在有 Bi-casting 的情形下,要做位置更新的時候,
同樣可以利用交叉點提前將往舊擷取點的封包不再傳送,如此便可以避免頻寬的浪費,
因為此時 MN 已經連接上新擷取點,並不需要再將封包送往舊擷取點了。
讀者可能會有疑問,為什麼一定要利用交叉點去做 Bi-casting 的動作,難道其他節 點不行嗎?首先要知道的是,這兩條路徑分別為從來源端到舊擷取點以及從來源端到新 擷取點的最好路徑,亦即使用路徑演算法所選出的路徑。而若選擇 Bi-casting 的節點為 交叉點前任一節點,在交叉點前就會有兩份相同的封包在同一條路徑上傳送,在交叉點 才會開始走不同的路徑,這對交叉點前的頻寬是浪費的,因為會有兩份相同的封包走相 同的路徑,這其實是不必要的;而若選擇 Bi-casting 的節點為舊路徑交叉點後任一節 點,雖然此點仍可以根據路徑演算法選擇最好的路徑送往新擷取點,但封包從來源擷取 點Æ此點Æ新擷取點的路徑並非是最好的(因為最好的路徑為來源擷取點Æ交叉點Æ新 擷取點),因此,在來源端收到位置更新前的這段時間,封包會一直有繞路的行為,而 這對頻寬亦是一種浪費,若利用交叉點做 Bi-casting 便可以減少上述的問題,因此,大 部分研究皆透過換手前利用交叉點做事先與新擷取點的溝通以減少換手延遲。
2.2.3 換手後使用交叉點之情景(Data-Redirection)
交叉點使用的情景並不僅侷限於換手前的運用,畢竟預測新擷取點這件事並不會是 百分之百正確的,因此另有研究便致力於換手後如何增進換手的效益 [8][12]。在行動 裝置連接上新擷取點的時候,如前所述,通常需要做位置更新的動作,讓來源端不要再 將封包往舊擷取點傳送,不過在來源端收到更新前的這段時間,封包還是會持續往舊擷 取點傳送,而若能在交叉點收到便提前將封包往新擷取點傳送(Redirection),便可 以減少封包遺失,當然,即使是舊擷取點有暫存再轉送(Buffer and Forward)的機制,
利用交叉點做封包導向的動作同樣可以減少封包的繞路。Figure 2-6 為利用交叉點做封 包導向示意圖,在交叉點收到更新封包後便直接將封包導向新擷取點,此時交叉點再接 著繼續將位置更新封包往來源端傳送,來源端收到後才真的將封包傳向新擷取點。
- 13 -
Figure 2-6 利用交叉點做封包導向示意圖
所謂的暫存再轉送便是當行動裝置從舊擷取點離開後,舊擷取點會暫時將要送給行 動裝置的封包暫存住(Buffer),而當行動裝置連接上新擷取點後,由新擷取點去向舊 擷取點要求暫存的資料,舊擷取點便可將暫存的資料轉送給(Forward)新擷取點,這 時行動裝置便可以拿到這些資料。