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這個資料夾
.
4 則留言:
你好,我想請問可否將那三個檔案寄給我,我專題需要用到ns-2的bittorent模擬,可是他原本的官方網站連結好像失效了,我無法下載,我的信箱是ringtdblai@gmail.com
您好:
我有照著你網站的步驟去執行,但是遇到了些問題想請教您,
1.我在我的目錄底下home\hong1023\ns-allinone-2.29\ns-2.29 執行bittorrent.patch,執行指令為patch p1 < bittorrent.patch ,但是並沒有產生一個bittorrent,而是產生了許多檔案如下:
bittorrent_app.h
bittorrent_app_flowlevel.cc
bittorrent_app_flowlevel.h
...
...
在cygwin的畫面產生以下的訊息:
patching file p1
patch attempted to create file p1, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file p1.rej
patching file bittorrent_app_flowlevel.cc
patching file bittorrent_app_flowlevel.h
patching file bittorrent_app.h
...
...
...
-----------------------------
File to patch:
因為我剛要試著用ns2跑p2p的模擬,對整個環境的建置還不熟,麻煩你幫我看看是什麼問題,謝謝。
鴻斌你好
我沒法幫到你,看起來是patch的過程出了問題,但我對patch這部份反而不熟
我的環境是在Ubuntu下裝ns-2.29,再裝BTSim,保證work
我沒有在Cygwin上裝過BTSim,過去在Cygwin上裝ns2讓我有太大的挫折,後來改用Virtual Machine,原生的Linux裝,反而問題很小
我會建議你用VitualBox裝個Ubuntu9,再裝ns2,再裝BTSim
相關步驟我的blog都有,保證work
是很快就跑完了
log有沒有資料我沒有印象了@@
他的code是work的
trace完該作者的code後,基本上要寫自己的P2P的ns2 simulation就沒問題了
我很有心得,不過這些心得要等到以後有空才能整理發表了
張貼留言