Skip to contentSkip to navigationSkip to topbar
Page toolsOn this page
Looking for more inspiration?Visit the

Networking Considerations for Video Applications


In real-time video applications, clients must be able to exchange audio, video, and other media with one another with the lowest possible latency. When clients connect to a video Room, the Twilio Video SDK tries to establish a direct media connection between the client and Twilio's media server (also called a Selective Forwarding Unit, or SFU).

Clients connect directly to Twilio SFU for media exchange in a video room.

Firewalls and Network Address Translation (NAT) can impact the quality and performance of your application if they block direct communication of media.

If a direct connection can't be established between a client and Twilio's media servers, Twilio uses a TURN relay to exchange media. Using TURN adds additional latency to the application, as it adds an extra hop between the client sending the media and the client receiving the media.

TURN server relays media between Client 1 and Twilio SFU when direct connection is unavailable.

Common reasons why a direct connection could fail are firewalls that restrict UDP traffic on Twilio's specified ports or non-BEHAVE-compliant NATs, which can't be traversed using standardized methods.

(information)

What is a BEHAVE-compliant NAT?

A BEHAVE-compliant NAT is one that meets the requirements defined in RFC4787(link takes you to an external page) and RFC5382(link takes you to an external page). These RFCs standardize the ways that NAT traversal can happen, so a non BEHAVE-compliant NAT is one that can't be traversed using the formally defined methods. This blocks direct media exchange.


Protocols and ports used to exchange media

protocols-and-ports-used-to-exchange-media page anchor

The following protocols and ports are listed in order of preference. Twilio Video uses a fallback hierarchy: it always attempts the lowest-latency connection first and falls back to higher-latency options only when the preferred method is blocked.

(information)

Info

To configure your firewall with IP address ranges, proxy bypass guidance, and troubleshooting, see the Video Firewall and Network Configuration guide.

PriorityProtocolPort RangeLatency impact
1 (Optimal)STUN and UDP/TLS/RTP/SAVPF10000 - 60000Lowest latency — direct media connection
2 (Acceptable)STUN, TURN-UDP3478Adds < 50ms — TURN relay
3 (Degraded)TURN-TLS443Adds > 50ms — TCP retransmission overhead

When Participants connect to a Room, Twilio's media server dynamically assigns ports for UDP communication. If direct connectivity checks fail on the assigned ports, then TURN-UDP on port 3478 and TURN-TLS on port 443 are used as fallbacks.

The scenarios below describe situations where a client, Alice, connects to a Room and exchanges media with Twilio's media servers under different network environments.

1. UDP traffic allowed on ports 10000 - 60000 (Optimal)

1-udp-traffic-allowed-on-ports-10000---60000-optimal page anchor

In a non-restrictive network environment or a restricted environment where UDP ports 10000 - 60000 are allowlisted, Alice can establish a direct media connection with the Twilio media server using the specified UDP port range. This provides the lowest latency and best call quality.

Network flow showing UDP port range 10000-60000 through NAT to SFU.

2. UDP traffic blocked on ports 10000 - 60000 but allowed on port 3478 (Acceptable)

2-udp-traffic-blocked-on-ports-10000---60000-but-allowed-on-port-3478-acceptable page anchor

In an environment where only UDP port 3478 is allowed, Alice must relay media through a TURN server in order to connect with the Twilio SFU. This adds marginal latency (< 50ms) because the TURN server is now relaying media between Alice and the Twilio media server, rather than Alice directly communicating with the media server.

UDP flow from Alice to SFU via NAT and turn.twilio.com with port 3478 allowed.

3. All traffic blocked except TCP port 443 (Degraded — last resort)

3-all-traffic-blocked-except-tcp-port-443-degraded--last-resort page anchor

In an environment where only TCP/TLS port 443 is allowed, the client must relay through the TURN server in order to connect with the SFU. This adds higher latency (> 50ms) because the TURN server is now relaying media using TCP/TLS between the client and the media server. TCP/TLS adds delivery acknowledgments and retransmission, which can further delay transmission of real-time media. Users may experience degraded audio and video quality in this configuration.

Network flow from Alice to SFU via TCP port 443 through NAT and Twilio TURN server.