The TCP/IP (Transport Control Protocol/ Internet Protocol) is the protocol of large-scale IP networks and of course, the biggest network of them all, the Internet. TCP/IP is actually a suite of protocols that provide many features and functionality. However, its major components are the IP network layer protocol, responsible for the delivery of packets based on the destination address on IP packets and TCP, a transport layer protocol responsible for robust and reliable transportation of data across unreliable networks such as the internet.
TCP/IP uses a client server model of communications whereby a client, a computer user, requests a service such as to browse the web that is advertised by another computer, a server, in the network. In order to avail itself of this service on offer the client has to make a request to the server through a TCP connection. A TCP connection entails a three-way handshake, whereby the client initially sends a Sync request to the servers IP address and port of the advertised service, in this case HTTP port 80. The server responds with a Sync/Acknowledge, if port 80 is open, listening and available. The client machine will then confirm the connection with an Acknowledge, hence the 3-way handshake.
The TCP protocol works at the transport layer of the OSI model, but on top of TCP runs the application protocols users are more aware of such as HTTP, SMTP and FTP. Other protocols that are part of the TCP/IP suite are:
- UDP – a unreliable connectionless protocol used with best effort data communications where no acknowledgement or guarantee of delivery is required
- ICMP – used in troubleshooting and echo requests/reply (Ping)
TCP/IP is the foundation of the internet but is not suitable for real-time voice and video, hence the use of real-time transport protocol (RTP) for latency sensitive applications.