* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Remote Deployment of Wireless Sensor Networks
Survey
Document related concepts
Multiprotocol Label Switching wikipedia , lookup
Airborne Networking wikipedia , lookup
Backpressure routing wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Distributed operating system wikipedia , lookup
Wake-on-LAN wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Deep packet inspection wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Everything2 wikipedia , lookup
Transcript
Remote Deployment of Wireless Sensor Networks Final Presentation April 28, 2005 Mark Robinton & Brandon Balkind Overview • • • • Uplink Nodes Protocol Review Implementation in NS2 Future Work Robinton&Balkind 4/28/05 Uplink Nodes • Is it feasible to make a disposable, rapidly deployable, remotely operating sensor uplink node for satellite communication? • Remember: Cost not too much of an issue—this is military contract. • Iridium operates at a data rate of 2400 baud, which requires very aggressive voice compression and decompression algorithms. • 10 Kbps is achievable with good compression (from Wikipedia) Robinton&Balkind 4/28/05 Uplink Nodes Cont’d • By conservative estimate, this new device should be designed to consistently operate with 15 minutes uplink tx time (for simulation purposes) • 900 seconds * 10 Kbps = 9000 Kbits total tx capacity, neglecting effects of normal battery drain (rx, think, idle, etc) • Assume 100:1 Uplink:Sensor nodes and counter at 3000Kbits • 3000Kbits / 100 nodes = 30Kbits per node 3.75Kbytes per node Robinton&Balkind 4/28/05 Uplink Nodes Cont’d • Remember: Sensors will only transmit when they have meaningful information • 100:1 is a taxing load on one uplink node • We are using very conservative estimates on the time a node would last Robinton&Balkind 4/28/05 The Protocol • Need a method of initially electing a head node for a randomly distributed network. • Need to gracefully transition when the head node’s power begins to wane. • What to do if head node drops off the map? • What to do if next in line is not available? Robinton&Balkind 4/28/05 Network State Machine Initial count for home clusters Flood collision, Wait for end of count Count timeout, transfer count Instant election, flood results after timeout Low power Running phase (keep alives if nec.) Robinton&Balkind 4/28/05 Initial Packets Needed • Discovery – Broadcast by a head node to find out how many sensor nodes are in its tree • DiscoveryAck – Reply by sensor node so uplink node can keep count • InitElection – Sent to any head node that needs to participate in the elction • ElectionResult – Packets that indicates the winner and how each sensor node should redirect its infomation • CountSwap – Used to propagate any changes in the count of a node including initial count. Robinton&Balkind 4/28/05 Making a packet in NS2 Header Macro #define HDR_AODV_DIS(p) ((struct hdr_aodv_discovery*)hdr_aodv::access(p)) This casts the return of the access function as a particular type of packet struct defintion: Define a struct that has all the header information contained in the packet including type, source, destination, hop count struct hdr_aodv_discovery_ack { u_int8_t da_type; // Packet Type nsaddr_t da_dst; // destination inline int size() { int sz = 0; /* sz = sizeof(u_int8_t) // da_type + sizeof(nsaddr_t) // da_dst */ sz = sizeof(u_int8_t) + sizeof(nsaddr_t); assert (sz >= 0); return sz; } Robinton&Balkind 4/28/05 }; Receiving a DiscoveryPkt struct hdr_aodv *ah = HDR_AODV(p); switch(ah->ah_type) { case AODVTYPE_DIS: recvDIS(p); break; } Function to receive a Discovery Packet void AODV::recvDIS(Packet *p) { struct hdr_aodv_discovery *ds = HDR_AODV_DIS(p); printf("Received a Discovery Packet\n"); sendDiscoveryAck(ds->dis_src); } Robinton&Balkind 4/28/05 Sending a DiscoveryPkt void AODV::sendDiscovery() { Packet *p = Packet::alloc(); struct hdr_ip *ih = HDR_IP(p); struct hdr_aodv_discovery *dis = HDR_AODV_DIS(p); dis->dis_type = AODVTYPE_DIS; dis->dis_src = index; dis->dis_src_seqno = seqno; dis->dis_dst = IP_BROADCAST; dis->dis_hop_count = hop_count; ih->saddr() = index; ih->daddr() = IP_BROADCAST; ih->sport() = RT_PORT; ih->dport() = RT_PORT; ih->ttl_ = 1; Scheduler::instance().schedule(target_, p, 0.0); } Robinton&Balkind 4/28/05 Future Work • Finish implementation in NS2 and simulate with different applications running. • Add more robust features to the algorithm to cover aforementioned corner cases Robinton&Balkind 4/28/05 Q&A Robinton&Balkind 4/28/05