Intrusion Detection System For Manets


Mobile Ad hoc NETwork (MANET) is one of the most important and unique applications in wireless networks. Due to the expanding industrial applications it is vital to address its potential security issues and hence it is crucial to develop efficient intrusion-detection mechanisms to protect MANET from attacks. The intrusion detection is defined as a mechanism for a WSN (wireless sensor network) to detect the existence of inappropriate, incorrect, or anomalous moving attackers.

The existing model comprises the Watchdog, TWOACK (Two Acknowledgement) and EAACK (Enhanced Adaptive Acknowledgement) .Watchdog and TWOACK fails to address the false misbehavior attack and partial dropping. False misbehavior report is overcome in EAACK . Digital signature is used in EAACK for a more secure transmission of data where the forging of acknowledgement is detected through MRA (Misbehavior Report Authentication). Partial dropping is one of the limitations of EAACK. Encryption in EAACK uses a simple encryption technique using digital signature and sends the full message in single path where there is a possibility of decrypting the message.

In this proposed model EAACK algorithm is improvised by overcoming some of its limitations. MD5 hashing and TripleDES Encryption is used to encrypt the message. The encrypted message is split into individual characters and sent through random paths to enhance security. Traffic is overcome by controlling the buffer size. A secure transmission with limited traffic is implemented in MANET environment successfully detecting the intruder. The performance metrics for traffic management and network overhead are tested



1.1 Background of the project

A Mobile Ad hoc NETwork (MANET) is the system of wireless mobile nodes that dynamically forms a temporary network without the aid of any existing network infrastructure

.Ad hoc mode is a method for wireless devices to communicate directly with each other

.Operating in ad-hoc mode allows all wireless devices within range of each other to discover and communicate in peer- to-peer fashion without involving central access points. Whereas nodes that not in the direct communication range use intermediate node(s) to communicate with each other. Due to the ad hoc and mobile nature of the MANET, it is much more vulnerable to intruder attacks when compared to a wired network. So the design and development of secure routing is challenging task.

Mobile ad-hoc networks have highly dynamic topology in which link breakage happen quite frequently. Hence, we need a security solution which is dynamic too. Malicious or Misbehaving nodes are able to create hostile attacks. This type of attacks can seriously damage security of system, such as integrity, confidentiality and privacy of the node. Protecting data transformation in mobile adhoc networks is an important aspect since the parties within the network want their communication to be secure.

Intrusion Detection System (IDS) is a system which is used to detect and report the malicious activity in the ad hoc networks .IDS can collect and analyze data for the entire network. Critical node is a node whose failure or malicious behavior disconnects or significantly degrades the performance of the network .Packets may be dropped due to network congestion

1.1.1 Applications

1. Defense applications:

Mobile communication set up for soldiers on the ground .

2 .Crisis-management applications:

Natural disasters, where the entire communication infrastructure is in disarray

3. Tele-medicine:

Paramedic assisting a victim at a remote location can access medical records.

Video conference facilities for a doctor can be prepared in case of emergency.

4. Vehicular Area Network:

Emergency services can be setup for both rural and urban people.

5. Education via the internet:

Wireless internet access made available to students as per their needs.


1.1.2 Challenges:

1 .Limitations Imposed by Mobility

Dynamically changing topologies/route. Lack of mobility awareness by system/applications

2 .Limitations of Mobile Computer

Short battery lifetime, Limited capacities

3 .Limitations of Wireless Network

Packet loss due to transmission errors can occur.

4 .Limited communication bandwidth

Broadcast nature of the communications

1.1.3 Objectives:

The main objectives of this project are to detect malicious nodes in the network and provide Authentication, Confidentiality and Integrity. Authentication means every node must know the identity of the peer node it is communicating with. Without authentication, an attacker could gain sensitive information and interfere with other nodes Confidentiality ensures certain information is never disclosed to unauthorized entities. Integrity makes the message being transmitted is never corrupted.


1.1.4 Goals:

1. Provide maximum reliability

2. Use alternative routes if intermediate node fails

3. Route network traffic through a path with the least cost

4. Give nodes the best possible response time and the throughput

1.1.5 Existing models

The existing models for the intrusion-detection system that is considered are Watchdog, TWOACK (Two Acknowledgement), AACK, EAACK (Enhanced Adaptive Acknowledgement). The Watchdog scheme has two parts namely, Watchdog and Pathrater. Watchdog detects the malicious node by listening to its next hop's transmission. If a Watchdog node overhears that next node fails to forward the packet within the certain amount of time then it increases its failure counter. Whenever failure counter exceeds threshold value, the Watchdog node reports it as malicious node. The Pathrater cooperates to avoid the reported nodes in further transmissions. Watchdog scheme fails to detect malicious misbehaviors in the presence of false misbehavior report and partial dropping.

TWOACK (Two Acknowledgement) detects misbehaving nodes by acknowledging each data packet transmitted for every three consecutive nodes in the path from source to destination node. The limitation of this method is that the acknowledgment process required for every transmission of data results in unwanted network overhead.


AACK is an acknowledgment-based scheme. It is a combination of TACK (identical to TWOACK) and an end-to-end acknowledgment scheme called ACKnowledge (ACK). TWOACK and AACK do not detect malicious nodes in the presence of false misbehavior report and forged acknowledgment packets.

In EAACK, full message is sent in single path where there is a possibility of decrypting the message. Encryption in EAACK uses a simple encryption technique using digital signature. Partial dropping is the limitation of EAACK.

1.1.6 Proposed model :

MANET environment is simulated in a form using c# .Random number of mobile nodes are created by giving the input as number of nodes required by the user. Nodes can also be created at particular cursor position by automatically getting the x and y locations in the main form. Nodes are displayed using picture box. Node name is given while creating the nodes. Connections between the sender and receiver are simulated by drawing lines from send node to the receive node. Each sender connects to receiver using one or more intermediate nodes. If the receiver is in within the range of the sender then no intermediate nodes are used for creation.

Destination node is authenticated using the sequence number corresponding to that particular node .Traffic management is controlled by buffer size of that destination node. Database is maintained for each node with all its details. Sequence numbers and buffer size corresponding to each node is maintained in the database. This database is connected to the project using ODBC connector. While sending the message destination node name, sequence


number and buffer size is mentioned. Only if the sequence number is valid and the buffer size is within the range it is a valid node.

The message is encrypted before sending. Message is compressed using MD5 algorithm and encrypted using TripleDES encrypting algorithm. This encrypted message is then split into individual characters and each character is then sent in different paths using different intermediate nodes .In the receiver side it receives each character with its corresponding index value through different intermediate nodes .Destination node arranges all these characters using the index value in order .This ordered message is then decrypted using the symmetric key .Once the receiver node receives the message it sends the acknowledgement to the sender. The message received is inserted in the database at that particular destination.

Message is sent using three modes ACK, S-ACK, MRA of EAACK algorithm. In ACK message is sent to destination and it sends the acknowledgement, if the acknowledgement is not received then the destination node is not a valid node. In S-ACK three nodes are considered each time until it reaches destination node. If the acknowledgement is not received at the source then the other two nodes are not valid nodes. If S-ACK sends the false misbehavior report it is analyzed in MRA. In MRA, the destination node is checked whether it receives the message in some other different path. If it receives the message in different path, then the report sent in S-ACK mode is false else it is a correct report. In all these modes the sending of acknowledgement is simulated by verifying the database of destination node .Acknowledgement is sent only if the sender knows the valid sequence number of the destination node and the buffer size is within the limit. In MRA, verification of message received at the receiver is simulated by checking the message column of particular destination node in the database. The unauthorized or malicious node is detected and then it is indicated by a red color dot as a small indication in the form.




Process Timeline
Project analysis 12 December ' 17 December (5 days)

Design January 2014 (22 days)

Implementation February 2014 (20 days)

Testing March 2014 (20 days)




3.1 Functional Requirements:

3.1.1 Use case Textual Description


1. Enter the start node and destination node.

2. Enter the message to be encrypted and transmitted.

3. Specifying the buffer size as needed.

4. Giving the sequence number for security purpose.


1. Gets the encrypted message

2. Decrypts the message

3. Sends acknowledgement to sender.

Work of database:

1. Checks the sequence number for authorization

2. Checks the message that is received for false misbehavior report.

3. Checks whether specified buffer size is correct for the particular node.


3.2 Non-functional requirements:

3.2.1 Performance requirements of MANET: More stringent performance requirement are

1. Auto-organization

2. Scalability to a high number of nodes

3. Energy efficiency -network lifetime

4. Fault tolerance

Robust against the node failures .

3.2.2 Interface requirements :

1. C#

2. MS Access database

3.2.3 Operational requirements:

Back up for the database is to be maintained


3.2.4 Resource requirements: SOFTWARE REQUIREMENTS: 1. VISUAL C#:

Visual C# is a high-level, general-purpose programming language for building apps using Visual Studio and the .NET Framework. C# is designed to be simple and object-oriented. Important point of C# is that it is a "managed" language, meaning that it requires the .NET Common Language Runtime (CLR) to execute. C# compiler produces an Intermediate Language (IL) , rather than the machine language and the CLR understands IL .Just-In-Time (JIT) compiles it, into compiled machine code and then executes.


It is also known as Microsoft Office Access, is a database management system that combines relational Microsoft Jet Database Engine with a graphical user interface and software-

development tools. It is a member of the Microsoft Office suite of applications. It stores the

data in its own format based on the Access Jet Database Engine. It can also link directly to data stored in other applications and databases. Access is supported by VB for all Applications, an object-oriented programming language that a variety of objects that include DAO , ActiveX Data Objects.

In addition to using its own database storage file, Microsoft Access also may be used as 'front-end' with other products as 'back-end' tables, such as SQL Server and non-Microsoft products .


Repetitive tasks can also be automated through macros. Data is locked at record level which is significantly different from Excel which locks the entire spreadsheet. Some users can use VBA to write rich solutions with advanced data manipulation and user control.


OLE DB is a COM-based application programming interface (API) for accessing the data. OLE DB supports accessing the data stored in any format (databases, spreadsheets, text files, and so on) for which OLE DB provider is available. Each OLE DB provider exposes the data from particular type of a data source. HARDWARE REQUIREMENTS:

1. Dual Core 1.0 GHz Processor

2, GB of RAM

3. At least 1 GB of space on Hard Disk

3.2.5 Security requirements of MANET:

1. Availability

If the parts of a system are well-designed and thoroughly tested before they are used then the system is said to be highly available,

2. Authorization and Key Management


The process in which it allows user to access various resources based on the user's identity and then granting or denying access to a network resource.

3. Data Integrity

Integrity gives the assurance that information can only be accessed by authorized users .

4. Certain discovery

Route must always be found if it exists between two nodes.

5. Isolation of misbehaving nodes

Malicious nodes should always be identified and isolated from routing.

6. Location privacy

Information about the node can be protected .

3.2.6 Quality of service requirements:

Traditional QOS metrics do not apply and the service of WSN must be 'good'

3.2.7 Reliability requirements:

The probability that an item performs required function without failure under stated conditions for a specific period of time. Fewer false positives, as there is no extensive crisis control infrastructure to handle alarms. Interoperable with other IDS that is it should collaborate with other nodes for the detection or response




4.1 Data Flow Diagram:


4.2 Class Diagram:


4.3 Use Case Diagram:






The design of this project is done using the following as the front-end, back-end and interface design tools.

' Development environment : Visual Studio.NET 2010

' Framework : .NET Framework 4.0

' User Interface : Windows Forms

' Programming language : C#.NET

' Database : MS Access 2010

5.1 Front End Design

The front end design of this project is done in c#. The main form is created where all the other modules are coordinated together. Different options for creating the node and connections is done by using the different controls like

' Context menu strip

' Menu strip

' Tool Strip

The context menu strip control consists of the option 'Add New Node at this Point'. This is used to add a new node at the location where the mouse is clicked.


The menu strip control consists of the file option by which a new node and a new connection can be created. It also has a quit option which can be used to cancel the creation of a node.

The tool strip control contains buttons for the following action such as

' Creating nodes

' Creating connection

' Sending packet

' Clearing the panel

A panel control is created in the main form where the nodes and the corresponding connections are displayed.

5.1.1 Creating Nodes:

The image for the nodes that are created in the panel in main form is done using a picturebox control. Image is imported from the source and placed inside the picturebox control. Separate class is used for the picturebox control and connected to the main form for its display.

To enable the movement of the picturebox the location is changed from time to time using the timer control.

5.1.2 Specification of nodes:

Nodes are given separate names and coordinates for their location along with their buffer size.

One node at a time can be created else any number of nodes can be created at a time.


A form with textboxes is used to get the name, xy coordinates and buffer size of the nodes for creating one node at a time. The number of nodes to be created is entered in a textbox and the

'generate nodes' checkbox is used for creating random nodes.

The create button is used for creating the nodes in the panel. The cancel button is used for cancelling the creation.

5.1.3 Create Connection:

The connection between the nodes is formed using drawline function used in the main class. The start node and destination node are got in the textboxes of the connection form. The bandwidth is also specified in a textbox. Checkboxes are used for creating different connections like

' Random Path

' Ack mode (Acknowledgement)

' S-Ack mode (Secure Acknowledgement)

' Mra mode (Misbehavior Report Authentication)

The create button is used for creating connections between the specified start and destination nodes.

The cancel button is used for cancelling the process.

5.1.4 Sending Packet:

To send message form one node to the other the Send Packet form is used .The textboxes are


used for getting the following information from the sender.

' Message

' Start Node

' Destination Node

' Sequence Number

' Buffer Size

The radio buttons

' S-Ack

' Mra

are used for specifying the mode of transmission of the data from start to destination node.

The send button sends the data from start to destination node. The message is encrypted and split into individual characters and each individual character is sent through a different path.

Listbox control is used in the form to display the message that is sent and to show the acknowledgement received from the receiver.

5.1.5 Receive Packet:

The receiver side is established with a form consisting of text boxes to receive the following from the sender

' Message as individual characters

' Ordered message

' Sequence number


The S-Ack and Mra text boxes display true or false according to which mode the message has been sent.

Timers are used to display the acknowledgement of the sender at a particular time.

The decrypt button is used to decrypt the encrypted message at the sender.

Message boxes are displayed at appropriate times after checking the sequence number.

Mra mode is used to detect the false misbehavior report where a message box is displayed after the checking for the report is over.

Thus the front end design of the project is successfully implemented using the features and different controls of c#.

5.2 Back End Design:

The back end tool or source that is used is MS-ACCESS database. Microsoft Access, also known as Microsoft Office Access, is a database management system from Microsoft that combines

the relational Microsoft Jet Database Engine with a graphical user interface and software-development tools.

In addition to using its own database storage file, MS Access also may be used as the 'front-end' with other products as the 'back-end' tables. Some applications such as Visual Basic, ASP.NET, or Visual Studio .NET will use the Microsoft Access database format for its tables and queries.

In this project a blank database is created and the appropriate columns and rows are created according to the needs of the project. The columns that are created are

' Node Id

' Node Name

' Buffer Size

' Sequence Number (1-5)

' Message

This information is stored in reference to the nodes that are created in the main form of the project. The database is created to insert, update, delete and select the data for ten nodes.

After creating the database the appropriate data link properties are selected. The provider for the database is given as Microsoft.ACE.OLEDB.12.0. The source for the connection to the c# project is given as the database that is created. The connection is tested successfully.

The appropriate codes for the connection of database are done in the c# project. The database connection is opened before giving any sql statements to do any operation on the database.

The database is used in the send packet function to get the node id of the sequence number that is entered by the user. Similarly commands are given for checking the buffer size of the nodes and for updating the message of the particular node id.

At the receiver side the sequence number received from the sender is checked with the database for the authorization of the data.


This way the MS-ACCESS database is used for checking of certain information that ensures the authorization of the transmitted data.

5.3 Interface Design:

The interface design is the connection between the user and the project designed in c#. In this project the Main form that is created with the panel serves as an interface, all the other functions

are connected to the main form and executed here. The functions that are connected to the main form are:

' Create Node

' Create Connection

' Send Packet

This allows the user to execute the project in one form without having to navigate to different forms and classes. The user is able to see the output of all the functions within one form.

Thus the design of the project is done using

Front-end tool as C#

Back end tool as MS-ACCESS database.

Interface design as C#.




6.1 Algorithms

1. Separate functions for each module in the project are created.

2. Main panel is created and all the different functions are co-ordinate into one program.

3. Node creation: Functions for creating one node at a time or many nodes at a time are done.

3.1 Dialog box is created for specifying the node name and the xy location of the node according to the user.

4. Connecting Nodes: To connect the different nodes that are created a separate function is created for specifying the start and destination node.

4.1 Also the option of specifying the different modes of connection such as ack , s-ack, mra modes is created.

4.2 The nodes can also be created within a range and with random paths.

5. Database is created to store all the information about the nodes such as

5.1 Node Id

5.2 Node Name

5.3 Buffer Size

5.4 Sequence Number (4 different sequence numbers for 1 node).

5.5 Message (message passed to the specified node id).

6. The database information is created in a table in MS-ACCESS.

7. This database is connected to the send packet and receive packet functions.

8. In the send packet dialog box buttons and textboxes are created to enter the information to be sent to the receiver.


8.1 Message to be sent.

8.2 Sequence number to check the authorization.

8.3 Buffer size

9. The message to be sent is encrypted using the MD5 hashing and TripleDES encryption and sent to the receiver.

10. The encrypted message is received at the receiver along with the sequence number and its node id.

11. This sequence number is checked with the sequence number in the database.

12. Message is displayed as Authorized if both the sequence numbers are correct else unauthorized nodes are detected.

13. To check that there is no false report of detecting unauthorized nodes MRA modes is used.

14. MRA mode is used to find another route to destination node to check if original message is reached.

15. If the message is already available the report is regarded as false report else the unauthorized nodes detection is correct.


6.2 Sample Codes:


using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms;

namespace ManetApplication
public partial class MainUI : Form

public CreateNode cn; public CreateConnection cc;

public static List<Node> node_list; public static List<Node> nodeName_list;

public static List<Connection> connection_list; public static Node n;

public static Connection c; public static SendPacket sp; public static Packet p; public static Receive_pkt rp;

Node[] myArray = new Node[50]; public int x, y;

class ControlGroups
public static class Group1
public static Panel panel = MainUI.panel1;



public MainUI()

node_list = new List<Node>(); nodeName_list = new List<Node>(); n = new Node();


connection_list = new List<Connection>(); c = new Connection();

panel1.ContextMenuStrip = contextMenuStrip1; listBox2.Visible = true;

private void nodeToolStripMenuItem_Click(object sender, EventArgs e)

cn = new CreateNode();

cn.created += new Action(handleNewNodeCreation); cn.Show();

public void handleNewNodeCreation()


int d = 0; d++;

d = MainUI.node_list.Count();

if (d == 1)
NodeControl nc = new NodeControl();

nc.NodeNameLabel.Text = n.Node_Name;

nc.Location = new Point(n.Node_Location_X, n.Node_Location_Y);


foreach (Node n1 in node_list)

float r, s;
r = n1.Node_Location_X - 100;
s = n1.Node_Location_Y - 100;

Pen p = new System.Drawing.Pen(Color.Black); System.Drawing.Graphics range = panel1.CreateGraphics(); range.DrawEllipse(p, r, s, 500, 500);




NodeControl nc = new NodeControl();

for (int i = 0; i < MainUI.node_list.Count; i++) nc.NodeNameLabel.Text = n.Node_Name;

nc.Location = new Point(n.Node_Location_X, n.Node_Location_Y); nc.Refresh();


private void connectionToolStripMenuItem_Click(object sender, EventArgs e)
cc = new CreateConnection();

cc.createdconnection += new Action(handleNewConnectionCreation); cc.Show();

public void handleNewConnectionCreation()
Node n = new Node();

node_list.Add(n); connection_list.Add(c);

Node[] myArray = node_list.ToArray();

System.Drawing.Pen mPen;

if (c.Connection_Two_Way)

mPen = new System.Drawing.Pen(System.Drawing.Color.Green); else

mPen = new System.Drawing.Pen(System.Drawing.Color.Red);

System.Drawing.Graphics frmGraphics = panel1.CreateGraphics(); int x1 = c.Connection_Start.Node_Location_X;

int y1 = c.Connection_Start.Node_Location_Y;
int x2 = c.Connection_Middle.Node_Location_X; int y2 = c.Connection_Middle.Node_Location_Y;
int x2 = c.Connection_End.Node_Location_X;

int y2 = c.Connection_End.Node_Location_Y; int x4 = c.Connection_s2.Node_Location_X; int y4 = c.Connection_s2.Node_Location_Y;


int x5 = c.Connection_m2.Node_Location_X; int y5 = c.Connection_m2.Node_Location_Y; int x6 = c.Connection_d2.Node_Location_X; int y6 = c.Connection_d2.Node_Location_Y;

if (c.Connection_End.Node_Location_X < c.Connection_Start.Node_Location_X + 500 || c.Connection_End.Node_Location_X > c.Connection_Start.Node_Location_X - 500 && c.Connection_End.Node_Location_Y < c.Connection_Start.Node_Location_Y - 500 || c.Connection_End.Node_Location_Y > c.Connection_Start.Node_Location_Y + 500)


frmGraphics.DrawLine(mPen, x1, y1, x2, y2);
else if (cc.mraCheck.Checked == true)

Random rnd = new Random(); int num = rnd.Next(1, 8);

if (num == 1 || num == 7 || num == 3 || num == 8)

frmGraphics.DrawLine(mPen, x1, y1, myArray[2].Node_Location_X, myArray[2].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[2].Node_Location_X, myArray[2].Node_Location_Y, x2, y2);



frmGraphics.DrawLine(mPen, x1, y1, myArray[3].Node_Location_X, myArray[3].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[3].Node_Location_X, myArray[3].Node_Location_Y, x2, y2);


else if (cc.rand.Checked == true)

Random rnd = new Random(); int num = rnd.Next(1, 16);

if (num == 1 || num == 5 || num == 3 || num == 7)


frmGraphics.DrawLine(mPen, x1, y1, myArray[2].Node_Location_X, myArray[2].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[2].Node_Location_X, myArray[2].Node_Location_Y, x2, y2);


else if (num == 2 || num == 12 || num == 10 || num == 8)

frmGraphics.DrawLine(mPen, x1, y1, myArray[3].Node_Location_X, myArray[3].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[3].Node_Location_X, myArray[3].Node_Location_Y, x2, y2);

else if (num == 11 || num == 4 || num == 9 || num == 6)

frmGraphics.DrawLine(mPen, x1, y1, myArray[4].Node_Location_X, myArray[4].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[4].Node_Location_X, myArray[4].Node_Location_Y, x2, y2);


frmGraphics.DrawLine(mPen, x1, y1, myArray[3].Node_Location_X, myArray[5].Node_Location_Y);

frmGraphics.DrawLine(mPen, myArray[5].Node_Location_X, myArray[3].Node_Location_Y, x2, y2);



else if (cc.sack.Checked == true)

frmGraphics.DrawLine(mPen, x1 + 25, y1 + 25, myArray[2].Node_Location_X + 25, myArray[2].Node_Location_Y + 25);

frmGraphics.DrawLine(mPen, myArray[2].Node_Location_X + 25, myArray[2].Node_Location_Y + 25, myArray[3].Node_Location_X + 25, myArray[3].Node_Location_Y + 25);

frmGraphics.DrawLine(mPen, myArray[3].Node_Location_X + 25, myArray[3].Node_Location_Y + 25, x2 + 25, y2 + 25);


else if (cc.ack.Checked == true)

frmGraphics.DrawLine(mPen, x1 + 25, y1 + 25, myArray[2].Node_Location_X + 25, myArray[2].Node_Location_Y + 25);

frmGraphics.DrawLine(mPen, myArray[2].Node_Location_X + 25, myArray[2].Node_Location_Y + 25, x2 + 25, y2 + 25);

frmGraphics.DrawLine(mPen, x1 + 25, y1 + 25, myArray[3].Node_Location_X + 25, myArray[3].Node_Location_Y + 25);

frmGraphics.DrawLine(mPen, myArray[3].Node_Location_X + 25, myArray[3].Node_Location_Y + 25, x2 + 25, y2 + 25);


if (c.Connection_Two_Way)

MessageBox.Show("Connection has been established both the sides"); else

MessageBox.Show("Connection has been established in one direction ");


private void addNewNodeAtThisPointToolStripMenuItem_Click(object sender, EventArgs

cn = new CreateNode(panel1.PointToClient(System.Windows.Forms.Cursor.Position).X, panel1.PointToClient(System.Windows.Forms.Cursor.Position).Y);

cn.created += new Action(handleNewNodeCreation); cn.Show();


private void sendPacketButton_Click(object sender, EventArgs e)
sp = new SendPacket();

sp.send += new Action(handleNewPacketSending); sp.Show();

public void handleNewPacketSending()


MainUI m = new MainUI();

connection_list.Add(c); SendPacket sp = new SendPacket(); connection_list.Add(c);

listBox2.Items.Add("waiting for connection");


listBox2.Items.Add("the message transmission has started from" + " " + cc.StartNodeTextBox.Text + " " + "to" + " " + cc.DestinationNodeTextBox.Text);

int x = c.Connection_End.Node_Location_X; int y = c.Connection_End.Node_Location_Y;

Node n = new Node();


Pen p = new System.Drawing.Pen(Color.Black); System.Drawing.Graphics r = panel1.CreateGraphics(); r.DrawEllipse(p, x , y, 100, 100);


private void receivebutton_Click(object sender, EventArgs e)







When a system is to improved, it should be done in a proper manner. The main goal of testing a system is to correct all the errors and present it in the correct manner. A successful test is one which detects an error. Software testing can be tested at any stage of the development process

The objectives of testing are : to verify that the controls incorporated in the system function as intended, to correctly give the appropriate inputs for the system, the outputs are correct, to make sure that during operation, incorrect input, processing and outputs will be deleted. Thus the main objective of software testing is to maintain and deliver a quality product to the client. Each and every software is expected to meet its needs and peformances. So when a software is developed it is required to check whether it fulfills those requirements.


7.1 Unit Testing (Individual modules)

Unit testing is checking the performance of each software modules. Each module is executed separately. The errors and corrections are done for each and every module. In this project the modules for each and every functions are executed successfully. Everything are combined together and executed as a single function only if the individual modules are executed completely.

' Component testing is also known as unit testing

' To search for defects in individual modules

Individual modules for creating nodes , creating connection , sending and receiving packets are tested


7.1.1 Creation of nodes in the main panel

7.1.2 Connecting the nodes in the main panel


7.1.3 Sending Packet from one node to other

7.1.4 Receiver side receiving message from sender


7.2 Integration Testing

Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. In this testing all the individual modules are combined together and they are executed together. The purpose of integration testing is to verify functional, performance and reliability requirements of the function that is joined together. Thus integration testing is successfully verified.

' Here the interaction between the different interfaces of the components is tested.

' Interaction between :

' 1.create node and connection

(nodes are created and connection established between them)

2. Send and receive packets (The receive packet form pops up soon after the send button is clicked).


7.3 Validation Testing

Validation testing is to check for the inputs that are given by the individual users. Individual users can give different types of inputs to the project and if this project works for any type of input then the validation testing is successful.

' Validation is to ensure that the product is made according to the requirements of the client and does indeed fulfill the intended purpose

' All tests are done and its running successfully for valid inputs




8.1 Problems faced

Some particular problems faced are listed as follows
1. Maintaining database for each node is difficult

2. Since the nodes are mobile, it is difficult to find the path from sender to receiver

8.2 Lessons learnt:

1. Importance of MANETs applications.

2. Need of security in transmitting data.
3. Usage of Encryption
4. Different ways of sending the message

5. Finding various routes to connect source and destination.




This project can be extended further for many applications in real time environment. Further studies on improving the encryption technique is needed. It is time consuming process for reconstructing the message, which can be reduced further. The optimized routing techniques can be incorporated for finding shortest path.

9.1 Conclusion:

The use of mobile ad hoc networks (MANETs) is increased in many applications so the security in MANETs also become equally important. In this project we have focused on authentication of nodes and emphasized few MANET issues. Message is encrypted then it is split into individual encrypted characters and sent in random paths. Due to its dynamic topology and absence of central access point it is more vulnerable to attacks compared to wired networks. As a result, it is a complex task for intrusion detection in MANETs for security researchers.

The methods authentication and encryption are not efficient to control all attacks so the further study is needed. Future plans include the research to control increase in number of new attacks and detect them before they damage the system.





[1] K. Al Agha, M.-H. Bertin, T. Dang, A. Guitton, P. Minet, T. Val, and J.-B. Viollet, 'Which wireless technology for industrial wireless sensor networks? The development of OCARI technol,' IEEE Trans. Ind. Electron., vol. 56, no. 10, pp. 4266'4278, Oct. 2009.

[2] R. Akbani, T. Korkmaz, and G. V. S. Raju, 'Mobile Ad hoc Network Security,' in Lecture Notes in Electrical Engineering, vol. 127.

New York: Springer-Verlag, 2012, pp. 659'666.

[3] R. H. Akbani, S. Patel, and D. C. Jinwala, 'DoS attacks in mobile ad hoc networks: A survey,' in Proc. 2nd Int. Meeting ACCT, Rohtak, Haryana, India, 2012, pp. 535'541.

[4] T. Anantvalee and J. Wu, 'A Survey on Intrusion Detection in Mobile Ad Hoc Networks,' in Wireless/Mobile Security. New York: Springer-Verlag, 2008.

[5] L. Buttyan and J. P. Hubaux, Security and Cooperation in Wireless Networks. Cambridge, U.K.: Cambridge Univ. Press, Aug. 2007.

[6] D. Dondi, A. Bertacchini, D. Brunelli, L. Larcher, and L. Benini, 'Modeling and optimization of a solar energy harvester system for self-powered





Acknowledgement ' iv


Background of the project ' 1

Back End Design -21

Class Diagram'14

Coding - 24


Design ' 17
Data Flow Diagram - 13


Existing model'4

Functional Requirements'8

Front end design'17



Interface design'37
Integration testing'23
Implementation - 39

Non-functional requirements'9

Operational Requirements -9



Proposed system'5
Performance Requirements ' 9


Quality Requirements - 12


References - 41

Resource requirements'10
Reliability Requirements ' 12


Software project plan'7

Software requirement specification'8 System Analysis ' 13

Sample Codes ' 26


Testing ' 33


Use Case Diagram ' 15
Unit Testing - 34


Validation Testing - 38

Source: Essay UK -

About this resource

This Information Technology essay was submitted to us by a student in order to help you with your studies.

Search our content:

  • Download this page
  • Print this page
  • Search again

  • Word count:

    This page has approximately words.



    If you use part of this page in your own work, you need to provide a citation, as follows:

    Essay UK, Intrusion Detection System For Manets. Available from: <> [25-05-20].

    More information:

    If you are the original author of this content and no longer wish to have it published on our website then please click on the link below to request removal: