プログラム研究 備忘録

java,C#,Unity等の備忘録です。経済理論も少し。

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社のマスターサーバに接続される。