Silly Computer Engineer.
Lin~Jing~Sen
Something as small as the flutter of the butterfly's wing
can ultimately cause a typoon half way around the world

Group Blog
 
All Blogs
 

NS2 ภาค โหนดไหน พลังงานจะหมดก่อน ใน 3 Nodes

ไฟล์ 00_wireless_tor_3_nodes_energy.tcl
scenario นี้ เราวางโหนดไว้เฉย 3 โหนด เรียงกัน แล้วให้โหนดซ้ายสุด(n0) ส่งข้อมูลแบบ cbr ไปโหนด ขวาสุด(n2) โดยผ่านโหนดกลาง (n1) เพื่อดูว่าโหนดใดพลังงานจะหมดก่อนกัน

ใช้ DSR เป็น routing protocol
พลังงานเริ่มต้น 0.500000 Joules ทุกโหนด

n0 เริ่มส่งเมื่อเวลา 0.5 s ดังรูป



เวลา 1.22 โหนดกลาง(n1) เริ่มพลังงานต่ำลงจนกลายเป็นสีเหลือง
trace :
r 1.225738249 _1_ MAC --- 161 cbr 70 [13a 1 0 800] [energy 0.249270] ------- [0:0 2:0 32 1] [140] 1 0
s 1.225748249 _1_ MAC --- 0 ACK 38 [0 0 0 0] [energy 0.249270]




เวลา 1.31 โหนดที่ส่ง(n0) พลังงานเริ่มหมด
trace file :
s 1.310000000 _0_ RTR --- 183 cbr 70 [0 0 0 0] [energy 0.247664] ------- [0:0 2:0 32 1] [162] 0 0


ในที่สุดเวลา 1.63 โหนดกลาง(n1) ก็กลายเป็นสีแดง และไม่เหลือพลังงานพอที่จะสามารถ forward packet ไปให้ n2 ได้อีกต่อไป
เมื่อเวลา 1.92
trace file:
r 1.637738190 _1_ MAC --- 0 RTS 44 [64e 1 0 0] [energy 0.097733]
s 1.637748190 _1_ MAC --- 0 CTS 38 [514 0 0 0] [energy 0.097733]

...
...
...
r 1.916423708 _1_ MAC --- 0 RTS 44 [64e 1 0 0] [energy 0.000158]
s 1.916433708 _1_ MAC --- 0 CTS 38 [514 0 0 0] [energy 0.000158]





สาเหตุ
จาก config ของโหนด ที่ให้
transmission power 0.6
receive power 0.3
-rxPower 0.3 \\\\ # watt
-txPower 0.6 \\\\ #watt
# watts = joules/seconds.

1.โหนดกลาง,n1, พลังงานหมดก่อนเนื่องจากใช้พลังงานทั้งรับและส่ง
2.โหนดส่ง,n0,พลังงานหมดก่อนโหนดรับ,n2,เพราะพลังงานที่ใช้ส่งสูงกว่า


Next stepต่อไปก็จะปรับเปลี่ยนอะไรๆให้ตรงกับความเป็นจริงมากขึ้นเช่น propagation model , communication rage เป็นต้น




 

Create Date : 15 พฤษภาคม 2548    
Last Update : 16 พฤษภาคม 2548 2:31:06 น.
Counter : 657 Pageviews.  

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.  

1  2  3  4  5  6  7  8  9  10  11  12  

nmapxp
Location :
กรุงเทพ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]





Friends' blogs
[Add nmapxp's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.