Skip to content

notSoumya/Network-Routing-Optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Routing Optimizer

A C++ and Python project that simulates real-world network routing using graph algorithms.
Our Project loads an actual Internet route (captured from tracert), builds a weighted network graph, and computes the shortest path using Dijkstra's algorithm.
The project also includes a Google Colab visualization that highlights the shortest route in a real network topology.

NOTE: A part of the project was developed locally so there are no pull requests and contributions have been mentioned below and can be seen in commits as well.

Project Overview

Modern computer networks rely heavily on routing algorithms to determine optimal data paths.
This project demonstrates how real-world routing works by:

  • Extracting live routing hops using the Windows tracert tool
  • Building a weighted graph from real IP addresses & latencies
  • Implementing *BFS, **DFS, and *Dijkstra’s Algorithm in C++
  • Creating a visual network graph in Python (NetworkX)
  • Highlighting the shortest path between two real servers
  • VERY INTERESTING FEATURE- where we have tried to simulate if a node is unavialable then the path changes and also when we try overloading a node(that is a wifi router) the path of transfer changes.

The result is a complete system that models how data travels across the Internet.

Features That one can find in our Project

C++ Core Routing Engine

  • Graph implementation using adjacency lists
  • BFS for breadth-first exploration
  • DFS for depth-first exploration
  • Dijkstra’s Algorithm for weighted shortest paths
  • File-based network topology loading
  • support for detecting unreachable nodes and cyclic paths

Real-World Network Data

  • Uses actual traceroute output from: tracert google.com Hop-to-hop latency is averaged and used as edge weight
  • Produces an authentic Internet routing graph

Python Visualization (Google Colab)

  • Generates interactive network diagrams
  • Highlights shortest path in red colour
  • All other edges shown in light gray
  • Displays IP addresses & weights
  • Easy to modify for custom datasets
  • provides information for deeper network analysis
  • exports the final graph as PNG/SVG for presentation
  • Supports both directed and undirected networks
  • Automatically labels edge weights for clarity

Structured Repository

We have tried our best to keep a very structured and oriented repository to keep our work clean:

here is a look of how our repo looks- main highlights :( ├── represents a file and / represents a folder) Network-Routing-Optimizer/ │ ├── src/ │ ├── graph.cpp │ ├── graph.h │ └── main.cpp │ ├── data/ │ └── network.txt ← real routing data │ ├── visualisation/ │ └── network_visualisation.ipynb │ └── README.md

Concepts Used

a.Graph theory b.Weighted graphs c.Priority queue (min-heap) d.Shortest path algorithms e.Real-world traceroute interpretation f.Network visualization h.C++ and Python integration i.breadth-first search(BFS) j.deapth-first search(DFS)

It was a collaborative effort of all team members - contributors that made this project come alive.

Contributions:

-Soumya Sekhar Parida (B24CM1072) -Dijkstra’s Algorithm using priority queues and python visualisation of the graphs , GitHub repo, structure, handling Overload

-Jiya Meena(B24EE1028) - DFS Algorithm, Real world routing data into the graphs and in presentation slides, Handling Busy Nodes

-Jahnavi Ballikuru (B24EE1010)- BFS Algorithm, Header file and declaring functions and implementing adjacency list , Handling Busy Nodes

THANKING EVERYONE FOR THEIR EFFORTS

About

Network Routing Optimization using Dijkstra’s Algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors