「Session Traversal Utilities for NAT (STUN)」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「Session Traversal Utilities for NAT (STUN)とは、NATトラバーサルを扱う上で、他のプロトコルのツールの役割を果たすプロトコルです。…」) |
Administrator (トーク | 投稿記録) |
||
24行目: | 24行目: | ||
#* これによりSTUNクライアントは自分自身のIPアドレスとポート番号を知ることができる | #* これによりSTUNクライアントは自分自身のIPアドレスとポート番号を知ることができる | ||
# STUNクライアントは自分自身のIPアドレスとポート番号でゲームサーバーを起動する | # STUNクライアントは自分自身のIPアドレスとポート番号でゲームサーバーを起動する | ||
− | #* | + | # TCPセッション中でTCPは使えないのでTCPセッション中にUDPのパケットを流すことで通信する |
+ | #* UDPでは不便なのでUDPでTCP風の通信をする「SCTP」などが考案された。 | ||
== 外部リンク == | == 外部リンク == | ||
* https://datatracker.ietf.org/doc/html/rfc8489 | * https://datatracker.ietf.org/doc/html/rfc8489 |
2023年10月17日 (火) 02:35時点における版
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アドレスとポート番号でゲームサーバーを起動する
- TCPセッション中でTCPは使えないのでTCPセッション中にUDPのパケットを流すことで通信する
- UDPでは不便なのでUDPでTCP風の通信をする「SCTP」などが考案された。