Internet traffic has been rising sharply since its birth in the 1970s. Despite ever-changing demands, the standards developed back then has withstood the test of time. Built as a packet-switched network for security and cost-efficiency reasons, hosts that transmitted data between each other needed an end-to-end communications protocol from the start. As the network's main function was to exchange scientific and military data, reliability was an unquestionably important feature. Suited for the scarce number of computers those days, the creators of TCP (Transmission Control Protocol, originally Internet Transmission Control Program) were foreseeing enough to introduce such methods and solutions that the same protocol - with some alterations - is the most important transport protocol used even in today's networks. Whenever the task to be solved was providing a connection-oriented, reliable transfer mechanism between hosts, TCP had been the answer. New research aims to replace the more than 40-year-old protocol. Changing network environment and new requirements - e.g. low-delay links, performance maximization, quality of service, fairness to other connections - are behind this initiative, but it will surely take years, if not decades, to put TCP in the past.
One of the most significant changes in the protocol's life was the introduction of congestion control, which is necessary when the traffic generated by the hosts surpasses the capacity of the network carrying it. Increasing traffic on an already congested network leads to less and less data forwarded, resulting in a collapse. These congestion control algorithms had dealt with the problem, and also, they are one of the main research area regarding the evolving network technologies and diverse applications raising the demand for better performance. This thesis deals with the operation of TCP, its original congestion control algorithm, and aims to compare two well-known, improved versions of the said algorithm, Reno and Cubic, using a network simulator called ns-2 with a third-party extension, NSC (Network Simulation Cradle), providing real-world protocol stack support. This comparison takes place on three network topologies under several different circumstances, providing performance results that are suitable for analyzing their differences.