The source is available for use in the public domain under the general GPL © UMBC. See the license terms in the source code. The tarball contains the complete source code and documentation for an intrusion detection system we have developed for ad hoc mobile networks. The compressed tarball also contains libpcap and a binary compiled for ARM. See the "Secure Routing and Intrusion Detection for Mobile Ad Hoc Networks" document for implementation details. The documentation is also sufficiently descriptive.
Migration to the wireless network of the wired network has been a worldwide trend in recent decades. The mobility and scalability of the wireless network made this possible in many applications. Among all contemporary wireless networks, Mobile Ad hoc NETwork (MANET) is one of the most important and unique applications. Unlike traditional network architecture, MANET does not require a fixed network infrastructure; Each node functions as both transmitter and receiver. Nodes communicate directly with each other when they are within the same communication range. Otherwise, they rely on their neighbors to relay messages. The auto-configuration capability of in MANET nodes makes it popular among mission-critical applications such as military use or emergency recovery. However, the open medium and the wide distribution of nodes make MANET vulnerable to malicious attackers. In this case, it is crucial to develop effective intrusion detection mechanisms to protect MANET from attacks. With the improvements in technology and the cut in hardware costs, we are witnessing a current trend of the expansion of MANETs in industrial applications. To adjust to this trend, we firmly believe that it is vital to address your potential security issues. In this article, we propose and implement a new intrusion detection system called EAACK (Enhanced Adaptive Acknowledgement) specially designed for MANETs. Compared to contemporary approaches, EAACK demonstrates higher rates of detection of malicious behavior under certain circumstances, while not greatly affecting the results of the network.
Sample NS2 Simulation code for MANET:
This is the code for inserting, look up and deleting entries in routing table involved in MANET.
void
aodv_rt_entry::pc_insert(nsaddr_t id)
{
if (pc_lookup(id) == NULL) {
AODV_Precursor *pc = new AODV_Precursor(id);
assert(pc);
LIST_INSERT_HEAD(&rt_pclist, pc, pc_link);
}
}
aodv_rt_entry::pc_lookup(nsaddr_t id)
{
AODV_Precursor *pc = rt_pclist.lh_first;
for(; pc; pc = pc->pc_link.le_next) {
if(pc->pc_addr == id)
return pc;
}
return NULL;
}
void
aodv_rt_entry::pc_delete(nsaddr_t id) {
AODV_Precursor *pc = rt_pclist.lh_first;
for(; pc; pc = pc->pc_link.le_next) {
if(pc->pc_addr == id) {
LIST_REMOVE(pc,pc_link);
delete pc;
break;
}