Packet size vs. throughput (with/without wireless transmission error)

[模擬實驗]

1.      Without wireless transmission error情況,比較packet size500, 1000, 2000 bytesIEEE 802.11b環境下吞吐量的情況

2.      產生底下的網路拓樸 (Node 1是傳送端,Node 2是接收端,且兩個都是IEEE 802.11b Ad Hoc Mode Node)

1

 

3.      按一下E,編輯屬性

2

 

3

 

打開Node 2的記錄功能,記錄Node 2的進入吞吐量 (RTS Threshold = 3000 byte,預設值設定,所以傳輸模式為 DATA-ACK)

4

 

4.      按一下RSimulation/Run開始進行模擬

 

5.      假設此模擬的專案名稱為test,則模擬結束後請打開一個terminal,並把路徑切換到test/test.results,此時打開test.80211_N2_P1_InThrput.log,則可以看到吞吐量約在460~470 Kbyte/sec

5

 

6.      重新切換到E,packet size改為1000再做一次,則可以得到在packet size1000 bytes,吞吐量約在670 Kbyte/sec左右。

6

 

7

 

7.      重新切換到E,packet size改為2000再做一次。發現其吞吐量只有比packet size = 1000 bytes好一些。Why ???

23

 

8 

 

8.      打開packet trace觀查封包傳送情況。我們可以發現原來應用層2000 bytes的資料會被切割成兩個封包送出。

9

 

 10

 

9.      開一個terminal,把路徑切換到test/test.sim

11

從上圖得知Node 1interfacetun1

 

重新再按RSimulation/Run,在模擬過程中,按一下Node 1,然後按command console,此時會跳出一個terminal,輸入ifconfig,則可以觀察到tun 1MTU1500。所以就可以得知packet size = 2000 bytes為何會被切割成兩個封包後送出,而使得吞吐量沒辦法更高的原因。

12

 

10.   重新切換到E,新增底下一個指令,使得tun1MTU2100bytes,再重作一次模擬

13

14

從上圖可以得知當packet size = 2000 bytes,吞吐量為810~820 Kbytes/sec從這三不同封包大小的實驗,我們可以得知在沒有wireless transmission error情況下,封包越大,系統的吞吐量就會越大。

 

11.  現在換做在有wireless transmission error的情況(先做packet size = 500 bytes,設定Node 1BER0.0001)

15

 

12.  進行模擬並觀察模擬結果(BER=0.0001packet size=500 bytes情況下,吞吐量約在120~150 Kbytes/sec之間跳動)

16

 

13.  packet size改為1000 bytes,再重做一次模擬並觀察其結果(從結果發現,其吞吐量比在packet size = 500 bytes來得差,主要是因為在BER固定時,封包長度越長,封包發生錯誤的機會就越高,當發生錯誤,就需要重送,因而降低了整體的吞吐量。)

17

 

18

 

14.  在無線網路的環境下,在低錯誤率或沒有錯誤的情況下,封包長度越長,整體系統的吞吐量就會越高;但在有傳輸錯誤的情況下,封包越長,則吞吐量就會越低,所以如何設計出一個能隨著錯誤情況而改變傳輸封包大小的演算法則是一個很重要的研究題目。

 

Dr. Chih-Heng Ke (http://csie.nqu.edu.tw/smallko), smallko@gmail.com

Department of Computer Science and Information Engineering, National Quemoy University, Taiwan