Traversal Using Relay NAT (TURN) este un protocol care permite unei gazde din spatele unui NAT sau firewall să primească date primite prin conexiuni TCP sau UDP . Această capacitate este relevantă în special pentru gazdele din spatele NAT-urilor simetrice, sau firewall-urile, care sunt pe cale să găzduiască o conexiune la un anumit peer.
TURN nu este conceput pentru a redirecționa porturile de server prin NAT, acceptă conexiuni punct la punct între nodurile situate în spatele NAT (ca în telefonia IP ).
În acest sens, păstrează caracteristicile de securitate oferite de NAT simetric și firewall -uri , dar modifică tabelele de traducere, astfel încât o gazdă din interior să devină capătul de primire al conexiunii.
Protocolul TURN este descris în RFC 5766 , iar o actualizare a TURN pentru a suporta IPv6 este descrisă în RFC 6156 . Schema URI pentru TURN este documentată în RFC 7065 .
NAT, deși are multe avantaje, are și multe dezavantaje. Cea mai semnificativă dintre acestea este perturbarea multor aplicații de rețea existente și dificultatea de a dezvolta altele noi. Au fost dezvoltate linii directoare care descriu modul de proiectare a protocoalelor prietenoase NAT, dar multe protocoale pur și simplu nu pot fi construite conform acestor linii directoare. Exemple de astfel de protocoale sunt aplicațiile multimedia și partajarea fișierelor.
Session Traversal Utilities pentru NAT ( STUN ) oferă o modalitate de a traversa NAT. STUN permite clientului să obțină o adresă de transport (adresă IP și port), care poate fi utilă pentru primirea pachetelor de la egali. Cu toate acestea, adresele obținute prin STUN nu pot fi accesate de toți colegii. Aceste adrese funcționează în funcție de topologia rețelei. Prin urmare, STUN în sine nu poate oferi o soluție cuprinzătoare de traversare NAT.
Soluția completă necesită un mijloc prin care clientul să poată obține o adresă de transport la care să primească flux de date de la orice peer care poate trimite pachete de date către Internetul public. Acest lucru poate fi realizat doar prin transmiterea datelor printr-un server situat pe internetul public. Această specificație descrie Traversal Using Relay NAT (TURN), un protocol care permite unui client să obțină adrese IP și porturi de la astfel de colegi.
În timp ce TURN va oferi aproape întotdeauna o conexiune cu clientul, pune o mare presiune pe furnizorul de server TURN. Prin urmare, se recomandă utilizarea TURN numai ca ultimă soluție, preferând alte mecanisme (cum ar fi STUN sau conexiune directă) atunci când este posibil. Pentru a realiza acest lucru, metodologia ICE (Interactive Connectivity Establishment) poate fi utilizată pentru a găsi mijloacele optime de comunicare.