PSO での UDP 設定について

PSO Ver.2 ではUDPのON/OFFの設定ができます。ソニックチームではUDPをONにする設定を推奨していますが、ONにするとキャラが動かないなどのトラブルが起きることがあり、ネットワークのことがよくわからない人はOFFにしておくのが無難なようです。

稚拙ではありますがPSOでのUDP設定についてちょっと解説してみましょう

PSOオフィシャルページの【ブロードバンドアダプターをご利用されている 方へのお願い】http://pso.dricas.ne.jp/osirase_3.html#bba

UDPって何?

ユーザデータグラムプトコル(User Datagram Protocol)を略してUDPといいます。UDPはインターネットでの通信手続きの一種です。同種のものにTCPというものもあります。

TCPとUDP

技術的な話に興味がない人は次へGo!

一般的にはTCPのほうがよく使われてます。WWWやE-メールはTCPを使っています。そしてPSOでも主にTCPを使っています。

UDPに対してTCPは「信頼性のある配送サービス」という呼び方をします。TCPではネットで配送したデータが完全な形で相手に届くことを保証しています。ですから、TCPはE-メールのように文章の途中が欠落したりしては困るものを配送するのに適しているのです。

(信頼性のない)UDPでは、配送したデータの一部が相手に届かなかったり、データの届く順番が前後してしまうことがあります。つまりUDPはソフトウェアにとっては不便なのです。

では、なぜUDPをわざわざ使うのでしょうか?それは、UDPの方がネットワークやコンピュータに掛かる負担が軽いからなのです。TCPはデータを完全に受け取るために、データを受けたら確認応答を返し、データの配送失敗を発見すると自動的に再転送するようになっています。ネットワークでは配送データが増えるほどデータの欠落が発生しやすくなります。ところが、TCPでは[データの欠落増加→データ再転送の増加→ネットを流れるデータ増加→さらにデータ欠落の増加]という悪循環が発生しやすいのです。

以上のようにネットの負荷が高いとTCPでは問題が起きやすいので、少しぐらいデータ欠落が起きてもいい場合はUDPを使ったほうがいいのです。では、データ欠落が起きてもいい場合とはどのような時でしょうか?例えば、電話です。TCPではネットを流れて来るデータが完全に揃うまで相手に声が聞こえません。声が届くのに時間がかかると会話が難しくなってしまいます。だから、少し音が消えることになってもリアルタイムに新しい音を伝達できるUDPの方が電話には適しているのです。

PSOでのUDP

PSOではキャラの位置はあまり重要ではありません。ですので、キャラの移動情報はUDPで送っています(UDP設定がONの場合)。キャラが時々ワープするのはそこの部分でデータの欠落が起きているからです。

lag

チャットの会話とか、アイテムを置く・拾うといった情報は重要ですのでTCPが使われています

ASCII24のソニチへのインタビュー http://akiba.ascii24.com/akiba/game/interview/2002/02/24/633792-000.html

UDP設定がOFFでもキャラがワープする現象は起きます。確証は無いのですが、サーバで移動データ転送の優先度を低くしているのではないかと推測しています。

UDPが推奨される理由

PSOでUDPが推奨されるのは、上に書いたようにUDPがTCPに比べてネットワークへの負担が軽いという事の他にもう一つ理由があります。一緒のTEAMでプレイする人全員のUDP設定がONの場合、ソニチのサーバを介さずに直接Dreamcast同士で通信するようになるため、サーバの負担が非常に軽くなるのです。
(おそらく、UDPかTCPかの問題より、サーバを介する通信が減ることのほうが重要でしょう。)

UDP on PSO

PSO最盛期はプレイヤーの数が増えただけではなく、BbAを使用するプレイヤーの比率も増えたため、サーバがパンク状態でした。信頼できるTCPといえども、必ずデータが転送されるわけではなく、ネットが混雑するほどエラーになる確率は高くなります。そのため、`ラグ'と呼ばれるキャラがワープしたりチャットの吹き出しの表示が遅くなる現象が発生し、ついにはサーバとの接続が切れてしまうことが頻発しました。ですから、ソニチとしてはサーバの負担を軽くするためにUDP設定をONにすることを推奨しているようです。

PPPoEを使用するフレッツADSL等で問題となるMTUの設定とUDPの設定は別問題です。MTUの設定ミスはキャラデータの破損を引き起こすことがありますが、UDPの設定ミスはキャラの動きがおかしくなるだけのようです。

ところが、このUDP設定をONにしたときにDreamcast同士で直接通信するようになる仕様が、次節で説明するトラブルの主な原因になっています。

UDP設定が間違っている場合

上記のように、UDP設定がONになっているとPSOではUDPを使用してDreamcast同士で直接通信しようとします。ところが、UDPが使えない環境であったり、UDPを使うための設定ができていないと、キャラの移動情報がTEAMの仲間に届かなくなってしまいます。キャラの動きがおかしい時はUDPをOFFにして、正常に戻るかどうか確認しましょう。(ビジュアルロビーではUDPは使われませんので、UDPのON/OFFに関らず正常に動くはずです)

miss

UDPを使う方法

プレイヤーが減った今では無理にUDPを使用する必要もないのですが、一応使い方を書いておきます。ここに書いてある方法を実行して問題が発生しても当方としては一切責任は取れません、念のため。

モデムアダプタで接続している場合

UDP設定が標準設定のAUTOになっていれば、すでにUDPを使用しています。キャラが動かない不具合がある人はOFFにしましょう。

モデムを使っているけどプロバイダに直接電話回線でつないでいない人は「特殊な接続をしている場合」を参照してください。

BbAで接続している場合

ブロードバンドアダプタ(BbA)を装着している場合、UDP設定がAUTOではUDPは使用されません。UDPを使うにはUDP設定をONにしなければいけないのですが、いきなりONにしないでください。

まず、あなたのネット環境がUDPが使えない環境の場合はUDP設定をONにしてはいけません。

NATルータを介してDreamcastを接続している場合はルータの設定変更が必要です。NATルータを使用せず、プロバイダがネットワークゲームが使えることを明言している場合は、UDPをONにしても大丈夫である可能性が高いです。

特別な設定が不要な例

NATルータを使用している場合の設定方法(ブロードバンド ルータを使用している場合もこちら)は長いので別ページに用意しました。

特殊な接続をしている場合

CR2000でブロードバンドに接続している場合

グローバルIPアドレスが使用できるネットワークで、NATルータを介さずにCR2000で接続していれば、特殊な設定をせずにUDPをONにできます。

NATルータを使用している場合も、CR2000のIPアドレスを固定できればNATルータを使用する場合と同じ手順でUDPを使用できます。CR2000のIPアドレスを固定するのは難しいので、ここでは説明しません。なお、ルータの設定をしていない場合はUDP設定をOFFにしましょう(AUTOはダメです)。

MS-WindowsにDreamcastをモデムで接続している場合

IPマスカレード機能のあるルータにWindowsが接続してある場合のみ、UDP設定をONにできます。

DCのIPアドレスをWindows側で設定する必要がある以外は、NATルータを使用している場合の設定と同じです。Windows側の設定は智ねっと等を参考に行ってください。やはり、ルータの設定をしていない場合はUDP設定をOFFにしましょう(AUTOはダメです)。

ルータが無くてもポートフォワーディングできるソフトがあればできそうな気がするのですが、未検証なので紹介しません :-)

FreeBSDにDreamcastをモデムで接続している場合

時間切れ。今日はここまで(^^;

UDPが使えない環境

利用しているプロバイダが以下のいずれかに該当する場合はUDPは使用できません。該当する人はUDPの設定をOFFにしましょう。

  1. グローバルIPアドレスが使用できない
  2. UDPを転送しない
NATルータを使用している場合は、DreamcastでグローバルIPアドレスが使用できなくても、ルータでグローバルIPが使用できればUDPを使える可能性があります。

また、1つのグローバルIPアドレスで2台以上のDreamcastを使って同時プレイしている場合は、UDPをONにできるのは1台だけです。

参考になるページ


戻り