• 沒有找到結果。

3. TDMA 排程及 TCP 效能分析

3.2. TDMA Scheduling 演算法

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 提升。

相關文件