Home - sid4/reliableUDP GitHub Wiki

Welcome to the reliableUDP wiki!

Today, applications have two choices when it comes to the transport channel: TCP or UDP. While UDP is an unreliable protocol, TCP provides reliability, flow control, and congestion control. TCP has an explicit connection establishment phase, which some application may not find desirable. This project implements a file transfer application which has all the good features of TCP without the connection establishment phase. The application, builds its transport functionality on top of UDP. The goal of this project is to get familiar with the implementation of TCP and to solidify understanding of the fundamental networking issues related to reliable data transfer.

Following is implemented in this multi-threaded application:

  • Variant of sliding window algorithm for reliability

  • Adaptive retransmission using Jacobson/Karels algorithm

  • Congestion Control

  • Loss and delay simulation with option to have variable packet loss rate and latency

Implementation Details