{"id":26295590,"url":"https://github.com/shojiyao12/routing_implementation","last_synced_at":"2025-09-13T01:38:12.404Z","repository":{"id":282368381,"uuid":"948356976","full_name":"Shojiyao12/Routing_Implementation","owner":"Shojiyao12","description":"A Routing Protocol Simulator in Python that allows users to simulate and compare two major routing algorithms:  Link-State Routing (Dijkstra’s Algorithm) for efficient shortest path computation using a priority queue. Distance-Vector Routing (Bellman-Ford Algorithm) for distributed routing with support for negative weights. ","archived":false,"fork":false,"pushed_at":"2025-03-14T07:49:59.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T08:33:22.754Z","etag":null,"topics":["bellman-ford-algorithm","distance-vector-routing","djikstra-algorithm","graph-algorithms","link-state-routing","networking","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shojiyao12.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-03-14T07:33:38.000Z","updated_at":"2025-03-14T07:50:11.000Z","dependencies_parsed_at":"2025-03-14T08:43:47.273Z","dependency_job_id":null,"html_url":"https://github.com/Shojiyao12/Routing_Implementation","commit_stats":null,"previous_names":["shojiyao12/routing_implementation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shojiyao12/Routing_Implementation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shojiyao12%2FRouting_Implementation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shojiyao12%2FRouting_Implementation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shojiyao12%2FRouting_Implementation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shojiyao12%2FRouting_Implementation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shojiyao12","download_url":"https://codeload.github.com/Shojiyao12/Routing_Implementation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shojiyao12%2FRouting_Implementation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274907645,"owners_count":25371817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bellman-ford-algorithm","distance-vector-routing","djikstra-algorithm","graph-algorithms","link-state-routing","networking","python"],"created_at":"2025-03-15T04:14:28.150Z","updated_at":"2025-09-13T01:38:12.380Z","avatar_url":"https://github.com/Shojiyao12.png","language":"Python","readme":"# Routing Protocol Simulator\n\nThis project implements a **Routing Protocol Simulator** in Python, allowing users to simulate and compare two fundamental routing algorithms:\n- **Link-State Routing (Dijkstra's Algorithm)**\n- **Distance-Vector Routing (Bellman-Ford Algorithm)**\n\nThe simulator randomly generates a **graph topology**, representing a network with nodes and weighted edges (links). Users can specify network parameters and compute the shortest path between two nodes.\n\n## Quickstart Guide\n\n### Running the Simulator\n1. Copy all the contents from this repository.\n2. Open a terminal and navigate to the folder containing `route.py`.\n3. Run the program using:\n   ```bash\n   python route.py\n   ```\n4. You will be prompted to:\n   - Choose a routing protocol: **(1) Link-State (Dijkstra) or (2) Distance-Vector (Bellman-Ford)**.\n   - Define the number of network nodes (`N`).\n   - Set the maximum number of connections (`M`) for each node.\n\n### Computing a Path\n- The program generates a **random weighted graph** based on the user input.\n- Users select a **source node** and a **destination node**.\n- The chosen algorithm computes and displays the **shortest path** and **total path weight**.\n\n## Core Concepts\n- **Link-State Routing (Dijkstra's Algorithm)**:\n  - Computes the shortest path using a priority queue.\n  - Guarantees the shortest path to all nodes.\n- **Distance-Vector Routing (Bellman-Ford Algorithm)**:\n  - Uses iterative updates to estimate shortest paths.\n  - Handles **negative weights** (but not negative cycles).\n\n## Preview of Simulation Output\n\n### **Example Network Graph (Adjacency List)**\n```bash\nGenerated graph (Adjacency list with weights):\nNode 0: [(1, 5), (2, 8)]\nNode 1: [(0, 5), (3, 2)]\nNode 2: [(0, 8), (3, 6)]\nNode 3: [(1, 2), (2, 6), (4, 3)]\n...\n```\n\n### **Example Path Calculation**\n```bash\nEnter initial node (0 to 4): 0\nEnter end node (0 to 4): 3\n\nThe minimum path from node 0 to node 3 is: 0 -\u003e 1 -\u003e 3\nThe total weight is: 7\n```\n\n## Notes:\n- Users can **regenerate the graph** or **calculate new paths** within the same network.\n- The simulator can be extended to **real-world networking applications**.\n- The number of **nodes and connections** can be adjusted to create different network topologies.\n\n## Future Enhancements\n- Support for **real-time network traffic updates**.\n- Implementation of **Hybrid Routing Algorithms**.\n- Integration with **graph visualization tools** for better path representation.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshojiyao12%2Frouting_implementation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshojiyao12%2Frouting_implementation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshojiyao12%2Frouting_implementation/lists"}