2009年06月21日の日記

<<  2009年06月 >>
 123456
78910111213
14151617181920
21222324252627
282930    

2009年06月30日(火)
仕事は古都にあり
2009年06月28日(日)
本日のDDR 今日もダブル
2009年06月27日(土)
【日本国民】日本ユ偽フから来ました【全員犯罪者】
2009年06月26日(金)
ドラえもんスペシャルに
マイケルジャクソンズ ムーンウォーカー
2009年06月23日(火)
6月のDLCキターーー!!!
2009年06月21日(日)
UDPでNAT越え 備忘録
2009年06月20日(土)
邪魔カラ
2009年06月19日(金)
本日のDDR DP鬼鯖とか
2009年06月16日(火)
DDR 松葉杖プレイ
2009年06月15日(月)
健康診断
2009年06月14日(日)
4人目のプリキュア
2009年06月13日(土)
ターミネーター4
本日のDDR タイトーステーション難波
2009年06月09日(火)
今月のやよいたんはとっても甘くてキュート!!!
2009年06月07日(日)
Comic Communication 13 開催
2009年06月05日(金)
本日のDDR in 245北京 ゲームアトム
滋賀行き 5日目 最終日
2009年06月04日(木)
滋賀行き 4日目 仕事のやり方&あなたならどうする?
2009年06月03日(水)
滋賀行き 3日目 番外編突入
2009年06月02日(火)
滋賀行き 2日目 追加コーディング&完成宣言
2009年06月01日(月)
滋賀行き 1日目 化石マシン&エコエコ詐欺

UDPでNAT越え 備忘録
最近は同人ゲームでもネット対戦を備えていることが多くなってきました。
対応ゲームはこれからどんどん増えていくことでしょう。
しかし、ほとんどの接続ユーザーがルータ越しに繋いでいる昨今ではNAT越えというとても大きな壁があります。
他の人たちはこれをどうやってクリアしているのか?
ちょっと気になったので、当サークルでもそのうちネット対応した場合に備えて調べてみました。

いくつかのゲームの体験版を落として説明書を読んでみたところ、大抵のゲームはホスト側がポートを空けておけばゲストは基本的には何も設定はいらないようです。
ゲストがホストに接続に行った時点で ホスト⇔ゲスト 間の情報がルータにマッピングされるので、UDPの双方向通信が成り立つわけです。
もっとも実装がお手軽、かつ確実な方法ですね。
ただし、ホストになる人は少しだけですがポートの設定などのネットワークの知識が必要になります。

では、ポート開放の煩わしさを避けて接続するにはどうすればいいか?
UDPの特性を利用したもののひとつにUDPホールパンチングという技があります。
Skypeが採用しているということでも有名ですね。

参考記事 : Skypeの高い接続性の秘密

これならコーン型NATであれば外部にSTUN鯖さえ用意しておけば大体は繋がりそうです。
そのSTUN鯖を用意するってのが大変なんですけどね・・・
httpとかを駆使してやるのも可能っちゃ可能ですが。
実装もテストも大変そうです(´・ω・`)

しかし、この手法では「シンメトリックNAT ⇔ シンメトリックNAT」または「ポート制限コーンNAT ⇔ シンメトリックNAT」の通信はかなり絶望的です。
さらに困難なことに、相手がどんな特性のNATかを詳しく調査するには鯖側にグローバルIPが最低3つぐらいは必要です。

天下のマイクロソフトでさえ、この組み合わせの通信は困難としています。
個人ではポート制限ありかどうかぐらいの判定が関の山でしょうねぇ・・・
最後の手段としてどっかのノードにトンネルさせるってのがありますが、個人でそこまで負担する人は普通いないでしょう。

参考記事 : Xbox 360 LIVE サポート情報 - 回線/接続機器動作確認リスト
参考記事 : Xbox Liveの接続診断について

一応、XBOXで繋がらない組み合わせでも通信できるという「NAT Traversal SDK」というものがあるみたいですが、個人が同人で使えるようなシロモノじゃないんだろうなぁ・・・

参考記事 : NATを越えて”接続するP2Pアプリ用モジュール「NAT Traversal SDK」

ある程度妥協して、「繋がらないルータを使っている人はポートを開けてください。」レベルまでいければ個人では及第点といえるでしょう。
これでも1対1の対戦モノとかであれば話はまだ簡単です。
これが複数人でプレイするゲームとなった日には・・・
俺の脳みそがオーバーフロウ!!!

てか複数人のゲームってどうやってテストするんだ?
ひとりで全部操作するのか?
あひーん。
2009年06月21日(日)   No.2502 (PC)

No. PASS
 OR AND
スペースで区切って複数指定可能

Admin TOP
shiromuku(fs4)DIARY version 3.44


当サイトへのリンクはフリーです。当サーバ内の文章及び画像の無断転載はご遠慮ください。
mna.netのロゴはMMQ氏に作成して頂きました。