{"id":25067487,"url":"https://github.com/spafic/go_back_n_protocol","last_synced_at":"2026-02-06T14:33:53.932Z","repository":{"id":264355272,"uuid":"890427001","full_name":"Spafic/Go_Back_N_Protocol","owner":"Spafic","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-24T17:37:02.000Z","size":2272,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-18T12:42:50.415Z","etag":null,"topics":["python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Spafic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-18T14:49:58.000Z","updated_at":"2024-11-24T17:37:05.000Z","dependencies_parsed_at":"2025-03-31T14:49:13.250Z","dependency_job_id":"d3933ff0-cbce-40ed-991e-5ba0d914c7bf","html_url":"https://github.com/Spafic/Go_Back_N_Protocol","commit_stats":null,"previous_names":["spafic/go_back_n_protocol"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Spafic/Go_Back_N_Protocol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spafic%2FGo_Back_N_Protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spafic%2FGo_Back_N_Protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spafic%2FGo_Back_N_Protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spafic%2FGo_Back_N_Protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spafic","download_url":"https://codeload.github.com/Spafic/Go_Back_N_Protocol/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spafic%2FGo_Back_N_Protocol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29164865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T12:44:37.655Z","status":"ssl_error","status_checked_at":"2026-02-06T12:44:13.991Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python"],"created_at":"2025-02-06T20:57:28.168Z","updated_at":"2026-02-06T14:33:53.911Z","avatar_url":"https://github.com/Spafic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌐 Network Transmission Protocol Simulation\n\n## 🚀 Go-Back-N Protocol Transmission Simulator\n\n---\n\n### 📋 Overview\nThis Python script simulates a network transmission protocol using the Go-Back-N technique, demonstrating frame transmission, error handling, and wire efficiency calculation.\n\n---\n\n### 📊 Diagram\n\n![Go-Back-N Protocol](./assets/GoBackN_protocol.png)\n\n---\n\n### ✨ Features\n- Simulates network frame transmission with potential frame failures\n- Implements Go-Back-N protocol\n- Calculates wire efficiency\n- Provides detailed transmission statistics\n- Converts messages to binary representation\n- Handles dynamic window sizes\n\n---\n\n### 🛠️ Installation\n\n#### Prerequisites\n- Python 3.8+\n- `random` module (standard library)\n\n#### Clone Repository\n```sh\ngit clone https://github.com/Spafic/Go_Back_N_Protocol.git\ncd Go_Back_N_Protocol\n```\n\n#### Install Dependencies\nNo additional dependencies are required as the script uses Python's standard library.\n\n#### Run the Simulator\n```sh\npython main.py\n```\n\n#### User Inputs\n1. Message to transmit\n2. Window size for transmission\n\n\u003e [!NOTE]\n\u003e **Example Workflow**\n\u003e \n\u003e ```sh\n\u003e Enter message: Hello\n\u003e Enter window size: 3\n\u003e ```\n\n---\n\n### ⚙️ Protocol Mechanics\n- Dynamically sends frames based on window size\n- Randomly simulates frame transmission success/failure\n- Supports automatic retransmission of failed frames using Go-Back-N strategy\n- Tracks and reports transmission efficiency\n\n---\n\n### 📈 Output Details\n- Received message\n- Binary representation\n- Total frames sent\n- Failed frames\n- Wire efficiency percentage\n\n---\n\n### 🧩 Simulation Characteristics\n- Random frame transmission success\n- Go-Back-N frame management\n- Adaptive retransmission strategy\n\n---\n\n### 🤝 Contributing\n\nWe welcome contributions to enhance the Go-Back-N Protocol Transmission Simulator. To contribute, follow these steps:\n\n1. **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.\n2. **Clone Your Fork**: Clone your forked repository to your local machine.\n    ```sh\n    git clone https://github.com/YourUsername/Go_Back_N_Protocol.git\n    cd Go_Back_N_Protocol\n    ```\n3. **Create a Feature Branch**: Create a new branch for your feature or bug fix.\n    ```sh\n    git checkout -b feature/YourFeatureName\n    ```\n4. **Make Changes**: Implement your feature or bug fix.\n5. **Commit Your Changes**: Commit your changes with a descriptive commit message.\n    ```sh\n    git commit -m 'Add YourFeatureName'\n    ```\n6. **Push to Your Branch**: Push your changes to your forked repository.\n    ```sh\n    git push origin feature/YourFeatureName\n    ```\n7. **Open a Pull Request**: Go to the original repository and open a pull request to merge your changes.\n\nThank you for your contributions!\n\n---\n\n### 💡 Inspiration\nThis project demonstrates fundamental concepts in network transmission protocols, specifically the Go-Back-N technique used in data communication.\n\n---\n\n### 📜 License\nThis project is licensed under the MIT License. See the [MIT LICENSE](./LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspafic%2Fgo_back_n_protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspafic%2Fgo_back_n_protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspafic%2Fgo_back_n_protocol/lists"}