私はLANでデータをパケットで送信して、一度に1つのステーションのみが送信できるようにしました。そのため、1つのデバイスのみが所定のタイミングで送信する場合、これをビデオゲームのLANパーティーにどのように適用できますか。時間?
データは通常パケットで送信されます。メディアは共有されるため、一度に1つのステーションだけがパケットを送信できます。
Stalling、Data and Computer Communications、5 ed.Pearson
私はLANでデータをパケットで送信して、一度に1つのステーションのみが送信できるようにしました。そのため、1つのデバイスのみが所定のタイミングで送信する場合、これをビデオゲームのLANパーティーにどのように適用できますか。時間?
データは通常パケットで送信されます。メディアは共有されるため、一度に1つのステーションだけがパケットを送信できます。
Stalling、Data and Computer Communications、5 ed.Pearson
回答:
一度に送信できるデバイスは1つだけです。それ以外の場合は、別のデバイスが送信を許可されます。
人だけがいつでも話せる場合、どうやって夕食の席で会話をすることができますか?
一部のメディア上のLANプロトコルは、半二重です。つまり、LAN上の1つのホストだけがフレームを送信できます。これの古典的な例は元のイーサネットですが、現代の例はWi-Fiです。
元のイーサネットは同軸上で動作し、CSMA / CD(衝突検知付きキャリア検知多重アクセス)を使用して2つのホストが同時に送信している衝突を検出し、データが破損しているため妨害信号を送信していました。各ホストはランダムな時間をバックして再送信を試みますが、ホストは最初にメディアをリッスンして、他のホストが送信しているかどうかを確認しました。
今日、Wi-Fiは共有メディアである電波を使用しています。一度に送信できるホストは1つだけです。Wi-FiはCSMA / CA(衝突回避を備えたキャリア検知多重アクセス)を使用して、衝突を回避しようとします。
人間の言葉で言えば、メディアで使用される各フレームはかなり小さく、メディアに長く留まることはないため、順番にメディアを共有することで、ホストは人間を遅くして、メディアを同時に使用するように見えます。
(素朴な)答えは、単純であるか、または以前は単純でした。それは、各送信者がほんの一瞬を待たなければならないことを意味します。これは物理レベルでネットワークが機能する方法であるため、これを回避する方法はありませんが、数マイクロ秒(ミリではなくマイクロ)について話しているため、それほど問題にはなりません。
LANにもWLANが含まれていない限り、あなたの見積もりは時代遅れです(間違っています)。WLANでは、まだ多くのオプションがありません。1つのステーションが送信している間、他のステーションは送信できません(完全に異なる非オーバーラップチャネルを使用している場合を除きますが、これは実際には2つのネットワークであり、1つではないため、1つが不正行為になります)。
最近の「ゲーム」LAN内のコンピューターは、通常、少なくとも 100BASE-TX、より可能性の高い1000BASE-T を介して接続されます。どちらもそもそも全二重動作をサポートしています。これは、同じ物理ケーブル(ケーブル内の別のワイヤーですが)で同時に送受信できることを意味します。ケーブルがビジーである間待機しなければならないという概念は、送信が受信に干渉することが実際にはないため、もはやそれほどクリーンカットされていません。他の複数の送信者からのトラフィックのみが独立して干渉します。
さらに、今日ではほとんど例外なくケーブルは(ハブではなく)スイッチに接続され、原則として(ハードウェアの品質に応じて)すべてのポートで同時に独立して送受信でき、原則として(これも、ハードウェアの品質によって異なります)には、Nポートの理論上の最大スループットのN倍を処理するのに十分な内部帯域幅があります。スイッチの品質が異なるため、走行距離は若干異なる場合があります。一部の非常に安価なスイッチにはNポートがありますが、同時にNポートを介してプッシュできるデータの半分に相当する十分な帯域幅しかありません。多くの場合、それでも(驚くほど)完全に十分です。
したがって、ネットワーク内の2台のコンピューターがほぼ同時に同じ宛先に送信するときにパケットをキューに入れる必要があるため、時折、不可避の遅延が発生します(スイッチがコンピューターのネットワークカードではなく、その決定を行います)。 、しかしほとんどの場合それは「うまくいく」でしょう。注それは「単なる仕事」、それがない場合でもその作品とにかくは、唯一のちょうどそれが受信するデータのためのマイクロ秒か2長くかかります。
その本は少し古くなっています。イーサネットがどのように進化したか、半二重と全二重の違いについての情報をチェックしてください。
これは、物理的または論理的に共有された媒体(ケーブル設備)を実際に使用して3つ以上の伝送を接続したオールドスクールイーサネット実装(10base2、10base5など...および非スイッチングハブが使用されている場合は10baseTおよび100baseT)にも当てはまります。対応ポート。2つのステーションが誤って同時に送信した場合、その共有メディア上の信号が文字化けしました-ネットワークポートは、そのような文字化けした信号を検出し、さらに別の信号をメディアに送信するように設計されています。それらのすべての送信は無効であり、バックオフ時間後に繰り返される必要があること。これらの設定の問題は、何かが小さなパケットでネットワークを限界までロードした場合、達成可能な帯域幅が理論上の最大値を大幅に下回ってしまうことでした。
完全にスイッチされたイーサネット(2004年以降に店頭で一般的に入手可能な部品を使用して構築する場合と同様)。複数の共有メディア(2つ以上のポート)が存在するハイブリッドフォームが存在するため、「完全にスイッチされた」スイッチで区切られています)、メディアを共有するポートは常に2つあります(1つはスイッチにあり、もう1つはコンピュータまたは他の接続デバイスにあります)。「T」タイプのイーサネットには、方向ごとに別々のワイヤペアがあるため、2つのポート間では、常に両方が同時に送信および受信することが可能です。スイッチは常に複数の送信者からのパケットを1つの有効なシーケンスに順序付けし、実際に過負荷にならない限り(ホームネットワークの状況では起こりそうにない)、送信する必要があると判断した場所に送信します。
完全を期すために、他の特定の(最近ではほとんど使用されない)非イーサネット有線LANシステム(トークンリング、FDDIなど)は、メディアアクセスを統制するために異なる方法を使用し、場合によっては、誰かがペイロードを送信する前に送信する特権を積極的に交渉しました。
WIFIはまた、共有メディアの問題、および2つの競合する送信機が異なる受信機に対して異なる可視性を持つ可能性があるという事実にも対処する必要があります。これを解決するために、CSMA / CAと呼ばれるアルゴリズムが使用されます。
10Mb / sネットワークでは、フルサイズのパケットの送信に約1msかかります。ほとんどのゲームパケットははるかに小さいため、このレイテンシに気付かず、毎秒数百もの更新をかなり簡単に取得できます。大きな遅れは、1000マイルあたり少なくとも18ミリ秒の距離から生じます。これは光のスピードであり、避けられません。ワイヤー上の他のパケットがそのレイテンシーに追加される可能性があります-これはジッターと呼ばれます。
すべてのビデオゲームでは、プレーヤーが入力(ボタンを押す、ジョイスティックを動かすなど)を提供する時間とその反応の間には常に遅れがあります。コンピューターがコントロールの変更を検知してから画面の次のフレームに表示されるその変更の間に、認識できるほどの遅延があります*。そのため、一部のゲーマーは60 FPSを維持するためにグラフィック設定を減らします(ゲームの見栄えを悪くします)。
ネットワークもこの遅延を導入しますが、その理由の1つは、プレーヤーが同時に2つのメッセージを受信できないためです。他の2台のコンピューターが同時にメッセージを送信しようとした場合、一方がバックオフし、もう一方が最初に(WiFiなどの共有伝送媒体で)許可されるか、スイッチが同時に両方を受信しますが、前に1つを送信します宛先へのその他(最新の有線イーサネット)。
ただし、LANでの遅延はわずかであり、インターネットでの再生によって発生する遅延の量(数十倍または数百倍)に比べると小さくなります。
それでそれはどのように機能しますか?通常、ゲームは他のプレーヤーをモデル化し、現在のモーションに基づいて将来のモーションを予測します。これにより、コンピューターが常に実際の場所に関する即時の更新を常に取得しているわけではない場合でも、特定の方向にスムーズに移動していることがわかります。(これを行うコードは、しばしばnetcodeと呼ばれます。)これが、プレーヤーがある場所から別の場所に突然ジャンプすることがある理由です。多くの場合ネットワークの遅延が原因で、予測は実際に起こっていることと同期しなくなりました。
*これは通常、「遅延が発生しました」とは認識されませんが、「コントロールの動作が鈍い」などと感じられます。