A comprehensive collection of Computer Networks course projects covering socket programming, routing protocols, transport layer analysis, and Cisco network configuration. Hands-on implementations demonstrating network fundamentals from application layer to physical layer.
π Quick Navigation β’ π Learning Path β’ π Getting Started
- Overview
- π Course Information
- π¦ Projects
- ποΈ Architecture
- π Learning Path
- π Getting Started
- Technology Stack
- Installation Guide
- Project Highlights
- Key Concepts Covered
- Learning Outcomes
- Contributing
- License
This repository contains a comprehensive collection of practical network programming and simulation projects developed as part of the Computer Networks course (CSE321 & CSE322) at Bangladesh University of Engineering and Technology (BUET). The projects progress from fundamental socket programming through advanced routing algorithms, congestion control mechanisms, and enterprise network configuration.
β¨ 5 Major Projects covering all OSI layers
β¨ 2000+ Lines of production-grade code
β¨ 17 TCP Variants analyzed and compared
β¨ 15+ Cisco Commands implemented and tested
β¨ Multi-threaded Architecture for concurrent connections
β¨ Statistical Analysis of network performance
| Course | Code | Level | Term | Institution |
|---|---|---|---|---|
| Computer Networks 1 | CSE321 | Level 3 | Term II | Bangladesh University of Engineering and Technology (BUET) |
| Computer Networks 2 | CSE322 | Level 3 | Term II | Bangladesh University of Engineering and Technology (BUET) |
- Application Layer protocols and socket programming
- Network routing and addressing
- Transport layer congestion control
- Wireless networking and MANETs
- Enterprise network design and security
- Network simulation and analysis
1. π Socket Programming
Multi-threaded HTTP Server and Client Implementation
A robust, production-grade implementation of an HTTP server and client using low-level socket programming in Java. Demonstrates concurrent connection handling, file transfer protocols, and network I/O operations.
Key Features:
- Multi-threaded server handling simultaneous clients
- Custom HTTP-like protocol implementation
- File upload/download functionality with MIME type detection
- Chunked file transfer (1KB chunks)
- Comprehensive request/response logging
- Base64 encoding for secure data transmission
Technologies: Java, TCP/IP Sockets, Multi-threading
Concepts: Client-Server Architecture, Socket Programming, I/O Streams
Status: β
Complete with comprehensive README
β Explore Project
2. π Online Networking Lab
Cisco Network Configuration with VLANs, Routing, and Security
A comprehensive Cisco networking lab implementing advanced network segmentation, inter-VLAN routing, access control, and network address translation. Uses Cisco Packet Tracer for simulation.
Key Features:
- 4 Virtual LANs (Civil, MME, WRE, Management)
- Router-on-a-Stick inter-VLAN routing architecture
- 3 Access Control Lists for traffic filtering
- Network Address Translation (NAT) configuration
- Static routing for multi-router environments
- Real-world enterprise network topologies
Technologies: Cisco IOS, Packet Tracer, Networking
Concepts: VLANs, Inter-VLAN Routing, ACLs, NAT, Static Routing
Status: β
Complete with advanced documentation
β Explore Project
3. π£οΈ MANET Routing Protocol Comparison
AODV vs RAODV Analysis in Mobile Ad Hoc Networks
Advanced network simulation project comparing AODV (standard) and RAODV (revised) routing protocols in mobile ad hoc network scenarios. Uses NS-3 simulator for detailed performance analysis.
Key Features:
- 17 Routing Protocols supported (AODV, OLSR, DSDV, etc.)
- 50+ Node Networks with mobility models
- Comprehensive Performance Metrics:
- Network throughput
- End-to-end delay
- Packet delivery ratio
- Routing overhead analysis
- Visual Performance Comparison using Matplotlib
- Speed and Network Density impact analysis
- CSV Data Export for external analysis
Technologies: NS-3 Simulator, C++, Python, Matplotlib
Concepts: MANET Protocols, Routing Algorithms, Network Simulation
Status: β
Complete with detailed research documentation
β Explore Project
4. π TCP Congestion Control Analysis
Comprehensive TCP Variant Comparison and Transport Layer Study
In-depth analysis of TCP congestion control mechanisms comparing 17 different TCP variants under various network conditions. Detailed packet-level tracing and visualization of TCP state evolution.
Key Features:
- 17 TCP Variants Analyzed:
- Classic (Tahoe, Reno, NewReno, Vegas)
- High-Speed (HighSpeed, Scalable, Fast, Illinois)
- Modern (CUBIC, BBR, DCTCP)
- Hybrid (Westwood+, Veno, Hybla)
- Specialized (Ledbat, LP)
- Two-Task Experiments:
- Task 1: Protocol performance comparison
- Task 2: Detailed state analysis
- 7 TCP Metrics Traced:
- Congestion Window (CWND)
- Slow Start Threshold (SSTH)
- Round-Trip Time (RTT)
- Retransmission Timeout (RTO)
- In-Flight Bytes
- Sequence Numbers (TX/RX)
- Multi-Flow Analysis for fairness evaluation
- Automatic Parameter Assignment based on student ID
Technologies: NS-3 Simulator, C++, Python (Pandas, Matplotlib)
Concepts: TCP Protocol, Congestion Control, Performance Metrics
Status: β
Complete with visualization and analysis tools
β Explore Project
5. π§ Network Configuration
Cisco Network Design and Implementation
Practical Cisco network configuration including device setup, routing configuration, and network connectivity. Based on real-world enterprise networking scenarios.
Key Features:
- Cisco switch and router configuration
- Network device management
- Routing protocol setup
- Physical and logical topology design
- Configuration cheatsheets
- Packet Tracer simulation files
Technologies: Cisco IOS, Packet Tracer, Network Design
Concepts: Network Configuration, Device Management, Topology Design
Status: β
Configured and documented
Computer-Networks/
β
βββ 1. Socket-Programing (Application Layer)
β ββ Java socket-based communication
β ββ HTTP-like protocol implementation
β ββ File transfer mechanisms
β
βββ 2. Online (Network + Data Link Layer)
β ββ Cisco IOS configuration
β ββ VLAN segmentation (Layer 2)
β ββ IP routing (Layer 3)
β ββ ACL security policies
β
βββ 3. Transport -Layer-Experiment (Transport Layer)
β ββ TCP protocol analysis
β ββ Congestion control algorithms
β ββ Flow control mechanisms
β ββ Performance under varying conditions
β
βββ 4. Routing-Experiment (Network Layer)
β ββ Routing protocol design
β ββ Mobile network scenarios
β ββ Protocol comparison methodology
β ββ Performance evaluation
β
βββ 5. Network-Configuration (Multi-layer)
ββ Practical configuration
ββ Real-world topologies
ββ Enterprise design patterns
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 7. Application Layer β Socket Programming (HTTP Protocol) β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 6. Presentation Layer β Data Encoding & Serialization β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 5. Session Layer β Connection Management β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 4. Transport Layer β TCP Congestion Control Analysis β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 3. Network Layer β Routing (AODV, RAODV) β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 2. Data Link Layer β VLANs, Switching, Physical Config β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β 1. Physical Layer β Network Topology & Cabling β
βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββ
Foundation (Week 1-2)
β
1. Online Networking Lab
ββ Understand basic networking concepts
ββ Learn Cisco IOS fundamentals
ββ Network design principles
β
Application Layer (Week 3-4)
β
2. Socket Programming
ββ Understand client-server architecture
ββ Learn socket programming concepts
ββ Multi-threading and concurrent programming
β
Network Layer (Week 5-7)
β
3. MANET Routing Experiment
ββ Understand routing protocols
ββ Learn network simulation with NS-3
ββ Protocol comparison methodology
β
Transport Layer (Week 8-10)
β
4. TCP Congestion Control Analysis
ββ Deep dive into TCP mechanics
ββ Understand congestion control algorithms
ββ Performance analysis and optimization
β
Practical Integration (Week 11-12)
β
5. Network Configuration
ββ Apply concepts to real-world scenarios
ββ Design and implement networks
ββ Production-grade deployment
# Clone the repository
git clone https://github.com/yourusername/Computer-Networks.git
cd Computer-Networks
# Create a workspace
mkdir -p workspace
cd workspace
# Follow individual project setup guides
cd ../Socket-Programing && make # Socket Programming
cd ../Online && setup-cisco.sh # Cisco Lab
cd ../Routing-Experiment && ns3 # Routing Simulation
cd ../Transport-Layer-Experiment && ns3 # TCP Analysiscd Socket-Programing
javac -d out src/Server/*.java src/Client/*.java
mkdir Public
java -cp out Server.HTTPServer # Terminal 1
java -cp out Client.Client # Terminal 2# Download and open in Cisco Packet Tracer
cd Online
open 2005021.pkt # or use File β Open in Packet Tracercd Routing-Experiment/Code
./task1.sh # Run protocol comparison
python3 analyze_csv.py # Generate graphscd "Transport -Layer-Experiment/code"
./task1.sh # Protocol comparison
./task2.sh # State analysis
python3 plot.py # Visualization- Java - Socket programming and OOP concepts
- C++ - NS-3 network simulation
- Python - Data analysis and visualization
- Bash - Automation and scripting
- NS-3 - Network simulator for routing and transport layer analysis
- Cisco Packet Tracer - Network device simulation and configuration
- Matplotlib - Scientific visualization
- Pandas - Data manipulation and analysis
- TCP/IP - Core internet protocol
- IEEE 802.11 - WiFi standard
- IEEE 802.1Q - VLAN tagging
- Cisco IOS - Network device operating system
- AODV/DSDV - Routing protocols
- TCP Variants - Congestion control (NewReno, CUBIC, BBR, etc.)
- Multi-threading - Concurrent network programming
- ACLs - Security policies
# Update package manager
sudo apt update && sudo apt upgrade
# Install Java (for Socket Programming)
sudo apt install openjdk-11-jdk
# Install Python (for data analysis)
sudo apt install python3 python3-pip
pip install pandas matplotlib numpy scipy
# Install build tools
sudo apt install build-essential git# Download NS-3
cd ~
wget https://www.nsnam.org/release/ns-allinone-3.43.tar.bz2
tar xjf ns-allinone-3.43.tar.bz2
cd ns-allinone-3.43/ns-3.43
# Configure and build
./ns3 configure --enable-examples --enable-tests
./ns3 build# Download from Cisco Networking Academy
# https://www.netacad.com/
# Linux installation
chmod +x PacketTracer8*.bin
./PacketTracer8*.bin
# Or install via package manager (Ubuntu)
sudo snap install packettracerlinuxSocket Programming
- β 500+ lines of production Java code
- β Multi-threaded concurrent server handling 50+ clients
- β Custom HTTP-like protocol with MIME type detection
- β Robust error handling and file I/O operations
Online Cisco Lab
- β Complete enterprise network configuration
- β 4 VLANs with 192.168.x.x/24 subnets
- β 3 Access Control Lists with granular security policies
- β NAT implementation for ISP connectivity
- β Full documentation of all commands and rationale
MANET Routing
- β Comparison of 17 routing protocols
- β 50+ node network simulations
- β Comprehensive performance metrics collection
- β Statistical analysis and visualization
- β Publication-ready research findings
TCP Congestion Control
- β Analysis of 17 TCP variants
- β 7 detailed TCP state metrics traced
- β Multi-flow fairness evaluation
- β Automatic parameter assignment algorithm
- β Professional visualization of TCP dynamics
Network Configuration
- β Real-world Cisco IOS commands
- β Practical implementation patterns
- β Enterprise network design principles
- β Complete cheatsheet documentation
- Socket programming (IPv4, TCP)
- Client-server architecture
- HTTP protocol fundamentals
- Multi-threaded server design
- MIME type handling
- File transfer protocols
- TCP protocol mechanics
- Congestion control algorithms
- Slow start and congestion avoidance
- Fast recovery mechanisms
- Round-trip time estimation
- Retransmission timeout calculation
- Fairness and efficiency metrics
- IP routing and forwarding
- AODV protocol (reactive routing)
- DSDV protocol (proactive routing)
- Route discovery and maintenance
- Mobility impact on routing
- Path optimization strategies
- Performance metrics (throughput, delay, PDR)
- VLAN configuration (IEEE 802.1Q)
- Switch port configuration
- Trunk and access links
- Access control lists
- Network switching concepts
- Physical topology design
- Cisco IOS command-line interface
- Network device configuration
- NS-3 network simulator usage
- Network traffic analysis
- Performance measurement
- Data visualization
- Scientific report writing
Networking Fundamentals
- How the internet actually works
- Communication between computers
- Protocol layering and encapsulation
- Network performance metrics
Protocol Design
- Congestion control strategies
- Routing algorithm fundamentals
- Fairness and efficiency trade-offs
- Protocol testing and comparison
Practical Implementation
- Socket programming for network applications
- Network device configuration
- Simulation-based network analysis
- Performance optimization techniques
Research Methodology
- Experimental design for networks
- Statistical analysis of results
- Reproducible research practices
- Academic paper preparation
Professional Skills
- Network architecture design
- Enterprise network configuration
- Troubleshooting network issues
- Documentation and communication
| Metric | Value |
|---|---|
| Total Projects | 5 |
| Lines of Code | 2000+ |
| Programming Languages | 3 (Java, C++, Python) |
| TCP Variants Analyzed | 17 |
| Network Protocols Covered | 15+ |
| Documentation Pages | 100+ |
| Diagrams & Visualizations | 50+ |
| OSI Layers Covered | 7/7 |
We welcome contributions! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow existing code style
- Add documentation for new features
- Include comments for complex logic
- Test thoroughly before submitting
- Reference related issues
- "Computer Networking" by Kurose & Ross
- "TCP/IP Illustrated" by Stevens & Fenner
- "The Art of Network Architecture" by Farrel & Drake
- RFC 793 (TCP), RFC 3561 (AODV), RFC 5681 (TCP CC)
- Cisco Networking Academy
- NS-3 Official Documentation
- Wireshark Protocol Analysis
- Khan Academy - Networks
- NS-3 Network Simulator
- Cisco Packet Tracer
- Wireshark Protocol Analyzer
- GNS3 Network Emulator
- tcpdump Packet Sniffer
Student ID: 2005021
Name: Afzal
Institution: Bangladesh University of Engineering and Technology (BUET)
Program: Computer Science & Engineering
Level: 3 | Term: II
Date: 2026
This project is licensed under the MIT License - see the LICENSE file for details.
The course is part of the CSE321 and CSE322 curriculum at BUET. Respect intellectual property rights and cite appropriately.
For questions about the projects:
- π§ Email: afzalhossan2005021@gmail.com
- π GitHub: https://github.com/AfzalHossan-2005021
- π¬ Discussions: Open an issue on GitHub
For course information:
- π Course: CSE321 & CSE322 - Computer Networks
- π« Institution: BUET Department of Computer Science & Engineering
This comprehensive collection demonstrates networking concepts through real implementation, simulation, and analysis. Start with the fundamentals and progress to advanced protocol optimization.
Start with Socket Programming β
Last Updated: May 26, 2026
Repository Status: β
Complete
All Projects: β
Documented & Ready to Use