昨年7月から gumonji ユーザーの方々に協力をあおぎながら、ルーター調査を行ってきました。これまで3000人近くの方に使用しているルーターの情報を送信していただいています。本当にありがとうございます。

多数のデータから統計を出す性質の調査なので、ある程度の結果が出るには時間がかかったのですが、ここで経過報告をおこないたいと思います。

目次

  1. 調査の内容
  2. 結果
  3. 成果

調査の内容

まず、昨年6月の記事「ルーター調査協力のお願い 」から、技術的内容の説明を引用します。

ルーターは、LAN(Local Area Network)内のマシンとインターネットの向こう側のサーバーの通信を中継するための機械です。

LAN内のマシンが複数ある場合には、NAT(Network Address Translation)という技術をつかって、一つのIPアドレスを共有するようにしています。この時、マシンで使われるポートとルーターで使われるポートとが違う場合があり、その変換方式にもルーターによって違いがあります。

NAT技術によって、一つのIPアドレスだけで複数のマシンをインターネットにつなげることができるという利点があるのですが、使われるポートの違いなどの理由で、ルーターを介してマシン同士が直接通信をすることが難しいという問題があります。たとえば、gumonji のゾーンサーバーを立ち上げているマシンに、3Dブラウザーで接続する場合がこれにあたります。

実際に世の中で使われているルーターではポートの変換方式はどのようになっているのか、半年に渡って調査してきたことになります。

結果

2006年7月12日調査開始以来、現在までの結果を集計した表です。

ポート変換方式の分類 割合 %
NAT機能を使っていない 328/2855 11%
ポート変換されていない 1934/2855 67%
ポートが変換されている 411/2855 14%
ポートが少し違う 181/2855 6%

「NAT機能を使っていない」「ポート変換されていない」を合わせると約80%になり、 多くのマシンはとくに努力せずともお互いに直接通信させることが可能だとわかります。 「ポートが少し違う」だけの6%については簡単なポート変換予測をすることで接続が可能になりますが、「ポートが変換されている」14%のマシンとの通信については変換アルゴリズムの研究が必要です。

成果

昨年11月、試験的導入というかたちでボイスチャットを gumonji に実装しました。唐突な導入となってしまいましたが、背景にはこのルーター調査の結果があります。

ボイスチャットでは各3Dブラウザからの音声データを途切れることなく 周囲のキャラクターに送信する必要があり、ネットワークに負荷がかかります。 これを軽減するために、gumonji のボイスチャットはp2pネットワークを構成するエンジンを元にその機能がつくられています。このエンジンを設計する際にルーター調査の統計結果がとても役に立ちました。

ボイスチャットのエンジンは今後も研究開発を進め、 コミュニティーエンジンのネットワークミドルウェアの一つとして 成長していく予定です。

gumonji ユーザーのみなさまには、お礼の意を込めて、 また早い段階からテスターとして問題点の指摘をいただきたく 試験実装というかたちでリリースすることにしました。

今後もコミュニティーエンジンの技術を先行提供などのかたちで みなさまに体験していただく予定です。また、ルーター調査については 継続に価値があると思いますので、引き続きおこなうことにしています。 これからも一緒におもしろいものを作り、遊んでいくことができれば幸いです。


※開発ブログ用のスタイルシートを更新しました。ウェブブラウザのキャッシュが残っている場合、枠線が表示されず結果の集計表が少し見にくいかもしれません。 ページのキャッシュを削除して、ページの更新をおこなってみてください。

Internet Explorer や Firefox では、「Ctrl+F5」「Ctrl+Shift+R」などで最新のページに更新することができます。