EE194: Wireless NetworksGroup #2: Joseph Cerra and Stuart Peloquin
Dynamic Transmission Power Control in Wireless Ad-Hoc
Networks
Issue from previous presentation
• Received signal strength does not necessarily indicate distance
• What is power in reference to?– dBm
• Can each node run different applications– Yes
• Do they?– Nope
• How do nodes keep track of power levels?– To be discussed
Design
• Built in Classes used/modified:– RouteAodv, Field, FieldInterface,
MacDumb, MacAddress, NetIp, RadioNoise, RadioNoiseAdditive, RadioInfo.
• Designed Classes used:– Heartbeat, AppHeartbeat, MyNode.
• GUI Classes:– MyCanvas, MyMenu, MyButton.
OSI Model
Radio
MAC
Network
Application
mobility
AppHeartbeat.java
NetIp.java
Field.java, FieldInterface.java
RadioInfo.java, RadioNoiseAdditive
Field
Mobility.java
MacDumb.java
Route RouteAodv.java
Implementation
• Main Function: Heartbeat.java – Setup GUI– Setup simulation
• createSim(nodes, length)– Placement, mobility, spacing, fading, pathloss,
field, radioInfo, mapper, packetLoss– CreateNode(node#, field, placement,
radioInfoShared, protMap, pl_in, pl_out)
• createNode– Add: radio noise, mac, network (set protocols and
routing), routing, application– Hookup entities: radio, mobility, field, mac, net– Run application
Implementation
• Application Layer: AppHeartbeat.java– Neighbour entries, beats (TTL)– Message passing– Send / receive packets (ACK)– Stagger initial sleep and wake of nodes– Send random msg to random nodes– Sleep and schedule next random
wakeup
Implementation
• Mac Layer: MacDumb– Neighbour entry table
• Mac address, RSSI, neededPower, power, beats
– Process RSSI information• Store RSSI information for each neighbour• Interpret signal strength change from:
– RSSI– Message passing history
– Compute transmission time at current bandwidth
– Maintain neighbour entry table– Update transmit power
Message Passing
Data DH
Data DH NH
Data DH NH TS MH
Data DH NH TS MH RH
App Layer
Network Layer
Mac Layer
Radio Layer
Data DH NH TS MH rssi
Radio Layer
Data DH NH
Mac Layer
Data DH
Network Layer
Data
App Layer
Implementation
• MAC layer node hash table– Neighbors(MACADDRESS)
» Where MACADDRESS is a particular node
• Power – power sent from node• RSSI – power received from node• neededPower – computed power needed for
reliable communications• Beats – time to live
Implementation
• Computing necessary powerPowerdivided = RSSI / THRESHOLD + 3
if (Powerdivided < 1)
Neededpower = powerSent + powerDivided*2
Elseif (Powerdivided > 1)
Neededpower = powerSent – powerDivided*2
Else // Powerdivided == 1
Neededpower = powerSent + Powerdivided
• Maintaining HashIf TTL == 0
Neededpower = Neededpower + 2
If Neededpower == 15
Remove entry
Simulation Examples
• In the following slides:– Simulation with node:
• Numerical and Graphical Power statistics• Source IP address• Destination IP address
– Destination IP of -1 is a broadcast
– Examples of:• Initialization of nodes• Broadcasts• Power conservation• Clustering
Sim. Example 1 – Initialization / Broadcast
Sim. Example 2 – Power conservation
Sim. Example 3 – Clustering
Simulation Sequence
• In the following slides, two complete simulations are run.
• Simulation timeline:
Initi
aliz
atio
n
~10
beat
s la
ter
~ 20
bea
ts la
ter
~ 30
bea
ts la
ter
Outcome #1
Outcome #2~ 15
0 be
ats
late
r
Initialization
~ 10 beats later
~ 20 beats later
~ 30 beats later
Outcomes
• The outcomes of the simulation differ because of the lifetime of routes in the RouteEntryTable.
• When the entries in the RouteEntryTable are not refreshed often enough, the mobility rate of the nodes may destroy the integrity of the simulation power metrics.
• The following two simulation are examples of high and low lifetime of entries in the RouteEntryTable.
Outcome #1 – High route entry lifetime
Outcome #2 – Low route entry lifetime
Conclusions – JiST SWANS
• Pros– Java based, easy to program– Useful programming tool for simulating WSN– Easy to understand implementation– Easily to implement customized applications
and data structures– Graphical user interface customizable
• Cons– Lacks WSN design capabilities. – No manuals or tutorials– Bytecode rewriter complicates debugging