200 likes | 358 Views
Directed Diffusion. Phani Teja Kuruganti Electrical and Computer Engineering. Overview. Sensor Networks – Sensing, Communication and Computation Directed Diffusion Data – centric behaviour Data communication PUSH and GEAR Network Routing API - 9.0.1
E N D
Directed Diffusion Phani Teja Kuruganti Electrical and Computer Engineering
Overview • Sensor Networks – Sensing, Communication and Computation • Directed Diffusion • Data – centric behaviour • Data communication • PUSH and GEAR • Network Routing API - 9.0.1 • Obtaining and Configuring Diffusion
Directed Diffusion • Data dissemination and co-ordination paradigm developed for scalable wireless sensor networks. • Data –centric approach • Application specific in-network processing to support long lived sensor network support. • Interest and data propagation and aggregation are determined by localized interactions. • Hop – by – Hop communication in sensor networks
Communication of Data • Data generated by the node is named by attribute – value pairs • A node requests data by sending interestsfor named data. • Data matching the interest is drawn down towards the source node.
API usage walk through Includes and Definitions Initialize Network routing on acertain port Create callbacks and incoming subscriptions Setup Subscriptions and Publications Sending data Receive data callback function
Attributes • The data requests and responses are composed of data attributes • Each piece of subscription is described via a key-value-operator triplet implemented with a class attribute
Attribute Examples NRSimpleAttributeFactory<char *> TargetAttr(NRAttribute::TARGET_KEY, NRAttribute::STRING_TYPE); NRSimpleAttributeFactory<char *>MobileAgent(APP_KEY1, NRAttribute::STRING_TYPE); NRSimpleAttributeFactory<int>MobileAgentsize(APP_KEY2, NRAttribute::INT32_TYPE);
Example of Publication handle setupPublication(NR *dr, char *nextip) { NRAttrVec attrs; attrs.push_back(NRClassAttr.make(NRAttribute::IS, NRAttribute::DATA_CLASS)); attrs.push_back(LatitudeAttr.make(NRAttribute::IS, 60.00)); attrs.push_back(LongitudeAttr.make(NRAttribute::IS, 54.00)); attrs.push_back(TargetAttr.make(NRAttribute::IS, nextip)); handle h = dr->publish(&attrs); ClearAttrs(&attrs); return h; }
Example of Subscription/interest propagation handle setupInterest(NR *dr,char *nextip) { NRAttrVec attrs; attrs.push_back(NRClassAttr.make(NRAttribute::NE, NRAttribute::DATA_CLASS)); attrs.push_back(NRScopeAttr.make(NRAttribute::IS, NRAttribute::NODE_LOCAL_SCOPE)); attrs.push_back(TargetAttr.make(NRAttribute::EQ, nextip)); attrs.push_back(LatitudeAttr.make(NRAttribute::IS, 60.00)); attrs.push_back(LongitudeAttr.make(NRAttribute::IS, 54.00)); handle h = dr->subscribe(&attrs, mr); ClearAttrs(&attrs); return h; }
Interest Mechanism • Subscription periodically sends interest messages with attributes • Interest messages flood through the network • When matching data is encountered simple gradient is established between publisher to subscriber. • When send function is called a Data message with the attributes is made and sent. • Exploratory-data message for low-cost and to obtain reinforced - gradient
PUSH • The send message is cheap – reinforced gradient, but periodic sending is expensive because of exploratory messages. • Basic diffusion is well suited for cases with many publishers and few subscribers. • If the situation is reversed ( like in mobile agent) PUSH mechanism should be used. • Interest messages are kept local to the nodes. • Positive reinforcement message for reinforced gradient. • Periodic exploratory data messages are flooded through the network • Useful when many subscribers and less publishers
GEAR • Geographic Energy aware routing protocol • Use geographic information • Make a closed region for subscriptions and publications • Avoids flooding
Application of Diffusion to Mobile agents • Agents follow a hop – by – hop pattern • Carry limited data (usually result or processing data) • Less traffic since no control messages • Efficient for event driven applications
Comparision of average dissipated energy for diffusion flooding and multicast[1]
Obtaining and configuring diffusion • Diffusion is freely available for Linux and ns-2.1b at http://www.isi.edu/scadds/software/ • Latest version is 3.1.3 • Also available as TinyDiffusion for TinyOS • Contains a configure script and a readme file to describe the flags to be used for configure. • Can be configured for Intel machines or Sensoria nodes with wired or wireless network
References • Directed Diffusion:A scalable and robust communication paradigm for sensor networks, Chalermak Intanagoniwat, Ramesh Govindan and Deborah Estrin • Network routing application programmer’s Interface and walk through 9.0.1 Fabio Silva, John Heidemann and Ramesh Govindan