0% found this document useful (0 votes)
18 views

Building-a-Simple-Routing-Protocol-in-Java

.

Uploaded by

vlogwalid13
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Building-a-Simple-Routing-Protocol-in-Java

.

Uploaded by

vlogwalid13
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Building a Simple Routing Protocol in Java

Step 1: Create the Packet Class


What is it?
A Packet represents the data being sent or forwarded. It stores a message in the form
of a byte array.
Tasks
1. Create a new class named Packet.
2. Add an attribute message of type byte[].
3. Write a constructor to initialize the message.
4. Add a method getMessage() to retrieve the message.

Step 2: Create the PacketQueue Class


What is it?
A PacketQueue is a data structure to hold packets temporarily before they are
processed.
Tasks
1. Create a new class named PacketQueue.
2. Add the following attributes:
1. Queue<Packet> packetQueue to store packets.
2. int maxQueueLength to define the maximum size of the queue.
3. int queueLength to track the current number of packets in the queue.
3. Write a constructor to initialize the queue and set the maximum size.
4. Implement the enqueue(Packet p) method:
1. Add a packet if the queue is not full.
5. Implement the dequeue() method:
1. Remove and return a packet if the queue is not empty.

Step 3: Create the ProtocolStateEnum Enum


What is it?
ProtocolStateEnum is used to represent the state of the routing protocol.
Tasks
1. Create a new enum named ProtocolStateEnum.
2. Define three states:
1. STATE_IDLE: The protocol is idle.
2. STATE_ON_RECEIVE: The protocol is receiving packets.
3. STATE_ON_FORWARD: The protocol is forwarding packets.
Step 4: Create the RoutingProtocol Class
What is it?
This class represents the logic of receiving and forwarding packets.
Tasks
1. Create a new class named RoutingProtocol.
2. Add the following attributes:
1. ProtocolStateEnum protocolState to store the protocol's state.
2. PacketQueue packetQueue to hold packets.
3. Write a constructor to initialize the protocol state and queue.
4. Implement the receive(Packet p) method:
1. Change the state to STATE_ON_RECEIVE.
2. Add the packet to the queue.
3. Reset the state to STATE_IDLE.
5. Implement the forward() method:
1. Change the state to STATE_ON_FORWARD.
2. Remove a packet from the queue and print its message.
3. Reset the state to STATE_IDLE.
Step 5: Write the main Method
What is it?
The main method is where the program starts running.
Tasks
1. Create a RoutingProtocol object.
2. Use the receive() method to add packets to the protocol.
3. Use the forward() method to process and forward packets.

Step 6: Test the Program


1. Run the program.
2. Check the output to see if packets are forwarded correctly.
3. Test edge cases:
1. Add more packets than the queue can hold.
2. Try forwarding when the queue is empty.

You might also like