Category Archives: Protocols

UDP explained.

Networks mean communication, a non-stop exchange of different data types. Following this idea, networks strongly need solutions for transferring data from one place (source) to another (destination).

Those solutions exist, and they are called communication protocols. UDP is one of them! 

What is UDP?

The user datagram protocol or UDP is a communication protocol created in 1980 for the exchange of data between networks and machines. It’s a high-speed solution, and this feature boosted its popularity. It became ideal for DNS lookups, real-time systems, or video transmissions. This David P. Reed’s contribution really improved networking, and its utility keeps being important nowadays. 

How does it work?

Like other communication protocols, UDP divides a message (its data) into different packets or datagrams, transported all across the network and the machines that integrated it until it arrives at its destination. What makes a big difference is, user datagram protocol is connection-less. This means it doesn’t rely on having a formal and active connection to start the data transmission. This totally accelerates the process. 

After chopping messages, UDP doesn’t number the datagrams for reassembling them. When you use it, what happens is each datagram has a header that contains port numbers (from the source and the destination) useful for recognizing the different users’ requests. The user datagram protocol includes a checksum function to verify that the data got fully transferred, and it doesn’t confirm if the messages sent are properly received.

UDP’s simplicity means high speed, but working that fast opens the chance for datagrams to get lost during its transference, and there’s a risk for criminals to use this advantage as a vulnerability to enable a DDoS attack. Basically, the risk is that there’s no handshake to secure the transmission of data that exists in other protocols. The lack of such or another security mechanism makes UDP fast because it includes fewer steps, but it becomes less safe.

UDP pros – Why should you use UDP?

  • Its speed and simplicity make it an ideal solution for the following scenarios.
  • UDP is totally a choice for communication applications, like voice-over IP or real-time, and online gaming. Actually, all applications and processes that can afford datagram loss could use UDP. The decision depends on what exactly is your priority, fast speed over the accuracy of the opposite. For some, it’s easier to afford that loss than waiting for delayed datagrams.
  • It’s ideal for the streaming of audio and/or video. Remember that UDP doesn’t need an active connection between sender and receiver for the data transmission.
  • It suits the domain name system (DNS) very well because DNS requests and answers can travel on one IP datagram, and the second because DNS really needs to make the response of requests an agile process.
  • If your need is to broadcast information, UDP supports multicast. 
  • If you look for self-starting processes, popularly known as bootstrapping, you can definitely use it.

UDP cons – Why shouldn’t you use UDP?

  • If your application or processes can’t afford datagram loss, if accurate delivery is vital for you, instead of fast transmission, UDP is not your choice.
  • UDP skips the handshake as a security mechanism. It’s a reliable alternative in terms of speed, but not in security ones. 
  • Its functionality doesn’t include checking or correcting errors that can occur during the data transmission.
  • It doesn’t supply acknowledgment of the correct delivery.

Conclusion.

Now you know, if it’s about high-speed data transmission, UDP is the right solution to be in charge. When it’s more or less suitable will be defined by your priorities and network’s needs.