Welcome!

.NET Authors: Jim Kaskade, Yeshim Deniz, Louis Nauges

Blog Feed Post

A Brief History of TCP

The foundation of the Internet is TCP, it includes the rules for formatting messages, handling congestion, error correction and provides information on where a packet should be delivered, whether it arrived too quickly for the receiving computer and whether it arrived at all. Basically TCP is the glue that ensures network conditions work smoothly. As the way people connect to the internet has changed from 2400 baud modems to high speed fiber to the home and mobile connectivity – TCP is being stretched to perform optimally across multiple channels. It seems like for many years development and innovation in TCP had slowed down and now with mobile becoming a more popular way of accessing the internet and initiatives to make the web faster there is renewed development and research into TCP. The table below highlights some of the major events in the life of TCP over the past 40 years.

DATE

EVENT

1974

RFC 675 specification of Internet Transmission Control Protocol published

1988

Jacobson’s “Congestion Avoidance and Control” paper sparked multiple congestion related improvements, including  Tahoe release of BSD.

1990

Reno introduced in BSD.

1994

TCP Vegas altered way in which set timeouts and RTT delays were measured.

1997

RFC 2001 proposed as standard for dealing with TCP slow start, congestion avoidance, fast retransmit and fast recovery.

1999

RFC 2581 proposed standard for TCP congestion control obsoletes RFC 2001

2002

First 3G network available commercially

2006

First 4g system deployed in South Korea

2009

RFC 5681 draft standard for TCP congestion control obsoletes RFC 2581

2010

TCP Fast Open proposed

2011

Proposal to reduce retransmission timeout from 3 to 1

2013

RFC 6824 specification for multipath TCP published as experimental standard.

QUIC proposed as alternative to TCP for web based applications. 

 

TCP was designed in 1973, during the infancy of the internet and was made for a wired infrastructure, namely ARPA Net, a low capacity network of 213 computers very different than today where there are more than 500 million connected devices in US homes. As the network of computers increased and the internet expanded “congestion collapses” began to occur where the transmission rates of networks dropped by a thousand fold from 32Kbps to 40 bps. This drastic drop in rates led to some investigation and analysis by leading computer scientists and ultimately led to the creation of what we now know as congestion control.

The internet has been advancing at a rate that nobody could imagine where today not only are our computers connected but also our phones, televisions, cars and even our glasses. With the rise of more connected devices, we are using mobile networks such as 3G, 4G and high capacity fixed line networks to access information. Needless to say, these networks have very different characteristics in comparison to their ancestral networks. These different characteristics require that TCP stacks need to evolve to become more effective in the changing landscape.

Successful, reliable and fast transmission of data is all controlled by a number of TCP parameters that can be tuned and modified depending on the network characteristics. With-in BIG-IP we breakdown the TCP properties into the following major categories:

· Resource Management

· Behavior

· Performance

Over the coming weeks we will be diving into each of these categories in further detail.

Read the original blog entry...

More Stories By Dawn Parzych

Dawn Parzych is a product manager for F5 Networks, the global leader in Application Delivery Networking. For the past 2 years, she has been in London working as an acceleration architect with F5 customers based in Europe, the Middle East, and Africa. Dawn has helped companies in finance, retail, media, and other industries optimize performance levels and overcome Web application delivery challenges. In her ten years as a Web performance specialist, Dawn has covered everything from load testing to Web performance monitoring to application delivery.