TURNサーバは、P2P通信が行えない状況下で利用されます。利用する/しないは自動的に判断するため、開発者やエンドユーザが特に意識することなく利用できます。
※アプリケーションでTURNサーバの利用を強制することは可能です。TURN強制については下記ドキュメントを参照してください。
https://webrtc.ecl.ntt.com/api-reference/javascript.html#sample
P2Pで通信するか、TURNサーバ経由で通信するかは、接続の度に、いくつかの経路での通信を試行した上で決まります。P2Pで通信できる環境であれば、P2P通信が優先されますが、必ずしも毎回同じ通信経路が選択されるとは限りません。
TURNサーバを使う場合(例)
- NATの内側からNATの外側に通信する必要がある場合(UDPホールパンチング対応のNAT(※)の場合は除く)
- プロキシの内側からプロキシの外側に通信をする場合
- UDP通信が許可されていない場合
上記の場合にはTURNサーバ経由での通信を試みます。ただし、プロキシにてHTTPS以外のTCP443通信を許容していない場合など、TURN経由でも通信できない場合もございます。
※一般的なNATの種別毎のUDPホールパンチング対応状況は以下の通りです。
NATタイプ | フルコーン | 制限付きフルコーン | ポート制限付きフルコーン | シンメトリック |
---|---|---|---|---|
フルコーン | P2P | P2P | P2P | P2P |
制限付きフルコーン | P2P | P2P | P2P | TURN |
ポート制限付きフルコーン | P2P | P2P | P2P | TURN |
シンメトリック | P2P | TURN | TURN | TURN |
TURNサーバを利用するプロトコルやポート番号については、下記FAQをご参照ください。
FAQ: SkyWayの通信要件について
コメント
0件のコメント
記事コメントは受け付けていません。