Skip to content

AfzalHossan-2005021/Computer-Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 Computer Networks - Comprehensive Course Projects

BUET Courses Status License

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


πŸ“‹ Table of Contents


Overview

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.

Repository Highlights

✨ 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 Information

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)

Course Focus Areas

  • 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

πŸ“¦ Projects

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


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


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


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


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


πŸ—οΈ Architecture

Project Hierarchy & Dependencies

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

OSI Layer Coverage

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 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        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“š Learning Path

Recommended Study Sequence

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

πŸš€ Getting Started

Quick Setup (All Projects)

# 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 Analysis

Individual Project Setup

Socket Programming

cd 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

Cisco Online Lab

# Download and open in Cisco Packet Tracer
cd Online
open 2005021.pkt  # or use File β†’ Open in Packet Tracer

MANET Routing Experiment

cd Routing-Experiment/Code
./task1.sh       # Run protocol comparison
python3 analyze_csv.py  # Generate graphs

TCP Congestion Control

cd "Transport -Layer-Experiment/code"
./task1.sh       # Protocol comparison
./task2.sh       # State analysis
python3 plot.py  # Visualization

Technology Stack

Programming Languages

  • Java - Socket programming and OOP concepts
  • C++ - NS-3 network simulation
  • Python - Data analysis and visualization
  • Bash - Automation and scripting

Simulation & Tools

  • 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

Networking Technologies

  • TCP/IP - Core internet protocol
  • IEEE 802.11 - WiFi standard
  • IEEE 802.1Q - VLAN tagging
  • Cisco IOS - Network device operating system

Concepts & Algorithms

  • AODV/DSDV - Routing protocols
  • TCP Variants - Congestion control (NewReno, CUBIC, BBR, etc.)
  • Multi-threading - Concurrent network programming
  • ACLs - Security policies

Installation Guide

Prerequisites

# 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

NS-3 Installation (for Routing & Transport experiments)

# 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

Cisco Packet Tracer Installation

# 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 packettracerlinux

Project Highlights

πŸ† Key Achievements

Socket 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

Key Concepts Covered

Application Layer

  • Socket programming (IPv4, TCP)
  • Client-server architecture
  • HTTP protocol fundamentals
  • Multi-threaded server design
  • MIME type handling
  • File transfer protocols

Transport Layer

  • 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

Network Layer

  • 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)

Data Link & Physical Layers

  • VLAN configuration (IEEE 802.1Q)
  • Switch port configuration
  • Trunk and access links
  • Access control lists
  • Network switching concepts
  • Physical topology design

Practical Skills

  • Cisco IOS command-line interface
  • Network device configuration
  • NS-3 network simulator usage
  • Network traffic analysis
  • Performance measurement
  • Data visualization
  • Scientific report writing

Learning Outcomes

After completing all projects, you will understand:

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

πŸ“Š Statistics

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

Contributing

We welcome contributions! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contribution Guidelines

  • Follow existing code style
  • Add documentation for new features
  • Include comments for complex logic
  • Test thoroughly before submitting
  • Reference related issues

πŸ“– Additional Resources

Textbooks & References

  • "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)

Online Learning

Tools & Simulators

  • NS-3 Network Simulator
  • Cisco Packet Tracer
  • Wireshark Protocol Analyzer
  • GNS3 Network Emulator
  • tcpdump Packet Sniffer

πŸ‘¨β€πŸŽ“ Author

Student ID: 2005021
Name: Afzal
Institution: Bangladesh University of Engineering and Technology (BUET)
Program: Computer Science & Engineering
Level: 3 | Term: II
Date: 2026


License

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.


πŸ“ž Contact & Support

For questions about the projects:

For course information:

  • πŸ“š Course: CSE321 & CSE322 - Computer Networks
  • 🏫 Institution: BUET Department of Computer Science & Engineering

πŸŽ“ Master Computer Networks - From Theory to Practice! πŸš€

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

About

Comprehensive Computer Networks course projects demonstrating socket programming, TCP congestion control, routing protocols, and Cisco network configuration. Covers all OSI layers with practical implementations, NS-3 simulations, and enterprise network design.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors