This repository contains a collection of 4 assignments completed as part of the CS425: Computer Networks course at IIT Kanpur under Prof. Adithya Vadapalli (Jan '25 โ Apr '25). Each assignment focuses on a core networking concept, implemented from scratch using C++ and Python. They include a chat server, dns resolver, tcp handshake constructor and a routing simulator
A multi-threaded TCP chat server featuring:
- User authentication
- Private and broadcast messaging
- Dynamic group creation and management
- Thread synchronization using mutex-guarded maps
Iterative and recursive DNS resolvers implemented using dnspython, with:
- Full traversal from root โ TLD โ authoritative
- Timeout and error handling for non-responsive servers
Custom TCP client using raw sockets:
- Manual construction of SYN, SYN-ACK, and ACK packets
- Header checksum and sequence number manipulation
Simulation of:
- Distance Vector algorithm (Bellman-Ford)
- Link State algorithm (Dijkstra)
- Arbitrary graph input and convergence analysis