TURN
TURNとは
- TURN(Traversal Using Relays around NAT)サーバーは、データを中継することで、企業ネットワークなど P2P 通信が利用できない特定のネットワーク環境での WebRTC 利用を可能にします。
TURNが利用されるケース
TURN サーバーは、下記のような P2P 通信が行えないケースで利用されます。
- NAT の内側から NAT の外側に通信する必要がある場合(UDP ホールパンチング対応の NAT(※)の場合は除く)
- プロキシの設定によりプロキシの内側からプロキシの外側への P2P 通信を遮断する場合
- UDP 通信が許可されていない場合
TURN サーバーの利用はクライアントが自動的に判断します。そのため、開発者やエンドユーザが特に意識することなく利用できます。
※ クライアントの設定により TURN サーバーを利用しない、もしくは利用を強制することが可能です。TURN サーバーの利用に関する設定については各プラットフォームのAPIリファレンスおよび認証・認可をご参照ください。
※ プロキシにて HTTPS 以外の TCP443通信を許容していない場合など、TURN 経由でも通信できない場合もあります。
※ 一般的な NAT の種別毎の UDP ホールパンチング対応状況は以下の通りです。
NATタイプ | フルコーン | 制限付きフルコーン | ポート制限付きフルコーン | シンメトリック |
---|---|---|---|---|
フルコーン | P2P | P2P | P2P | P2P |
制限付きフルコーン | P2P | P2P | P2P | TURN |
ポート制限付きフルコーン | P2P | P2P | P2P | TURN |
シンメトリック | P2P | TURN | TURN | TURN |