This repository contains three projects:
A. Software-Defined Networking (SDN) Infrastructure
This project focuses on architecting and deploying a robust Software-Defined Networking (SDN) infrastructure to enhance network resilience and optimize data flow. The solution integrates multiple switches and a centralized controller, using C++ and Python for seamless interaction and control.
Key Features:
- Dynamic Network Topology Management Designed and implemented real-time topology management to adapt to network changes dynamically.
- Node and Link Failure Detection & Recovery Developed mechanisms for detecting and recovering from node and link failures, leveraging periodic messaging protocols for real-time updates.
- Centralized Controller Integration Orchestrated communication between multiple switches and a centralized controller for streamlined network operations.
Impact:
- Enhanced network resilience through automated failure detection and recovery mechanisms.
- Optimized data flow, reducing latency and ensuring consistent network performance.
Tools & Technologies:
- Languages: C++, Python
- Networking Concepts: SDN principles, centralized control, messaging protocols
- Metrics for Success: Efficient fault recovery and improved data flow management
B. Adaptive Bitrate Streaming Optimization
This project focuses on developing an advanced Adaptive Bitrate Streaming (ABR) system to enhance the quality of experience (QoE) for video streaming users. By combining the best features of BBA-2 (Buffer-Based Algorithm) and Robust-MPC (Model Predictive Control), the solution delivers seamless video playback with minimal rebuffering and smoother quality transitions.
Key Features:
- Optimized Adaptive Bitrate Algorithm Designed and integrated a custom ABR algorithm that combines the strengths of BBA-2 and Robust-MPC for improved QoE.
- Dynamic Lookahead Window Implemented a dynamic lookahead mechanism to predict video throughput accurately, minimizing rebuffering events during playback.
- Quality Variation Fine System (QVFS) Developed a Quality Variation Fine System that applies penalties for frequent quality changes, reducing unnecessary switches in streaming throughput and ensuring a more stable viewing experience.
Impact:
- Improved user experience by minimizing video rebuffering and reducing quality variations.
- Enhanced streaming efficiency with accurate throughput predictions and balanced buffer management.
- Delivered smoother and consistent playback, optimizing network utilization.
Tools & Technologies:
- Languages: Python, C++
- Techniques: Network programming, adaptive bitrate streaming algorithms
- Metrics for Success: Reduced rebuffering events, minimized quality switches, and improved QoE scores.
C. Project: TCP Protocol Ablation Study and Reliable Data Transmission Optimization
This project focuses on designing and implementing a reliable data transmission protocol tailored to achieve high goodput and low overhead under diverse network conditions. By integrating advanced flow control mechanisms, including stop-and-go and sliding window techniques, and introducing cumulative acknowledgment (ACK) functionality, the project explores the trade-offs between speed, reliability, and network congestion management.
Key Features:
- TCP Protocol Implementation Developed core TCP functionality with stop-and-go and sliding window mechanisms, enhancing network efficiency and data flow.
- Cumulative Acknowledgment (ACK) Optimization Implemented cumulative ACK to reduce individual acknowledgments, boosting throughput and minimizing overhead.
- Performance Analysis of Flow Control Methods Conducted a comparative study of implemented flow control mechanisms, evaluating their impact on speed, reliability, and network congestion management under varied conditions.
Objectives:
- Design a custom protocol to maximize goodput while minimizing network resource consumption.
- Benchmark performance against a baseline scheme for comparative analysis.
- Document design trade-offs and performance across different network scenarios, providing clear insights into protocol efficiency.
Key Deliverables:
- Protocol Design and Implementation: Developed an optimized data transmission protocol that balances performance and reliability.
- Baseline Implementation: Created a baseline scheme to serve as a benchmark for comparison.
Performance Evaluation Report:
- Documented findings and evaluated performance metrics (e.g., goodput, overhead, latency) under diverse network conditions.
- Analyzed design trade-offs and the impact of optimizations on protocol behavior.
Tools & Technologies:
- Languages: Python, C++
- Concepts: TCP/IP Suite, flow control mechanisms, network programming
- Evaluation Metrics: Goodput, latency, overhead reduction, and congestion management performance.