Course Overview

An intensive exploration of computer networking fundamentals, internet architecture, and protocol design. The coursework focused on building core network utilities and foundational protocols from the ground up, moving from the network layer (routing and packet parsing) up to the transport layer (reliable data transfer and flow control).


Core Project 1: Robust Network Diagnostic Tool (Traceroute)

Engineered a resilient traceroute client capable of handling real-world internet volatility and anomalous router behaviors.

  • Raw Packet Parsing & Protocol Decoding: Implemented custom bit-level parsers for IPv4, ICMP, and UDP headers to extract critical routing data, handling endianness variations and malformed payloads from real-life routers.
  • Network Anomaly Handling: Designed robust state-tracking logic to gracefully handle packet loss, silent routers, network loops, and badly delayed or duplicated ICMP responses without crashing or hanging the application.

Core Project 2: Distance-Vector Routing Protocol

Architected a distributed routing protocol for a simulated network topology, optimizing for fast convergence and loop prevention.

  • Bellman-Ford Implementation: Developed the core distance-vector routing logic (handling route advertisements, next-hop updates, and route expirations) to dynamically map network topologies.
  • Routing Loop Prevention: Engineered advanced mitigation strategies, including Split Horizon and Poison Reverse, to prevent “count-to-infinity” scenarios and length-2 routing loops during link failures.
  • Event-Driven Optimization: Implemented incremental and triggered updates to dramatically reduce network overhead and latency, actively broadcasting route poisoning and immediate updates upon dynamic link state changes (Link Up/Down).

Core Project 3: Reliable Transport Protocol (TCP Socket)

Built a fully functional, user-space TCP socket implementation, mastering the complexities of stateful connections, reliable delivery, and flow control.

  • Connection Lifecycle Management: Implemented the strict TCP state machine, handling the 3-Way Handshake for connection establishment and executing both Active and Passive Close sequences (FIN, FIN_WAIT, TIME_WAIT) for graceful teardowns.
  • Out-of-Order Data & Flow Control: Engineered robust receive and transmit queues (TX/RX Control Blocks) to buffer out-of-order segments and resolve payload overlaps. Implemented sliding window flow control by dynamically adjusting the send window based on the receiver’s advertised capacity.
  • Dynamic Retransmission (RFC 6298): Developed a reliability layer that tags packet transmission timestamps to estimate Round Trip Time (RTT). Implemented the RFC 6298 algorithm to dynamically compute the Retransmission Timeout (RTO) using moving averages of RTT variance, effectively managing packet retransmissions in congested networks.

Technical Stack

  • Languages: Python
  • Concepts: TCP/IP Protocol Suite, Distance-Vector Routing (Bellman-Ford), Sliding Window Flow Control, RTT/RTO Estimation, Network Topologies.