You are on page 1of 12

DART: Dynamic Address Routing for Scalable Ad Hoc and Mesh Networks

Abstract: It is well known that the current ad hoc protocol suites do not scale to work efficiently in networks of more than a few hundred nodes. Most current ad hoc routing architectures use flat static addressing and thus, need to keep track of each node individually, creating a massive overhead problem as the network grows. Could dynamic addressing alleviate this problem? In this paper, we argue that the use of dynamic addressing can enable scalable routing in ad hoc networks. We provide an initial design of a routing layer based on dynamic addressing, and evaluate its performance. Each node has a unique permanent identifier and a transient routing address, which indicates its location in the network at any given time. The main challenge is dynamic address allocation in the face of node mobility. We propose mechanisms to implement dynamic addressing efficiently. Our initial evaluation suggests that dynamic addressing is a promising approach for achieving scalable routing in large ad hoc and mesh networks. 1 Existing System:

Most current ad hoc routing architectures use flat static addressing. It needs to keep track of each node individually and creating a massive overhead problem as the network grows. Scalability is a critical requirement in networking technologies to reach their full potential. The current routing protocols and architectures work well only up to a few hundred nodes.

The main reason behind the lack of scalability is that these protocols rely on flat and static addressing.
Proposed System:

Dynamic addressing is a feasible way to achieve scalable ad hoc routing. Scalable means thousands up to millions of nodes in an ad hoc or mesh network. It separates node identity from node address, and uses the address to indicate the nodes current location in the network. Address allocation scheme uses the address space efficiently on topologies of randomly and uniformly distributed nodes, empirically resulting in average routing. In currently use IP address as identifier, which is a globally unique number that stays the same throughout the lifetime of the node. Thus, the transport and application layers do not need to change, and the routing address is only seen at the network layer. It greedily minimizes the expected size of the resulting routing table at each node. However, it may want to reallocate addresses proactively to improve: 1) the balancing of the address tree, and 2) the length of the routed paths.
Modules:

For the ease of coding, our project is divided into four modules. They are as follows:

1. Routing State of Node with Loop Avoidance 2. Node Lookup 3. Dynamic Address Allocation Address Selection with Best Neighbor Address Validation 4. Populating and Maintaining the Routing Table

Refresh and Routing Update Structure

Module Descriptions: 1. ROUTING STATE OF NODE WITH LOOP AVOIDANCE: Each node keeps some routing state, as specified about a sibling node level which is stored at position. Intuitively, the routing state for a sibling contains the information necessary to maintain a route toward a node (any node) in that sub tree. DART makes use of the structured address space to create a new kind of loop avoidance scheme. In order to preserve scalability, this paper generalizes the loop freedom rule. For each sub tree, once a routing entry has left the sub tree, it is not allowed to re-enter. This effectively prevents loops, and can be implemented in a highly scalable manner. 2. NODE LOOKUP:

Find the missing link of the current address of a node. This paper proposes to use a distributed node lookup table, which maps each identifier to an address. Node entries are defined in Anchor Node of the identifier. This paper opted for a method of periodic refresh, where every node periodically sends its information to anchor node. It sets all lookup table entries to expire automatically after a period twice as long as the periodic refresh interval.

3. DYNAMIC ADDRESS ALLOCATION: 3.1 ADDRESS SELECTION WITH BEST NEIGHBOR: When a node joins an existing network, it uses the periodic routing updates of its neighbors to identify and select an unoccupied and legitimate address. It starts out by selecting which neighbor to get an address from the neighbor with the highest-level insertion point is selected as the best neighbor. The insertion point is defined as the highest level for which no routing entry exists in a given neighbors routing table. 3.2 ADDRESS VALIDATION: For each neighbor, find the highest order bit where the current nodes address differs from the neighbors address. If the addresses are identical, then the address is invalid if the neighbor has a lower identifier. Otherwise, check the neighbors announced routing table for the entry that should contain our sub tree. If an entry exists, but contains a different identifier, then we have detected an addressing conflict that needs to be resolved. The current address is invalid if the locally computed identifier is larger.

4. POPULATING AND MAINTAINING THE ROUTING TABLE:

DART nodes use periodic routing updates to notify their neighbors of the current state of their routing table. If, within a constant number of update periods, a node does not hear an update from a neighbor, it is removed from the list of neighbors, and its last update discarded.

4.1 REFRESH AND ROUTING UPDATE STRUCTURE: Every period, each node executes Refresh. It checks the validity of its current address, populates a routing table using the information received from its neighbors, and broadcasts a routing update.

Conclusion:

Thus the project explains how the nodes can be effectively used in an ad hoc network eliminating a massive overhead problem. Therefore dynamic addressing eliminated the flat and static addressing making it a feasible method to execute in large networks. Dynamic Addressing represents a novel and promising approach to scalable ad hoc routing.Dynamic Address Routing is on its way to become a scalable alternative to current ad hoc routing protocol.
Software Requirements

1. OPERATING SYSTEM 2. JAVA DEVELOPMENT KIT above

Windows XP,2000 J2SDK 1.5 and

Hardware Requirements PROCESSOR RAM HARD DISK Pentium 4 CPU 2.40GHz 128 MB 40 GB

Feasibility Report Introduction: A feasibility study is a high-level capsule version of the entire System analysis and Design Process. The study begins by classifying the problem definition. Feasibility is to determine if its worth doing. Once an acceptance problem definition has been generated, the analyst develops a logical model of the system. A search for alternatives is analyzed carefully. There are 3 parts in feasibility study. Technical Feasibility: Evaluating the technical feasibility is the trickiest part of a feasibility study. This is because, at this point in time, not too many detailed design of the system, making it difficult to access issues like performance, costs on (on account of the kind of technology to be deployed) etc. A number of issues have to be considered while doing a technical analysis.Understand the different technologies involved in the proposed system before commencing the project we have to be very clear about what are the technologies that are to be required for the development of the new system. Find out whether the organization currently possesses the required technologies. Is the required technology available with the organization?. Operational Feasibility:

Proposed project is beneficial only if it can be turned into information systems that will meet the organizations operating requirements. Simply stated, this test of feasibility asks if the system will work when it is developed and installed. Are there major barriers to Implementation? Here are questions that will help test the operational feasibility of a project: Is there sufficient support for the project from management from users? If the current system is well liked and used to the extent that persons will not be able to see reasons for change, there may be resistance. Are the current business methods acceptable to the user? If they are not, Users may welcome a change that will bring about a more operational and useful systems. Have the user been involved in the planning and development of the project? Early involvement reduces the chances of resistance to the system and in general and increases the likelihood of successful project. Since the proposed system was to help reduce the hardships encountered. In the existing manual system, the new system was considered to be operational feasible. Economic Feasibility: Economic feasibility attempts 2 weigh the costs of developing and implementing a new system, against the benefits that would accrue from having the new system in place. This feasibility study gives the top management the economic justification for the new system.A simple economic analysis which gives the actual comparison of costs and benefits are much more meaningful in this case. In addition, this proves to be a useful point of reference to compare actual costs as the project progresses. There could be various types of intangible benefits on account of automation. These could include increased customer satisfaction, improvement in

product quality better decision making timeliness of information, expediting activities, improved accuracy of operations, better documentation and record keeping, faster retrieval of information, better employee morale.

SDLC Methodology This document play a vital role in the development of life cycle (SDLC) as it describes the complete requirement of the system. It means for use by developers and will be the basic during testing phase. Any changes made to the requirements in the future will have to go through formal change approval process. SPIRAL MODEL was defined by Barry Boehm in his 1988 article, A spiral Model of Software Development and Enhancement. This model was not the first model to discuss iterative development, but it was the first model to explain why the iteration models. As originally envisioned, the iterations were typically 6 months to 2 years long. Each phase starts with a design goal and ends with a client reviewing the progress thus far. the project. The steps for Spiral Model can be generalized as follows: The new system requirements are defined in as much details as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system. A preliminary design is created for the new system. Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of

A first prototype of the new system is constructed from the preliminary design. product. This is usually a scaled-down system, and represents an approximation of the characteristics of the final

A second prototype is evolved by a fourfold procedure: 1. Evaluating the first prototype in terms of its strengths, weakness, and risks. 2. Defining the requirements of the second prototype. 3. Planning an designing the second prototype. 4. Constructing and testing the second prototype.

At the customer option, the entire project can be aborted if the risk is deemed too great. Risk factors might involved development cost overruns, operating-cost miscalculation, or any other factor that could, in the customers judgment, result in a less-than-satisfactory final product.

The existing prototype is evaluated in the same manner as was the previous above. prototype, and if necessary, another prototype is developed from it according to the fourfold procedure outlined

The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.

The final system is constructed, based on the refined prototype. The final system is thoroughly evaluated and tested. failures and to minimize down time. Routine

maintenance is carried on a continuing basis to prevent large scale

The following diagram shows how a spiral model acts like:

Fig 1.0-Spiral Model

ADVANTAGES:

Estimates(i.e. budget, schedule etc .) become more relistic as work progresses, because important issues discoved earlier.

It is more able to cope with the changes that are software development generally entails.

Software engineers can get their hands in and start woring on the core of a project earlier.

You might also like