<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>NAT Traversal on Bitsy Wiki</title>
    <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/</link>
    <description>Recent content in NAT Traversal on Bitsy Wiki</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://wiki.bitsy.services/wiki/networking/nat-traversal/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>NAT Mapping and Filtering</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/mapping-and-filtering/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/mapping-and-filtering/</guid>
      <description>&lt;p&gt;A network address translation (NAT) device handles a flow of UDP packets according to two separate rules. The &lt;strong&gt;mapping&lt;/strong&gt; rule decides which public address and port the NAT assigns when an inside host sends a packet out. The &lt;strong&gt;filtering&lt;/strong&gt; rule decides which packets arriving at that public port are forwarded back in. RFC 4787 names three variants of each, and the variant a NAT implements decides which &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal&#34;&gt;NAT traversal&lt;/a&gt; techniques can get through it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>STUN</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/stun/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/stun/</guid>
      <description>&lt;p&gt;Session Traversal Utilities for NAT (STUN) is a request/response protocol whose central job is to tell a host what its own address looks like from the far side of a network address translation (NAT) device. The host sends a small UDP packet, a &lt;strong&gt;Binding request&lt;/strong&gt;, to a STUN server on the public internet. The server copies the source address and port the packet arrived from into its response. That address is the host&amp;rsquo;s &lt;strong&gt;server-reflexive address&lt;/strong&gt;: the public mapping that the outermost NAT created for the socket that sent the request.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hole Punching</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/hole-punching/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/hole-punching/</guid>
      <description>&lt;p&gt;Hole punching is a technique for opening a direct path between two hosts that are each behind a &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal&#34;&gt;network address translation (NAT)&lt;/a&gt; device. Each host sends packets to the other&amp;rsquo;s public address at about the same time. A filtering NAT forwards an inbound packet only if the host behind it has already sent to that sender, so each host&amp;rsquo;s outbound packet &amp;ldquo;punches a hole&amp;rdquo; in its own NAT&amp;rsquo;s filter. The other side&amp;rsquo;s packets then arrive through that hole. Nothing on the path is reconfigured. The hosts create, with ordinary outbound traffic, the NAT state that a reply would have found.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TURN</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/turn/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/turn/</guid>
      <description>&lt;p&gt;Traversal Using Relays around NAT (TURN) is a protocol in which a client asks a server on the public internet for a &lt;strong&gt;relayed transport address&lt;/strong&gt;, an IP address and port on the server itself, and the server forwards packets between that address and the client. A peer sends to the relayed address as if it were the client. The server wraps each packet and passes it down the client&amp;rsquo;s own connection to the server, and passes the client&amp;rsquo;s packets back out the same way. Both hosts only ever send &lt;em&gt;to&lt;/em&gt; the server, so the path works through any network address translation (NAT) device and any firewall that allows the client to reach the server at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ICE</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/ice/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/ice/</guid>
      <description>&lt;p&gt;Interactive Connectivity Establishment (ICE) is the procedure two hosts use to find a working network path between them when either may be behind a &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal&#34;&gt;network address translation (NAT)&lt;/a&gt; device. Each host, called an &lt;strong&gt;agent&lt;/strong&gt;, gathers every address at which it might be reachable, called its &lt;strong&gt;candidates&lt;/strong&gt;. The two agents exchange their candidate lists through a &lt;strong&gt;signalling channel&lt;/strong&gt;, a path both can already reach, usually the application&amp;rsquo;s own server. Each then pairs its own candidates with the other&amp;rsquo;s and tests every pair by sending &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal/stun&#34;&gt;STUN&lt;/a&gt; requests directly to the peer. STUN is a small request/response protocol whose reply reports the address the request arrived from. The highest-priority pair that succeeds in both directions carries the traffic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Without TURN</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/without-turn/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/without-turn/</guid>
      <description>&lt;p&gt;An application runs without TURN when it gives its &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal/ice&#34;&gt;ICE&lt;/a&gt; agent STUN servers but no &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal/turn&#34;&gt;TURN&lt;/a&gt; server, the relay that forwards packets between peers that cannot reach each other. ICE is the procedure that gathers each peer&amp;rsquo;s candidate addresses and tests every pairing. Without TURN it tests only direct paths, between three of its four kinds of candidate: &lt;em&gt;host&lt;/em&gt; candidates, the machine&amp;rsquo;s own addresses; &lt;em&gt;server-reflexive&lt;/em&gt; (&lt;code&gt;srflx&lt;/code&gt;) candidates, the public address a &lt;a href=&#34;https://wiki.bitsy.services/wiki/networking/nat-traversal/stun&#34;&gt;STUN&lt;/a&gt; server reports; and &lt;em&gt;peer-reflexive&lt;/em&gt; (&lt;code&gt;prflx&lt;/code&gt;) candidates, addresses discovered during the tests themselves. The fourth kind, &lt;em&gt;relayed&lt;/em&gt; (&lt;code&gt;relay&lt;/code&gt;), exists only when a TURN server is configured. For any pair of peers with no direct path between them, every test fails and the two never exchange a packet. There is no degraded mode, no slower path and no partial connection: the pair does not connect at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Port Mapping Protocols</title>
      <link>https://wiki.bitsy.services/wiki/networking/nat-traversal/port-mapping/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/networking/nat-traversal/port-mapping/</guid>
      <description>&lt;p&gt;A port mapping protocol lets a host ask the network address translation (NAT) device in front of it to create a mapping on request. The host names its own address and port, the NAT forwards a public port to it for a stated lifetime, and packets arriving at that public port are admitted whoever sends them. The request is a port forward that software makes, rather than one a person types into a router&amp;rsquo;s admin page. Three such protocols are deployed: Universal Plug and Play Internet Gateway Device (UPnP IGD), NAT Port Mapping Protocol (NAT-PMP), and Port Control Protocol (PCP). Stripped of detail, all three do the same exchange. The host says &amp;ldquo;forward a public port to this private address and port,&amp;rdquo; and the NAT answers with the public address and port it allocated.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
