• 沒有找到結果。

TCP congestion window 變化情形

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

4.1. Packet loss at the bottleneck link

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)

我們比對 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

4.2. 討論 討論 討論 討論

在 Wireless bottleneck link error 造成的 random packet loss,會使得 wireless mesh network 上 path hop 長度不同的 TCP flow 有不同程度的 throughput 衰退,

long-hop flow 的 throughput 衰退程度遠比 short-hop flow 嚴重,因此使 throughput fairness 下降。這是因為在實驗的環境中,僅依靠 TCP end-to-end retransmission 機制處理 random packet loss,而 long-hop flow 需要花較長的時間才能 recover,

所以 long-hop flow 的 throughput 衰退得比較嚴重。另外,TCP congestion control 機制受到 random packet loss 的影響,使得 congestion window 不斷上下震盪無法 保持穩定,對 throughput 也是一項傷害。

我們在第五章將使用 link-layer retransmission scheme 解決 random packet loss 造成的 TCP 效能衰減。

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

分析 分析 分析

針對 bottleneck link 發生 packet loss 而造成 TCP 效能下降問題,我們採用 link-layer retransmission scheme 作為解決方法。在文獻上,有許多文章[14] [15] [16]

討論如何在容易發生 error 的 wireless link 上提升 TCP throughput,不過都是考慮 在 single-hop wireless network 的環境。Eckhardt 等人[14] 認為處理 wireless link errors 的理想方法應該是用 local error control,而不應該讓 TCP 的 end-to-end error control 機制或是其他 end-to-end 的方式處理。End-to-end 的方法有其缺點,

end-to-end retransmission 在沿途經過的每段 wireless link 都要花費時間和消耗網 路資源。若使用 link-layer local error control,可以迅速地處理 packet loss,而且 可以達到 transparent 的效果(上層 protocol 不需要進行修改,而且也不容易發覺 packet loss 的發生),因此佈署 link-layer local error control 比佈署 end-to-end error control 機制容易。

在這一章,我們將加入一個 link-layer retransmission scheme 以幫助 TCP 在 error-prone 的 wireless mesh network 上提升 throughput,並進行模擬實驗觀察並討 論其效能。

5.1. Link-layer retransmission scheme

我們使用一個簡單的 link-layer retransmission scheme,運作方式如圖 5-1,

每個 wireless node 若收到一個封包,則回覆傳送者一個 link-layer ACK 封包。TCP data 和 TCP ACK 對 link-layer 來說都是一個 link-layer data 封包,因此都要回覆 一個 link-layer ACK 以確認封包是否正確被接收。送出 link-layer data 封包之後,

若在下一個 receiving timeslot 沒有收到 link-layer ACK,傳送者就認為此封包遺 失,會立即在下一個 sending timeslot 安排重傳此 link-layer data 封包。不使用 timer 計時以判斷是否 timeout 的原因是由於 TDMA timeslot 的時間非常規律,timeslot index 本身就可以當 timer 作計時使用。如同 IEEE 802.11,我們也設定一個重傳 上限次數的參數,重傳次數上限設為 7 次,若重傳 7 次還沒有成功送達,此封包 就會被丟棄。

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

5.2. 實驗結果 實驗結果 實驗結果 實驗結果

和 4.1 一樣,我們設定 bottleneck link 有 p 的機率發生 packet loss,分別在 four-node chain topology 和 seven-node chain topology 上進行實驗,比較使用 link-layer retransmission scheme 和沒有使用 link-layer retransmission scheme 的 TCP 效能表現。

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

由於 link-layer retransmission scheme 需要傳輸 link-layer ACK 以確認封包是 否送達,會額外消耗可用頻寬帶來 overhead。我們先在 p=0%的狀況下,比較有 否使用 link-layer retransmission scheme 的 throughput 來量測 link-layer ACK 造成 多少 overhead。

每個 TCP data packet 或 TCP ACK packet,對 link-layer 來說都是 link-layer data,因此傳送一個 TCP data packet 或 TCP ACK packet 額外付出的代價是一個 link-layer ACK packet 所消耗的頻寬。要分析 link-layer ACK 造成的 overhead,我 們必需要知道 TCP data packet、TCP ACK packet 和 link-layer ACK packet 分別所 消耗的頻寬。我們將傳送封包所花費的時間視為消耗的頻寬,圖 5-2、圖 5-3、

圖 5-4 分別為 TCP data packet、TCP ACK packet 和 link-layer ACK packet 的結構 及傳輸所耗費時間。

圖 5-2 structure of TCP data packet

圖 5-3 structure of TCP ACK packet

圖 5-4 structure of link-layer ACK packet

在 IEEE 802.11b 中,封包中 physical layer header 的部份是以最低速 1Mbps 傳送,後面 link-layer 以上的部份才用設定的速度(11Mbps)傳送。因此,傳送一 個 payload 為 1460Bytes 的 TCP data packet 需時:

ms

傳送一個 link-layer ACK packet 需時:

ms schedule,計算出在一個 frame 裡面所傳送的 link-layer ACKs 消耗的頻寬,然後 依此計算傳送 link-layer ACK 所產生的 overhead。

在 four-node chain topology 中 schedule B(參考圖 3-12)的 link-layer ACK

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

Four-node Seven-node Schedule B 21.24% 19.16%

實驗結果如下,表 5-2 為 four-node chain topology 的結果,表 5-3 為 seven-node topology 的結果。

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

模擬實驗的結果和表 5-1 分析的結果相當吻和,使用 link-layer retransmission scheme 因為傳送 link-layer ACK 所帶來的 overhead 約為 19%到 21%。在

p=0%的

情況下就有 19%到 21%的 overhead,在 p>0 的情況下,我們預期 overhead 會更 大,local retransmission 會消耗頻寬造成 throughput 下降,但我們希望 local retransmission 能幫助 TCP 避免引發不必要的 end-to-end retransmission。

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

5.2.2. TCP throughput performance

表 5-4 和表 5-5 比較在 packet loss probability p>0 之下有無使用 link-layer retransmission scheme 對 throughput 和 fairness 的影響。結果顯示,在所有的情境 底下,使用 link-layer retransmission scheme 的 throughput 並沒有提升,但是可以 維持很好的 throughput fairness。因為使用 link-layer retransmission scheme 多了 link-layer ACK 造成的 overhead 和進行 retransmission 造成的 overhead,可用頻寬 比不使用 link-layer retransmission scheme 來得少,這樣比較有些不公平,讓兩種 throughput 結果在同一基準點上比較。

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

Four-node topology

p=5% at the bottleneck

link

p=5% at the bottleneck link with

link-layer retransmission scheme Overall

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

Seven-node topology

p=5% at the bottleneck

link

p=5% at the bottleneck link with

link-layer retransmission scheme Overall 因此我們根據 5.2.1 分析的結果,將 p=5%沒有使用 link-layer retransmission scheme 的 throughput 進行 normalization。方法如下:

)

我們將 p=5%不使用 link-layer retransmission scheme 的 TCP throughput 乘上 表 5-1 的 overhead,再將結果和使用 link-layer retransmission scheme 的 throughput 比較。經過 normalization 之後的結果如表 5-6 和表 5-7 所示。

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

Four-node topology

p=5% at the bottleneck

link (normalized)

p=5% at the bottleneck link with

link-layer retransmission scheme Overall

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

Seven-node topology

p=5% at the bottleneck

link (normalized)

p=5% at the bottleneck link with

link-layer retransmission scheme Overall 經過 normalization 之後再比較使用 link-layer retransmission scheme 和不使用 link-layer retransmission scheme 的 throughput performance 可以發現,packet loss probability p=5%時使用 link-layer retransmission scheme,可以有效改善 throughput 和 fairness。我們再進一步觀察 individual throughput 的分配,如 four-node chain topology 的圖 5-5 和 seven-node topology 的圖 5-6。

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

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

由這兩張圖可以發現一個現象,使用 link-layer retransmission scheme 對 long-hop flow 的 throughput 有很明顯的改善,但反而傷害 short-hop flow 的 throughput。這是因為對 short-hop flow 來說,因為反應時間較短,TCP end-to-end 的 retransmission scheme 就足以讓它們很迅速地進行 packet loss recovery,因此加 上 link-layer retransmission scheme 反而增加 short-hop flow 不必要的負擔,使可 用頻寬減少。Link-layer retransmission scheme 對 long-hop flow 處理 packet loss 的

幫助比較大。

我們將 packet loss probability p 變化,觀察有無使用 link-layer retransmission scheme 的 TCP throughput,結果如圖 5-7。

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

圖 5-7 中不使用 link-layer retransmission scheme 的 throughput 是未經 normalization 。 我 們 可 以 觀 察 到 一 個 趨 勢 , 隨 著

p 增 加 , 不 使 用 link-layer

retransmission 的 TCP throughput 衰退愈趨嚴重;但使用 link-layer retransmission scheme 的 TCP throughput 衰退並不明顯。因為使用 link-layer retransmission scheme 增加 overhead(花費頻寬傳輸 link-layer ACK 和 local retransmission),它的 好處只有在 wireless link 狀況非常糟糕、packet loss 很嚴重時才會顯現出來。在 packet loss 狀況輕微時,end-to-end 的機制就足以保持 TCP 快速復原 packet loss 的特性;但是當 packet loss 漸趨嚴重時,需要 local link-layer retransmission scheme 幫助 TCP 保持快速復原 packet loss 的特性。

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

p=5%時使用 link-layer retransmission scheme 的 TCP congestion window 隨時

間變化的情形如圖 5-8、圖 5-9。比對不使用 link-layer retransmission scheme 的 圖(圖 4-6、圖 4-7)之後,我們可以發現,使用 link-layer retransmission scheme 的 TCP congestion window 很快地成長到最大值並維持在最高點,達到 steady state,一如沒有發現 packet loss 的狀況(圖 3-20 圖 3-21、圖 3-22、圖 3-23)。這 代表使用 link-layer retransmission scheme 可以讓上層的 TCP 不會發現 packet loss 而引發 retransmission/fast retransmission 的反應而使 congestion window 不斷地震 盪。

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

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

圖 5-10 TCP sequence numberof flow 1 with link-layer retransmission scheme under p=5%

(seven-node)

圖 5-10 是使用 link-layer retransmission scheme 之後,接收端收到的 TCP sequence number,時間尺度與圖 4-4 相同,這裡僅列出 flow 1 的結果,其它 flow 也有類似的結果。與圖 4-4 比較可以發現,使用 link-layer retransmission scheme 之後,圖上沒有出現明顯的時間斷層,表示 TCP 不再受到 random packet loss 的 影響而發生 timeout,因為 link-layer retransmission scheme 已經在 local link 將 packet loss 處理好了。因此對 TCP 來說,下層有 link-layer retransmission scheme 的保護,TCP 不會知道 packet loss 發生,使用 link-layer retransmission scheme 可 以保持 TCP 快速復原 packet loss 的良好特性。

5.2.4. TCP smoothed round-trip time

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

TCP srtt under p=0%

我們先列出 p=0%時的 smoothed round-trip time(srtt)實驗結果比較,以瞭解使 用 link-layer retransmission scheme 會對 srtt 有何影響,再觀察 p=5%時的 srtt。表 5-8 是 four-node chain topology、p=0%的 srtt 比較,表 5-9 是 seven-node chain topology、p=0%的 srtt 比較。在沒有 packet loss (意即沒有任何 retransmission)的 狀況下,使用 link-layer retransmission scheme 比不使用約增加 srtt 15%到 30%的 長度。

表 5-9 比較 p=0%時有無使用 link-layer retransmission scheme 之 srtt (seven-node) link-layer retransmission 大幅度地增加 TCP 的 round-trip time,增加幅度從 5 倍到 15 倍。

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

TCP srtt under p=5%

Link-layer retransmission scheme 在 packet loss 的情況下,讓 srtt 比不使用 link-layer retransmission 大 幅 增 加 的 原 因 有二 : 一 , Link-layer retransmission scheme 在傳送每個 TCP data packet 或 ACK packet 之後都要花時間回傳 link-layer ACK,或是花時間進行 local retransmission,因此增加 round-trip time。二,因為 link-layer retransmission scheme 讓 TCP 完全沒有發覺下層的 packet loss,因此 TCP 很順利很迅速地達到 steady state,因此造成大量 TCP data packet 排隊排在 bottleneck link,增加 queueing delay,這個狀況和

p=0%的情形相同。

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

在這一章,我們使用 link-layer retransmission scheme 改善 TCP 在 wireless mesh network 上遭遇 random packet loss 而下降的 performance。Link-layer retransmission scheme 的 機 制 中 link-layer 必 須 傳 送 ACK 以 確 認 封 包 送 達 , 因 此 會 增 加 overhead。在我們的環境設定中(參見 3.3 和 5.2.1),傳送 link-layer ACK 約增加 21%的 overhead。在

p=5%的狀況中,僅比較 throughput 的話,因為 overhead 太

高,使用 link-layer retransmission scheme 的 throughput 反而沒有提升。若將 link-layer ACK 所增加的 overhead 排除(將不使用 link-layer retransmission scheme 的 throughput 做 normalization),則 link-layer retransmission 對 throughput 是有幫 助的,尤其是對 long-hop flow 的幫助非常顯著;但對 short-hop flow 來說,TCP 的 retransmission 機 制 已 經 可 以 處 理 random packet loss , 加 上 link-layer

在這一章,我們使用 link-layer retransmission scheme 改善 TCP 在 wireless mesh network 上遭遇 random packet loss 而下降的 performance。Link-layer retransmission scheme 的 機 制 中 link-layer 必 須 傳 送 ACK 以 確 認 封 包 送 達 , 因 此 會 增 加 overhead。在我們的環境設定中(參見 3.3 和 5.2.1),傳送 link-layer ACK 約增加 21%的 overhead。在

p=5%的狀況中,僅比較 throughput 的話,因為 overhead 太

高,使用 link-layer retransmission scheme 的 throughput 反而沒有提升。若將 link-layer ACK 所增加的 overhead 排除(將不使用 link-layer retransmission scheme 的 throughput 做 normalization),則 link-layer retransmission 對 throughput 是有幫 助的,尤其是對 long-hop flow 的幫助非常顯著;但對 short-hop flow 來說,TCP 的 retransmission 機 制 已 經 可 以 處 理 random packet loss , 加 上 link-layer

相關文件