This Python script simulates a network transmission protocol using the Go-Back-N technique, demonstrating frame transmission, error handling, and wire efficiency calculation.
- Simulates network frame transmission with potential frame failures
- Implements Go-Back-N protocol
- Calculates wire efficiency
- Provides detailed transmission statistics
- Converts messages to binary representation
- Handles dynamic window sizes
- Python 3.8+
random
module (standard library)
git clone https://github.com/Spafic/Go_Back_N_Protocol.git
cd Go_Back_N_Protocol
No additional dependencies are required as the script uses Python's standard library.
python main.py
- Message to transmit
- Window size for transmission
Note
Example Workflow
Enter message: Hello
Enter window size: 3
- Dynamically sends frames based on window size
- Randomly simulates frame transmission success/failure
- Supports automatic retransmission of failed frames using Go-Back-N strategy
- Tracks and reports transmission efficiency
- Received message
- Binary representation
- Total frames sent
- Failed frames
- Wire efficiency percentage
- Random frame transmission success
- Go-Back-N frame management
- Adaptive retransmission strategy
We welcome contributions to enhance the Go-Back-N Protocol Transmission Simulator. To contribute, follow these steps:
- Fork the Repository: Click the "Fork" button at the top right of the repository page to create a copy of the repository in your GitHub account.
- Clone Your Fork: Clone your forked repository to your local machine.
git clone https://github.com/YourUsername/Go_Back_N_Protocol.git cd Go_Back_N_Protocol
- Create a Feature Branch: Create a new branch for your feature or bug fix.
git checkout -b feature/YourFeatureName
- Make Changes: Implement your feature or bug fix.
- Commit Your Changes: Commit your changes with a descriptive commit message.
git commit -m 'Add YourFeatureName'
- Push to Your Branch: Push your changes to your forked repository.
git push origin feature/YourFeatureName
- Open a Pull Request: Go to the original repository and open a pull request to merge your changes.
Thank you for your contributions!
This project demonstrates fundamental concepts in network transmission protocols, specifically the Go-Back-N technique used in data communication.
This project is licensed under the MIT License. See the MIT LICENSE file for more details.