ns-2.29安裝後,開始安裝bittorrentsim
bittorrentsim的作者為Kolja Eger(點我連結網站)
作者網頁寫得很簡單,其實沒有那麼清楚
我還是紀錄一下安裝和測試過程吧
作者網站上有三個檔案
bittorrent.patch
bt_flashcrowd_flow.tcl
bt_flashcrowd_star.tcl
bittorrent.patch是作者的bt的實作
而後兩個檔案(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)則是simulation的script file
請自行mapping到相對應的目錄
我的目錄是這樣
/root/ns-allinone-2.29/ns-2.29
安裝bittorentsim
將bittorrent.patch copy到ns-2.29後,在ns-allinone-2.29/ns-2.29下,依序執行:
patch p1 < bittorrent.patch
./confugrue
make clean
make
第一步驟執行後(上patch),會在ns-2.29下多出一個目錄:bittorrent
ns-2.29/bittorrent中的檔案就是作者bt的實作了
但要重新make ns才能將作者的實作的node加入ns中,讓simulation script file可以用
到這,bittorrensim就安裝進ns了,你可以寫simulation了
但是裝好我測試了一下……
本來不會有warning message的simulation script file在裝完bittorrentsim後,再執行同樣的simulation會跑出一堆warning……
warning: no class variable Node::AppRunning_
see tcl-object.tcl in tclcl for info about this warning.
anyway,只是warning而已,至少還是可以動的
20110104更新:
在將BTSim裝入NS229之後,之後跑任何script都會跳出"warning: no class variable Node::AppRunning_"這個warning,很煩
解法是在ns-default.tcl中加這一行:
Node set AppRunning -1
重編NS(這步我不確定要不要,我是習慣重編)
然後這warning就會消失囉
測試作者提供的兩個script file
測試過程中我遇到一些困難,在這我直接提解法,而為什麼會產生這些問題要等我trace code後才能回答了
在ns-2.29/bittorrent下再開一個folder:scripts
將兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)copy到該目錄(ns-2.29/bittorrent/ns-2.29/bittorrent/scripts)下
回到ns-2.29,也要copy兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)到這裡,執行
ns bt_flashcrowd_star.tcl 10 1 1000
第一個參數為peer數
第二個參數為random number generator
第三個參數為上傳頻寬(單位為kpbs)
所以上述的命令為:跑一個packet-level的simulation,10個peers,上傳頻寬為1000kbps
執行後,就會開始跑simulation,simulation的結果會在ns-2.29/bittorrent下再開新目錄,將結果寫入
以我的case,執行時會跑出下列這一行
bittorrent/results_flash_packet_star_100MB_N_P_10_C_125000.0Bps_seed_1_1284040923
這表示simulation完後,結果會被寫入
bittorrent/results_flash_packet_star_100MB_N_P_10_C_125000.0Bps_seed_1_1284040923這個資料夾
.