As development work of the wide area networking was going on in the early 1970s leading to the emergence of the internet, the TCP/IP protocol was also developed. TCP stands for Transmission Control Protocol, while IP stands for Internet Protocol. The adoption of the TCP/IP protocols as an internet protocol led to the integration of networks into one big network that has rapidly grown hitting a mark of approximately 2,267 billion users as at the end of Dec 2011 (Internet World Stats). Today we have many application service protocols co-existing with TCP/IP as the underlying protocol.
TCP/IP is a transport protocol. It can be used to support applications directly or other protocols can be layered on TCP/IP to provide additional features. These protocols include:
- HTTP (Hypertext Transfer Protocol) – Used by web browsers and web servers to exchange information. On the other hand when a secure connection is required, SSL (Secure Socket Layer) protocol or its successor protocol Transport Layer Security (TLS), which use encryption are used to create a secure connection through the web browser but this time instead of HTTP it uses HTTPS.
- SMTP (Simple Mail Transfer Protocol) – Used to send and receive email over the TCP/IP protocol. Due to its limitation in message queuing it is normally used with other protocols like POP3 or IMAP.
- TELNET (Telecommunication Network) – Used to connect to remote hosts via a telnet client. This results in making your computer a virtual machine while you work on the remote computer as if it were on your desktop.
- FTP (File Transfer Protocol) – Used to transfer files from one host to another using FTP client software over a TCP/IP network.
- NNTP (Network News Transfer Protocol ) – Used to transport news articles between news servers.
TCP (Transport Control Protocol) and UDP (User Datagram Protocol) are both internet protocols used for transport of data. IP (Internet Protocol) works as the underlying protocol of the internet virtual network. It sits beneath the UDP and TCP protocols. IP datagram provide the basic transmission mechanisms for all TCP/IP networks. This includes the internet, ATM, local area networks such as Ethernet, and token ring networks. TCP is reliable and is connection oriented. It establishes the connection first before transmitting the data and the data can flow in either direction. UDP is a datagram protocol with limited capabilities. It has no guarantee of the arrival of the message on the other end. The datagram packets get to their destination in any order and will need to be reassembled. At times UDP is preferred over TCP where there is small amounts of data to transmit therefore the amount of received data at the destination does not take up much time to reassemble causing it to be faster. UDP is also a preferred choice in sending packets of data which need no response. It also provides a checksum capability to ensure all the data has arrived.
Application protocols sit above the two building blocks of the internet protocols; namely UDP and TCP. These two protocols have a unique tradeoff. UDP provides a simple message relaying protocol that has omission failures but has minimal costs due to the fact that there need not be accountability for message relay failure. This protocol is often used for broadcasting; like in video streaming. TCP has guaranteed message delivery, but at the expense of additional messages with much higher latency and storage costs.