TCP vs UDP: A comparison of the protocols and their differences
Whether your data is transferred quickly and in full depends on which network protocols you use, UDP or TCP. They both do the same job but in different ways. One is more reliable and the other one is faster. Find out which one you need below.
Contents
What is TCP?
TCP (transmission control protocol) is a network protocol that transfers your data over the internet from your device to a web server. You use the TCP protocol whenever you chat to your friends on Skype, send emails, watch online videos, or simply browse the web.
TCP is connection-based, so it establishes a connection between the receiver and sender and maintains it while transferring data. It guarantees that the data arrives completely intact. Because of its reliability, TCP is the most popular network protocol.
Using TCP provides several advantages:
- TCP operates independently of operating systems, allowing for greater interoperability across systems and devices.
- TCP checks for errors as it transmits data, ensuring that the data it sends reaches its destination intact.
- TCP optimizes and alters the speed at which is transmits data depending on the capacities of the receiver.
- TCP confirms that data has reached its destination and attempts a retransfer if the first transmission didn’t work.
Despite its benefits, TCP also comes with some disadvantages:
- TCP uses quite a lot of bandwidth and is slower than UDP, which we’ll discuss later in this article.
- If even a small amount of data is lost during transmission, TCP may not load other information. For example, if one element (like an image or video) fails to load on a page, the rest of the page data may not load either.
- TCP doesn’t work well across local area networks or personal area networks.
What is UDP?
UDP stands for user datagram protocol. Compared to TCP, the UDP network protocol is less reliable, but faster and more straightforward. It’s often used in situations where higher speeds are crucial, like in streaming or gaming.
UDP is connectionless, so it doesn’t establish a prior connection between two parties. It has the potential to lose data along the way, but in return you’ll have much higher speeds.
Let’s take a closer look at the advantages of UDP.
- UDP sends smaller packets with less overhead, reducing end-to-end delay.
- UDP delivers data even if some of the packets are missing, meaning that packet loss won’t disrupt the entire transmission.
- One UDP transmission can be sent to multiple receivers at once through broadcast and multicast functionality.
- UDP transmission is just faster and more efficient than other options, like TCP.
UDP does have a few drawbacks, of course, which we’ll cover now.
- UDP does not check whether or not a data packet reached its destination successfully.
- UDP cannot guarantee that a transmission arrives intact. Some packets may have been lost, but there’s no way for the sender to clarify that from their side.
- If a router has to prioritize one data packet over another, it is likely to transmit a TCP packet over a UDP packet.
- UDP does not send data in a specific sequence, so packets can arrive in any order.
How do TCP and UDP work?
TCP is more reliable than UDP. It transfers your data packets from your device to a web server. UDP is faster and simpler, but it doesn’t guarantee the delivery of packets.
How does TCP work?
TCP works by sending small packets of data through the internet, to be reassembled on arrival with the receiver. Here’s how it looks in practice:
- TCP assigns each data packet a unique identifier and a sequence number. This lets the receiver identify which packet was received and which one is arriving next.
- Once the data packet is received, and if it’s in the correct order, the receiver sends an acknowledgement to the sender.
- The sender can now send another packet.
- If the packet is lost or sent in the wrong order the receiver stays silent, indicating that the same data packet needs to be resent.
Because the data is sent in sequence, it helps with data congestion and flow control, and makes it easier to spot and fix any errors. This also means that data sent over TCP is more likely to reach its destination in full. However, it has a downside. There’s a lot of back and forth communication between the two parties so it takes longer to establish a connection and exchange data.
How does UDP work?
UDP works by completing the same job as TCP without needing unique identifiers or sequence numbers. It sends data in a stream and only has a checksum to ensure that the data arrived uncorrupted. UDP has almost no error correction, nor does it care about lost packets. It’s more error prone, but it sends data much faster than TCP.
Is UDP secure? It’s almost impossible to set up a firewall allowing only some UDP communications and blocking the rest. However, while it is much easier to secure TCP, UDP connections are not left entirely unprotected. Users can employ proxies for particular applications or establish a tunnel connection between the remote user and the company’s inside network.
What is the main difference between TCP and UDP?
The main difference between TCP and UDP is that UDP is faster than TCP. UDP has a speed advantage because the user doesn’t have to allow or acknowledge receipt of the data to be resent. This lets UDP establish connections faster and transfer data faster. However, this also causes some concerns over how safe UDP actually is. In terms of the UDP vs TCP VPN debate, OpenVPN works best on a UDP port, although it can be configured to run on any port.
Here’s how they compare side by side:
TCP | UDP | |
---|---|---|
Reliability | High | Lower |
Speed | Lower | High |
Transfer method | Packets are delivered in a sequence | Packets are delivered in a stream |
Error detection and correction | Yes | No |
Congestion control | Yes | No |
Acknowledgement | Yes | Only the checksum |
Both UDP and TCP divide your data into smaller units called data packets. These include the sender’s and receiver’s IPs, various configurations, the actual data you are sending, and the trailer — the data that indicates the end of the packet.
So, which is better — UDP or TCP? It all depends on what you use them for. If you need a fast and constant data transmission for an application to work properly, you will have to use UDP. Otherwise, TCP is a stable and reliable protocol for transferring data and not losing any of it along the way.
TCP vs UDP: Speed differences
UDP is faster than TCP but is also more error-prone. The reason is that UDP doesn’t use such an acute checking of packets as TCP and employs a more continuous data flow. TCP sends its data in sequence, so it uses more flow control. It makes the connection safer and smoother but reduces speed due to a lot of back-and-forth communication between the sender and receiver.
Does OpenVPN use TCP or UDP?
OpenVPN is compatible with both TCP and UDP, but which you’ll prefer will depend on what you need it for. OpenVPN is an open-source VPN protocol used by many leading VPN providers, including NordVPN. TCP is more reliable, but there are many uses where UDP is preferred and this is usually the default protocol on most VPN services.
UDP is a great option if you are gaming, streaming or using VoIP services. It may lose a packet or two but it won’t have a huge impact on your overall connection. Using TCP for such services might cause lag (especially if you’re connected to servers on the other side of the world), which can completely ruin your experience. Therefore, OpenVPN via TCP is recommended for static uses such as emailing, web browsing, and file transfer. When you set up a VPN, it’s important to choose the setup that works best for your specific needs, working on a case by case basis. You can switch protocol to OpenVPN UDP or TCP in the NordVPN app.
Check out our video on TCP vs UDP below.
Which protocol does NordVPN use?
NordVPN wants to provide the best browsing experience without compromising on speed, so we use the UDP protocol by default. We recommend trying the UDP protocol first and only switching to TCP if you experience any issues.
To change UDP to TCP on NordVPN (for Windows users):
- Go to “Settings” by clicking on a gear icon in the top right-hand corner.
- Select “Advanced” from the menu on the left-hand side.
- Under “Protocol” choose TCP.
To change UDP to TCP on NordVPN (for MacOS users):
- Open the “Preferences” panel by clicking on the slider button in the upper left-hand corner or finding NordVPN on your menu bar and selecting “Preferences” (default hotkey: Cmd + ,).
- “Connection: Prefer UDP over TCP” will be on by default. Click on the checkbox to turn it off.
If your speed has dropped, you can also try a few tricks to boost your VPN speed.