|dc.description.abstract||For this thesis we consider Directed Diffusion routing protocol. It manages paths in a
data-centric way. A sink node publicizes its interest in some events. Such an interest will
be disseminated within the network and received by nodes that have data on those events.
During this process, gradients that record two-way information along all possible paths are
established. Afterward, a mechanism called path reinforcement is used to select high-quality
routes. Directed Diffusion also provides two sets of application programming interface (API).
One set is network routing API, which enables upper-layer entities in sources and sinks to
communicate through the network. This API takes the form of publish/subscribe paradigm.
A sink node can subscribe to interesting events. Also, sources will publish their sensed
events. The Directed Diffusion platform takes care of the underlying implementation. To
allow processing in intermediate nodes, Directed Diffusion also offers another API called
filters. Application-specific operations can be implemented as filters to manipulate data
packets as they pass through the network. Filters are provided through an interface to
specify interest in particular events. For each filter, a priority is associated. Although
directed diffusion is a widely used in sensor networks, it has several weaknesses. It only
considers delay as the routing metric to select best path. As a result, high throughput
may not be achieved. Its failure to consider deadline during the route selection lowers
the percentage of packets which can meet the deadline of real-time traffic. Its reliance on
flooding gives rise to differences in interference levels during the exploratory data phase and
the actually data transmission phase, which makes the route decision even more inaccurate.
It does not consider path interference which worsens it performance during high rate data
transmission. We propose a routing protocol to augment and extend directed diffusion to
handle these issues. First, we propose an algorithm which considers throughput, delay and
intra-flow interference metric for a path. ETX (Expected Transmission Count) is used as the
metric for measuring link quality. We improve on QoS-based routing by limiting interference
in lossy links. We use an improved method for computing aggregate ETX for a path that
increases end-to-end throughput. We compute multiple paths between source-sink pair. We
choose best two paths based on the aggregate ETX metric and delay. The main goal of
our protocol design is to use these routes to achieve high throughput and less delay. We
monitor the data transmission over a period of time. We measure maximum queue length
over the active path, we measure the rate of increase in queue length, and in addition we
keep track of ETX which can give us an idea of interference over links on active path. We
have setup inter-node queues, and intra node queues to handle data flowing through nodes.
We maintain a threshold value for all the queues. We check the current queue state after an
interval of . Depending on the increase in queue length we estimate if the queue might be
over the threshold value in time frame . We also measure the ETX value to see if it shows
sign of interference. If these metrics show sign of congestion on the active route, then sink
will signal the source to switch data transfer to an alternate path. This switching of path
is done by sending an explicit control message called SWITCH PATH MESSAGE to source
across the network from sink to source. The control message is sent using an alternate path
which should be used for data transfer. This makes our protocol end-to-end. If switching of
path does not help to control congestion, we use multiple paths to cope with high data rates.
As a last option, if even this does not mitigate congestion, then we limit source sending rate.||en