Collaboration 第10回 「STUNを使えない場合はどうすればいいの? TURNのご紹介」

前回はビデオ会議システムで実装可能なNATトラバーサル機能であるSTUNを説明させていただきました。STUNはNATルータがUDPパケットの戻りを受信するために通信を一時的に許可する特性を利用します。UDPホールパンチングとも呼びます。STUNは大変便利な機能ですがいくつか欠点があります。

・TCPでは利用できない
UDPと異なりTCPではより厳格な3ウェイハンドシェイクが必要となるため、UDPパンチングホールのような機能は利用できません。

・NATルータのNAT方式によっては利用できない
UDPホールパンチングは送信元ポート番号を利用してNATルータに対向からの通信を受けられる穴(ホール)をあけます。NATルータが送信元ポート番号をランダムに変えてしまうとUDPホールパンチングが機能しません。


それではどのようにしてこういった環境でNATトラバーサルを実行するのでしょうか?そこで登場するのがTURNという技術です。

TURNは、Traversal Using Relay around NATの略称でSTUNと同じくNATトラバーサル技術です。STUNと大きく違うのは、TURNサーバは通信をリレーするためクライアント間の通信もすべてTURNサーバを経由する必要があることです。STUNで利用するUDPホールパンチングはNATルータの送信元ポート番号の変換方法によっては利用できませんが、TURNでは通常のクライアント~サーバ通信と全く変わりがないため、NATルータの実装方法に関係なく通信を確立することが可能です。TCPも利用可能ですし、TURNサーバにおいてTCPとUDPを相互変換(TCP→UDP、UDP→TCP)するといった柔軟な構成が可能です。

この記事はiDATEN(韋駄天)会員限定です。ログインしていただくと続きをお読みいただけます。

カタログDL等、iDATEN(韋駄天)ログインが必要なコンテンツがございます。
必要に応じて、ログインしてご利用ください。
iDATEN(韋駄天)のご利用に関してご不明点があるお客様は こちら をお読みください。

Ciscoの記事