• 沒有找到結果。

2. 文獻探討

2.5. 討論

前述文獻討論的方式皆使用 CSMA/CA-based 的 MAC 作為 medium access protocol,CSMA/CA 最大的缺點是讓 wireless node 以隨機的方式競爭 channel,

由於現有的 wireless interface 不能在傳送資料的同時偵測 collision 的發生,因此 發生 collision 的代價很高,而 CSMA/CA 發生 collision 之後的 backoff 也帶來很 大的 overhead,channel resource 無法有效地被利用,最終無法得到良好的 TCP throughput。Hidden terminal 問題也會增加 collision 發生的機率。我們認為理想 的 方 式 應 是 使 用 centralized spatial TDMA (time division multiple access) scheduling scheme,妥善並公平地分配 channel resource,使 TCP 的 throughput 提 升。TDMA 可以避免 packet collision,同時可以利用 spatial reuse 特性解決 channel interference 的問題。

以往討論改善 TCP performance over wireless links 的文獻,多半是聚焦在 single-hop 的 wireless network,這個問題在 multi-hop 的 wireless mesh network 比 較複雜,因為每條 TCP flows 的 path hop 長短不一,wireless link errors 對於長短 不同的 TCP flows 可能會有不同程度的傷害。我們使用 link-layer retransmission 來處理 multi-hop wireless network 上 wireless link error,希望能保持 TCP 的良好 傳輸特性提升 throughput。

3. TDMA 排程及 排程及 排程及 排程及 TCP 效 效 效 效能分析 能分析 能分析 能分析

我們將在這一章討論如何分配頻寬使 TCP 順暢流動(k=1 model),並依此提出 兩種 TDMA scheduling 演算法,並進行模擬實驗討論其 TCP 效能。

3.1. k=1 Model

TCP 是 feedback-based 的傳輸協定,TCP 傳送端依賴 ACK 確認封包是否已 送達並將之從 buffer 中清掉,同時 TCP ACK flow 也影響 congestion window 的變 化,因此 TCP throughput 同時受到 data packet flows 和 ACK packet flows 的影響。

TCP data flow 和 ACK flow 如果走相同的路徑,則如何將此路徑的頻寬分配給 TCP data 和 ACK flow 以使得 TCP throughput 最大化是一個問題。

我們使用 normalized bandwidth ratio k [12] 來描述 TCP data flow 和 ACK flow 的頻寬需求。 TCP packet 就會剛好對應到回傳一個 ACK packet。當 k>1 時,ACK packets 所獲 得的頻寬不足,因此 接收端以較慢的速率 傳送 ack,這樣會造成傳送端的 congestion window 成長速度緩慢,進而造成 TCP throughput 表現不佳。當 k<1 時,data packet 所獲得的頻寬不足,傳送端被迫以較慢的速度傳送 data,而 TCP

ACK packet 的傳輸端看接收端收到多少的 TCP data packet,在這樣的狀況中,

TCP ACK flow 受到 data flow 的影響也以較低的速度傳送,因此 ACK flow 並沒 有完全地使用到它所被分配的頻寬。因此,我們稍後在進行 centralized TDMA scheduling 分配 timeslot 時將以在每段 wireless link 以及接收端都達到 normalized bandwidth ratio k=1 為目標,以使 TCP 能以最順暢的方式運作。

TDMA scheduling 將 channel access time 切成一個一個 timeslot 分配給 wireless network 上的 node,每個 wireless node 只能在它所分配到的 timeslot 之中傳送封 包(無論 data 封包或 ACK 封包)。當所有 wireless node 獲得足夠傳送資料的 timeslots,則這些 timeslots 集合成一個 frame。定義 Nframe為一個 frame 中的 timeslot 數量,如果能使 Nframe最小化,也就是讓所有 wireless node 在最短的時間內都獲 得足夠傳送資料的 timeslots,即可最大化 throughput。

因此,給定一個固定的 network topology,我們的 TDMA scheduling 希望達成 兩個目標:

Wireless mesh network 的組成中含有一個以上具有 gateway 能力的 mesh node,大部份的 traffic flow 皆流向此 gateway node 或從 gateway node 流出以連接 Internet。我們的 system model 先考慮 chain topology 的狀況,如圖 3-1:

圖 3-1 N-hop chain network

在這個 N-hop chain 上每個 wireless node 都有一 TCP flow 流向連接 Internet 的 node (N+1)。

我們定義一個 bidirectional graph G=(V,E),其中的 V 為節點的集合,表示 wireless mesh network 中的 wireless nodes,E 為 edge 的集合,vi指向 vj表示 node

j 在 node i 的 transmission range 之內。接著,為了將 wireless mesh network 中各

個 wireless link 的干擾關係表達出來,我們將 G 轉換成 contention graph G’=(V’,E’), 其中 V’為 vertex 的集合,表示 G 上的 directional wireless link,E 以 E’為 edge 集合,表示 directional wireless link 的干擾關係。這邊以一個 four-node 的 chain topology 為例,如圖 3-2:

圖 3-2 Contention graph

左邊為 network topology graph,其中每個 node 間隔 200 公尺,因此 d1會跟 圖上所有 wireless link 互相干擾,因此在右邊的 contention graph 中,vertex d1跟 所有 vertex 都有連線,表示互相干擾。

為了達成前述的 k=1 條件,每個 wireless link 所分配到的 timeslot 數量應該 要符合其 TCP data flow 或 ACK flow 的頻寬需求。我們將 contention graph 上的 每個 vertex 給定一個權重值如圖 3-3,此權重值即代表該 wireless link 的頻寬需 求。

圖 3-3 Weight assignment

圖 3-3 以 four-node chain topology 為例,圖中 w(di)表示 link di分配到的權重 值,的 Ld,fi表示 TCP flow i 的 data packet 長度,La,fi表示 flow i 的 ACK packet 長度,Dj表示所有流經 link dj的 flow 所形成的集合。TDMA scheduling 演算法及 按照此 weighted contention graph 進行 timeslot 的分配及排程。

3.2. TDMA Scheduling 演算法 演算法 演算法 演算法

3.2.1. Schedule A – Equal Share on each wireless link

最簡單最直 覺的 scheduling 方式是讓每段 wireless link 有相同分量的 timeslot,但遵循 k=1 的原則,意即在每個 frame 之中的每段 wireless link 所得 timeslot 數剛好可以傳送一個 TCP data packet 和一個 TCP ACK packet,如此我們 可以讓 TCP flow 最順暢地運作。

Schedule A 演算法的 pseudo code 如圖 3-4(第一階段)及圖 3-5 圖(第二階

段)。演算法第一階段先將所有 weighted contention graph 上的 vertices 區分成數個 scheduling groups,在同一個 scheduling group 中的所有 vertices(代表 wireless link) 同時傳輸不會互相干擾。演算法第二階段則根據每個 scheduling group 中的 vertices 所得到的權重,分配 timeslots 給此 scheduling group。在同一個 scheduling group 中的 wireless link 會被排在同一時間內傳送,但這些 wireless link 的權重大 小不一,意即所需的 transmission time 大小不同,因此一個 scheduling group 所分 配到的 timeslot 決定於其中權重最大的 wireless link:

};

| ) ( max{

)

( S

g

w u u S

g

w = ∈

Eq. 6

其中 Sg為一 scheduling group,u 為 Sg中的一個 wireless link。在演算法的第 一階段進行區分 scheduling group 的動作時,我們使用 greedy approach,希望盡 可能包含最多的 non-conflicting link 在同一個 scheduling group,以達到 spatial reuse 的效果並最小化 frame 的長度。

圖 3-4 Schedule A 演算法第一階段

將 scheduling group 分好之後,接下來以演算法的第二階段就是進行 timeslot

assignment。每個 timeslot 的長度為傳送一個 TCP ACK packet 所需時間。

圖 3-5 Schedule A 演算法第二階段

利用這個演算法,我們可以給定 four-node chain topology 的 wireless mesh network 產生如圖 3-6 的 scheduling。因為 four-node chain topology 中的所有 wireless link 都會互相干擾,因此每個 scheduling group 只包含一個 wireless link,

所以在分配 timeslot 時,沒有任何可以達成 spatial reuse 的機會。

圖 3-6 Schedule A of four-node topology

在長度較長的 chain topology 中,如 seven-node chain topology,可以產生如 圖 3-7 的 schedule。其中幾組互不干擾的 links (如 link d1和 link d5) 被分配到同 一個 scheduling group 以達到 spatial reuse 的效果。

圖 3-7 Schedule A of seven-node topology

3.2.2. Schedule B– – – –Demand-Based

我們考慮的 network topology 中,每個 wireless mesh node 都有一條 TCP flow 流向 gateway node (在 N-hop chain 中就是 node N+1),因此連接 gateway node 的 wireless links 是整個網路中 loading 最重的部份(bottleneck link),在前一小節中的 schedule A 並沒有考慮 loading 對 throughput 的影響。如果我們將經過 link di的 TCP flows 數量定義為 link di的 load,並在進行 scheduling 時分配 timeslot 的步驟 中將 wireless link 的 loading 一併考慮,可能可以提升 TCP throughput。我們稱這 個按照 traffic demand 的 scheduling 方式為 schedule B。提出的 schedule B 的理由 可以用圖 3-8 來說明:

圖 3-8 Transmission cycle time of schedule A

圖 3-8 中列出了 schedule A 的 3 個 frame。由於有 3 條 TCP flow 經過 bottleneck link (link d3及 link a3),至少需要 3 個 frames 才能讓所有 TCP flows 有機會完成一 輪的傳輸 (對一條 TCP flow 來說,完成一輪傳輸指 TCP 傳送端傳送一個 TCP data packet 到 TCP 接收端且 TCP 接收端對此 data packet 回覆一個 ACK packet 到 TCP 傳送端)。我們定義 Nu_data為傳送一個 TCP data packet 所需的 timeslot 數,Nu_ack 為傳送一個 TCP ACK packet 所需的 timeslot 數,Schedule A 的 3 個 frame 所需的 時間為 9Nu_data+9Nu_ack。圖上所繪的虛線 timeslot,雖然可以讓 node 1 和 node 2 傳送 data(或 ACK) packet,但受限於 bottleneck link 的 timeslot 數目,node 1 和 node 2 也只是暫時把 packet 送至 node 3 的 buffer 裡暫存。如果能依照每個 wireless link 的 loading 分配 timeslot,可以在更短的時間內完成一輪的傳輸以提升 throughput。

Schedule B 的演算法跟 schedule A 不同之處在於設定 contention graph 的權重 以及分 scheduling group 的演算法。首先是要知道 network 中每個 wireless link 的

TCP traffic 需求數量以決定權重,因此我們以 TCP traffic matrix 來表示 network 中的 TCP traffic 需求,如圖 3-9:

圖 3-9 TCP traffic matrix

在 TCP traffic matrix 中,橫列代表此 TCP flow 的傳送端(起始點),直行代表 此 TCP flow 經過的 node,因此位處(1,2)的 1 代表有 1 條 TCP flow 由 node 1 發出 經過 node 2,反之若為 0 則代表沒有 TCP flow 經過此 node。計算每個 wireless link 的 load 時,要把此 TCP flow matrix 的關係對應到 wireless link 上,例如第 0 行只 有(1,2)為 1,意即只有 1 條傳送端為 node 1 的 TCP flow 經過 d1,因此 link d1的 load 為 1,F(d1)=1,在 traffic matrix 上即是把 link d1相對應的直行的數字相加。

因為只有一條 TCP flow 經過 d1,所以 a1也只有一條 TCP flow 的 ACK flow 經過,

所以 F(a1) = 1。以 four-node chain topology 為例,經過計算 TCP flow matrix 上的 load 之後,分配 contention graph 權重如圖 3-10:

圖 3-10 Weight assignment of Schedule B

為了和 Schedule A 中的權重有所區別,schedule B 的權重以 w’表示。Schedule

B 演算法中按照 w’分配 scheduling group 的 pseudo code 如圖 3-11:

圖 3-11 Schedule B 演算法第一階段

由於 wireless link v 的權重已經乘上經過 v 的 TCP flow 數量,因此在分配 scheduling group 時,我們希望從 vertex set 中取 vertex 出來放到 scheduling group 的次數能按照 load 的數量取出,如此每個 scheduling group 的 timeslot 長度剛好 能容納一個 TCP data packet 或 TCP ACK packet。分配 timeslot 的演算法則和 schedule A 的部份相同,如前面圖 3-5。

使用 schedule B 演算法對 four-node chain 和 seven-node chain topology 排出的

schedule 如圖 3-12 和圖 3-13:

圖 3-12 Schedule B of four-node topology

圖 3-13 Schedule B of seven-node topology

3.2.3. 討論 討論 討論 討論

我們將 schedule A 和 schedule B 的比較總結如表 3-1:

表 3-1 schedule A 和 schedule B 的比較 Cycle time(所有 flow 完成 1 個 round-trip 傳輸所

需的時間)

Four-node chain Seven-node chain

可能的 bottleneck

Schedule A 9Nu_data+9Nu_ack 24Nu_data+24Nu_ack

最終所有 TCP flow 的傳輸 速度會被 bottleneck link 限 制住, 因此分配給其它 link 的 timeslots 可能造成

浪費

Schedule B 6Nu_data+6Nu_ack 18Nu_data+12Nu_ack

Schedule A 平均的將 timeslots 分配至所有 wireless links 上,以 round-robin 的 方式服務每條 TCP flow,可能的缺點在於所有 TCP flow 會被 bottleneck link 限制 住,而分配給其它 wireless link 的 timeslots 可能沒有被有效利用,使得 link utilization 過低。Schedule B 讓每個 wireless link 所分配到的 timeslots 數量和 traffic demand 成正比,而且可以在較短的時間內讓所有 TCP flow 完成一個 round-trip 的傳輸,使 TCP throughput 提升。

3.3. 實驗結果 實驗結果 實驗結果 實驗結果

我們在 QualNet simulator 4.0 上進行模擬實驗分析比較 TCP 在兩種 TDMA scheduling scheme – schedule A 和 schedule B 的效能。實驗環境包含 four-node 及 seven-node chain topology 的 wireless mesh networks,其中除了 gateway node 之外 的每個 wireless node 都與 gateway 建立一條 TCP flow,如圖 3-14 和圖 3-15。

圖 3-14 four-node topology

圖 3-15 seven-node topology

我們實驗在理想的 wireless 環境中進行(沒有 wireless link error 造成 packet loss),physical layer protocol 使用 IEEE 802.11b,data rate 固定在 11Mbps,TCP segment size 為 1460 bytes,每組實驗情境都進行 150 秒,FTP 傳輸從第 5 秒開始 至第 145 秒結束。我們觀察的效能標的主要有 overall 的 TCP throughput 及各條 TCP flow 的 individual throughput、throughput 的 fairness index[13] 、TCP congestion window 隨時間變化的情形、以及 smoothed round-trip time。我們觀察這些效能標 的以瞭解 TCP 在使用 spatial TDMA scheduling 的 wireless mesh network 上是否能 保有第一章描述 TCP 在有線網路上的良好特性。

3.3.1. Throughput Performance

Four-node chain topology 的 overall TCP throughput 如圖 3-16,individual TCP

throughput 如圖 3-17。

圖 3-16 overall TCP throughput of four-node topology

圖 3-16 overall TCP throughput of four-node topology

相關文件