web-dev-qa-db-ja.com

バトルフィールド:マルチプレイヤーゲームのパケット損失とパケット戻り時間を検査します

これは珍しい質問だと思いますが、ここの人々が助けてくれる可能性が非常に高いようです。ゲームプレイ中に極端な遅延が発生する理由をISPでデバッグしようとしています。

質問:接続のボトルネックがどこにあるかについてのより詳細な情報を提供するパケットランタイムと損失を分析するための良い方法は何ですか?実際にゲームをプレイせずに、トラフィックをある程度人工的に再現する簡単な方法はありますか?

これが私の状況です:

  • 私のISPは、メインケーブルに到達する前に、約10kmにわたって複数のアクセスポイントを備えた大規模なワイヤレスネットワークを介した接続を提供します。それは常にこのようであり、過去には、それは非常に信頼できることが証明されました。 ISPのハードウェアの変更またはその他のセットアップの変更により、ゲームプレイの品質は数か月前に低下しました。私のISPは非常に役に立ち、問題の原因を見つけて修正しようとします。
  • 私は一般的に非常に良いpingを持っており、プレイすると、ゲーム内の情報は常に20〜30ミリ秒の良いpingを示します。
  • バトルフィールドの特徴は、フレームレートが低下したとき、接続のターンアラウンドタイムが悪いとき、またはパケットが失われたときに警告記号を表示することです。繰り返される状況は、警告記号なしで約10〜60秒再生でき、その後、遅延が発生し、BFがあらゆる種類の接続警告を表示する深刻なパケット損失を経験することです。その後、この動作が再び表示される前に、数秒間もう一度再生できます。

私はLinuxのみに取り組んでおり、pingtraceroutenmap、およびその他のネットワークツールにある程度慣れています。 BFが使用するハイポートを知っています。使用されているパケットサイズを確認できます。もちろん、ゲームサーバーからIPを抽出することもできます。 ISPがネットワークで何が起こっているかをデバッグしているときに、パケット損失を人為的に引き起こすことができるように、この問題の追跡を開始するための良い方法は何ですか?

分析

Moonpointが親切に提案したように、WireSharkをインストールし、数分間の遅延ゲームプレイをキャプチャしました。最初の分析では、ゲームサーバーからのパケットに集中しました。サーバーからIPに送信されるすべてのUDPパケットをフィルタリングし、それらのパケット間の相対時間を確認するように時間を調整しました。並べ替えた後、650ミリ秒から1300ミリ秒の間にかかったパケットが約20個ありました。これは、マップの半分をジャンプしているパケットだと思います。他のほとんどのパケットの間には、ゲーム内で約30ミリ秒の「Ping」と表示される実行時間がほぼ正確にあります。

すべての重要なパケットをマークした後、フィルターをクリアし、すべてのトラフィックを調べて、重要なパケットの周囲のすべてのパケットで何が起こっているかのパターンを見つけることができるかどうかを確認しました。私が見つけたのは、2つの状況があるということです。 94.250.208.153がゲームサーバーであり、青いハイライトが重要なUDPゲームパッケージであることに注意してください。

まず、重要なパケットの約10〜15パケット前に、MACアドレスからの神秘的なSSDPM-Searchパケットがあります。

img

2番目の状況は、重要なパケットの前にTCP主にGoogleサーバーへの再送信が行われる(または囲まれる場合がある)ことです。

enter image description here

私の側から取ることができる他のステップはありますか?神秘的なSSDPパケットで調査する方法を誰かに教えてもらえますか?

2
halirutan

Pingとtracerouteにある機能を組み合わせたMTRは、パケット損失が発生している、または jitter が高いネットワークパスに沿った1つまたは複数のポイントを特定するための便利なツールにもなります( )。

フリーでオープンソースの Wireshark パケットアナライザを使用して問題のトラブルシューティングを行うこともできますが、提供される情報を理解するには、基盤となる インターネットプロトコル などに精通している必要があります。 TCP/IPとして機能します。オンラインでの使用法に関するコースとチュートリアルがあります。効果的な使い方を学ぶにはかなりの時間がかかるかもしれませんが、Wiresharkなどのツールの使い方を学ぶと、ネットワーク接続に関連するあらゆる種類の問題をより簡単にトラブルシューティングできるようになります。

Wiresharkに慣れていない場合は、YouTubeに 初心者向けWireSharkチュートリアル および Wireshark 101:Wiresharkの方法、Haktip 115 ;があります。 「Wiresharkチュートリアル」という用語で検索すると、他にも多くのことが見つかります。チュートリアルのあるWebサイトには、 Quickおよびdirty WiresharkチュートリアルWiresharkを使用してパケットをキャプチャ、フィルタリング、および検査する方法 、および Wiresharkチュートリアル が含まれます。 PDFファイル作成者 Professor Angelos Stavro ジョージメイソン大学のコンピュータサイエンス学部。Wiresharkの使用方法に関するオンラインコースもあります。

Wireshark、または tcpdump 、Linux、OS X、およびMicrosoft Windows( WinDump )システムで使用可能なコマンドラインパケットキャプチャツールを使用すると、問題が発生したときにシステムを使用して、後でまたはリアルタイムでデータを自分で分析できるようにします。または、両方のツールでキャプチャしたデータを pcap ファイルとして保存できるため、データを提供できます。 pcapファイルは、問題をデバッグするときにネットワークエンジニア間でネットワークの問題に関するデータを交換する一般的な方法であるため、ISPのネットワークサポートスタッフにそのようなデータの解釈に精通している可能性があるためです。

Wiresharkはネットワークインターフェイス上のすべてのデータをキャプチャしますが、バトルフィールドゲームサーバーに関連付けられているネットワークポート番号とIPアドレスがわかっているので、次のことができます Wiresharkフィルターを使用してポート番号やIPをフィルタリングします)アドレス

更新:

「SSDPM-Searchパケット」に関連付けられている 16進数 の数字は、 メディアアクセス制御(MAC) アドレスではありません。 MACアドレスは50-c5-8d-26-c2-06に似ています。つまり、イーサネットおよびWi-Fi MACアドレスは通常、16進数の2桁ごとにダッシュまたはコロンで表示されます。合計は12桁です。つまり、48です。 -ビットアドレス。代わりに、表示されているのは IPv6 アドレスです-今日インターネットで使用されているインターネットプロトコルには2つのバージョンがあり、長い間使用されています インターネットプロトコルバージョン4(IPv4) =および最新のインターネットプロトコルバージョン6(IPv6)。

SSDPは Simple Service Discovery Protocol の略で、 niversal Plug and Play(UPnP) に使用されるプロトコルです。ローカルネットワーク上の一部のシステム(IPv6アドレスfe80 :: 50e7:d4f0:db:c4dc)は、パケットを IPマルチキャスト アドレスff02 :: cに送信しています。 IPv4の場合、マルチキャストアドレスは239.255.255.250ですが、SSDP over IPv6は、Xで示されるすべてのスコープ範囲にアドレスセットff0X :: cを使用します(表示されたパケットの「X」は「2」です)。

システムが アマゾンウェブサービス(AWS) IPアドレスにもGoogleアドレスにも接続している理由がわかりません。

C:\>nslookup 52.203.205.255 8.8.8.8
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    ec2-52-203-205-255.compute-1.amazonaws.com
Address:  52.203.205.255


C:\>nslookup 216.58.212.78 8.8.8.8
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    lhr35s05-in-f78.1e100.net
Address:  216.58.212.78 

接続はポート443、 既知のポート HTTPSトラフィック用ですが、 52.203.205.255リバースIPルックアップ DomainToolsを使用して リバースIPルックアップ 機能、「ルックアップの結果が見つかりませんでした」と報告されました。多くの場合、その検索ツールにIPアドレスを入力すると、IPアドレスでホストされているWebサイトの 完全修飾ドメイン名(FQDN) が表示されますが、表示されません(複数のWebサイトを同じIPアドレスでホストできます)。この場合。

A 216.58.212.78リバースIPルックアップ 同じメッセージが返されました。 1e100.netが表示されている場合、それはGoogleシステムです。 Googleは名前に「1e100」を使用しています。これは、「1」の後に100個のゼロが続くことを表す方法であるためです。これは googol です。

これらのパケットは両方とも、バトルフィールドサーバーとの通信とは無関係である可能性があります。これらが再送信であり、システムがパケットを送信したときに送信されたが、受信したことを示す確認応答パケットを反対側から受信しなかったという事実は、他のサイトへのトラフィックでもパケット損失が発生していることを示している可能性があります。バトルフィールドサーバーで問題が発生しているのと同時に。システムがこれらの2つのIPアドレスと通信している理由に関心がある場合は、これら2つのIPアドレスでフィルタリングして、それらとの間の他のパケットを表示し、パケットキャプチャに表示される理由をよりよく理解することができます。

1
moonpoint