The STUN protocol has several applications in networking. Despite that, most networking professionals use this protocol for resolving connection problems in SIP-based VoIP networks. In this article, we will discuss the role of the STUN protocol in VoIP implementation.

What is STUN?

The STUN or “Simple Traversal of UDP over NAT” is a simple server-client protocol that accounts for the lack of standards in the NAT protocol. Network Addressing Protocol (NAT) is a technology used for securing communication over IP networks that allows efficient use of networking resources. Although STUN is mostly used where UDP serves as the transport protocol, a STUN server can operate on both TCP and UDP protocols.

Why Do We Need STUN in VoIP Networks?

The purpose of NAT-enabled devices such as routers and firewalls is to provide a shared public IP to multiple private IPs. With limited public IPs available, companies need a shared public IP to connect multiple devices to the internet securely.

While NAT is essential for ensuring efficient usage of networking resources and providing a secure connection to several devices, it can pose a problem for SIP (Session Initiation Protocol)-based environments.

VoIP is one of those networks that rely on SIP to establish stable communication with other devices. It helps devices locate other SIP devices and decide which codec (encryption protocol) is ideal for sending media.

However, because NAT does not have concrete standards for SIP-based communication, VoIP networks can develop several discrepancies. For example, it’s common for SIP devices to suffer from phone registration failures and one-way audio when communicating through a NAT device.

Private local IPs don’t remain the same for a device and can change once the NAT device restarts. This is why whenever a device requests a NAT device for a shared public IP, it needs to be consistent with the local LAN addressing scheme. Unless that happens, local devices cannot communicate with external devices.

Because SIP uses local IP as its payload, it frequently creates a mismatch in IPs when communicating with external SIP devices. Here is where the STUN protocol steps in. It serves as the intermediary between SIP servers and NAT devices and gives a clear protocol for implementing VoIP over NAT.

How Does STUN Support SIP-Based VoIP Calls?

STUN makes sure that the SIP device connecting through a NAT discovers its public IP and determines which type of NAT is running on its connected gateway. It enables SIP devices to discover which port external SIP devices can establish a connection with.

During communication, SIP-based networks embed address information into the payload of the data packet. This means that external SIP servers try to communicate with the local IP address even though they don’t remain static.

Without the right information about which device has requested the public IP, NAT devices can fail to connect external devices with the right local device. This is why connecting 2 SIP devices extremely difficult while depending on SIP’s protocol.

In the STUN protocol, when a local SIP device requests for a SIP call, the NAT server assigns a dedicated port (port 3478) for STUN servers and connects the local SIP-based calls with that port. After that, the STUN server communicates with the external SIP device on behalf of the NAT device and the local device.

The external SIP device is then asked to communicate with the shared public IP of the STUN server and port 3478 instead of responding to the local private IP. It allows both SIP devices to connect through the shared STUN server and the STUN port.

Conclusion

VoIP communication relies on SIP-based connections for calling. However, without STUN-based protocols, VoIP devices can suffer from frequent issues such as one-way audio and failures in phone registrations. The STUN protocol ensures a stable connection between SIP (VoIP) devices by acting as an intermediary.