NATによるアドレス変換
・基本概念整理
インターネットにはCPの住所としてのIPアドレスが存在する。
IPアドレスを宛先としてCP同士は通信し合うことができる。
しかし、INで広く通用するグローバルアドレスではなく、限られた範囲内の
プライベートアドレスが割り当てられることがある。
その割当は、プロバイダ、自宅等のルータによって行われる。
このプライベートIPアドレスではINにアクセスすることはできないので、
アクセスする際にルーターによって、プライベートとグローバルと相互変換される。
・NATによるアドレス変換
上記の変換がNATと呼ばれる。
グローバルIPアドレスとプライベートIPアドレスの変換は変更されることもあり、
さらに以前に送信を行ったCPからしか通信を受け取らない制限がある場合もある。
これでは、ゲームに参加するCP同士を接続することはできない。
UnityにはマスターサーバとNATファシリテータと呼ばれる2つのサーバを使用して、
プライベートなCPと接続できるようにする、NATパンチスルーと呼ばれる機能がある
・NAT
Full cone NAT
Address-Restricted cone NAT
Port-Restricted cone NAT
Symmetric NAT
のTypeがあり、ゲームに参加しているCPのNATの組み合わせがPort-Restricted cone NAT、Symmetric NATの組み合わせ、およびSymmetric NAT同士の組み合わせでは、
NATパンチスルーは行えない。
マスターサーバとNATファシリテータはテスト用にUnity社に設置されており、
初期設定ではこのUnity社のマスターサーバに接続される。