STUN
STUN (Session Traversal Utilities for NATs) は、音声、映像、文章などの双方向リアルタイムIP通信を行うアプリケーションにおいて、NAT traversal(NAT通過)の方法の1つとして使われる標準化された (standards-based) 通信プロトコルである。STUNプロトコルは、アプリケーションがNATの存在と種類とを発見し、リモートホストへのUDP (User Datagram Protocol) 接続にNATが割り当てたグローバルIPアドレスとポート番号とを得ることを許す。STUNプロトコルが動作するには、インターネット上にSTUNサーバが存在する必要がある。STUNプロトコルは、RFC (Request for Comments) 8489に定められる。
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
概要
STUNは、軽量なクライアントサーバ型のプロトコルである。STUNクライアントは、例えばVoIP (Voice Over IP) 電話やインスタントメッセージクライアントなどのアプリケーションが有するプロトコルライブラリに含まれる。STUNクライアントは、NATによるIPマスカレードが行われるローカルネットワーク内で動作する。STUNを使用するホスト間で通信を行い始める際に、STUNクライアントはインターネット上のSTUNサーバにリクエストを送る。STUNサーバは、双方のSTUNクライアントのそれぞれのリクエストに対し、他方のパブリックIPアドレスとポート番号とを返す。数種類のリクエストの結果から、クライアントアプリケーションはNATのポート接合の有効時間を含む、NATの操作法を学ぶことができる。
NATデバイスは、アドレス及びポートマッピングの方式が異なるいくつかの種類で実装される。STUNは、全種類のNATで正常に機能するわけではない。STUNは、NATの主な4種類のうちフルコーン、制限コーン、ポート制限コーンの3種類で機能する。双方向性NATとも呼ばれ、企業などのネットワークで使われることの多い対称形NATではSTUNは機能しない。制限コーンまたはポート制限コーンの場合は、クライアントがエンドポイントにパケットを送らなければ、NATはエンドポイントからクライアントへのパケットを通すことを許可しない。対称型のNATでは、STUNサーバのIPアドレスはエンドポイントのIPアドレスとは異なるので、STUNサーバへのNATマッピングはエンドポイントへのものとは異なる。対称型NATではTURNがベターな解決方法となる。
STUNサーバは、通常3478番ポートでリクエストを待ち受ける。
クライアントが通信相手の外部アドレスを見つけたならば、その相手との接続が可能となる。NATがフルコーンならばどちら側からも通信を始められ、NATが制限コーンまたはポート制限コーンならば双方が同時に通信を始めなければならない。
STUNは、NATの後ろにあるホストがUDP接続を行う際に使用される。例えばRTPやSIPなどのプロトコルが、音声、映像、文章などのシグナリングトラフィックを転送する際にUDPパケットを用いる。
想定されうるアプリケーションの使用状況において、双方のエンドポイントが共にNATの後ろにあることは一般的である。このような二重のNAT問題の解決はSTUNを用いても容易でなく、通常はアプリケーションプロキシサーバが必要とされる。
アルゴリズム
STUNはNATゲートウェイとファイアウォールとの存在を発見するために、RFC 3489から構成される下図のアルゴリズムを使用する。
図を通る経路が赤い箱で終わる所ではUDP通信は可能でない。経路が黄色であるか緑の箱で終わる所で、UDP通信は可能である。
RFC 3489に従ったSTUNの後継技術
RFC 3489の方法は、プロダクションネットワークで遭遇するNATの実装形態の多様性とアプリケーションシナリオに対処するにはあまりに頼りにならないとわかった。2008年10月にそれに代わる新たな方法RFC5389が策定された。
2020年2月のRFC8489の策定により、RFC5389は現在廃止されている。
関連項目
- ネットワークアドレス変換 (NAT)
- NAT traversal
- Interactive Connectivity Establishment (ICE)
- Traversal Using Relay around NAT (TURN)
- UDPホールパンチング
外部リンク
- RFC 5389, Session Traversal Utilities for NAT (STUN)
- (廃止)RFC 3489, STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)
- NAT traversal White Paper comparing STUN with other NAT traversal techniques such as TURN, ICE, ALGs and Session Border Controllers - Source: Newport Networks
- STUNT - "STUN and TCP too", which extends STUN to include TCP functionality
- Yahoo! - Director of Engineering explaining STUN and TURN (Video)
- stunserver.org an open and freely-available STUN server.
実装
- STUN Client and Server library
- JSTUN - A Java STUN implementation
- Java STUN library "stun4j"
- Numb is a free STUN/TURN server.
「Simple traversal of UDP over NATs」の例文・使い方・用例・文例
- Microsoftがβ版をランチするのは「NetShow streaming server」で動画や音声をオンデマンドで提供する。
- 《主に米国で用いられる》 = 《主に英国で用いられる》 an admiral of the fleet 海軍元帥.
- 篏入的 r 音 《英音の India office /ndiərfɪs/の /r/の音》.
- =《口語》 These kind of stamps are rare. この種の[こういう]切手は珍しい.
- (英国の)運輸省. the Ministry of Education(, Science and Culture) (日本の)文部省.
- は of の誤植です.
- を off と誤植する.
- あいまい母音 《about, sofa などの /ə/》.
- 副詞的小詞 《on, in, out, over, off など》.
- 迂言的属格 《語尾変化によらず前置詞によって示す属格; たとえば Caesar's の代わりの of Caesar など》.
- çon of garlic [humor]. それにはガーリック[ユーモア]がちょっぴり必要だ.
- 《主に米国で用いられる》 = 《主に英国で用いられる》 the Speaker of the House of Commons 下院議長.
- 《主に米国で用いられる》 = 《主に英国で用いられる》 the Committee of Ways and Means 歳入委員会.
- 初めて読んだ英文小説は“The Vicar of Wakefield”
- (違法罪―a sin of commission―に対する)怠惰罪
- 『each』、『every』、『either』、『neither』、『none』が分配的、つまり集団の中の1つのものを指すのに対し、『which of the men』の『which』は分離的である
- 『hot off the press(最新情報)』は『hot(最新の)』の拡張感覚を示している
- 『Each made a list of the books that had influenced him』における制限節は、リストに載った本を制限節で定義された特定の本だけに制限する
- 臨床的鬱病を治療するのに用いられる三環系抗鬱薬(商品名ImavateとTofranil)
- 『sunshine-roof』は『sunroof(サンルーフ)』に対する英国の用語である
- Simple traversal of UDP over NATsのページへのリンク