Selective repeat algorithm implementation for data link layer protocol simulation.
Project was created with:
- C++
- Omnet++
Our team has successfully implemented the Data Link Layer Protocol Simulation project. Throughout the implementation process, we developed, simulated, and tested data link layer protocol between two nodes connected via a noisy channel. This project aimed to address the challenges of non-error-free transmission, including packet corruption, duplication, delay, and loss, while ensuring the robustness of the protocol.
- Each node read its list of messages from different input text files:
input0.txt
for Node0 andinput1.txt
for Node1. - Messages in the input files were preceded by a 4-bit binary prefix indicating the possibility of modification, loss, duplication, or delay.
- Error indicators were represented in a binary format (4 bits), where each bit location indicated the presence of a certain error type.
- The coordinator initialized the system, assigning which node of the pair should start and when.
- Initialization information was retrieved from an input file named
coordinator.txt
.
- System parameters such as sender window size (WS), receiver window size (WR), timeout interval (TO), processing time (PT), transmission delay (TD), error delay (ED), and duplication delay (DD) were configured in the
.ini
file.
- The system generated a log file named
output.txt
, containing details for each message transmission from both nodes. - Log entries included timestamps, node IDs, frame details, error indicators, and delays.
- We successfully implemented the Selective Repeat protocol considering timeout, window size, and the noisy channel.
- Sender and receiver nodes communicated using data and control frames (ACK/NACK).
- The simulation ended when the sender node finished sending all messages and received all corresponding ACKs.
- Download and install Omnet++.
- Clone the repository.
- Open Omnet++ and import the project.
- Run the project.
Cairo University - Computer Engineering Department Project Description