差分

ナビゲーションに移動 検索に移動

Session Traversal Utilities for NAT (STUN)

2,323 バイト追加, 2023年10月17日 (火) 02:29
ページの作成:「Session Traversal Utilities for NAT (STUN)とは、NATトラバーサルを扱う上で、他のプロトコルのツールの役割を果たすプロトコルです。…」
Session Traversal Utilities for NAT (STUN)とは、NATトラバーサルを扱う上で、他のプロトコルのツールの役割を果たすプロトコルです。

STUNはエンドポイントがNATによって割り当てられたIPアドレスとポートを決定するために使用することができます。
また、2つのエンドポイント間の接続性をチェックしたり、NATバインディングを維持するためのキープアライブ・プロトコルとしても使用できます。
STUNは、既存の多くのNATで動作し、NATに特別な動作を要求することはありません。

== 概要 ==
STUNは別々のNAT(ルーター)の内側にいる端末同士で通信する方法として考案されたものです。

2000年頃のサーバーが貧弱だったころのオンラインゲームで人気になりました。
2000年ごろのオンラインゲームではゲーム会社の予算の関係で、
ゲーム会社が用意するロビーサーバーで人集めをし、
ゲームが開始するとロビーに集まった誰か1人のPCがサーバー(兼クライアント)になり、他のメンバーはそこに接続する方式が主流でした。
いわゆるWinMXやWinnyなどのファイル共有ソフトと類似した技術です。

ここで問題になったのが「サーバーになるPCのルーターのポート開放」でした。
ファイル共有ソフトと同じですね。

この問題を解決する方法として人気になったのがTCPの特性を利用したSTUNでした。

# ゲームサーバーになる人がSTUNクライアントとしてSTUNサーバーに接続する
#* この際にTCP接続ではルーターはサーバーからの応答を受信するために一時的にポートを開放しサーバーに通知している。
# STUNサーバーはSTUNクライアントにルーターが一時的に開放したIPアドレスとポート番号を返す。
#* これによりSTUNクライアントは自分自身のIPアドレスとポート番号を知ることができる
# STUNクライアントは自分自身のIPアドレスとポート番号でゲームサーバーを起動する
#* めでたし,めでたし

== 外部リンク ==
* https://datatracker.ietf.org/doc/html/rfc8489

案内メニュー