Fact-checked by Grok 2 weeks ago

UDP hole punching

UDP hole punching is a network technique that enables direct peer-to-peer communication between two hosts behind one or more Network Address Translators (s) using the (), by leveraging a third-party rendezvous server to exchange public information and create temporary "holes" or mappings in the s for incoming traffic. The process begins when each host contacts the rendezvous server to register its private ( and port) and receives its public as mapped by the ; the server then relays these public endpoints between the hosts. Simultaneously or in quick succession, the hosts send packets to each other's public endpoints, which prompts the s to establish bidirectional mappings if they exhibit endpoint-independent behavior, allowing subsequent direct traffic to flow without further server involvement. This method, often integrated with protocols like (Session Traversal Utilities for NAT) for discovery, requires no administrative privileges or hardware configuration changes on the hosts. UDP hole punching is widely used in applications requiring low-latency, real-time communication, such as (VoIP), online gaming, and , where traditional client-server models may introduce bottlenecks. Studies indicate it succeeds in over 80% of cases across common types, particularly those with endpoint-independent mapping, though efficacy drops to around 64% in real-world networks when accounting for firewalls and asymmetric behaviors. Despite its effectiveness, UDP hole punching has limitations; it fails with endpoint-dependent NATs (about 11-20% of devices), symmetric NATs, or when firewalls block unsolicited inbound UDP packets, often necessitating fallback mechanisms like relay servers (e.g., TURN). To maintain the NAT mappings, periodic keep-alive packets are required, typically every 30-55 seconds, depending on the 's timeout behavior. The technique was first documented in detail in 2005, building on earlier concepts from 1999, and remains a cornerstone of in modern protocols like ().

Fundamentals of NAT and UDP

Network Address Translation (NAT)

(NAT) is a technique used to map one or more private addresses within a local network to a single public address on the , thereby enabling multiple devices to share a limited pool of public addresses and conserving IPv4 address space. This mapping process involves modifying the headers of packets as they traverse the NAT device, typically located at the network edge, such as a router or . NAT originated in the mid-1990s as a temporary workaround to address the impending exhaustion of IPv4 addresses, first proposed in RFC 1631 published in 1994. Although intended as a short-term measure until IPv6 deployment, NAT became a standard feature in networking equipment due to the slow adoption of IPv6. NAT devices classify into several types based on their handling of outbound packet translations and inbound packet filtering rules, particularly for UDP traffic: full cone, restricted cone, port-restricted cone, and symmetric. In a full cone NAT, all packets from the same internal IP address and port are mapped to the same external IP address and port; any external host can then send packets back to that external port, regardless of the source. A restricted cone NAT maps internal IP/port to a fixed external IP/port for all outbound destinations, but allows inbound packets only from external hosts that have previously received an outbound packet from the internal host. The port-restricted cone NAT extends this by permitting inbound packets only from specific external IP addresses and ports that match those to which the internal host has sent packets. Finally, a symmetric NAT assigns a unique external IP/port mapping for each distinct outbound destination, making inbound connections more restrictive as the mapping changes per remote endpoint. To facilitate communication, NAT maintains state through temporary bindings or mappings of internal addresses/ports to external ones, which are created upon outbound packet transmission. These UDP bindings typically expire after a period of inactivity, often ranging from 30 seconds (though a minimum of 2 minutes is required for interoperability with protocols like STUN, with 5 minutes or more recommended as default) to several minutes, depending on the NAT implementation, after which the mapping is released to free resources.
NAT TypeOutbound Translation RuleInbound Filtering Rule
Full ConeFixed external IP/port for all from same internal IP/portAny external host/port allowed to mapped external IP/port
Restricted ConeFixed external IP/port for all destinations from same internal IP/portOnly from external hosts that received prior outbound packet
Port-Restricted ConeFixed external IP/port for all destinations from same internal IP/portOnly from external hosts and ports that received prior outbound packet
SymmetricUnique external IP/port per distinct destinationOnly from the specific destination that prompted the mapping

UDP Protocol Characteristics in NAT Contexts

The (UDP), defined as a simple, connectionless transport protocol, operates without establishing a persistent connection or performing reliability checks, delivering datagrams directly to the destination without acknowledgments or retransmissions. This stateless design contrasts with TCP's three-way handshake and ordered delivery mechanisms, enabling UDP to support lightweight, low-latency applications but requiring upper-layer protocols for error handling. In environments, UDP's lack of inherent session state simplifies traversal techniques, as it allows applications to predict and exploit temporary mappings without negotiating persistent connections. When a behind a sends an outbound packet, the device creates a dynamic by translating the internal source and (e.g., 192.168.1.100:12345) to an external one (e.g., 203.0.113.1:54321), forwarding the packet while recording the entry for potential return traffic. These mappings are typically endpoint-independent, meaning the same external is reused for subsequent packets from the same internal to any destination, and they include an inactivity timeout—often at least 2 minutes, with 5 minutes recommended—to conserve resources by closing idle entries. Inbound packets arriving at the are only forwarded if they match an existing ; otherwise, they are dropped as unsolicited traffic, preventing unauthorized access but complicating unsolicited inbound communications. This interaction poses challenges for UDP communication, as the absence of UDP's built-in state means NATs cannot infer reverse paths from prior exchanges, leading to one-way connectivity unless mappings are symmetrically established. hole punching addresses this by leveraging simultaneous outbound packets from both peers, which trigger reciprocal mappings in their NATs, allowing subsequent direct exchange without ongoing server relay. This technique succeeds particularly with endpoint-independent NAT behaviors, such as full cone or restricted cone types, where outbound activity opens predictable "holes" for inbound replies.

Principles of Hole Punching

NAT Mapping and Binding Types

(NAT) devices manage outbound traffic from private networks by translating internal addresses and ports to public ones, creating mappings in their translation tables that dictate how inbound packets are handled.[] These mappings are established when a host behind the NAT sends an outbound packet from its private :port to an external destination, prompting the NAT to assign and record a public external :port for that flow.[] The behavior of these mappings—classified by their dependency on destination endpoints—fundamentally influences the predictability required for hole punching, as the technique relies on peers anticipating each other's public endpoints to send packets that traverse the NAT bindings.[] RFC 4787 outlines three primary mapping behaviors for UDP traffic, based on whether the external port remains consistent across different destinations.[] Endpoint-independent mapping (EIM), the most favorable for hole punching, reuses the same external IP:port for all outbound packets originating from the same internal IP:port, regardless of the external destination IP or port; this allows predictable public endpoints that peers can target.[] Address-dependent mapping (ADM) reuses the external port only for destinations sharing the same external IP as a previous flow, but assigns a new port for different external IPs, introducing variability based on destination address.[] Address- and port-dependent mapping (APDM), the strictest, generates a unique external port for each distinct external IP:port pair, making endpoint prediction nearly impossible without prior knowledge of the exact flow.[] NAT types are further categorized by combining these mapping behaviors with filtering rules that control inbound packet acceptance.[] Full cone NAT employs EIM paired with endpoint-independent filtering (EIF), permitting inbound packets from any external source to the internal once any outbound packet has created the mapping.[] Address-restricted cone NAT uses EIM with address-dependent filtering (ADF), allowing inbound packets only from external IPs that have received prior outbound traffic from the internal .[] Port-restricted cone NAT applies EIM with address- and port-dependent filtering (APDF), restricting inbound packets to those originating from specific external IP:port pairs that match previous outbound destinations.[] Symmetric NAT, in contrast, relies on ADM or APDM and typically features dynamic filtering, creating a new external for each unique outbound flow and rarely reusing mappings, which disrupts the endpoint consistency essential for punching.[] The predictability of mappings in cone NATs (full, address-restricted, and port-restricted) stems from their endpoint-independent nature, enabling peers to exploit UDP's connectionless protocol by targeting the known public port established via outbound communication to a rendezvous point.[] Symmetric NATs, however, pose significant challenges due to their endpoint-dependent ports, which vary per destination and cannot be reliably forecasted without testing every possible port, rendering standard hole punching ineffective.[] Empirical studies confirm that UDP hole punching achieves success rates of approximately 80-90% with cone NATs, as their consistent mappings facilitate direct peer connectivity, but it largely fails with symmetric NATs owing to this port variability.[]
NAT TypeMapping BehaviorFiltering BehaviorHole Punching Suitability
Full ConeEndpoint-IndependentEndpoint-IndependentHigh (predictable from any source)
Address-Restricted ConeEndpoint-IndependentAddress-DependentHigh (predictable from known IPs)
Port-Restricted ConeEndpoint-IndependentAddress- and Port-DependentHigh (predictable from known IP:port pairs)
SymmetricEndpoint-Dependent (ADM/APDM)Varies (often dynamic)Low (unpredictable ports)

Simultaneous Packet Exchange Mechanism

The simultaneous packet exchange mechanism in hole punching relies on both peers initiating outbound packets toward each other's anticipated external addresses and ports nearly concurrently, thereby inducing their respective devices to create temporary inbound mappings that allow subsequent direct communication. This process exploits the asymmetric behavior of many , where an outbound packet from a private to a specific external prompts the NAT to establish a binding that permits inbound packets from that same external source through the same port, effectively "punching a hole" in the . For this to succeed, the peers must first learn each other's public via a rendezvous , enabling them to target the correct addresses without prior direct contact. Timing is critical in this exchange, as the outbound packets must traverse the and arrive such that the inbound responses fall within the active lifetime of the induced mappings, which typically range from 30 seconds to 5 minutes depending on the NAT implementation. If one peer's packet arrives significantly earlier, it may be dropped as unsolicited by the recipient's NAT, since no corresponding outbound exists yet; thus, the exchange requires near-simultaneity to ensure mutual hole creation before any bindings timeout. To mitigate network delays and increase reliability, peers often transmit bursts of 5 to 10 packets in rapid succession, targeting both the public and private endpoints of the other peer, and then lock onto the first responsive binding to sustain the connection. The probability of successful hole punching in this mechanism depends on the 's endpoint-independent mapping behavior, particularly in cone NAT types where the external remains fixed for all destinations from a given internal , allowing consistent inbound access once a hole is punched. In contrast, symmetric NATs, which assign unique external s per destination, reduce success rates by complicating prediction and reuse, though empirical studies indicate overall UDP hole punching succeeds across approximately 82% of consumer NATs due to the prevalence of endpoint-independent variants. Unlike , which enforces connection-oriented handshakes with SYN-ACK sequences that trigger operating system-level state tracking and often fail under NATs due to unsolicited inbound SYNs, 's connectionless nature permits this simultaneous exchange using a single per peer without requiring port reuse flags or handling half-open connections. This simplicity avoids 's stricter rules and enables stateless traversal, making the preferred for hole punching in peer-to-peer scenarios.

Hole Punching Process

Rendezvous Server Role and Preparation

In UDP hole punching, the rendezvous serves as a publicly accessible intermediary that enables peers behind devices to discover their external network addresses and s, facilitating subsequent direct communication. Typically implemented as a , it receives UDP binding requests from each peer and responds with the peer's reflexive transport address as observed from the public . This address, consisting of the external and allocated by the , is encoded in the response using attributes like XOR-MAPPED-ADDRESS to prevent misinterpretation by intermediate s. The preparation phase begins when each peer establishes contact with the rendezvous to create and learn about their mappings. For instance, peer A sends a binding request packet to the known public and port of S; upon , S examines the source of the incoming packet—which reflects A's external (eAddrA:ePortA)—and includes this information in its binding response sent back to A. Similarly, peer B performs the same exchange with S to obtain its own external (eAddrB:ePortB). These external addresses are then exchanged between A and B through an out-of-band application-layer signaling channel, such as HTTP, , or a custom protocol, allowing each peer to know the other's public coordinates without direct initial connectivity. To maintain these NAT mappings and prevent them from expiring due to inactivity—typically within 1 to 2.5 minutes for most devices—peers must implement a keep-alive mechanism by sending periodic UDP binding requests (pings) to the rendezvous server. Recommended intervals for these refreshes range from 15 to 30 seconds, balancing mapping persistence with minimal network overhead; for example, STUN implementations often use randomized intervals of 24 to 29 seconds to avoid synchronization issues. This ongoing interaction ensures the external ports remain open and bound, mirroring the core binding mechanism of the protocol as defined in its 2020 update, though without the full candidate gathering of advanced frameworks like .

Direct Peer-to-Peer Connection Establishment

Once the rendezvous server has facilitated the exchange of external addresses (e.g., public IP and port mappings) between peers A and B, the direct peer-to-peer connection establishment proceeds through a coordinated exchange of UDP packets. Peer A initiates by sending UDP packets from its internal address (e.g., 192.168.1.2:12345) to peer B's external address (e.g., 203.0.113.2:54321), which traverses A's NAT and creates a temporary binding for inbound traffic matching B's external source address and port. Simultaneously, peer B sends UDP packets from its internal address (e.g., 192.168.2.3:67890) to peer A's external address (e.g., 203.0.113.1:54321), establishing a symmetric binding in B's NAT for inbound packets from A's external address. This mutual outbound traffic "punches" holes in the respective NATs, allowing subsequent inbound packets to traverse without further intervention, provided the NAT mappings support endpoint-independent or address-dependent filtering. To handle potential asymmetries in packet arrival timing due to network jitter or differences, peers typically transmit a burst of 3 to 5 packets in rapid succession to each candidate endpoint learned from the server, rather than a single packet. If A's initial packet arrives at B's before B has sent its outbound packet, B's may discard it as unsolicited inbound traffic lacking a corresponding . However, once B's outbound packet reaches A's and establishes the binding, A's subsequent packets can flow through B's via the now-open hole, as they match the source criteria of B's (e.g., from 203.0.113.1:54321). This simultaneous or near-simultaneous ensures that the reverse is created shortly after, enabling bidirectional communication even if opens first; the process relies on behaviors such as endpoint-independent mapping, which preserve the external across connections to the same destination. Following successful hole punching, peers lock in the responsive external endpoints (e.g., A uses 203.0.113.2:54321 for B, and vice versa) for all subsequent direct data flow, bypassing the rendezvous server entirely to minimize and overhead. Application-layer data, such as voice packets in VoIP or file chunks in , can then be exchanged directly over this channel. To prevent bindings from timing out due to idle periods—typically after 20 to 30 seconds without traffic—peers must maintain the connection by periodically sending keep-alive packets or integrating them with regular application data, ensuring the mappings remain active without re-initiating the punching process.

Compatibility and Limitations

NAT Type Compatibility and Success Factors

The compatibility of UDP hole punching depends heavily on the type of employed by the peers' networks, as different NAT behaviors affect the ability to maintain consistent mappings and filtering rules for bidirectional communication. Full and restricted NATs, which use endpoint-independent , exhibit high , enabling reliable hole punching in over 95% of cases due to their consistent reuse of external ports across destinations. -restricted NATs, while also endpoint-independent in , impose stricter filtering based on both source and , leading to empirical success rates of approximately 80%, primarily due to the need for precise timing in the simultaneous packet exchange to align inbound filters with outbound bindings. Symmetric NATs, which create unique mappings for each destination and pair, severely limit , with basic hole punching succeeding in less than 10% of attempts; in such scenarios, fallback to relay servers like TURN is typically required. These rates are derived from empirical measurements across consumer NAT devices.
NAT TypeMapping BehaviorFiltering BehaviorHole Punching Success RateNotes
Full ConeEndpoint-IndependentEndpoint-Independent>95%Highest compatibility; allows any incoming traffic post-mapping.
Restricted ConeEndpoint-IndependentAddress-Dependent>95%Allows incoming from specific IP; works well with rendezvous exchange.
Port-Restricted ConeEndpoint-IndependentAddress- and Port-Dependent>80%Requires simultaneous packet exchange; precise timing improves success.
SymmetricAddress- and Port-DependentVaries<10%Unpredictable ports necessitate relays for most cases.
Success factors beyond type include network conditions and device configurations that influence mapping stability and packet timing. Low network latency, ideally under 200 ms round-trip time, facilitates the precise simultaneous packet exchange required to establish bidirectional holes before timeouts or mapping expirations occur, as higher delays can cause desynchronization in the punching window. rules that block traffic on common ports (e.g., 3478 for ) or enforce strict stateful inspection prevent hole creation entirely, reducing success to zero in blocked environments. Multiple layers, such as double in carrier-grade or cascaded home setups, complicate traversal by multiplying mapping dependencies, often halving the overall odds of success compared to single- scenarios due to increased prediction challenges and potential table overflows. To assess compatibility prior to attempting hole punching, systems employ STUN-like probes to classify types by sending packets to a public server and analyzing response mappings for endpoint independence, address/port dependency, and filtering behaviors; this pre-classification allows selection of appropriate strategies or fallbacks. Measurements from large-scale deployments indicate that approximately 84% of in the wild exhibit endpoint-independent mappings, supporting high hole punching viability for most consumer networks. As of 2025, global adoption has reached about 44%, diminishing the prevalence of IPv4 requirements in dual-stack or IPv6-only environments and thereby reducing reliance on hole punching for direct connectivity. However, hybrid IPv4/IPv6 deployments introduce added complexity to punching techniques, as peers must negotiate protocol preferences and handle potential mapping mismatches across address families.

Security Risks and Mitigation Strategies

UDP hole punching creates temporary mappings in devices that open external s to inbound traffic from the intended peer, but this can expose endpoints to unauthorized packets if the or does not properly filter unsolicited connections. In cone types, these mappings permit traffic from any source once established, heightening the risk of unintended inbound access, whereas symmetric s inherently block unsolicited inbound packets by assigning unique mappings per destination, providing implicit —though this often limits hole punching success. Prediction attacks become feasible if external assignments follow predictable patterns, allowing attackers to guess and exploit open mappings without , as outlined in variants of the technique relying on number . Additionally, denial-of-service () attacks can exploit spoofed keep-alive packets to flood tables, exhausting resources and forcing mappings to expire prematurely or overwhelming endpoints with unauthenticated connection attempts. Analyses of VoIP vulnerabilities during the 2010s have highlighted potential risks in mechanisms, including those using , which could allow interception or disruption of sessions through interactions, as surveyed in comprehensive analyses of VoIP vulnerabilities. To mitigate exposure, applications should implement during the signaling phase, such as using TLS for secure address exchange via the rendezvous server, ensuring only verified peers can initiate . Short-lived NAT mappings with configurable timeouts—typically 20-30 seconds for idle —help limit exposure windows, while periodic keep-alives or re-punching maintain legitimate sessions without indefinite openness. Application-layer encryption, such as DTLS over , protects data and post-connection, preventing or tampering even if unauthorized traffic reaches the port. In contemporary implementations like , integration with zero-trust models emphasizes continuous peer identity validation after hole punching, using explicit handshakes during candidate exchange to verify consent and authenticity, thereby addressing residual risks in direct flows. Firewalls configured for endpoint-dependent filtering further bolster defenses by rejecting non-matching inbound traffic, aligning hole punching with standard security policies without introducing new vulnerabilities.

Practical Implementations and Use Cases

UDP hole punching has found widespread adoption in (P2P) file sharing protocols, particularly in variants, where it enables direct data transfer between peers behind NATs without relying on centralized trackers for all connections. In (VoIP) systems using SIP over UDP, hole punching facilitates low-latency audio streams by establishing direct media paths, reducing reliance on relay servers for real-time communication. Online gaming leverages UDP hole punching for low-latency multiplayer interactions, allowing players to exchange game state updates directly, which is critical for real-time responsiveness in fast-paced environments. Virtual private networks (VPNs) like , which operate over , can utilize UDP hole punching with additional endpoint discovery mechanisms to traverse NATs and establish secure tunnels, enhancing connectivity in scenarios. Practical implementations often integrate hole punching into libraries and protocols for seamless . Google's libjingle library, developed for , incorporates UDP hole punching as part of its connectivity stack to enable media exchange in browsers. A 2025 study on decentralized NAT traversal reports a hole-punching success rate of approximately 70%, with 97.6% of successful connections established on the first attempt. Historically, UDP hole punching gained prominence with early deployments like in 2003, which used it to enable direct audio calls behind firewalls, marking a shift from relay-based models. In modern contexts, it supports (as defined in 9000, 2021) for traversal, allowing UDP-based connections to punch through NATs for efficient web transport in scenarios. A notable case study is , standardized in 2011 and updated through ongoing W3C specifications as of 2025, where UDP hole punching enables plugin-free video and data channels in browsers, powering applications like video conferencing without mandatory server relays.

Complementary Protocols (, ICE, TURN)

Session Traversal Utilities for NAT (), defined in RFC 8489 (February 2020), is a lightweight client-server protocol that enables endpoints behind to discover their public addresses and port mappings. A client sends a Binding request to a server, which responds with the client's reflexive transport address using the XOR-MAPPED-ADDRESS attribute, allowing the client to learn how its traffic appears externally. This address discovery facilitates basic UDP hole punching by enabling peers to exchange their public endpoints via a rendezvous server and initiate simultaneous outbound packets to create NAT bindings for direct communication. However, alone lacks mechanisms for negotiating multiple connectivity options or handling failures, limiting it to simpler scenarios without candidate prioritization. Interactive Connectivity Establishment (ICE), specified in RFC 8445 (July 2018), extends by providing a comprehensive framework for in -based applications, such as media sessions. agents gather candidate addresses—including host, server-reflexive (via ), and relayed (via TURN)—and prioritize them based on likely success, starting with direct paths. It employs connectivity checks, where agents exchange candidate lists through a signaling channel and perform Binding requests to validate pairs, effectively punching holes in NATs by establishing bidirectional flows upon successful responses. These checks are paced to avoid overwhelming NATs, with a minimum interval of 5 milliseconds between transactions. nominates the highest-priority valid pair for media transmission, falling back to relays only if direct paths fail, thus standardizing hole punching while incorporating robustness. Traversal Using Relays around NAT (TURN), outlined in RFC 8656 (February 2020), serves as a reliable fallback when UDP hole punching via STUN or ICE cannot establish direct connectivity, particularly with symmetric NATs that map different ports for each destination. A client allocates a relayed transport address from a TURN server using an Allocate request, which the server provides for incoming and outgoing traffic relay. Peers then send data to this address, with the server forwarding it after permission checks, ensuring traversal even in restrictive environments. This relaying introduces trade-offs, including higher latency from the extra hop and increased bandwidth consumption at the server, as all traffic routes through it rather than directly between peers. TURN is typically invoked in ICE as a last-resort candidate, accounting for approximately 10-20% of WebRTC sessions globally where direct connections fail. In comparison, UDP hole punching represents the zero-relay ideal for efficient communication, while , , and TURN provide standardized enhancements: for basic discovery, for intelligent path selection and validation with high direct connection success in modern deployments, and TURN for universal fallback coverage. These protocols collectively address hole punching limitations by layering discovery, negotiation, and relaying, with integrating them to optimize for low-latency direct paths in the majority of cases.

References

  1. [1]
    [PDF] Peer-to-Peer Communication Across Network Address Translators
    This paper documents hole punching for both UDP and. TCP, and details the crucial aspects of both application and NAT behavior that make hole punching work.
  2. [2]
    RFC 5128 - Network Address Translators (NATs)
    RFC 5128 documents methods for P2P communication across NATs, including relaying, connection reversal, and hole punching for TCP and UDP.
  3. [3]
    RFC 8489 - Session Traversal Utilities for NAT (STUN)
    Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal.
  4. [4]
    [PDF] UDP NAT and Firewall Puncturing in the Wild.
    For UDP based protocols, the UDP hole-punching technique has been proposed to miti- gate this problem. This paper presents a study of the efficacy of UDP hole ...
  5. [5]
    RFC 1631: The IP Network Address Translator (NAT)
    The address reuse solution is to place Network Address Translators (NAT) at the borders of stub domains. Each NAT box has a table consisting of pairs of local ...
  6. [6]
    RFC 768 - User Datagram Protocol - IETF Datatracker
    This User Datagram Protocol (UDP) is defined to make available a datagram mode of packet-switched computer communication in the environment of an ...Missing: characteristics NAT
  7. [7]
    Peer-to-Peer Communication Across Network Address Translators
    This paper documents hole punching for both UDP and TCP, and details the crucial aspects of both application and NAT behavior that make hole punching work.Missing: seminal | Show results with:seminal
  8. [8]
    RFC 4787 - Network Address Translation (NAT) Behavioral ...
    This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP.Missing: explanations | Show results with:explanations
  9. [9]
    RFC 3489 - STUN - Simple Traversal of User Datagram Protocol ...
    STUN is a lightweight protocol that allows applications to discover the presence and types of NATs and firewalls between them and the public Internet.
  10. [10]
    RFC 4787: Network Address Translation (NAT) Behavioral ...
    This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP.
  11. [11]
    [PDF] NAT Traversal Techniques and UDP Keep-Alive Interval Optimization
    Hole Punching This technique involves creating mappings initially using a rendezvous server in order to learn the address of the other node. When using UDP, the ...
  12. [12]
    [PDF] Peer-to-Peer Communication Across Network Address Translators
    Peer-to-Peer Communication Across Network Address Translators. Bryan Ford. Massachusetts Institute of Technology baford@mit.edu. Pyda Srisuresh. Caymas Systems ...
  13. [13]
    [PDF] On the Applicability of Knowledge Based NAT-Traversal for Home ...
    Table 2 shows the success rates for UDP. While 93.67% of our 104 NATs supported UDP-Hole-Punching via STUN, the success rate of UPnP was only 38.46%.
  14. [14]
    [PDF] UDP NAT and Firewall Puncturing in the Wild - Hal-Inria
    Sep 29, 2017 · Our results show that UDP hole punching is an effective method to increase the connectability of peers on the Internet: approximately 64% of all.
  15. [15]
    [PDF] Mass Adoption of NATs: Survey and experiments on carrier-grade ...
    Nov 15, 2023 · hole-punching will be used interchangeably. ... This represents a 75% success rate of NAT penetration across the four different Dutch carriers ...Missing: distribution | Show results with:distribution
  16. [16]
    IPv6 Adoption - Google
    IPv6 Adoption ... The graph shows the percentage of users that access Google over IPv6. Native: 44.51% 6to4/Teredo: 0.00% Total IPv6: 44.51% | Oct 27, 2025.
  17. [17]
    RFC 5128: State of Peer-to-Peer (P2P) Communication across ...
    UDP Hole Punching UDP hole punching relies on the properties of EIM-NATs to allow appropriately designed peer-to-peer applications to "punch holes" through ...
  18. [18]
    [PDF] A Comprehensive Survey of Voice over IP Security Research
    In the case of. NAT traversal, endpoints may use protocols like STUN to enable communication. Alternatively, the Universal Plug-and-. Play (uPnP) protocol 2 may ...
  19. [19]
    RFC 8826: Security Considerations for WebRTC
    Verifying receiver consent requires some sort of explicit handshake, but conveniently we already need one in order to do NAT hole-punching. Interactive ...Missing: zero | Show results with:zero
  20. [20]
    bep_0055.rst_post - BitTorrent.org
    The holepunch extension provides a way to connect to peers that cannot receive inbound connections, whether they are behind a filtering NAT or a firewall that ...
  21. [21]
    RFC 5128 - State of Peer-to-Peer (P2P) Communication across ...
    Recent Work on NAT Traversal [P2P-NAT] has a detailed discussion on the UDP and TCP hole punching techniques for NAT traversal. [P2P-NAT] also lists ...Missing: seminal | Show results with:seminal
  22. [22]
    Peer NAT proxies for peer-to-peer games - ACM Digital Library
    obtained reports from volunteers with various. NAT boxes, and found that 82% supported UDP hole punching while 64% supported TCP hole punching [5]. At around ...
  23. [23]
    WireGuard Endpoint Discovery and NAT Traversal using DNS-SD
    May 20, 2020 · UDP hole punching exploits the fact that most NATs are lenient when matching inbound packets against existing “connections”. This allows us to ...
  24. [24]
    Large Scale Measurement Campaign on Decentralized NAT Traversal
    Oct 31, 2025 · We also find that successful hole punches occur on the first attempt in 97.6 % 97.6\% of cases, highlighting opportunities for protocol ...Missing: 2020s | Show results with:2020s
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
    RFC 8445 - Interactive Connectivity Establishment (ICE)
    This document describes a protocol for Network Address Translator (NAT) traversal for UDP-based communication. This protocol is called Interactive Connectivity ...
  30. [30]
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
  37. [37]
  38. [38]
    What may be the expected percentage of connections that will ...
    Sep 24, 2018 · Globally, around 20% of connections use TURN. For the US, the percentage is around 10%.WebRTC - How many STUN/TURN servers do I need to specify?ipv6 - Can we do away with TURN server for WebRTC sessions to ...More results from stackoverflow.comMissing: sessions | Show results with:sessions
  39. [39]
  40. [40]
    Use of TURN in WebRTC Revisited: It may be more useful than you ...
    Mar 23, 2023 · Statistics tell that roughly 20% of WebRTC traffic relies on TURN, thus public WebRTC services must be provisioned with a TURN service somehow.