02 Mar 2011 by

UDP and TCP are modest communication protocols in TCP/IP protocol stack. UDP and TCP are located on the Transport layer. It is the lowest level of starting writing distributed systems. It is not about computer network but it is about distributed systems. Every distributed systems programmer needs to understand the distinguish between them very clearly. This article will show you the difference to clear all your doubt.

Before we start, I just remind you that Transport layer focuses on two end-systems meaning that source and destination. The packets may go through many router in order to get the destination.  In other words, it is a multi-hop network which packets may transit in several node before they reach end destination.

Transport layer end systems

Transport layer end systems


  • Connectionless
  • Unreliable connection
  • Not guarantee messages delivery
  • No acknowledgement scheme
  • Not guarantee order of message delivery
  • No message duplication mechanism
  • Less overhead
  • Better for multimedia streaming application
  • Support multicast communication


  • Connection-oriented
  • Reliable connection
  • Guarantee messages delivery
  • Acknowledgement scheme
  • Guarantee order of message delivery
  • Has message duplication mechanism
  • More overhead on ACK and header
  • Better for accuracy demand application
  • Support object transmission
  • Congestion control

Congestion Control

The main special feature of TCP is Congestion control. It can maximize the bandwidth in any circumstance. The motto of TCP Congestion Control is “Slow starts exponentially increases“. It starts with sending one congestion window and exponentially increases its congestion windows. The congestion window will keep increasing as long as the threshold reaches. Once the threshold is reached, it starts linearly increasing until it gets timeout as it sucks up the bandwidth when congestion window getting higher. Once timeout reaches, it resets its congestion windows to 1 and lowers its threshold by half. Then it will starts its slogan, “Slow starts exponentially increases”, once again.

TCP Congestion Control

TCP Congestion Control

2 responses so far

  • […] an advantage of java.net package that supports UDP programming interface. The understanding of UDP and TCP is […]

  • […] TCP Programming has been developed for the sake of reliability in data transmission. Unique feature of TCP is Acknowledgment scheme, Packet ordering and congestion control. These make TCP more popular in network transmission control protocol. Nowadays, the protocol dominant in the Internet is HTTP but be remembered that it relies on TCP architecture. There are several variant of TCP protocols that have been extensively researched. For example, TCP Tahoe, TCP Reno, TCP New Reno, TCP Westwood, TCP Vegas, etc. In contrast with UDP Programming, TCP is much easier. […]

Leave a Reply