• 沒有找到結果。

無線網狀網路TCP應用之排程設計及效能評估

N/A
N/A
Protected

Academic year: 2022

Share "無線網狀網路TCP應用之排程設計及效能評估"

Copied!
74
0
0

加載中.... (立即查看全文)

全文

(1)

國立台灣大學資訊管理研究所 碩士論文

Department of Information Management College of Management

National Taiwan University Master Thesis

無線網狀網路TCP應用之排程設計及效能評估

Preserving Good TCP Transmission Properties in Wireless Networks

黃慈霖 Tzu-Lin Huang

指導教授 ﹕孫雅麗 博士 Advisor: Yeali Sun, Ph.D.

中華民國 九十七 年 七 月

July, 2008

(2)

目錄 目錄 目錄 目錄

目錄...一 圖目錄...三 表目錄...五 謝詞...七 中文摘要...八 Abstract ...九

1 序論...1

1.1. 背景介紹...1

1.1.1. TCP ...1

1.1.2. 無線網狀網路...3

1.1.3. TCP Bandwidth Requirement ...5

1.2. 研究動機...6

1.3. 研究目的...7

1.4. 論文架構...7

2. 文獻探討...8

2.1. MAC Layer Approach...8

2.1.1. Distributed Link Random Early Drop...8

2.2. Transport Layer Approach ...9

2.2.1. Dynamic Adaptive Acknowledgement Strategy ...9

2.2.2. Adaptive Pacing ...10

2.3. Other Approach ... 11

2.4. Improving TCP performance on error-prone wireless link...12

2.4.1. TCP snoop...12

2.4.2. Local link-layer retransmission scheme...13

2.4.3. Split-connection ...13

2.5. 討論...14

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

3.1. k=1 Model...15

3.2. TDMA Scheduling 演算法 ...18

3.2.1. Schedule A – Equal Share on each wireless link ...18

3.2.2. Schedule B–Demand-Based...21

3.2.3. 討論...26

3.3. 實驗結果...26

(3)

3.3.1. Throughput Performance ...27

3.3.2. TCP Congestion Window 變化情形...30

3.3.3. TCP smoothed round-trip time ...33

3.3.4. Link utilization...34

3.4. 討論...35

4. Wireless link errors 引發的 packet loss 對 TCP 效能的影響 ...39

4.1. Packet loss at the bottleneck link ...40

4.1.1. Throughput performance ...40

4.1.2. TCP congestion window 變化情形 ...44

4.1.3. TCP smoothed round-trip time ...45

4.2. 討論...46

5. Link-layer 重傳機制及 TCP 效能分析 ...47

5.1. Link-layer retransmission scheme ...47

5.2. 實驗結果...48

5.2.1. 分析與量測 link-layer retransmission scheme 的 overhead ...49

5.2.2. TCP throughput performance...52

5.2.3. TCP congestion window 變化情形 ...56

5.2.4. TCP smoothed round-trip time ...58

5.3. 討論...60

6. 總結與未來展望...62

參考文獻...63

(4)

圖 圖 圖

圖目錄 目錄 目錄 目錄

圖 1-1 Wireless mesh network 示意圖...4

圖 1-2 Hidden terminal 問題 ...4

圖 1-3 Exposed terminal 問題 ...5

圖 2-1 LRED 機制[5] ...9

圖 2-2 TCP-DAA[6] [7]...10

圖 2-3 Spatial reuse... 11

圖 3-1 N-hop chain network ...17

圖 3-2 Contention graph ...17

圖 3-3 Weight assignment...18

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

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

圖 3-6 Schedule A of four-node topology...20

圖 3-7 Schedule A of seven-node topology ...21

圖 3-8 Transmission cycle time of schedule A ...22

圖 3-9 TCP traffic matrix...23

圖 3-10 Weight assignment of Schedule B ...23

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

圖 3-12 Schedule B of four-node topology...25

圖 3-13 Schedule B of seven-node topology ...25

圖 3-14 four-node topology ...27

圖 3-15 seven-node topology...27

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

圖 3-17 individual TCP throughput of four-node topology ...28

圖 3-18 overall TCP throughput of seven-node topology...29

圖 3-19 individual TCP throughput of seven-node topology ...29

圖 3-20 TCP congestion window 變化情形(schedule A, four-node)...31

圖 3-21 TCP congestion window 變化情形(schedule B, four-node)...31

圖 3-22 TCP congestion window 變化情形(schedule A, seven-node) ...32

圖 3-23 TCP congestion window 變化情形(schedule B, seven-node) ...32

圖 4-1 packet loss at the bottleneck link...40

圖 4-2 individual TCP throughput under p=5% (four-node) ...42

圖 4-3 individual TCP throughput under p=5% (seven-node)...42

圖 4-4 TCP sequence number of flow 1 under p=5% (seven-node) ...43

圖 4-5 TCP sequence number of flow6 under p=5% (seven-node) ...43

(5)

圖 4-6 p=5%時 TCP congestion window 變化情形(four-node)...44

圖 4-7 p=5%時 TCP congestion window 變化情形(seven-node) ...44

圖 5-1 link-layer retransmission scheme 運作方式示意圖 ...48

圖 5-2 structure of TCP data packet...49

圖 5-3 structure of TCP ACK packet ...49

圖 5-4 structure of link-layer ACK packet...49

圖 5-5 individual TCP throughput under p=5% with link-layer retransmission (four-node)...54

圖 5-6 individual TCP throughput under p=5% with link-layer retransmission (seven-node) ...54

圖 5-7 不同 packet loss probability 時 TCP throughput 之變化 ...55

圖 5-8 p=5%使用 link-layer retransmission scheme 之 TCP congestion window 變化情形(four-node) ...56

圖 5-9 p=5%使用 link-layer retransmission scheme 之 TCP congestion window 變化情形(seven-node)...57

圖 5-10 TCP sequence numberof flow 1 with link-layer retransmission scheme under p=5% (seven-node) ...57

(6)

表 表 表

表目錄 目錄 目錄 目錄

表 3-1 schedule A 和 schedule B 的比較...26

表 3-2 fairness index...30

表 3-3 srtt 比較(four-node)...33

表 3-4 srtt 比較(seven-node) ...33

表 3-5 queueing delay-srtt 比值(four-node) ...34

表 3-6 queueing delay-srtt 比值(seven-node)...34

表 3-7 link utilization (four-node) ...35

表 3-8 link utilization (seven-node)...35

表 3-9 各項效能比較(four-node)...36

表 3-10 各項效能比較(seven-node) ...37

表 4-1 有無 packet loss 之效能比較(four-node) ...41

表 4-2 有無 packet loss 之效能比較(seven-node)...41

表 4-3 srtt under p=5% (four-node) ...45

表 4-4 srtt under p=5% (seven-node) ...45

表 5-1 overhead due to transmission of link-layer ACK ...50

表 5-2 比較 p=0%時有無使用 link-layer retransmission scheme 之 TCP throughput (four-node)...51

表 5-3 比較 p=0%時有無使用 link-layer retransmission scheme 之 TCP throughput (seven-node) ...51

表 5-4 比較 p=5%時有無 link-layer retransmission scheme 效能(four-node) ...52

表 5-5 比較 p=5%時有無 link-layer retransmission scheme 效能 (seven-node)...52

表 5-6 比較 p=5%時有無使用 link-layer retransmission scheme 之 normalized throughput (four-node)...53

表 5-7 比較 p=5%時有無使用 link-layer retransmission scheme 之 normalized throughput (seveeen-node)...53

表 5-8 比較 p=0%時有無使用 link-layer retransmission scheme 之 srtt (four-node) ...58

表 5-9 比較 p=0%時有無使用 link-layer retransmission scheme 之 srtt (seven-node)...59

表 5-10 比較 p=5%時有無使用 link-layer retransmission scheme 之 srtt (four-node) ...59

(7)

表 5-11 比較 p=5%時有無使用 link-layer retransmission scheme 之 srtt (seven-node)...60

(8)

謝詞 謝詞 謝詞 謝詞

這篇論文的完成需要感謝很多人。首先我要感謝指導我論文的孫雅麗老師以 及口試委員:陳孟彰老師、林永松老師、蔡志宏老師。孫老師花了很多心力指導 和修改我的論文,感謝孫老師從專題以來三年多的照顧和指導。感謝諸位口試委 員給我的意見與指導,使我的論文更加完善。另外要感謝莉萍學姊,每個禮拜花 很多時間跟我討論我的論文進度,給我很多非常有幫助的意見。感謝實驗室的各 位學長姊、同學、學弟妹:育群學長、振維學長、世傑學長、舜文學長、力銘學 長、士軒學長,以及去年畢業的元傑學長、鼎盛學長、雅華學姊,皓文、許君、

昌桓、雲喬、昕彥、意婷,感謝這三年多來的支持與陪伴,讓我順利的度過專題 以及碩士班的時光。最後我要感謝我的父母和姊姊,他們對我無止盡的關心、付 出和支持,讓我無後顧之憂的念完碩士。

黃慈霖 謹識 民國九十七年七月

(9)

中文摘要 中文摘要 中文摘要 中文摘要

作者:黃慈霖

指導教授:孫雅麗 博士

論文題目:無線網狀網路 TCP 應用之排程設計及效能評估

TCP 在有線網路中有三項良好的傳輸特性:一、TCP 藉由調整 congestion window 來 調 節 傳 輸速 度 , 使 TCP 可 以有 效 利 用 網 路 的可 用頻 寬 (available bandwidth)。二、對於 congestion 引發的 packet loss,TCP 可以很快速地重傳並 恢復傳輸。三、流經相同 bottleneck link 的 TCP flows,可以達到非常公平的 throughput 分配。但在 CSMA/CA-based 的無線網狀網路上,packet loss 引發 TCP congestion control 機制使 TCP 降低傳輸速度而讓 TCP 無法有很好的 throughput。

Channel access contention、hidden terminal 問題以及 wireless link error 都會造成 packet loss。

在本文中,我們使用 spatial TDMA scheduling scheme 解決 channel access contention 以及 hidden terminal 問題,並加上 link-layer retransmission scheme 在 local link 處理 wireless link error。我們進行模擬實驗,討論並分析使用這些 scheme 下無線網狀網路 TCP 效能。希望藉由這些 scheme 建造一個無線網路環境,使 TCP 不經更改也能保留 TCP 的良好特性,一如 TCP 在有線網路上一般順暢地運 作。實驗結果顯示,考量 traffic load 的 spatial TDMA schedule (schedule B)可以讓 TCP 在無線網狀網路上保持很好的 throughput 和 fairness 並且盡可能地使用所有 的可用頻寬。而對於 wireless link error 造成的 packet loss 會破壞 TCP throughput 和 fairness,實驗結果也證明使用 link-layer retransmission scheme 可以保存 TCP 快速復原 packet loss 的特性,使 TCP 在 error-prone 的無線網狀網路上也能有好 的效能表現。

關鍵詞:spatial TDMA scheduling、TCP、無線網狀網路、Local Retransmission

(10)

Abstract

Name: Tzu-Lin Huang Advisor: Yeali Sun

Preserving Good TCP Transmission Properties in Wireless Networks

In wired networks, there are several good properties for TCP transmission:

exploiting available bandwidth as much as possible, providing fairness between different flows that share the same bottleneck link, and fast recovery from packet loss due to congestion. But in CSMA/CA-based wireless mesh networks, packet loss due to channel access contention, hidden terminal, and wireless link error will trigger the TCP congestion control scheme to slow down the data sending rate, thus results in low throughput performance.

In this thesis, we take spatial TDMA scheme to tackle channel access contention and hidden terminal problem in wireless mesh networks. And we also take link-layer retransmission scheme to sustain fast recovery properties. Under the proposed schemes, we analyze TCP performance in wireless mesh network in terms of the good TCP transmission properties. We want to construct a wireless environment so that one can preserve good TCP transmission properties to achieve good overall throughput performance in wireless mesh networks. Simulation results show that in a chain topology, spatial TDMA schedule (schedule B), which considering traffic demand, sustains good TCP fairness and exploits available bandwidth as much as possible. And link-layer retransmission scheme preserve properties of fast recovery of lost packets on error-prone wireless mesh networks.

Keywords: spatial TDMA scheduling, TCP, wireless mesh networks, local retransmission

(11)

1 序論 序論 序論 序論

1.1. 背景 背景 背景 背景介紹 介紹 介紹 介紹

1.1.1. TCP

Transmission Control Protocol (TCP)[2] ,是目前最被廣泛使用的 transport layer 通訊協定。TCP 提供 end-to-end 可靠(reliable)的傳輸,可確保上層交付下來 的資料不會被遺失,因此眾多網路應用都以 TCP 做為 transport layer 的通訊協 定,例如 Web browsing、E-mail、FTP…等。

TCP 使用 window-based 的壅塞控制(Congestion control)演算法[2] [3] [4] ,可 以探測網路的狀況並減輕 end systems 和 network router 的壅塞情形。在有線網路 上,TCP 運作地非常順暢。TCP 傳送端使用一個 window 來紀錄已傳送出去但尚 未被確認正確收到(unacknowledged)的資料,同時 TCP 傳送端會不斷地加大其 window size 以探測(probe)是否可使用更多的可用頻寬(available bandwidth),直到 發生 congestion 或是到達 TCP 接收端所能接收的最大 window size 為止。TCP 的 window 變化可分為兩個 phase - slow start phase 及 congestion avoidance。在新的 TCP connection 建立之後,TCP 處在 slow start phase,此時 TCP 傳送端在每個 round-trip time 以指數的方式倍增其 sending window,直到發生 packet loss 或到達 TCP 接收端所能接收的最大 window size 為止。packet loss 代表 congestion 發生,

TCP 傳送端將其 window 減半,進入 congestion avoidance phase,此時 sending window 在每個 round-trip time 以線性的方式成長,若再度發生 packet loss 則 sending window 則再減半。TCP 藉由兩個 event 來偵測 packet loss 的發生:timeout 和 three duplicate ack。發生 timeout 代表有嚴重的 congestion 發生,TCP 傳送端

(12)

會馬上將 congestion window 降至最低以減輕 congestion。TCP 使用 cumulative ACK,意即當 TCP 接收端收到 sequence number x 的 ACK 時,代表 x 之前的封 包都已正確送達。當 TCP 接收端收到非正確順序的資料封包時,會回傳截至目 前最後收到的封包所相對應的 acknowledgement,因此當一連串 unacknowledged 的封包中的某個封包遺失時,TCP 傳送端就會收到數個 duplicate ACK,若收到 3 個以上的 duplicate ack 即代表某個封包遺失,進而進行 fast retransmission 來復原 遺失的封包。這個演算法使 TCP 可以很快地探測網路上可使用的最大頻寬,卻 又不致於傳送過量的資料到網路上造成壅塞,而當 congestion 發生時又可以很快 地發現並復原 packet loss。

當多條 round-trip time 不同的 TCP flow 共同經過同一條 bottleneck link,不會 達到相同數量 throughput,其 throughput 可根據 TCP friendly equation [11] 推估:

p RTT

= c

throughput Eq. 1

p 為該 TCP flow 的封包被遺失的機率,RTT 為該 TCP flow 的 round-trip time,

c 為一固定的常數[11] 。根據這個 equation,當兩個 TCP flows,flow i 和 flow j 流經同一個 bottleneck link 而且有同樣的封包遺失機率 p,則這兩條 TCP flows 的 throughput 比例應該跟其 RTT 成反比。

i j

RTT

= RTT

j i

throughput throughput

Eq. 2

這是由於 TCP 的 Additive Increase Mulplicative Decrease scheme 的緣故,TCP 每經過一個 RTT(收到 ACK)就調整其 congestion window,RTT 較小的 flow 其 congestion window 亦成長得較快,因此得到較高的 throughput。

總結來說,TCP 有三項好的傳輸特性使之在有線網路上運作地很順暢:

一,TCP 的 AIMD scheme 可以調節 congestion window 使 TCP 盡可能的利用可 用頻寬。

二,TCP 的 AIMD 機制可以探測網路上的壅塞狀況並很快地復原 packet loss。

(13)

三,流經相同 bottleneck link 的 TCP flows 之間可以保持很好的 throughput fairness。

1.1.2. 無線網狀網路 無線網狀網路 無線網狀網路 無線網狀網路

無線網狀網路(Wireless mesh network)[1] 是近年受到很多注目和被廣泛討 論的一種網路架構,它由許多 wireless mesh node 構成,使用者可以利用無線裝 置連接上 wireless mesh node 而進入 Internet。每個 wireless mesh node 不一定都可 以直接連接到 Internet,因此 wireless mesh node 會將資料經由無線的方式傳到具 有 gateway 功能的 wireless mesh node 再傳至 Internet 的。無線網狀網路跟一般的 wireless LAN 不同之處即在於此,wireless mesh node 的 traffic flow 是經過多站 (multi-hop)的無線傳輸,不同於一般單站(single-hop)傳輸的 wireless LAN traffic。

因此 wireless mesh network 具有延伸 Wireless LAN 傳輸範圍的功能和佈建成本便 宜的優點。一個可能的 wireless mesh network topology 如圖 1-1,mesh router 具 有 access point 的能力讓使用者裝置連接上來,同時也幫忙 relay 其它 mesh router 傳來的 traffic,因此不必到處佈建「直接連接 Internet 的 access point」,只要佈建 無線的 mesh router。在大部份的狀況下,佈建有線的 access point 成本較高,建 置 wireless mesh network 是較便宜且較具吸引力的選擇。

(14)

圖 1-1 Wireless mesh network 示意圖

在 Wireless mesh network 之中,相鄰的 wireless node 共享 wireless resource,

因此有 channel interference 的問題以及 hidden terminal/exposed terminal 的問題。

圖 1-2 Hidden terminal 問題

Hidden terminal 問題可以用圖 1-2 來說明,假設圖上所有 node 使用相同的 wireless channel,每個 node 的傳輸範圍與干擾範圍都相同,且干擾範圍約為傳輸 範圍的兩倍。node D 正在傳送 data 給 node E,由於 node A 無法偵測到 node D 正在傳送 data,誤以為 channel 為 idle 狀態,因此傳送 data 給 node B,但由於 node B 處於 node D 的干擾範圍之中且 node D 正在發送訊息,因此 node A 傳給 B 的 data 無法正常地被接收。Node D 為 node A 的 hidden terminal。

(15)

圖 1-3 Exposed terminal 問題

Exposed terminal 問題如圖 1-3 所示。Node D 正在傳送 data 給 node E,由於 node B 位處於 node D 的干擾範圍內,於是 node B 偵測到有其它 node 在使用 channel,因此原本要傳送 data 給 A 的動作被延遲了,然而事實上,node B 可以 跟 node D 同時進行傳輸且不會互相干擾到對方的接收端。Hidden terminal 問題 產生 collision,使 channel resource 被浪費掉;exposed terminal 問題使原本可以同 時進行的傳輸被延遲,沒有有效地利用 channel resource。這兩個問題都造成 wireless mesh network 的資料傳輸更加困難。

1.1.3. TCP Bandwidth Requirement

Wireless mesh network 一些特有的性質會影響 TCP 的 throughput。第一,無 線網路是一個共享的傳輸媒介,相鄰的 links 會互相干擾,造成 link 與 link 彼此 互相競爭 channel access (MAC layer contention)。此外,還有前述的 hidden terminal/exposed terminal 問題。第二,TCP 是 reliable 的 transport protocol,必須 依賴 ACK 的回傳才能順利運作,但是 wireless medium 是 link 之間共享的,且一 般而言,TCP 連線中的 data flow 和 ACK flow 會走向相同的路徑,造成同一條 TCP flow 的 data link 和 ACK 相互競爭共有的 wireless medium。因此 data link 和 ACK link 的 頻 寬 分 配 也 是 影 響 TCP 效 能 的 關 鍵 。 我 們 可 以 用 normalized

(16)

bandwidth ratio k 來描述 TCP data packet 和 ACK packet 頻寬需求[12] :

k d

1

length packet data

length packet ACK

bandwidth channel

packet ACK

bandwidth channel

packet

data

× ×

=

Eq. 3

其中 d 為 delay-ACK factor。假設 data packet length 為固定值,則最佳的頻寬分 配是在 k=1 時,此時 data packet 和 ACK packet 得到的頻寬比等於它們的封包長 度比。

在後面的章節中,我們的 TDMA scheduling scheme 會同時考慮這兩項特質,

並分析使用此 scheduling scheme 的 TCP performance。此外,wireless link 具有容 易發生 error 的特質,因此具有很高的 packet loss probability,我們也會藉由實驗 分析討論 packet loss 對 TCP performance 的影響,並尋找解決方法。

1.2. 研究 研究 研究 研究動機 動機 動機 動機

由於 wireless mesh network 逐漸成為熱門的網路架構以及眾多網路應用使用 TCP 做為 transport layer 通訊協定,如何在 wireless mesh network 上提供良好的 TCP 效能變成一項重要的議題。

1.1.3 小節討論了 TCP 運行在 wireless mesh network 上遇到的問題。以往在 TCP over wireless mesh networks 上的研究[5] [6] [7] [8] [9] ,大部份都是考慮在 單一 interface、CSMA/CA-based MAC 的 stationary wireless mesh network 上討論 TCP 的效能以及提升 TCP throughput,著重在處理 TCP 跟 IEEE 802.11 MAC 或 CSMA/CA-based MAC 之間的交互作用以及 hidden terminal/exposed terminal 的 議題。使用 CSMA/CA-based 的 MAC,有 channel access contention 的問題,鄰近 的 wireless nodes 互相爭搶有限的 wireless resource,非常容易發生 collision 而浪 費 wireless resource。若使用 TDMA-based MAC,可以避免因 channel contention 造成的 collision,妥善地使用可用頻寬並提供上層頻寬保證的服務。

(17)

1.3. 研究 研究 研究 研究目的 目的 目的 目的

本篇論文想要回答一個問題:假如使用 spatial TDMA 進行排程設計,我們 可以保留多少 TCP transmission 在有線網路上的良好特性,使之能在 wireless mesh network 上提供好的 overall throughput 表現?我們考慮 TCP 傳輸的頻寬不 對稱特性,使用 spatial TDMA 進行排程設計,在 chain topology 的 multi-hop wireless network 上進行實驗觀察 TCP 的效能,希望能藉由 spatial TDMA 排程設 計及其它方法盡可能地保存 TCP 在有線網路上的良好特性(如 1.1.1 所述)。

1.4. 論文架構 論文架構 論文架構 論文架構

本篇論文之後的章節組織如下:第二章整理有關 TCP performance over wireless mesh network 的文獻;第三章,我們將介紹兩種 TDMA scheduling scheme – equal-shared 的 schedule A 和 demand-based 的 schedule B,並進行模擬 實驗,討論其在 chain topology 的 wireless mesh network 和理想的無線環境下對 TCP 效能的影響。第四章,我們將討論當使用這兩種 scheduling scheme 的 TCP flows 運行在狀況不佳的無線環境之中(會因為 wireless link error 發生 packet loss) 的效能表現。第五章,我們使用 link-layer retransmission scheme 來改善 TCP 因 packet loss 而下降的效能,並討論其優缺。第六章是總結我們的研究以及未來的 研究方向。

(18)

2. 文獻探討 文獻探討 文獻探討 文獻探討

在文獻上,改進 wireless mesh network 上 TCP 效能的方法主要分三類:從 MAC layer 著手、從 transport layer 著手、以及其它方式。

2.1. MAC Layer Approach

2.1.1. Distributed Link Random Early Drop

Distributed Link Random Early Drop (簡稱 LRED)由 Z. Fu 等人提出[5] ,這篇 paper 主要在討論 wireless mesh network 上 TCP 的 throughput 以及封包遺失的成 因。在這篇 paper 中,作者們觀察到 TCP 在 wireless mesh network 上的 average window size 通常都比 optimal window size 來得大,因此 TCP 常常送過量的 data 到網路中,然後又因嚴重的 MAC-layer contention 造成封包遺失而迅速降低 window,在這樣反覆升升降降的過程中使網路的 utilization 沒有最佳化,造成 TCP throughput 不佳。LRED 的主要理念是根據 wireless mesh router 觀測到的 MAC layer queue length 調整 wireless link 的 dropping probability,這樣的作法類 似有線網路的 router 的 Random Early Drop 方法。當 buffer queue 到達一定高度時 (但尚未 overflow),LRED 讓封包以一固定機率遺失,藉此通知上層的 TCP「網 路已經趨近 overload」,使 TCP 降低傳送速度,同時也可以避免過多的封包送到 wireless channel 上產生過度的 MAC-layer contention。

(19)

圖 2-1 LRED 機制[5]

LRED 的作法可以用圖 2-1 來說明。橫軸為 MAC-layer 的 average queue length,當 queue length 超過 minimum threshold 時,啟動 LRED 讓封包以一定的 機率遺失,封包遺失的機率隨 queue length 成正比。這個方法的好處是讓 wireless mesh network 在 overload 之前就降低傳輸速度,避面進一步的惡化 MAC-layer contention 的狀況。

2.2. Transport Layer Approach

文獻上也有一些改善方式從 transport layer 著手,修改 TCP 的 congestion control 機制使得 TCP 能適應 wireless mesh network 的環境,以提供更好的 throughput,以下逐一介紹。

2.2.1. Dynamic Adaptive Acknowledgement Strategy

R. Oliveira 和 T. Braun[6] [7] 提出 dynamic adaptive acknowledgement strategy 以提升 TCP 在 wireless mesh networks 上的 throughput。這兩位作者認為 TCP 在 wireless mesh network 上最大的問題在於太多「不必要的重傳」以及 data 和 ACK 封包之間互相競爭 wireless channel resource。他們把 RFC 2581[2] 中提出的 delayed ACK 機制延伸,接收端延遲 ACK 的發送以減少 ACK traffic,並根據

(20)

channel condition 猜測傳送端的 congestion window 以動態調整 delayed ACK 的數 量。此法利用 TCP 的 cumulative ACK 的特性,sequence number 為 i 的 ACK 可 以 acknowledge 前面所有 sequence number ≤ i 的 data packet,以減少 ACK traffic 量。

圖 2-2 TCP-DAA[6] [7]

Dynamic adaptive acknowledgement strategy 的方法可以用圖 2-2 來描述,在 傳輸順暢的狀況下,接收端一直延遲 4 個 ACK(對於每 4 個連續的 data 封包回傳 一個 ACK 封包),4 為 delay ACK factor。當封包遺失時再調降 delay ACK factor。

2.2.2. Adaptive Pacing

S. ElRakabawy 等人[8] [9] 提出 TCP adaptive pacing 的機制。Adaptive pacing 的構想可用圖 2-3 來說明。在簡單的 chain topology 上,假設傳輸範圍為 250 公 尺,干擾範圍為 550 公尺,wireless node 沿著一直線擺放且相鄰 200 公尺。在這 樣的 topology 上,連續的 4 個 hop 之內同時只能有一個 node 進行傳輸,否則就 會發生 collision。以圖 2-3 為例,node D 正在傳輸,因為其干擾範圍涵蓋 node B、

C、E、F,因此這些 node 都不能接收其它 node 的傳輸。以此類推,在長度為 h hops 的 chain topology 上,最多只能有 h/4 個 node 在傳輸,也就是讓網路上同時最多 只有 h/4 個 data packet in flight。因此 TCP with adaptive pacing 的主要構想就是讓 連續的 data 封包彼此間隔 4 個 hop 以上。作者計算 data packet 通過 4 個 hop 所

(21)

需的時間,稱為 FHD(four hop propagation delay),讓傳送端在傳送封包時,使 每個連續封 包之間的 時間差都至 少大於 FHD,如此可以達到減少 channel interference 以提升 TCP throughput 的目的。

圖 2-3 Spatial reuse

Adaptive pacing 的主要理念來自於對 chain topology 的觀察,因此這個方法 在其它 network topology 上表現不佳,同時 adaptive pacing 將 TCP 的傳送速度限 制住,使 network utilization 沒有被最大化。

2.3. Other Approach

有學者提出新的 transport layer 通訊協定,這類通訊協定多半為了 operability 而建置在 TCP 之下,使所有使用 wireless mesh network 的裝置不用更改通訊協 定,只要在 mesh router 上裝置新的通訊協定即可。

K. Tan 等人[10] 針對 wireless mesh network 的特性提出新的 congestion control protocol,稱作 Explicit Wireless Congestion Control Protocol (EWCCP)。這 個 protocol 設置在 TCP 之下 IP 之上,並在 data 封包上加入自訂的 header 以提供 mesh router 觀察到的 congestion 狀態。EWCCP 以 queue length 作為判斷 congestion 的依據,相鄰的 mesh router 互相傳遞封包通知對方自己的 queue length,然後每 個 mesh router 再根據自己以及鄰居的 queue length 計算出合理的 sending rate,分

(22)

配到每條 transport layer 的 flow 上,並將此值填入相對應的 flow 的封包 header 中,以告知該 flow 的 sender 調整速度。這樣的作法並不侷限於某些特殊型態的 network topology,但可能的缺點是 mesh router 互相之間要傳遞 queue length information,消耗掉有限的 wireless resource,此外新增的 header 也帶來額外的 overhead。

2.4. Improving TCP performance on error-prone wireless link

Wireless link 的一項特質是容易發生 link errors 而造成 packet loss,如同第一 章討論的,TCP 分辨不出 packet loss 是因為 congestion(queue buffer 滿了)還是 wireless link errors,因此 TCP 不當地降低 congestion window 造成 throughput 下 降。文獻上有許多文章討論如何改善因 wireless link errors 而造成 TCP 效能下降 的問題,主要可分成三類:TCP snoop、link-layer retransmission 及 split-connection。

2.4.1. TCP snoop

Balakrishnan 等人[15] [16] 提出 TCP Snoop protocol,幫助改善 TCP 在 wireless link 上的 performance。TCP Snoop 基本上也是一種 local 的 retransmission scheme,但它不依賴 link-layer 傳送 ACK,而是在 link-layer 加上 Snoop module 以 monitor TCP flow 的狀態。Snoop module 會將經過 wireless station 但尚未被 acknowledged 的 TCP data packet 暫存。當 Snoop module 發現第二個 duplicate ACK 的時候,立即在 wireless link 上進行 retransmission,並將之後的 duplicate ACK 丟棄以避免 TCP 發生 fast retransmission。TCP Snoop 的問題在於 wireless station

(23)

必須要維護所有流經其上的 TCP flows 的 state,並且要 cache 這些 TCP flows 的 unacknowledged data packet。

2.4.2. Local link-layer retransmission scheme

Eckhardt 等人[14] 討論 local link-layer retransmission 對 TCP performance over error-prone wireless link 的改善。他們認為對付 local wireless link error 最佳的方式 是 local 的 error control,因此進行 emulation 實驗討論如何設計理想的 link-layer retransmission 及 error control scheme 使 TCP 正常運作。他們發現,如果要讓 TCP 維持 steady state,link-layer retransmission scheme 必須避免發生 packet reordering 而造成 TCP 的 fast retransmit,此外 retransmission 的速度必須要夠快以避免 TCP 發生 timeout。

2.4.3. Split-connection

另 外 一 種 改 善 error-prone wirelesss link 上 TCP 效 能 的 方 法 是 split-connection,如 Bakre 等人提出的 I-TCP[17] 。Split-connection 的作法將 TCP 傳送端到接收端的 TCP 連線分為二段連線(有線和無線),第一段(有線)由有線傳 送端到 AP,第二段(無線)則由 AP 到無線的接收端,因此在無線這段 TCP 連線 所遭遇的任何 packet loss 都不會影響原來的有線 TCP 傳送端。Split-connection 的缺點在於它破壞 TCP end-to-end semantics,當有線段的傳送端送出某個封包 後,該封包尚未真正地被傳送到無線的接收端之前,傳送端就可能已經收到中間 點 AP 所回傳該封包的 ACK,因此 TCP 傳送端對可用頻寬以及網路狀態的探測 可能是錯的。

(24)

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。

(25)

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 的頻寬需求。

d L

L C C k d

data ack ack

data 1

1 length packet data

length packet ACK

bandwidth channel

packet ACK

bandwidth channel

packet data

×

×

=

×

×

=

Eq. 4

其中 d 為 delay-ack factor,代表 TCP 接收端每收到 d 個 data packet 回傳 1 個 ACK。k=1 時是 TCP 運作得最順暢,此時 data packet 和 ACK packet 得到的頻寬 比正好等於 packet length 的比,換句話說,在 k=1 的情況下,我們每傳送出一個 TCP packet 就會剛好對應到回傳一個 ACK packet。當 k>1 時,ACK packets 所獲 得的頻寬不足,因此 接收端以較慢的速率 傳送 ack,這樣會造成傳送端的 congestion window 成長速度緩慢,進而造成 TCP throughput 表現不佳。當 k<1 時,data packet 所獲得的頻寬不足,傳送端被迫以較慢的速度傳送 data,而 TCP

(26)

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 希望達成 兩個目標:

1 在每個 hop 上達到 normalized bandwidth ratio k = 1,

k d

1

length packet data

length packet ACK

bandwidth channel

packet ACK

bandwidth channel

packet

data

× ×

=

Eq. 5

,使 TCP flow 順暢地流動。

2 一個 frame 所包含的 timeslot 數(Nframe)為最小,如此可以最小化一個傳輸循 環所需的時間,以達到最大 throughput。

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

(27)

圖 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 都有連線,表示互相干擾。

(28)

為了達成前述的 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 圖(第二階

(29)

段)。演算法第一階段先將所有 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

(30)

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 的效果。

(31)

圖 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 來說明:

(32)

圖 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 的

(33)

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

(34)

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 排出的

(35)

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

圖 3-12 Schedule B of four-node topology

圖 3-13 Schedule B of seven-node topology

(36)

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。

(37)

圖 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

(38)

throughput 如圖 3-17。

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

圖 3-17 individual TCP throughput of four-node topology

Schedule B 的 overall throughput 和其中各 TCP flow 的 individual throughput 都比 Schedule A 高 50%。在 Four-node chain topology 中 Schedule B 中只要花費

6Nu_data+6Nu_ack的時間就可以讓所有 TCP flow 完成 1 個 round-trip 的傳輸,但在

Schedule A 中需要 9Nu_data+9Nu_ack的時間,為 schedule B 所費時間的 1.5 倍,因 此 schedule B 有約 50%的 throughput gain,符合我們的預期。

(39)

圖 3-18 和圖 3-19 分別為 seven-node chain topology 的 overall throughput 和 individual throughput。

圖 3-18 overall TCP throughput of seven-node topology

圖 3-19 individual TCP throughput of seven-node topology

在 Seven-node 的情境中,schedule B 的 throughput 約為 schedule A 的 280%。

Schedule A 讓所有 flows 完成一個 round-trip 傳輸需時 24Nu_data+24Nu_ack, schedule B 為 18Nu_data+12Nu_ack,在模擬環境設定中,1 個 Nu_data的傳輸時間為 1.298 ms,

1 個 Nu_ack的傳輸時間為 0.236 ms,因此 schedule A 的時間約為 schedule B 的 1.41

(40)

倍,但實驗結果 schedule B 對 schedule A 的 throughput gain 多達 180%,比我們 預期的還要高。在 seven-node chain topology 中,TDMA scheduling 可以充份利用 spatial reuse 的特性,將不互相干擾的 wireless link 安排在同一時間進行傳送。依 照 traffic demand 分配 timeslots 的 Schedule B 在可以 spatial reuse 的環境中表現更 突出。

衡量 Individual throughput 的 fairness 程度,我們可以使用 Jain’s fairness index[13] :

( ( ) ∑ )

= ⋅

2

2

index fairness

i i

x n

x

Eq. 7

x

i為 flow i 所得的 throughput,n 為 flows 的數量。Fairness index 的值介於 1/n 到 1 之間,愈接近 1 代表 throughput 分配愈均勻愈公平,反之則愈不公平。我們 將兩種 schedule 方法在兩種 chain topology 下的 throughput fairness 整理在表 3-2 中,實驗結果顯示這 2 種 TDMA scheduling 都可以得到非常好的 fairness,TCP 的 throughput fairness 特性(如 1.1.1 第二點所述)得以保持。

表 3-2 fairness index

Fairness Index

Four-node chain topology Seven-node chain topology

Schedule A 0.9996 0.9988

Schedule B 0.9990 0.9965

3.3.2. TCP Congestion Window 變化情形 變化情形 變化情形 變化情形

我們將實驗中觀察到的 TCP congestion window 隨時間變化畫成圖,圖 3-20 和圖 3-21 分別為 four-node chain topology 中 schedule A 和 schedule B 的 TCP congestion window 變化情形,圖 3-22 和圖 3-23 為 seven-node chain topology 的 TCP congestion window 變化情形。

(41)

圖 3-20 TCP congestion window 變化情形(schedule A, four-node)

圖 3-21 TCP congestion window 變化情形(schedule B, four-node)

(42)

圖 3-22 TCP congestion window 變化情形(schedule A, seven-node)

圖 3-23 TCP congestion window 變化情形(schedule B, seven-node)

(43)

由以上四張圖可以看出,無論是 schedule A 或 schedule B,所有 TCP flow 的 congestion window 都可以很快的成長到最大值 65535 Bytes 並且維持在此處直到 模擬結束,也就是所有 TCP flow 都可以很快地到達”steady state”。但 long-hop flow (如 four-node 的 flow 1 和 seven-node 的 flow 1, flow 2…等等)需要比 short-hop flow 晚一些才到達 steady state。

3.3.3. TCP smoothed round-trip time

提出 schedule B 的理由之一是因為 schedule B 可以在比較短的時間內讓所有 TCP flow 完成一個 round-trip 的傳輸,因此,我們預期 schedule B 所有 TCP flows 的 round-trip time 應該要小於 schedule A。表 3-3 列出 four-node chain topology 中,模擬結束時所有 TCP flow 的 smoothed round-trip time,表 3-4 為 seven-node chain topology 的 smoothed round-trip time。

表 3-3 srtt 比較(four-node)

Smoothed round-trip time – four-node chain topology Flow 1 Flow 2 Flow 3 Schedule A 1.25 sec 1.22 sec 1.28 sec Schedule B 0.88 sec 0.84 sec 0.84 sec

表 3-4 srtt 比較(seven-node)

Smoothed round-trip time – seven-node chain topology

Flow 1 Flow 2 Flow 3 Flow 4 Flow 5 Flow 6 Schedule A 3.25 sec 3.06 sec 3.19 sec 3.28 sec 3.19 sec 3.23 sec Schedule B 1.30 sec 1.23 sec 1.20 sec 1.19 sec 1.17 sec 1.14 sec 在 four-node chain topology 中,Schedule A 的 smoothed round-trip time 平均 比 schedule B 多 50%。在長度更長的 seven-node chain topology,schedule A 的 smoothed round-trip time 平均比 schedule B 多 165%。一如我們的預期,使用 schedule B 的 TCP flow 可以更快地完成 round-trip 的傳輸,減少 round-trip delay。

我們進一步的觀察 round-trip time 的組成。我們可以計算 queueing delay - srtt ratio

(44)

如下:

srtt

queue in time average packet

ratio srtt - delay

queueing

=

Eq. 8

表 3-5 和表 3-6 列出 four-node chain topology 和 seven-node chain topology 各個 TCP flows 的 queueing delay – srtt ratio。所有的 TCP flows 的 queueing delay – srtt ratio 都超過 86%以上,代表 queueing delay 佔 srtt 86%以上的時間,意即 TCP data 封包在無線網狀網路上傳送時,86%的時間都是排在 queue 裡面等待。

表 3-5 queueing delay-srtt 比值(four-node)

Queueing delay - srtt ratio – four-node chain topology Flow 1 Flow 2 Flow 3 Schedule A 93.56% 93.18% 96.16%

Schedule B 90.93% 95.75% 91.00%

表 3-6 queueing delay-srtt 比值(seven-node)

Queueing delay - srtt ratio – seven-node chain topology

Flow 1 Flow 2 Flow 3 Flow 4 Flow 5 Flow 6 Schedule A 96.33% 96.13% 96.52% 95.53% 96.17% 95.04%

Schedule B 86.90% 88.89% 90.75% 90.47% 91.16% 94.33%

3.3.4. Link utilization

我們認為 schedule A 有其缺點,由於 schedule A 將 timeslots 平均分配給所有 wireless link,但在其上運行的 TCP 效能可能會被 bottleneck link 的 capacity 限制 住。離 gateway 較遠的 node 雖然可以很快地送出封包,但也終究會因靠近 gateway (所有 TCP flows 匯集之處)的 bottleneck link capacity 不夠而將這些封包暫存在 intermediate node,而使得 TCP flows 不能夠順暢的流動。由於 TCP 是 feed-back based 的 protocol,會自動探測可用的 bandwidth 並調整傳送端的 sending rate,在 schedule A 中最終的結果可能導致離 gateway 較遠的 wireless link 沒有被有效利 用。

我們可以觀察各個 wireless link 的 utilization 證明這點。表 3-7 和表 3-8 將

(45)

four-node chain topology 和 seven-node chain topology 的 link utilization 列出。編號 較小的是離 gateway 較遠的 wireless link,traffic demand 比較少,在 schedule A 中,數據顯示這些 link 的 utilization 都相當低。但在 schedule B 中,timeslots 的 分配是按照 traffic demand 輕重程度來排,因此所有 link 都可以保持很高的 utilization。實驗證明 Schedule B 保存 TCP 的良好特性之一:讓 TCP flows 盡可 能地使用所有的可用頻寬。

表 3-7 link utilization (four-node)

Link utilization – four-node chain topology Link d

1

Link d

2

Link d

3

Schedule A 32.62% 65.74% 99.98%

Schedule B 96.08% 97.92% 99.92%

表 3-8 link utilization (seven-node)

Link utilization – seven-node chain topology

Link d

1

Link d

2

Link d

3

Link d

4

Link d

5

Link d

6

Schedule A

16.01% 32.15% 48.29% 64.78% 81.30% 99.02%

Schedule B

88.62% 90.60% 92.51% 94.28% 95.49% 97.39%

3.4. 討論 討論 討論 討論

我們在這一章討論使 TCP 順暢流動的 k=1 model,並依此提出兩種 TDMA scheduling scheme:一個是平均分配 timeslots 給所有 wireless link 的 schedule A,

另外一個是按照 traffic demand 分配 timeslots 的 schedule B。實驗結果的各項數 據整理在下面表 3-9 和表 3-10 中。

(46)

表 3-9 各項效能比較(four-node)

Four-node topology

Cycle time

Overall throughput

Fairness

index Bottleneck Link utilization

Link

d1 32.62%

Link

d2

65.74%

Schedule A

9Nu_data+9Nu_ack 1.27 Mbps 0.9996

最終所有 flow 的 data rate 會被 link d3 跟 a3 限制住, 因此分配給 d1,d2,a1,a2 的

slots 可能造成浪費 Link

d3

99.98%

Link

d1

96.08%

Link

d2 97.92%

Schedule B

6Nu_data+6Nu_ack 1.90 Mbps 0.9990

Link

d3

99.92%

實驗數據證明根據 traffic demand 分配 timeslots 的 schedule B 比 schedule A 提 供 TCP 更好的 overall TCP throughput,主要原因是在於 schedule A 分配一樣多的 頻寬給每個 hop,使得 cycle time 變長,per-link 可以獲得的頻寬變少,per-flow 可以使用的頻寬變少,所以影響到 overall throughput。schedule B 根據 per-hop 的 traffic demand 讓 end-to-end 的傳輸一輪所需的 cycle time 比 schedule A 小,這點 可以從 3.3.3 的 TCP flows 的 round-trip time 數據上看出,schedule B 的所有 TCP flows 的 round-trip time 都比 schedule A 的 round-trip time 小。另外,Schedule A 的 timeslots 不考慮 per-hop 的 traffic demand,因此讓 TCP flow 卡在 bottleneck link,這樣會導致其它 wireless link 的 utilization 過低而造成 timeslots 的浪費,

schedule B 改善了這個情況,這點在 3.3.4 的數據中可以觀察到。

(47)

表 3-10 各項效能比較(seven-node)

Seven-node topology

Cycle time

Overall throughput

Fairness

index Bottleneck Link utilization Link

d1 16.01%

Link

d2

32.15%

Link

d3

48.29%

Link

d4

64.78%

Link

d5 81.30%

Schedule A

24Nu_data+24Nu_ack 0.95 Mbps 0.9988

最終所有 flow 的 data rate 會被 link d6 跟 a6 限

制住, 因此分配給其它 link 的 slots 可能造成浪

Link

d6

99.02%

Link

d1

88.62%

Link

d2 90.60%

Link

d3 92.51%

Link

d4

94.28%

Link

d5

95.49%

Schedule

B 18Nu_data+12Nu_ack 2.68 Mbps 0.9965

Link

d6 97.39%

在 individual throughput fairness 方面來看,兩種 scheduling 方式都可以得到 很好的 fairness 結果。這點可以從 3.3.2 的 congestion window 的變化情形來說明。

兩種 scheduling 的 congestion window 變化情形極為類似,所有 TCP flow 都在很 短的時間內將 congestion window 成長到並且維持在最大值,進入 steady state,

因此在大部份時間內,所有 TCP flow 都是以最大的 window size 傳輸資料,這造 成所有 TCP flows 送出大量的資料到網路上,讓 intermediate node 的 queue size

(48)

維持在很高的狀態,因此也使得 TCP flows 的 rtt 很大。Short-hop flow (編號較大 的 flow)的 window size 成長速度稍快,因此 throughput 稍微大於 long-hop flow。

但長期來說,因為所有 TCP flow 在絕大部份時間內都以最大 window size 傳輸資 料,而且在同一種 scheduling 中的 per-flow round-trip time 差異不大,因此 per-flow 的 throughput 差異不明顯,可以有很好的 throughput fairness。

總結來說,schedule B 使 TCP 有較好的效能表現,schedule B 同時保留兩項 TCP 在有線網路上的良好特性:使 TCP 盡可能的利用可用頻寬,以及保持 throughput fairness。在之後的章節中,我們將只使用 schedule B 進行效能評估。

(49)

4. Wireless link errors 引發的 引發的 引發的 引發的

packet loss 對 對 對 對 TCP 效能 效能 效能 效能的影響 的影響 的影響 的影響

使用 TDMA-based scheduling scheme 可以避免無線網狀網路因為 channel interference 和 channel contention 造成的 collision,我們稱此類 packet loss 為 MAC layer packet loss,因為這些 packet loss 是由於 MAC layer protocol 機制的本質所 造成。而在現實的環境中,wireless link 非常容易發生 error 而造成 packet loss。

Timeout 和 three duplicate ACK 是 TCP 判斷 packet loss 的指標。在有線網路上,

輕微的 congestion 可能造成一個 window 內的一兩個封包遺失,因此有 three duplicate ACK 的狀況發生,嚴重的 congestion 可能讓一連串送出的 data 封包都 被遺失(因為 buffer 滿了)而發生 timeout,而 TCP 將所有 packet loss 都視為網路 發生 congestion 的徵兆,發生 packet loss 時,TCP congestion control 機制會調整 congestion window 甚至是 timeout value,進而影響 TCP 的 throughput。但在 wireless link 上,packet loss 是偶然發生,但這些 packet loss 不代表網路發生 congestion,

此時 packet loss 引發 TCP congestion control 機制調降 window size 對 TCP throughput 可能造成傷害。本章將著重 TCP 良好特性的第二點 (參考 1.1.1),討 論因 wireless link error 而造成的 random packet loss 對使用 TDMA scheduling 的 TCP performance 將有何影響?

(50)

4.1. Packet loss at the bottleneck link

我們考慮只有在 traffic load 最重的 bottleneck link 發生 packet loss 的情境,如 圖 4-1,所有 TCP flows 都會流經此處。我們定義一個參數:packet loss probability on single wireless link probability

p

,讓 bottleneck link 以 p 的機率隨機地遺失封 包。我們觀察各種不同的 TCP flow 在遭遇 packet loss 時的效能有何變化。

圖 4-1 packet loss at the bottleneck link

4.1.1. Throughput performance

表 4-1 和表 4-2 是沒有 packet loss (即 p=0%)和 p=5% packet loss 的 overall TCP throughput 比較。在

p=5%時,TCP 的 throughput 下降,也無法保持 throughput

fairness。

(51)

表 4-1 有無 packet loss 之效能比較(four-node)

Four-node topology

p=0% p=5% at the bottleneck link

Overall

throughput

Fairness index

Overall throughput

Throughput degradation

ratio

Fairness index

Schedule B 1.90 Mbps 0.9990 1.50 Mbps 78.93% 0.9287

表 4-2 有無 packet loss 之效能比較(seven-node)

Seven-node topology

p=0% p=5% at the bottleneck link

Overall

throughput

Fairness index

Overall throughput

Throughput degradation

ratio

Fairness index

Schedule B 2.68 Mbps 0.9965 2.32 Mbps 86.66% 0.9099 我們觀察 per-flow 的 individual throughput,如圖 4-2 和圖 4-3。Long-hop flows 的 throughput 衰退程度比 short-hop flows 嚴重。對於 long-hop low 來說,packet loss 發生在離 TCP 傳送端最遠的 wireless link,TCP 的 end-to-end retransmission 機制 讓 long-hop flow 要花比較久的時間(相對於 short-hop flow)才發現 packet loss,因 此也要花比較長的時間復原。但 short-hop flow 在發生 packet loss 時,throughput 居然不降反升,這是因為 long-hop flow throughput 下降之後空出來的可用頻寬被 反應速度比較快(距離發生 packet loss 的 link 比較近)的 short-hop 使用掉。

(52)

圖 4-2 individual TCP throughput under p=5% (four-node)

圖 4-3 individual TCP throughput under p=5% (seven-node)

圖 4-4 和圖 4-5 為 flow 1 (long-hop flow)和 flow 6 (short-hop flow)的 TCP sequence number 隨時間變化的情形。兩張圖的 x 軸時間尺度是一樣的,在圖上 連續 sequence number 中間的斷層表示 TCP 遭遇 packet loss 發生 timeout,斷層越 大表示反應和恢復速度越慢。flow 1 (圖 4-4)上的斷層比起 flow 6 (圖 4-5)的斷層 大,說明 long-hop flow 的確需要花較多的時間復原 lost packet。

(53)

圖 4-4 TCP sequence number of flow 1 under p=5% (seven-node)

圖 4-5 TCP sequence number of flow6 under p=5% (seven-node)

(54)

4.1.2. TCP congestion window 變化情形 變化情形 變化情形 變化情形

我們將 p=5%的 TCP congestion window 隨時間變化的情形整理在圖 4-6 和圖 4-7。

圖 4-6 p=5%時 TCP congestion window 變化情形(four-node)

圖 4-7 p=5%時 TCP congestion window 變化情形(seven-node)

(55)

我們比對 3.3.2 之中 p=0%的數據(圖 3-21 和圖 3-23)發現,p=5%時,TCP 的 congestion window 不斷地上下震盪,因為 TCP 的 congestion control 演算法在發 生 packet loss 時會調降 congestion window size,但隨著及時收到的 TCP ACK 又 會逐漸調升其 congestion window size。由此可知 TCP 將 wireless link error 所造成 的 packet loss 當成是因 network congested 造成的 packet loss,因此而不恰當地調 降 congestion window size 使 throughput 下降。實際上這些 packet loss 是隨機地發 生,調降 congestion window 並沒有辦法避免 packet loss 的發生。

4.1.3. TCP smoothed round-trip time

表 4-3 表 4-4 和列出在 p=5%時 TCP 模擬結束時的 smoothed round-trip time。跟表 3-3 表 3-4 和比較起來,p=5%時的 round-trip time 都小很多。因為 packet loss 導致 TCP 時時調降的 congestion window 的緣故,TCP 沒辦法持續以 最大的 window size 送出資料,因此 data 並不像 p=0%時大量排在 queue 中而增 加 queueing delay。

表 4-3 srtt under p=5% (four-node)

Smoothed round-trip time – four-node chain topology Flow 1 Flow 2 Flow 3 Schedule B 0.2031 sec 0.1250 sec 0.1094 sec

表 4-4 srtt under p=5% (seven-node)

Smoothed round-trip time – seven-node chain topology

Flow 1 Flow 2 Flow 3 Flow 4 Flow 5 Flow 6 Schedule

B

0.2188 sec

0.2500 sec

0.1406 sec

0.1875 sec

0.1875 sec

0.1563 sec

數據

圖  1-1 Wireless mesh network 示意圖
圖  1-3 Exposed terminal 問題
圖  2-2 TCP-DAA[6] [7]
圖  3-1 N-hop chain network
+7

參考文獻

相關文件

熟悉 MS-OFFICE

聽、說、讀、寫,以 及分析、評價等能力 例:設計課業,讓學生 應用所學,並運用各

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

熟悉 MS-OFFICE

無線感測網路是個人區域網路中的一種應用,其中最常採用 Zigbee 無線通訊協 定做為主要架構。而 Zigbee 以 IEEE802.15.4 標準規範做為運用基礎,在下一小節將 會針對 IEEE

本研究旨在使用 TI-Nspire CAS 計算機之輔助教學模式,融入基礎 統計學的應用,及研究如何使用 TI-Nspire CAS

本研究以河川生態工法為案例探討對象,應用自行開發設計之網

本研究以河川生態工法為案例探討對象,應用自行開發設計之網