The Internet is an amazing creation, but there are many different technologies that are worth knowing behind it. Simply because without them, the Internet and many more networks would not be as efficient and friendly as they are today.
What is TCP/IP?
TCP and IP are two different communication protocols that complement each other’s functionality.
The Internet protocol or IP delivers (routes and addresses) data packets between a source (device or application) and their destination. It makes sure that those packets arrive at the right destination. It defines the rules and formats for applications and devices to communicate and exchange those data packets on a specific network or across different connected networks.
The transmission control protocol or TCP organizes data in a specific manner to protect them while exchanged between a client and a server. It’s a very used protocol on networks by all types of devices and applications. TCP protects data’s integrity from the sending and all the way to their delivery.
The development of these protocols (TCP/IP) happened in the 1970s. In that decade, the ARPANET became really popular, which motivated the creation of more networks to connect different organizations. Since those networks used a different protocol to send data back and forth, they could not communicate among them. The creation of a technology that could work as an intermediary to allow such communication became a need.
The combination of TCP and IP and its official adoption as the standard protocol -in 1983-for ARPANET (Internet’s predecessor) was the solution. No matter what other protocols networks used, if they supported TCP/IP, they could communicate with all the TCP/IP networks that existed.
The two technologies, TCP and IP, became the technical base for the modern Internet to operate and grow. Actually, here the word Internet emerged, meaning “an interconnected network of networks”.
How does it work?
IP protocol works through different rules and resources, like the IP addresses. To connect to the Internet, domains and devices get a unique IP address to be identified and allowed to communicate (exchange data) with other connected devices.
Data travel across networks separated into pieces (packets). Every piece gets IP information (IP address) attached for routers to read it and send the packet to the correct destination. Once there, the way for those packets to be handle will depend on the kind of protocol (commonly TCP or UDP) combined with the IP to transport them.
IP is a connectionless protocol. All data packets are just addressed, routed, and delivered without existing acknowledgment from the destination to the source. This lack is resolved through the TCP.
TCP secures the travel and delivery of data packets across networks through a specific process. To start, a connection between the source and the destination is required, even before the transmission of data begins. This, because TCP is a connection-oriented protocol. To work properly, it needs to guarantee this active connection until the sending and receiving of data get completed.
When the communication begins, TCP takes the sender’s messages and chops them into packets. To protect messages’ integrity, TCP numbers every packet. Then packets are ready to go to the IP layer for being transported. They will be dispatched to travel around different routers and gateways of the network to reach their destination. No matter all the packets are part of the same message, they can have different routes to arrive at the same destination.
Once they all hit their destination, TCP proceeds to re-build the message by putting all their pieces (packets) together again to make a proper delivery.
This ideal scenario can be affected if networks face issues. Data packets could get lost in transit, duplicated, or disordered. The advantage is TCP’s functionality can detect such problems and fix them. The protocol can ask the lost packets to be re-sent to organize them again in the correct order. In case messages can’t be delivered, this is reported to the sender (source).
As you see, the Internet is a packet-switched network. All data are chopped into packets that are dispatched through lots of different routes simultaneously. When they finally hit their destination, they get re-built by TCP. And IP is in charge of the packets to be sent to the correct destination.
TCP/IP’s most updated model includes the following five layers. All collaborate for the same purpose, the transmission of data.
- Application layer. This is the top layer, and it supplies an interface for applications and network services to communicate. It identifies participants involved in a communication, defines the access to the network’s resources, and the rules for application protocols and transport services interaction.
- Transport layer. It defines the amount of data and the rate for transporting data correctly. It receives messages from the application layer, divides them into pieces, transports them, re-builds them following the proper sequence, and solves possible issues to guarantee their integrity and proper delivery. TCP operates in this layer.
- Network layer. It attaches the corresponding IP address (source/destination) to every data packet and routes all of them to move them across a network or different networks. Here IP protocol operates.
- Datalink layer. It identifies the correct source and destination through the use of MAC (media access control) addresses to transfer the packets.
- Physical layer. It sends computer bits from a computer to another on the network. It sends data physically via radio waves, optically or electrically.
Advantages of TCP/IP
- It allows connecting different kinds of devices.
- It makes possible cross-platform communications among diverse networks.
- It supports different protocols for routing.
- It offers high possibilities of scalability. You can add networks without causing trouble.
- It supplies IP addresses to devices for identifying them.
- It’s independent of the operating system.
- It’s an open protocol. No one owns it. Everybody can use it.
Disadvantages of TCP/IP
- To replace protocols on TCP/IP is not simple.
- It doesn’t define clearly the concepts of services, protocols, and interfaces. It can be difficult to assign a category to new technologies included in modern networks.
- It works for wide networks. It’s not suitable for small ones (PAN or LAN).
TCP vs UDP
There are clear differences between the transmission control protocol (TCP) and user datagram protocol (UDP).
- TCP is connection-oriented, while UDP is connectionless. TCP requires an active connection to start and complete the data transmission, while UDP does not.
- TCP can recover lost packets by requiring retransmission. UDP can’t recover them.
- TCP is much slower than UDP because its process involves verification in almost every step. To guarantee the connection is active and the source ready to receive a message, to confirm delivery, etc. UDP only sends, avoiding those confirmation steps.
- TCP protects packets’ integrity efficiently. To protect this is not UDP’s strength. Its mechanism to check integrity (checksum) is less precise.
- TCP delivers ordered messages (by reassembling them based on a numerical sequence). UDP doesn’t offer this function.
- TCP guarantees the data delivery to their recipient. UDP doesn’t.
- TCP detects and fixes possible errors better. It also supplies confirmation of delivery or reports the problem if it’s not possible to deliver. The UDP’s mechanism for error detection (checksum) is simpler and limited. It doesn’t confirm or inform about the delivery.
- TCP’s speed doesn’t solve latency. UDP really does it.
- TCP doesn’t support broadcast, while UDP really does since it does not require response or confirmation.
- The efficiency of TCP makes it ideal for applications that demand full integrity of data, zero loss (HTTP, FTP, IMAP, SSH, SMTP).
- UDP works very well for applications that require high speed and can afford data loss. Think about real-time applications like live video streaming, voice-over IP or online gaming.
TCP vs HTTP
The Transmission Control Protocol (TCP) and the Hypertext Transfer Protocol (HTTP) also differ between them.
- TCP is used to set communication or a session between two machines (client and server). In contrast, HTTP is used for accessing data of webpages and accessing content (websites) from a web server. It’s a client-server protocol. Requests begin with the recipient, like a browser.
- TCP is a data transfer protocol. HTTP uses TCP for data transfer.
- TCP uses IP addresses, while HTTP uses hyperlinks, also known as URLs.
- TCP is connected-oriented, while HTTP is stateless but not sessionless.
- TCP needs authentication (TCP-AO). HTTP does not.
- TCP process involves a three-way handshake, and this takes some time. HTTP is one-way communication. TCP is slower than HTTP.
- TCP uses different ports (80, 8000, 8080, etc.). HTTP usually uses the 80 port.
There are different protocols, and understanding their potential is basic to choose the one that better suits your network’s needs. In many cases, these technologies compliment others. TCP, independently and combined with IP, is an efficient protocol with useful functionality for the Internet and networks in general. Try them and get the best out of them!