|
NS2 ภาค DSR + Energy
หลังจากอ่านหนังสือแปล the best C/C++ Tips Ever ชื่อกลเม็ดและเทคนิคในภาษา C/C++ จนมึนตึบ ก็หันมาดู NS2 ต่อ
จากครั้งที่แล้วที่รัน test-suit ของ energy ก็เลยพยายามสร้าง scenario ของเราเอง(เคยทำมาแล้ว) ที่ใช้ DSR และให้แสดง energy เหลือด้วย โดยการเปรียบเทียบ tcl script ของ test-suit และของเราที่เคยทำ แล้วตัดแปะ config ที่เกี่ยวกับ energy ก็มั่วๆเล็กน้อย ไม่รู้ได้ผลเป็นไง แต่ก่อนอื่นสร้าง traffic file กับ movement file ก่อน ด้วยคำสั่ง
tcp traffic :>> ns cbrgen.tcl -type tcp -nn 100 -seed 10 -mc 60 -rate 4.0 > energy_tcp_wireless_tor
movement :>> ./setdest -v 2 -n 100 -p 2.0 -m 0.5 -M 10.0 -t 500 -x 670 -y 670 > energy_move_wireless_tor
วิธีใช้ setdest ~/ns-allinone-2.28/ns-2.28/indep-utils/cmu-scen-gen/setdest $ ./setdest
usage:
./setdest -v <1> -n -p -M -t -x -y
OR
./setdest -v <2> -n -s -m -M -t -P -p -x -y (Refer to the script files make-scen.csh and make-scen-steadysta te.csh for detail.)
วิธีใช้ cbr
~/ns-allinone-2.28/ns-2.28/indep-utils/cmu-scen-gen $ ns cbrgen.tcl
usage: cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-r ate rate]
รอดูผลก่อน เดี๋ยวมาอัพเดทต่อ ติ๊กต้อก ติ๊กต้อก ฮ้วย ทำไมมันรันไม่ได้หว่า มันขึ้นว่า
~/nsscript/scenario $ ns wireless_tor.tcl num_nodes is set 100 invalid command name "-txPower" while executing "-txPower 0.6 #need actual value" (file "wireless_tor.tcl" line 113) ~/nsscript/scenario $ ns wireless_tor.tcl num_nodes is set 100 invalid command name "-initialEnergy" while executing "-initialEnergy $opt(initialenergy)" (file "wireless_tor.tcl" line 114)
ก็ลองดู script ก็น่าจะ ok นี่หว่า หรือว่าเราไม่รู้อะไรบางอย่าง ????
กรำของกรู เป็นที่อักขระ หวะ ลองลบๆ enterๆ อ้าว ได้ซะงั้น แต่ทำไมเสร็จเร็วจังฟะ ไฟล์ tr กับ nam ก็เล็ก
มาดูรูปกัน รูปนี้คือ 2 nodes ส่งข้อมูลให้กัน
พอเวลาผ่านไปสักพัก โหนดส่งกะรับเริ่มพลังงานหมดคือเปลี่ยนสีเป็นเหลืองและแดง ในที่สุด ตัวหนึ่งก็พลังงานหมด แต่อีกตัวยังคงส่ง ทำให้เกิดการ routing แบบไม่สามารถหาปลายทางได้ ส่งผลให้หลายๆโหนดพลังงานหมดไปด้วย (กลายเป็นสีเหลือง)
การทดสอบนี้ยังไม่ได้ควบคุมอะไรได้หลายๆอย่าง แต่สิ่งที่เห็นได้อย่างชัดเจนคือถ้าเราเพิ่ม config ของการ simulate node ให้มี energymodel ทำให้ nam มีการแสดงสีเพื่อบ่งบอกระดับพลังงาน และมีเส้นการกระจายคลื่นวิทยุให้ชมอีกต่างหาก
ต่อไปก็จะเริ่มควบคุมการทดสอบให้มากขึ้น เพื่อที่จะได้เข้าใจ parameter ต่างๆเช่น seed ซึ่งยังไม่เข้าใจ และผลของ paramater ที่กระทบต่อพลังงานด้วย
==== จบข่าว happy ทำได้แระ ^.^ =====
Create Date : 14 พฤษภาคม 2548 | | |
Last Update : 15 พฤษภาคม 2548 2:10:15 น. |
Counter : 938 Pageviews. |
| |
|
|
|
|
NS2 ภาค testsuit / trace format
มาถึงหอกลางปุ๊บก็ลุยร่าง content ของ Proposal เดี๋ยวนึกอะไรออก ค่อยใส่ลงไปอีก
นั่งรวบรวม NS2 Class โอย เยอะฉิบ ค่อยๆเพิ่มละกัน
เข้าไปดู Testsuit ที่ ns-allinone-2.28\\\\ns-2.28\\\\tcl\\\\test เหลือบไปเห็นเกี่ยวกับ energy ที่ไฟล์ test-suite-energy.tcl ก็เลยลองเอามารันดู อืม ได้ผลแหะ แต่ดู trace แล้วยังไม่เข้าใจทุก field เลยแหะ ต้องไปหาข้อมูลเพิ่มซะแล้น
s 82.640318062 _1_ MAC --- 0 ACK 38 [0 3 0 0] [energy 0.452130] r 82.640622691 _3_ MAC --- 0 ACK 38 [0 3 0 0] [energy 0.451938] s 82.640952062 _1_ MAC --- 0 ARP 80 [0 ffffffff 1 806] [energy 0.451947] ------- [REQUEST 1/1 0/2] r 82.641592651 _0_ MAC --- 0 ARP 28 [0 ffffffff 1 806] [energy 0.452235] ------- [REQUEST 1/1 0/2] r 82.641592691 _3_ MAC --- 0 ARP 28 [0 ffffffff 1 806] [energy 0.451746] ------- [REQUEST 1/1 0/2] r 82.641592806 _2_ MAC --- 0 ARP 28 [0 ffffffff 1 806] [energy 0.452072] ------- [REQUEST 1/1 0/2] s 82.641827806 _2_ MAC --- 0 RTS 44 [4fe 1 2 0] [energy 0.452072] r 82.642180550 _1_ MAC --- 0 RTS 44 [4fe 1 2 0] [energy 0.451458] s 82.642190550 _1_ MAC --- 0 CTS 38 [3c4 2 0 0] [energy 0.451458] r 82.642495295 _2_ MAC --- 0 CTS 38 [3c4 2 0 0] [energy 0.451770] s 82.642505295 _2_ MAC --- 0 ARP 80 [13a 1 2 806] [energy 0.451770] ------- [REPLY 2/2 1/1] r 82.643146039 _1_ MAC --- 0 ARP 28 [13a 1 2 806] [energy 0.451083] ------- [REPLY 2/2 1/1] s 82.643156039 _1_ MAC --- 0 ACK 38 [0 2 0 0] [energy 0.451083] r 82.643460783 _2_ MAC --- 0 ACK 38 [0 2 0 0] [energy 0.451294] s 82.643870039 _1_ MAC --- 0 RTS 44 [5be 2 1 0] [energy 0.450901] r 82.644222783 _2_ MAC --- 0 RTS 44 [5be 2 1 0] [energy 0.451189] s 82.644232783 _2_ MAC --- 0 CTS 38 [484 1 0 0] [energy 0.451189] r 82.644537528 _1_ MAC --- 0 CTS 38 [484 1 0 0] [energy 0.450598] s 82.644547528 _1_ MAC --- 4 DSR 104 [13a 2 1 800] [energy 0.450598] ------- [3:255 2:255 253 2] 3 [0 2] [1 2 3 2->3] [0 0 0 0->0] r 82.645380272 _2_ MAC --- 4 DSR 52 [13a 2 1 800] [energy 0.450757] ------- [3:255 2:255 253 2] 3 [0 2] [1 2 3 2->3] [0 0 0 0->0] s 82.645390272 _2_ MAC --- 0 ACK 38 [0 1 0 0] [energy 0.450757] SFESTs 82.645405272 _2_ 0 [2 -> 3] 1(1) to 1 [2 |1 3 ] r 82.645695016 _1_ MAC --- 0 ACK 38 [0 1 0 0] [energy 0.450008] s 82.645944272 _2_ MAC --- 0 RTS 44 [155e 1 2 0] [energy 0.450574] r 82.646297016 _1_ MAC --- 0 RTS 44 [155e 1 2 0] [energy 0.449902] s 82.646307016 _1_ MAC --- 0 CTS 38 [1424 2 0 0] [energy 0.449902] r 82.646611760 _2_ MAC --- 0 CTS 38 [1424 2 0 0] [energy 0.450272] s 82.646621760 _2_ MAC --- 0 cbr 604 [13a 1 2 800] [energy 0.450272] ------- [2:0 3:0 32 1] [0] 0 2 r 82.651454505 _1_ MAC --- 0 cbr 552 [13a 1 2 800] [energy 0.448270] ------- [2:0 3:0 32 1] [0] 1 2 s 82.651464505 _1_ MAC --- 0 ACK 38 [0 2 0 0] [energy 0.448270] r 82.651769249 _2_ MAC --- 0 ACK 38 [0 2 0 0] [energy 0.447282] s 82.652358505 _1_ MAC --- 0 RTS 44 [155e 3 1 0] [energy 0.448088] r 82.652711134 _3_ MAC --- 0 RTS 44 [155e 3 1 0] [energy 0.448885] s 82.652721134 _3_ MAC --- 0 CTS 38 [1424 1 0 0] [energy 0.448885] r 82.653025763 _1_ MAC --- 0 CTS 38 [1424 1 0 0] [energy 0.447786] s 82.653035763 _1_ MAC --- 0 cbr 604 [13a 3 1 800] [energy 0.447786] ------- [2:0 3:0 31 3] [0] 1 2 r 82.657868392 _3_ MAC --- 0 cbr 552 [13a 3 1 800] [energy 0.447253] ------- [2:0 3:0 31 3] [0] 2 2
Create Date : 12 พฤษภาคม 2548 | | |
Last Update : 12 พฤษภาคม 2548 15:22:37 น. |
Counter : 641 Pageviews. |
| |
|
|
|
|
NS2 ภาค Class Hierachy มันเยอะจนรวบรวมไม่ไหวแระ
class TclClass # using for Tcl/C++ static class TcpClass : public TclClass { public: TcpClass() : TclClass("Agent/TCP") {} TclObject* create(int , const char*const*) { return (new TcpAgent()); } } class_tcp;
class TclObject class EnergyModel //==========================
class Time class clock class Handle class QueueHandle class MacTimer class BroadcastTimer class HelloTimer class NeighborTimer class RouteCacheTimer class LocalRepairTimer class AdaptiveFidelityEntity class SoftNeighborHandler class TimerHandler class RtxTimer class DelSndTimer class BurstSndTimer
class NsObject class classifier #~ns/classifier.h class Addressclassifier class Hashclassifier class MultiPathForwarder class Replicator # replicator.cc class BiConnector class Connector class LinkDelay class DynamicLink class Filter class Queue class DropTail,FQ, SFQ, DRR, RED and CBQ class Trace class CMUTrace
class PacketQueue class QueueEvent class EventQueue class Agent class BoxAgent class MFTPAgent class MFTPSndAgent class MFTPRcvAgent class TcpAgent class RenoTcpAgent class NewRenoTcpAgent class VegasTcpAgent class UdpAgent class AODV class DSRProto class rt_entry # Route Table Entry class Application class Queue class Edge class Feature class Node class NetView class Monitor
Create Date : 12 พฤษภาคม 2548 | | |
Last Update : 12 พฤษภาคม 2548 15:35:32 น. |
Counter : 392 Pageviews. |
| |
|
|
|
|
NS2 ภาค C++ (cont2) ตอน C++ มันช่างล้ำลึก
อ่านหนังสือแปล the best C/C++ Tips Ever ชื่อกลเม็ดและเทคนิคในภาษา C/C++
เพิ่งจะรู้นะว่าถ้าเขียนไม่ดี -6 หาร 2 จะเท่ากับ 2147483645 ได้ แทนที่จะเป็น -3 แหะๆ
======เขียนผิด======== int w1 = -6; unsigned w2 = 2; int w3 = w1/w2; cout << "-6/2 = " << w3;
## สอนให้รู้ว่า ไม่ควรใช้ signed กับ unsigned มาคำนวนร่วมกัน
==========ที่ถูก======== int w1 = -6; int w2 = 2; int w3 = w1/w2; cout << "-6/2 = " << w3;
Create Date : 10 พฤษภาคม 2548 | | |
Last Update : 14 พฤษภาคม 2548 21:59:28 น. |
Counter : 351 Pageviews. |
| |
|
|
|
|
| |
|
|