Over the course of the past year our research has been focused on the development of a new routing protocol called AODV / k-SPR.
Through changes made to the NS-2 network simulator code, we were able to create faster and more efficient network routing,
at least in some circumstances.
At the start of the project, very little was known about the NS-2 or any of the code that is required to make it work.
So to begin, brute-force attempts at trying to pick apart the simulation itself was done. From here a number of acronyms were
learned and a little about how the simulation basically worked. Ultimately though, the information was very little help in
understanding the entire concept of NS-2 and how the code worked. The next step was then to break the NS-2 into its two parts,
the Tcl and the C++ code. The main executable portion of the code was discovered in the C++, and here is where most of the
alterations were made. Even though Tcl is the code that is used to create and run the simulation, relatively few changes
were actually made here because the Tcl can have the information from the C++ passed to it.
Significant changes that were made to the C++ code include adding different functionalities which will allow a node to discover
information about adjacent nodes. These functions included being able to find the adjacent neighbors, those that are within
k hops away, how far specified destinations are, the nodes that are considered to be routers, and so forth. By having
this functionality, the AODV / k-SPR routing protocol that is being developed can use the information to find a shortest path
to destinations. The only possible drawback that can be seen at this time is the number of routing messages that will be needed
to create the network and select the routers. But the trade off for using more routing messages seems to be outweighed by the
efficiency of the routing.
An important change that was made in the Tcl code was the creation of a loop that randomly generates the
positions of the nodes in the network. This was not originally done in NS-2, but instead a data file was utilized that
had all of the nodes positions. However, when testing a simulation of up to 100 nodes, the handwriting of the positions became
a tedious task and the loop was a very large help. The information that was created in the C++ code is then passed to the Tcl
code, and this created and ran the simulation.
As for AODV / k-SPR, it is functioning very well in that route requests and route replies are being sent out efficiently. The
blending has seemed to make the network simulation more efficient despite the fact that more underlying messages are used to
determine routes between nodes. However, there will always be room for improvement on the blending for those who possibly pick
up the project, to reduce the number of these underlying messages in order to make the network even more efficient.
Our research has brought us this far, and through our research we have completed a new routing protocol called AODV / k-SPR.
Along with that, we have also learned to make two different languages work together, blending their information to make a
final product. This research was a huge learning experience for those that worked on it, and very worth it in the end. The
hopes are, by the end of next year, that AODV / k-SPR will be fine tuned and fully functioning and fully tested.