NAT越えについてメモ
switch
の通信対戦なんかでNAT越えの問題がよくあるみたいですが、ここら辺なんでダメなのかよくわかっていなかったのでメモ。
local
<->grobal
のIP
を変換するのがNAT
local
側に複数端末を割り当てるときは一つのgrobal ip
では外側からの通信をどの端末に届けていいかわからないので、ポート番号も組み合わせる。これがNAPT
- 割り当てはルータの
NAT
テーブルに定義。これのフィルタリングがフルコーン(すべてok)・過去にlocalから通信した外部の端末のIP
ならok・過去にlocalから通信した外部の端末のIP
とポートならok・シンメトリック型(LAN
,WAN
のポートとIP
で一組)の4つの形式がある - 普通のクライアントサーバ型のオンラインゲームなんかだと
NAT
越えは比較的簡単 - というのも
local
側から外に向かって通信しているので、その段階でNAT
テーブルが定義されているから - なんで
switch
とかでNAT
を超えられないのかというと、P2P
通信だから、お互いに外側からどこに向けて通信すればいいのかわからない。 - これを解決するために
STUN
サーバのような外側から自分がどう見えているかを通知するやり方がある。