ネットワークに関する情報

From Neos Wiki
Revision as of 20:19, 6 February 2022 by Aesc (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Other languages:
English • ‎日本語 • ‎한국어

Neosは機能豊富なエンジンで、他のユーザーやNeosのクラウドサービスに接続されています。ご心配な方、またはファイアウォールを設定したい方は、こちらをご覧ください。

HTTP & WebSocket トラフィック

以下のものがあります:

  • メッセージ
  • プロフィール情報
  • コンタクトリクエスト
  • あなたのインベントリ
  • インベントリ内のアイテムとアバター

これらの情報はすべてNeos Cloudに保存されています。Neosは、HTTPまたはWebSocketを使用してこの情報を取得します。以下は、あなたが接続を目にするかもしれない場所のリストです:

  • ほとんどのHTTPトラフィックはapi.neos.comです。
  • SignalR(Realtime Updates)は、MicrosoftのマネージドサービスにWebSocketで接続します。
  • アセット(アバター、メッシュ、テクスチャ)やその他のBlob(大容量ファイル)は、様々なホストからやってきます:
    • cloudx2.azureedge.net
    • アセットは assets.neos.com にも保存されます
    • いくつかのサムネイルは cloudxthumbnails.azureedge.net に格納されます。
    • いくつかサムネイルはoperationaldata.neos.comにも保存されます
    • 一部の追加データは、cloudxstorage.blob.core.windows.netに格納されます。

セッショントラフィック

Neosのセッションに接続すると、そのセッションのホストへの接続が始まります。これは通常、他のユーザーのコンピュータですが、他のクラウドベースのデータセンターでホストされているヘッドレス・セッションの場合もあります。あなたの設定とセッションホストの設定に応じて、次の2つのプロトコルのいずれかでホストへと接続します。

LNL

  • LNL は UDP で接続します。
  • ポートは様々で、ホストが空きポートを選択できるため、ホストに応じて任意のポートを使用できます。
  • いくつかの接続では、NATパンチスルーが必要です。これは通常、UDP Hole Punchingの実装です。
    • これは、12500ポートを使用してmatchx.centralus.cloudapp.azure.comへ接続する段階で発生します。
  • その他のケースでは、リレーが使用されます。
    • LNLリレーは上記と同じですが、ポートは12600です。
  • パンチスルーまたはリレーの後、ユーザーへの実際の接続は、任意のIPまたはポートにすることができます。

Steam Sockets

Steam Socketsは、Valve社が開発したネットワークプロトコルです。それに関する情報はここにあります。

接続の確立

直接IP

一般的には、ダイレクト接続がベストです。リモートサーバーに直接接続し、Neosに行き先と行き方を正確に伝えます(IPアドレスまたはドメイン名で直接接続します)。

直接IP接続を使用する方法:

  • OpenWorld LogiX Nodeを用いて、URLの部分にURiノードを追加し、そこに公開IPアドレスとポート番号を次のように記述します: "lnl://<公開IPアドレス>:<ポート番号>/"
    • もしIPv6を使用する場合、次のように括弧でくくって下さい: "lnl://[<公開IPv6アドレス>:<ポート番号>]"
    • アドレスの部分にはDNSアドレスも利用できるかもしれませんが、まだテストされていません。
  • URiにはポート番号が必要です
  • これは主にHeadlessセッションの場合に有効な方法で、IPアドレスとポートは固定されていることが条件です。また、セッション所有者が自分の世界への直接リンクを含むアイテムを提供していることに注意してください。その点を踏まえると、この方法はその世界に接続するための最も信頼性が高く効率的な方法です。

バグ: 現在のNeosの挙動の関係で、標準で接続を行う場合は直接接続を最初に使用せずNATパンチスルー接続から開始します。これは一般的には問題ありませんが、ネットワークの相性によっては下の"NATパンチスルー"の節で説明しているような問題を引き起こす事が有ります。

NAT パンチスルー

これは、双方がNat(Network Address Translation)レイヤーの後ろにいる場合に使用されます。これらのレイヤーは、家庭用ルーターやモデムで一般的です。パンチスルーは、NAT内のあるピアから、異なるNAT内の別のピアに直接接続することを可能にします(したがって、ピアツーピア)。しかし、そのためには、接続の構築を支援するミドルサーバーが必要です。このプロセスはより複雑で、失敗する可能性が高くなります。しかし、一度接続が確立されれば、性能面では直接接続と同等ですが、接続には少し余分な努力が必要で、ネットワークの設定によっては失敗する可能性もあります。

Nat Punchthrough の問題が発生した場合、strict、または タイプ3 のNATの背後にいる可能性があります。https://portforward.com/nat-types/ を参照してください。 これを確認するには、以下のいずれかを試してください。

  • Rucio氏作成によるこのサイトを確認する https://networktest.razortune.com/
  • Windows 10/11でご利用の場合
    • Xboxコンソールコンパニオン - 設定 > ネットワークとそれがあなたのNATの種類について適切なチェックを実行するために、少なくとも一度はチェックアゲインをクリックしてください。
    • Xboxネットワーキング - それがあなたのNATの種類について適切なチェックを実行することを確認するために、少なくとも一度はチェックアゲインをクリックしてください。
  • プレイステーション3、4をお持ちの場合
    • ネットワーク > インターネット接続のテスト > NATタイプはタイプ3です。
  • ニンテンドースイッチをお持ちの場合
    • 設定>インターネット設定>接続タイプのテスト...なんとか、ありがとうnintendo

タイプ3の後ろにいる場合、そこから移動するために2つの経路があります。

  • あなたのルーターは厳格なNATを持っています
    • ルーターの設定を更新して、strict NATにならないようにする。これをこう呼ぶことがあります。
    • モデレートタイプ2
      • オープン
      • ストリクトポート
      • フルコーン
      • 何か他のもの、あなたのルーターのマニュアルを確認してください
    • ISPがあなたをstrict NATの後ろに置いています。

バグの可能性があるのはここです。現在の問題点として、NAT Punchthroughサーバがあまり早く応答しないことがあり、クライアントが応答を待たずに、内部リストの次のプロトコルを試行することがあるようです。

バグについて: NATパンチスルーサーバはIPv6をサポートされておらず、IPv4のみがサポートされています。世界中のISPのうち特定のエリア、特に日本では、IPv6の利用を推奨するプロバイダが拡大しつつあります。そういったネットワークを利用しているユーザの場合はNATパンチスルーが正常に動作しないことを確認しています(この状況は刻々と変化しています)。

LNL リレー

こちらは、パフォーマンスへの影響があります。リレーは両クライアント間の第3のポイントとして機能し、すべてのトラフィックはリレーを経由してルーティングされます。この場合、Pingは悪化する可能性が高いです(ただし、必ずしもそうなるとは限りません)。リレーに問題があったり、過負荷になっていたりすると、サービスの問題も発生する可能性があります。

推奨される設定(Headless サーバ向け)

もしより接続の確立をより確実にしたい場合は、直接IP接続をサポートしたり、IPv6サポートを行うことをお勧めします。

  • もしISPがCGNAT(日本だとDS-Lite)を使用しており、またIPv6が利用可能な場合
    • IPv4におけるCGNATを無効化し、IPv4 PPPoEを代わりに使用する

ポートフォワーディング(ポート開放):

  • 自分が開いているHeadlessがどの番号のポートを使用しているかを確認します。Headlessの設定から"forceport"設定を使用することで使用するポートを指定できます
  • 上で確認したポートを開放します(UDPで開放します)

リレーではなく、Direct IPを利用するようユーザーを誘導する

  • ヘッドレスワールドのホストには、ユーザーをあなたの世界に呼び出す派手な外観のボタンのような、このための事前作成オブジェクトを作ることが提案されています。これは精巧なコーリングカードになります。これは、ユーザーにあなたの世界へのリンクを彼らの世界に保持させるチャンスです。


推奨ルーター構成

多くのコンシューマールーターは、ユーザーがインターネット上の他のユーザーへの接続を直接確立できるようにトラフィックをルーティングすることにより、Neosに最適な接続を提供するようにデフォルトで構成されています。ただし、一部の高度なルーターは、インターネット上の他のホストと通信するときにポート番号が保持されないタイプのNAT(ネットワークアドレス変換)を採用しています。このタイプのNATは、多くの場合、「ストリクト」または「タイプ3」と呼ばれます。名前が示すように、このタイプのNATの厳密な性質により、他のユーザーとの接続を確立することはできません。

Neosを最大限に活用するには、Neosを実行しているコンピューターからModerateまたはタイプ2のNATを許可するようにルーターを構成することをお勧めします。各メーカーはこの構成を異なる方法で実装しており、用語はブランド間で同じではないことがよくあります。特定のルーターのドキュメントを参照するか、Neos Discordサーバーの#❓questions-helpチャネルで支援を求めてください。

厳密なNATに対するLNLリレーのサポート

LNLリレーが使用されている世界に参加するときに見られるLNLリレーテキストの例。

Neosは、Strict NATを備えたルーターを使用しているユーザーが、NeosLNLリレーと呼ばれる中間サーバーを使用して他のユーザーに接続する方法を提供します。このソリューションは時折使用する場合でも機能しますが、地理的な場所やネットワークの負荷/輻輳によっては、最高のパフォーマンスが得られない場合があります。

ワールドに参加しているときに「Loading…」メッセージの下に表示される「LNL Relay」テキストの存在によって、LNLリレーを介して接続しているかどうかを判断できます。ワールドに参加するときに「LNL Relay」というテキストが表示されるということは、Neosがホストユーザーに直接接続できず、Neos LNL Relayサーバーが使用されたことを意味します。

「LNL Relay」テキストの存在は、通常、あなた、ホストユーザー、または両方のユーザーのいずれかがStrict / Type-3NATの背後にいる可能性があることを示します。ワールドに接続するたびにこのメッセージが表示される場合は、Strict / Type-3 NAT用に構成されたルーターの背後にいる可能性があります。

LNLリレーの使用への依存を回避するために、Moderateまたはタイプ2のNATを使用することをお勧めします。詳細については、上記の「ルーター構成」セクションを参照してください。

uPNP/NAT-PMPおよびポートフォワーディング

Neosは現在、ポート転送またはuPNP/NAT-PMPのサポートを提供していません。このサポートを提供するために、NeosGithubで拡張リクエストが行われました。 Github Issue#3312