INTEGRITY Dokumentace

Co je TURN?

Co je TURN?

TURN (Traversal Using Relays around NAT) je protokol, který pomáhá procházet překladači síťových adres (NAT) nebo firewally a usnadňuje tak komunikaci peer-to-peer. Jedná se o rozšíření protokolu STUN (Session Traversal Utilities for NAT) definované v RFC 8656.

Jak mohu použít TURN?

Stejně jako k použití protokolu HTTP potřebujete webový prohlížeč nebo cURL, potřebujete k použití protokolu TURN ve své aplikaci nějaký nástroj nebo knihovnu.

Většina uživatelů TURN jej používá jako součást knihovny WebRTC, například té ve svém prohlížeči, nebo jako součást Pion, webrtc-rs nebo libwebrtc.

TURN můžete ve své aplikaci použít i přímo. Pion nabízí TURN klientskou knihovnu v Golangu, stejně jako webrtc-rs v jazyce Rust.

Klíčové koncepty pro pochopení TURN

  1. NAT (Network Address Translation): Metoda, kterou routery mapují více privátních IP adres na jednu veřejnou IP adresu. Běžně to dělají domácí internetové routery, aby si více počítačů ve stejné síti mohlo sdílet jedinou veřejnou IP adresu.

  2. TURN server: Relay server, který funguje jako prostředník provozu mezi klienty za NAT. Příkladem TURN serveru je služba Cloudflare Realtime TURN.

  3. TURN klient: Aplikace nebo zařízení, které pro komunikaci přes TURN server používá protokol TURN. Jde o vaši aplikaci. Může to být webová aplikace využívající WebRTC API, nebo nativní aplikace běžící na mobilu či desktopu.

  4. Alokace: Když TURN server vytvoří alokaci, rezervuje pro daného klienta unikátní IP adresu a port.

  5. Relayed Transport Address: IP adresa a port rezervované na serveru TURN, které mohou ostatní uživatelé internetu použít k odesílání dat klientovi TURN.

Jak funguje TURN

  1. TURN klient odešle TURN serveru požadavek Allocate.
  2. Server TURN vytvoří přidělení a vrátí klientovi přesměrovanou transportní adresu.
  3. Klient pak může tuto přesměrovanou adresu poskytnout svým protějškům.
  4. Když peer odešle data na přeposílanou adresu, TURN server je přepošle klientovi.
  5. Když chce klient odeslat data peerovi, odešle je přes TURN server, který je poté přepošle danému peerovi.

TURN oproti VPN

TURN funguje podobně jako VPN (Virtual Private Network). Servery TURN a VPN ale slouží odlišným účelům a fungují jiným způsobem.

VPN je univerzální nástroj, který šifruje veškerý internetový provoz ze zařízení a směruje jej přes VPN server, čímž zvyšuje soukromí, bezpečnost a anonymitu. Funguje na síťové vrstvě, ovlivňuje veškerou internetovou aktivitu a často se používá k obcházení geografických omezení nebo k zabezpečení připojení ve veřejných Wi-Fi sítích.

TURN server je specializovaný nástroj, který využívají konkrétní aplikace, zejména pro komunikaci v reálném čase. Funguje na aplikační vrstvě, takže ovlivňuje pouze provoz aplikací, které jej používají, a slouží jako relay pro průchod přes NAT a firewally tam, kde přímé spojení mezi peery není možné. Zatímco VPN ovlivňuje rychlost celého internetového připojení a poskytuje anonymitu, TURN server ovlivňuje pouze výkon konkrétních aplikací, které jej využívají.

K čemu je TURN užitečný?

TURN je často užitečný ve scénářích, kdy přímá komunikace peer-to-peer není možná kvůli omezením NAT nebo firewallu. Zde jsou některé klíčové výhody:

  1. NAT Traversal: TURN umožňuje navázat připojení mezi peery, kteří se oba nacházejí za NAT, což by jinak bylo obtížné nebo nemožné.

  2. Obcházení firewallu: V prostředích s přísnými pravidly firewallu může TURN umožnit komunikaci, která by jinak byla blokována.

  3. Konzistentní konektivita: TURN nabízí spolehlivou záložní metodu pro případ, že přímé nebo NAT asistované připojení selže.

  4. Soukromí: Předáváním provozu přes TURN server lze skutečné IP adresy komunikujících stran vzájemně skrýt.

  5. VoIP a videokonference: TURN je klíčový pro aplikace, jako je Voice over IP (VoIP) a videokonference, protože zajišťuje spolehlivé připojení bez ohledu na konfiguraci sítě.

  6. Online hry: TURN pomáhá online hrám navazovat peer-to-peer připojení mezi hráči za různými typy NAT.

  7. Komunikace IoT zařízení: Zařízení internetu věcí (IoT) mohou ke komunikaci využívat TURN, pokud se nacházejí za NAT nebo firewallem.