Wireless Sensor Network, 2009, 1, 467-474 doi:10.4236/wsn.2009.15056 Published Online December 2009 (http://www.scirp.org/journal/wsn). Copyright © 2009 SciRes. WSN EasiSim: A Scalable Simulator for Wireless Sensor Networks Haiming CHEN1,2, Li CUI1*, Changcheng HUANG3, He ZHU1,2 1Institute of Computing Technology, Chinese Academy of Sciences, Beijing, China 2Graduate School of the Chinese Academy of Sciences, Beijing, China 3Department of Systems and Computer Engineering, Carleton University, Ottawa, Canada Email: {chenhaiming, lcui, zhuhe}@ict.ac.cn, huang@sce.carleton.ca Received July 11, 2009; revised September 21, 2009; accepted September 23, 2009 Abstract Traditional simulators have deficiencies of scalability, thus they are not so efficient in running simulations with large-scale networks. In this paper, we present a new simulator, namely EasiSim, specifically for evalu- ating sensor net-works on a large scale. EasiSim is featured by organizing its core components, including nodes, topology and scenario, in a hierarchically structured approach. The hierarchically structured organiza- tion enables nodes to process all the concurrent events in one batch, hence reducing the running time by an order of magnitude. Moreover, we propose a visualization scheme based on a Client/Server model which separates the graphical user interface (GUI) from the simulation engine, and therefore the scalability of the simulator will not be decreased by complex GUI. Extensive simulations show that EasiSim outperforms ns-2 in terms of real running time and memory usage. Keywords: Wireless Sensor Networks, Simulator, Scalability, Component Organization, Visualization Scheme 1. Introduction With the development of MEMS and wireless commu- nication, sensor networks have become a hot research topic. Simulation is an effective approach for evaluating the performance of networks. A series of simulation tools have been developed to ease design and deployment of network protocols. Most of these existing simulators are established for traditional wired or wireless networks, so they cannot fulfill the requirements of modeling sensor networks precisely and running large-scale experiments efficiently. We will start with a brief overview on exist- ing network simulators below. 1.1. Related Works ns-2 [1] is a discrete event driven general-purpose net- work simulator originally developed for modeling the transport control protocols and routing algorithms of wide-area Internet. The CMU Monarch project’s exten- sion made ns-2 support the wireless and mobile networks. Although ns-2 has evolved substantially over the past few years, the basic architecture remains the same. Its split-programming model and object-oriented architec- ture make it extensible, but not so scalable. OPNET [2] is another discrete event driven general- purpose network simulator. OPNET is featured by its GUI-based modeler, which provides an intuitive way to customize modules, like different sensor-specific hard- ware units. However, the GUI-based modeler sacrifices simulation efficiency for convenience of customization. Therefore, it suffers from the same problem of scalability as ns-2. Other general-purpose simulation platforms, like OMNeT++ [3] and J-Sim [4], are also widely used in simulating the traditional wired and wireless networks. Since these two simulators were designed from the be- ginning with module reusability in mind, they put less emphasis on the scalability of simulator. Based on the simulation framework for sensor network (SensorSim) proposed by Park [5], all the above men- tioned general-purpose network simulators have been extended to support for sensor networks, but never been modified in terms of their architectures to address the problem of scalability. The problem of scalability is more severe for bit-level (or instruction-level) emulators, like TOSSIM [6] and ATEMU [7], than for the above mentioned packet-level simulators. 1.2. Our Contributions In this paper, we design and implement a new simulator, namely EasiSim, specifically for sensor networks with
H. M. CHEN ET AL. 468 scalability as our first goal. Differing from traditional object-oriented and component-based simulators, Easi- Sim is a discrete event driven structure-based simulator. The main contributions of this paper can be summarized into following three aspects. 1) To enables the node to process all the concurrent events in one batch, we propose a three-dimension sorted linked list (3D list) to organize all the nodes into a hy- per-structure called topology. In this way, the number of events generated during simulation will be reduced by an order of magnitude, thus to decrease the running time. 2) To ease extension of the simulator, we design a scenario structure to integrate topology with all other components of the simulator, such as discrete event queue and clock. The hierarchical organization of the components, including nodes, topology and scenario, makes EasiSim not only scalable but also extensible. 3) To visualize the progress of a simulation, we pro- pose a visualization scheme based on a client-server model, which separate the graphical user interface (GUI) from other simulation modules, and make GUI and simulation engine run in a distributed way. Therefore, our proposed visualization scheme will not affect per- formance of the simulator in terms of running time. The rest of the paper is organized as follows. We de- scribe the component organization in Session 2. Details of integrating the components of the simulator are pre- sented in Session 3. In Session 4, we elaborate on the visualization scheme of the simulator. We evaluate the performance of the simulator in Session 5. At last, we make a brief conclusion and point out future work in Sessions 6 and 7 respectively. 2. Component Organization 2.1. Basic Principle We design our simulator based on a sequential, discrete event driven framework. As shown in Figure 1, the simu- lator mainly consists of following five components. 1) Clock is a 64-bit integer to represent the current time of the simulator. 2) Random number generator is a collection of func- tions to generate the commonly used random numbers, such as uniformly distributed numbers. 3) Entity is the object to be simulated. For a sensor network, the entity is nothing but a collection of nodes. 4) Discrete event queue is a sorted event list ordered by the time when the event is scheduled to be processed. 5) Event dispatcher is a procedure responsible for fetching the latest event to be processed from the head of the discrete event queue and invoking the corresponding event processing procedure. The time flow and event flow link the components to- gether. It is worth noting that: 1) the clock of the simula- Figure 1. Component architecture of the sensor network simulator. tor should be updated to the scheduled time of the dis- patched event, before invoking the corresponding event processing procedure; 2) in the event processing procedure, states of more than one related nodes may be required to be updated concurrently and some future events are sup- posed to be scheduled. In the existing object-oriented and component-based network simulators, each node is typically modeled as an object. To update states of several nodes simultaneously, it is required to generate some concurrent events and invoke all the corresponding nodes’ methods in sequence. This can lead to lots of overhead in terms of running time and memory usage. In wireless networks, packet trans- mission is such an event that requires updating the states of all the neighbors of the transmitting node, and it cre- ates a large number of events which accounts for a large proportion of all the events in a sensor network. So we propose a new modeling method to establish an efficient structure to support updating several nodes’ states in one batch. We model each node in the sensor network as a struc- tured variable rather than an object. Based on the node structure, we design a three-dimension sorted linked list to organize all the nodes into a hyper-structure called topology. We will describe the details of the node and topology structures next. 2.2. Node Structure and Topology Structure Each node is modeled as a variable with the same struc- ture, as shown in Figure 2. The foremost three fields re- fer to the type, identity and location of the node respec- tively. The next four fields contain all the necessary in- formation about the settings and states of the protocol in each layer, which are followed by six pointers to link the nodes into a three-dimension sorted list (3D list). Each dimension is a doubly linked list sorted by the identity, the x-coordinate, and the y-coordinate of the node, re- spectively. This three-dimension sorted linked list is de- fined as a structure named topology. In the topology structure, it contains three pairs of pointers to indicate the head and tail of each dimension of the sorted linked Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL.469 Figure 2. Definition of the node structure. list. The last field in the node structure is just the pointer to the topology, which provides the node with a conven- ient way to operate on the global information or any other node. When initializing the simulator, each node is assigned a unique integer number as its identity, and a pair of co- ordinates as its location. According to the values of these attributes, the node is inserted into the three-dimension sorted linked list in ascending order, while the pointers in the topology structure keep track of the head and tail of each dimension of the list. 2.3. Advantages of the Organization Suppose N nodes are uniformly scattered in a square area of S square meters, and the transmission range of each node is R meters. If the radio propagation is modeled as disk, in the traditional simulators, it is required to com- pute distances between the transmitting node and all the N nodes in the square area. With support of the 3D list, when a transmitting event is scheduled during simulation running time, the trans- mitting node can be found in the list quickly by its iden- tity, and then all its neighbors can be determined rapidly by traversing the list and calculating the distance (or signal attenuation) between the current node (receiving node) and the transmitting node because the list is sorted based on the physical locations of the nodes. Illustrated in Figure 3, the following steps are involved to determine the set of nodes affected by the propagation. 1) Locate the transmitting node in the list by any fast search algorithm. 2) Traversing forward and backward from the trans- mitting node along either the x-coordinate or the y-coor- dinate and comparing the x-coordinate and the y-coor- dinate of the current node in the list and the transmitting node to determine whether the node is located in the in- tersection region of the light gray area (marked as A) and the dark gray area (marked as area B). Because the list is sorted, only those nodes in the light shaded area are in- volved to compare their coordinates with the transmitting node. So the number of nodes involved in this step is reduced to 22 SR NN SS . struct _node{ NODETYPE nodeType; NODEID nodeID; COORDINATE locate; PHYDATA phyData; MACDATA macData; ROUTEDATA routeData; APPDATA appData; struct _node *nextNodeByID; struct _node *preNodeByID; struct _node *nextNodeByX; struct _node *preNodeByX; struct _node *nextNodeByY; struct _node *preNodeByY; PTOPO pTopo; }; 3) Compute the distance from the transmitting node to each of the nodes in the intersection region of the light gray area and the dark gray area, to see whether it can hear from the transmitting node. The number of nodes involved in the step is reduced further to S R N 2 2 . Let T1 be the benchmark of computation time, which is the time to do addition or subtraction operation. Multi- plication operation time and relation operation time are p times and q times as much as the benchmark respectively, where both p and q are larger than one. Since it involves two subtraction operations and two comparison opera- tions to determine whether one node is in the intersection area of A and B, the time to check all the nodes in the light gray area is 1T12 2 q S R N. For the same reason, we can know the time to determine the set of nodes that can hear from the transmitting node is 1T13 22 qp S R N. So the computational time to determine the neighbors of the transmitting node is reduced by a percentage of 100 2 4 33 14 S R qpS qR with adopting the 3D list. For example, the time can be reduced by about 86.1%, when p is 2 and q is 3. Figure 3. The set of nodes affected by the propagation. Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL. 470 3. Component Integration To implement a discrete event driven simulator, we should integrate all the components together, mainly including discrete event queue and clock, besides nodes and topology. As described in the above section, we have integrated the nodes into the topology by organizing all the nodes in the network into a three-dimension sorted linked list. Each dimension is a doubly linked list, whose head and tail are indicated by a pointer respectively. In each node, there is also a pointer to the topology struc- ture, which provides the node with a convenient way to operate on the other nodes. As shown in Figure 4, the topology and other compo- nents, such as event queue and clock, are integrated into an upper-layer structure named scenario. The scenario structure mainly includes three fields, which are topo, cur_time and fe l. The topo is the topology structure men- tioned above, which keeps the pointers to the heads and tails of the three-dimension sorted linked list, and a pointer to the scenario. Through this pointer, nodes can access to all the data in the scenario directly. The cur_time is a 64-bit integer to indicate the current time of the simulator. fel is the event queue to organize all the events scheduled to be processed in the future. In the discrete event driven simulator, events are dynamically generated and released to drive the running of the simu- lator, which will involve lots of memory accesses, so the organization of the events should also be carefully de- signed. 3.1. Structure of the Event List The traditional approach of managing the events is allo- cating memory once a new event is scheduled, and re- leasing it once it is processed. Since memory allocating operation is time consuming, we structure the event list as a 2-Dimension linked list to reduce the frequency of allocating memory. Each dimension is a sorted linked list. One is for organizing the future events (named scheduled list), and the other is for collecting the released events Figure 4. Architecture to integrate the components of the simulator. (named free list). When a new event is to be generated, the free list is firstly checked to see whether there is a free event that can be “reused”. If yes, the event will be renewed and moved to scheduled list, otherwise, a sys- tem call is invoked to allocate memory which is inserted into the scheduled list. Supposing the instant number of events scheduled to be processed at time t during running time is Nt, the total times to invoke system calls for the events is max{Nt} with the aid of the free list, while it is sum{Nt} without the aid of the free list. The peak volume of memory al- located for the events are both max{Nt}*L for the simu- lator, where L is length of the event. So the structure of the event list not only reduces the frequency of allocating memory, but also inherits the merit of the traditional approach in memory usage. 4. Visualization of the Simulator Visualization is also an important component of the simulator, though it is not indispensable. The traditional way to implement visualization is off-line replaying, like ns-2/Nam, which displays the flow of packets according to the trace file. Because the replaying depends on the trace file dumped during simulation, the off-line ap- proach is time consuming and may influence the per- formance of the simulator in terms of scalability. Other tools integrate the graphic user interface with the simula- tion engine, which has bad effects on the scalability of the simulator. We propose an on-line approach to show the progress of simulation by a separate process locally or remotely, based on a Client/Server model. A server process, which can be viewed as the graphic user interface (GUI) of the simulator, is firstly launched in the local machine or a remote machine. If the user requests to display the proc- ess of the packet flow or to visualize the states of the nodes, he can let the simulator connect with the server before starting running, by specifying the address and port on which the server is listening. During simulation, the server process is responsible for receiving and pars- ing the packets encapsulating the requests of visualiza- tion, which are generated and sent by the client. For example, when the simulator finishes initialization, all the created nodes need to be displayed in the GUI. So the simulator will send a packet, like Node sensor 0 100.0 200.0, to the server. The first word Node in the packet tells the GUI to draw a node, and sensor indicates the type of the node. Different types of nodes, such as sensors and sink, may be illustrated by different shapes in the GUI. The number following the type of the node is its identity. When the server receives the packet, it will draw a circle or a rectangle at the coordinate of (100.0, 200.0) to represent the node. Other packets are also de- fined to visualize other objects in the simulator, such as Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL.471 radio propagation, link establishment and packet flow- ing. In this way, the visualization of the simulator can be implemented without making significant modification to the established simulation engine. Since the GUI server can be run in a remote machine and the simulator can communicate with it in asynchronous way, the visualiza- tion will not affect the performance of the simulator. 5. Performance Evaluation The performance of our proposed simulator, named EasiSim, has been evaluated in terms of the following metrics. 1) Real running time: real running time is the direct indicator of scalability. It is obvious that the real running time can be influenced by the number of nodes and the simulation time. So we will firstly examine the trend of change on real running time as the number of nodes in- creases, and then influence of the configured simulation time on the real running time will be examined. 2) Memory usage: total memory required to run simu- lation can also influence the scalability of the simulator, since more memory usage means more frequent opera- tions on the system resource, which is very time con- suming. To compare its performance with ns-2, we first im- plement a unified suite of protocols, from the physical layer to the application layer, in both simulators. Details about how the protocols are designed and implemented have been presented in another paper [8]. Since the run- ning time of simulation is directly related with the pro- tocols implemented in the simulator, here we give a brief introduction of the protocols implemented by us, espe- cially the MAC protocol and the routing protocol. 5.1. Protocol Implementation 5.1.1. Media Access Control (MAC) Protocol Referring to the media control model integrated in the TinyOS [9], we designed a lightweight media access control protocol, named TinyMAC. Since the protocol should be refined further, we firstly established a simple model, which does not take the power saving mechanism into consideration. The finite state automaton of the pro- tocol is shown as Figure 5. From Figure 5, we can see that there are four states, namely idle (IDLE), initial back-offing (INIT-BO), con- gestion back-offing (CONG-BO) and transmitting (TRANS), existing in the automaton. The words beside the arcs, which are capitalized with C, stand for the con- ditions to trigger the change of the states. For example, supposing the current state is idle and a packet needs to be sent, if the current state of the physical layer is idle (that is C1), the node changes its state into initial back- Figure 5. Finite state automaton of the TinyMAC protocol. offing; otherwise (that is C5), the node starts congestion back-offing. When the congestion back-off ends (that is C6), it returns to idle and repeats the above described process. During initial back-offing, notification of state change (from idle to busy, that is C2) from the physical layer can stop its progress, but cannot make the current state changed. When the initial back-off ends (that is C3), the node starts transmitting the packet in the buffer. The node does not return to idle until the last bit of the packet is sent (this is C4). In order to reduce the complexity of the media access protocol in the sensor network, we temporarily exclude the reliable transmission mechanism from the link layer. Referring to the media control model implemented in TinyOS, we adopt the following equations to determine the length of the initial back-off and congestion back-off. InitBO=randInt(0,31)+1 (1) CongBO=randInt(0,15)+1 (2) The function of randInt(a, b) is defined to return a ran- dom number between a and b. So the maximum length of the initial back-off is 32 bytes, which implies about 13.3 milli-seconds when the channel bandwidth is 19.2 Kbps. For the same reason, the maximum length of congestion back-off is about 6.7 milli-seconds. 5.1.2. Routing Protocol Routing protocols are considered specific for the sensor network, since it is suggested to provide support for data aggregation or fusion to reduce the volume of data and energy consumption [10]. In this paper, we don’t put our efforts to design a data-centric or power-efficient routing protocol for the sensor network. Instead, we design a lightweight routing protocol based on flooding, which is referred to as TinyFlood, to evaluate performance of simulators. Flooding is considered to be the simplest scheme to route data in the multi-hop network. But it is also well known that flooding can lead to inner explosion and overlapping, which can waste a lot of bandwidth and other network resources. To reduce the overhead result- ing from the uncontrolled flooding, we make following improvements to avoid flooding loop and infinite re-for- warding of outdated packet. Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL. 472 One way to avoid looping packet in flooding is mak- ing the node remember the previously flooded packets. When an intermediate node receives a flooded packet, it firstly checks whether it has been flooded by the current node; if not, it will relay the packet by flooding and keep the packet in the memory; otherwise, it will drop the packet. For nodes in the sensor network, memory is se- verely constrained, so tracing the previously flooded packet seems impractical. In TinyFlood, we make the packet carry the informa- tion of the route through which it has been flooded. When an intermediate node receives a flooded packet from the upstream, it checks whether itself has been in- cluded in the trace list of the packet; if not, add itself to the trace list and re-flood the packet to the downstream; otherwise, it will drop the received packet. Supposing the upper bound of the number of nodes in the sensor net- work is 65536, the length of identity of each node will not exceed 2 bytes. So the maximum length of the extra payload added to the packet depends on the TTL (Time To Live) configured by the user, which can be expressed as Equation (3). Through this improvement, the problem of flooding loop is solved without requiring large mem- ory. Lmax_extra_payload=2×TTL (3) Considering the limited bandwidth of the sensor net- work, each packet cannot be so long, or else the network will always in burst state. Supposing the total packet size can not exceed 36 bytes, and the average length of data generated by the sensor node is 24 byes, it can be easily deduced from (3) that the TTL can not be more than 6. Next, we run simulations to compare performance of our designed simulator with ns-2 in terms of the above mentioned metrics. Simulations were run on a Pentium- IV3.0 GHz processor with 1 Gbytes of RAM memory. The GUI ran in a remote machine. 5.2. Real Running Time versus Number of Nodes The experiments were set up by putting 10 to 1000 nodes uniformly in a 1000 by 1000 meter square field. The transmission range of the node is 250 meters. The node in the left bottom corner is chosen to collect data and send the readings to the sink, which is in the right top corner of the field. The sensor nodes were configured to send the readings every 1 minute, and the simulation time is one hour. The length of the packet is 36 bytes, and the physical rate of the node is 19.2 kbps. The running time is calculated as the difference be- tween the time when the simulator finished initialization and the time when the simulation ends. All the results are the average of 5 runs with 95% confidence intervals. As shown in Figure 6, for both EasiSim and ns-2, the running times are below 5 second when less than 100 nodes are put in the field. As more nodes are added to the 0 10 20 30 40 50 60 102050100 200300400 500600 700800 900100 Number of Nodes Run Time (Second) NS2 EasiSim Figure 6. Real running time versus number of nodes. 0 0. 5 1 1. 5 2 2. 5 3 3. 5 4 4. 5 1234567891 Simulation Time (Hour) Run Time (Second) 0 NS2 Eas iSim Figure 7. Real running time versus simulation time. scenario, the simulation times increase superlinearly. This can be attributed to the event explosion when the nodes become denser. However, the run time of EasiSim increases much more slowly than that of ns-2. This can be owed mainly to the efficient approach to merge the concurrent events described in Session 2. 5.3. Real Running Time versus Simulation Time In this experiment, we put 10 nodes uniformly in a 1000 by 1000 meter square field, and run the simulation with the same parameters as described in the former experi- ment for 1 hour to 10 hours. As illustrated by Figure 7, the running times with both EasiSim and ns-2 rise with the increase of simulation time, because more events are generated to be processed. However, the running time of EasiSim is much less than that of ns-2. Since the profits gained from event merge can be neglected here, we can attribute the advantage of EasiSim to its structure based modeling method. Because all the data representing the state of each node is stored in a structured variable, rather than in an object, they can be accessed directly by the processing procedure without Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL.473 invoking other methods, the processing time can be re- duced a lot. 5.4. Memory Usage The setting up of experiments to evaluate the memory usage of the simulator is the same as we described in the above subsection. Here, we record the volumes of mem- ory space allocated for the nodes and the events in the simulator. Figure 8 shows the results of the experiments. We can see that EasiSim is always more memory effi- cient than ns-2. The main reason leading to the result can be concluded as follows. In ns-2, every component of the node is modeled by an object, and the components then comprise the node. Each object in ns-2 has a shadow in memory, so ns-2 needs twice more spaces than EasiSim to store the nodes in the network. 6. Conclusions This paper presented a new simulator called EasiSim, for simulating sensor networks at large scales. EasiSim is featured by the structure-based modeling method and the hierarchical organization of the compo- nents. As the fundamental components, the node struc- tures are firstly organized into a three-dimension sorted linked list. Pointers to the head and the tail of each di- mension of the 3D list are then organized into the hy- per-structure called topology, through which all the nodes involved in the current event can be operated di- rectly. In this way, some concurrent events can be merged and thereby the running time can be reduced by an order of magnitude. The topology structure is then integrated with other components of the simulator, such as the discrete event queue and the simulation clock, into the top-level structure named scenario. We evaluate the scalability of our designed simulator in terms of real running time and memory usage. The results show that it takes less time and less memory for EasiSim than for ns-2 to complete simulations with the 0 2 4 6 8 10 12 14 16 102050100 200 300 400 500 600700 800 9001000 Number of Nodes Memory Usage (MB) NS2 EasiSim Figure 8. Memory usage versus number of nodes. same number of nodes and configured simulation time. Furthermore, we proposed a visualization scheme based on a client-server mode, which enable the simula- tion and GUI processes to run in a distributed way. Therefore, our proposed visualization scheme does not decrease the performance of the simulator in terms of scalability. 7. Future Work So far, we have established a scalable simulation plat- form for sensor networks. To evaluate the performance of the simulator, we also implemented the disk radio propagation module, the MAC protocol and the flooding protocol in the simulator. As for our future works, we plan to extend the mod- ules, including the radio channel modules, the environ- ment modules and the networking protocol modules, to make the simulator support for modeling the sensor net- works more precisely. A practical battery and energy module is also supposed to be implemented in the future days, since it is of vital importance for modeling the power efficiencies of different protocols and life time of the sensor nodes. As more modules added to EasiSim, the scalability of the simulator will be reevaluated and its performance will be improved step by step. Besides that, the visuali- zation scheme will be refined and its effects on the scal- ability of the simulator will be investigated more deeply. 8. Acknowledgements This research is supported in part by the Chinese Acad- emy of Sciences (CAS) - Croucher Funding Scheme for Joint Laboratories under Grant No. GJHZ200819, the National Basic Research Program of China (973 Program) under Grant No.2006CB303000, and the CAS Knowl- edge Innovation Program under Grant No. KGCX2- YW-110-3. 6. References [1] The Network Simulator–ns-2. http://www.isi.edu/nsnam/ns. [2] F. Desbrandes, S. Bertolotti, and L. Dunand. “OPNET 2.4: An environment for communication network modeling and simulation,” In Proceedings of the European Simula- tion Symposium, pp. 609–614, Delft, Nertherlands, Oc- tober 1993. [3] A. Varga. “The OMNeT++ Discrete event simulation sys- tem,” In Proceedings of the European Simulation Multi- conference (ESM’01), Prague, Czech Republic, June 2001. [4] H. Tyan. “Design, realization and evaluation of a compo- nent-based compositional software architecture for net- work simulation,” PhD thesis, Ohio State University, 2002. Copyright © 2009 SciRes. WSN
H. M. CHEN ET AL. Copyright © 2009 SciRes. WSN 474 [5] S. Park, A. Savvides, and M. B. Srivastava. “SensorSim: A simulation framework for sensor networks,” In Proceed- ings of MSWiM’00, pp. 104–111, Boston, Massachusetts, USA, 2000. [6] P. Levis, N. Lee, M. Welsh, and D.Culler, “TOSSIM: Accurate and scalable simulation of entire TinyOS appli- cations,” In Proceedings of SenSys’03, pp. 126–137, November 2003. [7] J. Polley, D. Blazakis, J. McGee, D. Rusk, and J.S. Baras. “ATEMU: A fine-grained sensor network simulator,” In Proceedings of SECON’04, pp. 145–152, October 2004. [8] H. Chen, C. Huang, and L. Cui. “Lightweight protocol suite for wireless sensor networks: Design and evalua- tion,” in Proceedings of IEEE ISCIT’07, pp. 1155–1160, Sydney, Australia, October 2007. [9] A. Woo S. Hollar D. Culler J. Hill, R. Szewczyk, and K. Pister. “System architecture directions for networked sensors,” In Proceedings of the 9th International Confer- ence on Architectural Support for Programming Lan- guages and Operating Systems (ASPLOS’00), pp. 93– 104, November 2000. [10] B. Kr ishnamachari, D. Estrin, and S. Wicker, “Modelling data-centric routing in wireless sensor networks,” in Pro- ceedings of the IEEE INFOCOM, 2002.
|