Wie funktioniert LAN in Videospielen, wenn nur eine Station senden darf?

7

Ich habe gelesen, dass in einem LAN die Daten in Paketen übertragen werden, damit nur eine Station zu einem bestimmten Zeitpunkt übertragen kann. Wie kann dies in LAN-Parteien von Videospielen angewendet werden, wenn nur ein Gerät zu einem bestimmten Zeitpunkt übertragen wird? Zeit ?

Daten werden normalerweise in Paketen übertragen. Da das Medium gemeinsam genutzt wird, kann jeweils nur eine Station ein Paket senden.

Stalling, Daten- und Computerkommunikation , 5. Aufl. Pearson

eis3nheim
quelle
6
Es ist erwähnenswert, dass die Prämisse für die meisten modernen kabelgebundenen Netzwerke falsch ist. "Da das Medium gemeinsam genutzt wird, kann jeweils nur eine Station ein Paket senden." gilt für 10BASE2 und teilweise für 10BASE-T mit Repeater-Hubs. Modernes Ethernet wird jedoch immer als Store-and-Forward-Switches verwendet, und viele Stationen können gleichzeitig senden.
Marcelm
3
(1) Wm. Der Name der Hengste hat am Ende ein 's'. (2) In anderen Nachrichten, Filme / Kino und Fernsehen / Video bestehen aus einer Reihe von noch Bilder. Wie ist es möglich, dass Standbilder für Menschen so aussehen, als würden sie sich bewegen? Denk darüber nach.
Dave_thompson_085
LAN Doom funktionierte sogar vor zwanzig Jahren in 10base2-Koaxialnetzwerken ziemlich gut, obwohl frühe Versionen ein Paket für jede Chaingun-Kugel sendeten, die Probleme verursachte.
pjc50
@marcelm, Wi-Fi ist jetzt der König des LAN (mehr Geräte werden mit Wi-Fi-Schnittstellen geliefert als mit Ethernet-Schnittstellen) und verwendet ein gemeinsam genutztes Halbduplex-Medium.
Ron Maupin

Antworten:

20

Es darf jeweils nur ein Gerät senden. Zu jedem anderen Zeitpunkt darf ein anderes Gerät senden.

Wie können Sie sich an einem Esstisch unterhalten, wenn immer nur eine Person sprechen kann?

Jörg W Mittag
quelle
3
Ja, entweder warten Sie (und bei Echtzeitprotokollen stellen Sie im Allgemeinen sicher, dass die Frames wirklich klein sind, damit Sie nicht lange warten müssen) oder Sie verwenden kein freigegebenes Medium. Dann tritt dieses Problem einfach nicht auf. t existieren. Ehrlich gesagt war ich 1995 das letzte Mal auf einer LAN-Party, auf der tatsächlich ein gemeinsames Medium verwendet wurde. Seitdem haben wir immer Switches verwendet.
Jörg W Mittag
2
Um die Analogie zum Esstisch zu erweitern: Ja, wenn ein Dutzend Personen am Tisch sitzen, ist es durchaus möglich, dass Sie nicht in der Lage sind, das zu sagen, was Sie sagen wollten. Aus diesem Grund müssen Unternehmens-LANs Switches verwenden - das gemeinsam genutzte CSMA-Medium ist in großen Ethernet-LANs kein Starter. Bevor Ethernet-Switches erschwinglich wurden, gab es andere Standards (wie Token Ring und 100VG), die das CSMA / CD-Schema durch ein Token-Schema ersetzten, was bedeutet, dass jeder Sprecher einen Zeitschlitz (Token) erhielt, in dem er eine demokratische Gelegenheit bekam, dies zu sagen was auch immer sie sagen wollten.
mere3ortal
9
@ Eis3nheim ja. Aber die Verzögerung ist geringer als Sie wahrnehmen können. Die Übertragung eines kleinen Pakets in einem schnellen Netzwerk dauert Mikrosekunden.
Hobbs
1
@ eis3nheim: Für Gigabit-Ethernet beträgt die minimale Steckplatzzeit (der kleinste Frame, den ein Gerät senden darf) ~ 4µs (512 Byte). In Bezug auf Spiele bedeutet dies eine Verzögerung von etwa einem halben Frame bei 120 fps. Und technisch gesehen benötigt GigE nicht einmal eine minimale Slot-Zeit, da noch nie ein GigE-Gerät mit gemeinsamem Medium gebaut wurde. 10G und höher geben nicht einmal mehr das gemeinsam genutzte Medium an und haben daher keine minimale Slot-Zeit. Wenn Ihr Spiel bei GigE immer nur die kleinstmöglichen Datagramme sendet, beträgt die Verzögerung etwa 1 Frame bei 120 fps, um eine Antwort zu erhalten.
Jörg W Mittag
1
?? Ein halbes Videobild ist 4 ms (4 000 µs)
Qsigma
18

Einige LAN-Protokolle auf einigen Medien sind Halbduplex-Protokolle. Dies bedeutet, dass jeweils nur ein Host in einem LAN einen Frame senden kann. Das klassische Beispiel hierfür ist das ursprüngliche Ethernet, aber das moderne Beispiel ist Wi-Fi.

Das ursprüngliche Ethernet lief über Koaxialkabel und verwendete CSMA / CD (Carrier Sense Multiple Access mit Kollisionserkennung), um Kollisionen zu erkennen, bei denen zwei Hosts gleichzeitig sendeten, und sendete dann ein Störsignal, weil die Daten beschädigt waren. Jeder Host zog sich zu einem zufälligen Zeitpunkt zurück und versuchte erneut zu senden, aber die Hosts hörten zuerst auf das Medium, um zu sehen, ob ein anderer Host sendete.

Heute verwendet Wi-Fi ein gemeinsames Medium: die Funkwellen. Es kann jeweils nur ein Host senden. Wi-Fi verwendet CSMA / CA (Carrier Sense Multiple Access mit Kollisionsvermeidung), um Kollisionen zu vermeiden.

In menschlicher Hinsicht ist jeder auf dem Medium verwendete Frame ziemlich klein und bleibt nicht sehr lange auf dem Medium. Wenn wir uns also abwechseln und das Medium teilen, erscheinen die Hosts für uns langsame Menschen, das Medium gleichzeitig zu verwenden.

Ron Maupin
quelle
"Halbduplex" gilt für eine Verbindung, nicht für das gesamte Netzwerk ...
Rackandboneman
@rackandboneman, ich verstehe den Grund für Ihren Kommentar nicht. Ich habe nichts über das gesamte Netzwerk erwähnt oder impliziert. Ich habe über das verwendete Medium gesprochen, was den Link impliziert.
Ron Maupin
Rackandboneman, was wir einen Link nennen, wurde früher als Netzwerk bezeichnet. @ RonMaupin Sie sagten LAN, LAN = Local Area Network
user253751
2
@immibis, der Begriff LAN wird in verschiedenen Kontexten verwendet. Dies kann eine Kollisionsdomäne (Link), eine Broadcast-Domäne, eine Verkabelungsanlage an einem einzelnen Standort (einschließlich mehrerer Layer-3-Netzwerke), ein Campus-Netzwerk usw. bedeuten. Im Zusammenhang mit dieser Frage habe ich LAN verwendet, um darauf zu verweisen die Kollisionsdomäne.
Ron Maupin
Natürlich ist bei einem Client-Server-Spiel (die meisten Spiele heutzutage) das "Problem" wieder da - die minimale Latenz hängt davon ab, wie viele Daten der Server verarbeiten muss, sowie von der Netzwerkinfrastruktur zwischen den Clients und dem Server. Vollduplex kann helfen oder überhaupt nicht. Und ja, der Server kann eine bessere Verbindung haben als die Clients. In jedem Fall handelt es sich jedoch immer noch um Latenzen, die nicht annähernd so lang sind wie ein einzelnes Spielupdate (im LAN), und die meisten Netzwerkspiele erwarten, dass die Nachricht in einem zukünftigen Update verarbeitet wird, sodass alle Computer beibehalten werden können trotz Verzögerung synchronisieren.
Luaan
5

Die (naive) Antwort ist oder war früher einfach: Sie bedeutet, dass jeder Absender einen winzigen Bruchteil einer Sekunde warten muss. Daran führt kein Weg vorbei, da das Netzwerk auf physischer Ebene so funktioniert, aber es ist auch kein großes Problem, da es sich um einige Mikrosekunden (Mikro, nicht Milli) handelt.

Die etwas weniger naive Antwort wäre, dass Ihr Zitat veraltet ist (falsch), wenn LAN nicht auch WLAN enthält. In einem WLAN haben Sie immer noch nicht viele Optionen. Während eine Station sendet, kann keine andere Station senden (es sei denn, sie verwenden einen völlig anderen nicht überlappenden Kanal, aber das sind wirklich zwei Netzwerke, nicht eines, also würde eines schummeln).

Computer in einem modernen "Gaming" -LAN werden normalerweise über mindestens 100BASE-TX, wahrscheinlicher 1000BASE-T, verbunden, die beide zunächst den Vollduplexbetrieb unterstützen. Dies bedeutet, dass Sie gleichzeitig über dasselbe physische Kabel (also ein anderes Kabel innerhalb des Kabels, aber immer noch) senden und empfangen können. Die Vorstellung, warten zu müssen, während das Kabel besetzt ist, ist daher nicht mehr so ​​klar, da das Senden den Empfang nicht mehr wirklich stört. Nur der Datenverkehr, der von mehreren anderen Absendern kommt, stört unabhängig voneinander.

Außerdem werden die Kabel heutzutage fast ausnahmslos an einen Switch (anstatt an einen Hub) angeschlossen, der im Prinzip (abhängig von der Qualität der Hardware) unabhängig an jedem Port gleichzeitig senden und empfangen kann und der im Prinzip (wiederum abhängig von der Qualität der Hardware) verfügt über genügend interne Bandbreite, um das N-fache des maximalen theoretischen Durchsatzes für N Ports zu verarbeiten. Ihr Kilometerstand kann geringfügig variieren, da die Schalterqualität variiert. Einige sehr billige Switches haben N Ports, aber nur genug Bandbreite, was der Hälfte der Daten entspricht, die gleichzeitig über N Ports übertragen werden können. Oft ist auch das (überraschenderweise) vollkommen gut genug.

Daher kommt es gelegentlich zu unvermeidlichen Verzögerungen, da Pakete in die Warteschlange gestellt werden müssen, wenn zwei Computer im Netzwerk fast gleichzeitig an dasselbe Ziel senden (der Switch trifft dann diese Entscheidung, nicht die Netzwerkkarte Ihres Computers). , aber zum größten Teil wird es "nur funktionieren". Beachten Sie, dass selbst wenn es nicht "nur funktioniert", es trotzdem funktioniert , es nur ein oder zwei Mikrosekunden länger dauert, bis die Daten empfangen werden.

Damon
quelle
2

Dieses Buch ist etwas veraltet. Lesen Sie einige Informationen über die Entwicklung von Ethernet und den Unterschied zwischen Halbduplex und Vollduplex:

https://en.wikipedia.org/wiki/Ethernet#Evolution

Boomi
quelle
1
Heute ist Wi-Fi immer noch Halbduplex, und mehr Geräte werden mit Wi-Fi-Schnittstellen ausgeliefert als Geräte mit Ethernet-Schnittstellen, sodass Halbduplex lebendig und gesund ist.
Ron Maupin
Das ist definitiv fair. Ich denke an eine LAN-Party, obwohl ich an Kabelverbindungen denke.
Boomi
@ RonMaupin Mit den Fortschritten in der MIMO-Technologie schwindet die Begrenzung einer Sendestation zu einem bestimmten Zeitpunkt auch für Wi-Fi;)
marcelm
1
@marcelm, es ist Halbduplex, weil eine Station nicht gleichzeitig senden und empfangen kann.
Ron Maupin
Mehr als ein bisschen veraltet, würde ich sagen. Das Lehrbuch des Fragestellers enthält mindestens 5 Ausgaben.
Kevin Krumwiede
2

Dies gilt für Ethernet-Implementierungen der alten Schule (10base2, 10base5 et al. Sowie 10baseT und 100baseT, wenn ein nicht schaltender Hub verwendet wurde), die tatsächlich ein physisch oder logisch gemeinsam genutztes Medium (Verkabelungsanlage) verwendeten, um mehr als zwei Übertragungen zu verbinden fähige Ports. Wenn zwei Stationen versehentlich gleichzeitig gesendet wurden, wurde das Signal auf diesem gemeinsam genutzten Medium verstümmelt - Netzwerkports wurden entwickelt, um solche verstümmelten Signale zu erkennen und ein weiteres Signal auf das Medium zu senden, das immer noch korrekt über die verstümmelten Daten gelesen und allen signalisiert werden konnte dass alle ihre Übertragungen ungültig sind und nach einer Backoff-Zeit wiederholt werden müssen. Das Problem bei diesen Setups war, dass die erreichbare Bandbreite deutlich unter dem theoretischen Maximum lag, wenn irgendetwas das Netzwerk mit kleinen Paketen an seine Grenzen brachte.

In einem vollständig geschalteten Ethernet (wie Sie es beim Aufbau mit Teilen erhalten würden, die nach ca. 2004 in einem Geschäft allgemein verfügbar sind. "Vollständig geschaltet", da Hybridformen existieren (ed), in denen sich mehrere gemeinsam genutzte Medien (mit mehr als 2 Ports) befanden getrennt durch Switches) gibt es immer zwei Ports (einer befindet sich am Switch, der andere an einem Computer oder einem anderen angeschlossenen Gerät), die sich ein Medium teilen. Jedes Ethernet vom Typ "T" hat separate Drahtpaare für jede Richtung, sodass zwischen zwei Ports immer beide gleichzeitig senden und empfangen können. Ein Switch bestellt Pakete von mehreren Absendern immer in einer gültigen Sequenz und sendet sie überall dort, wo er sie senden möchte, es sei denn, sie sind tatsächlich überlastet (was in einer Heimnetzwerksituation unwahrscheinlich ist).

Der Vollständigkeit halber verwendeten bestimmte andere (heutzutage selten verwendete) nicht-Ethernet-LAN-Systeme (z. B. Token Ring, FDDI) unterschiedliche Methoden, um den Medienzugriff zu disziplinieren. In einigen Fällen wurde das Sendeprivileg positiv ausgehandelt, bevor jemand eine Nutzlast übertragen konnte.

WIFI muss sich auch mit einem Problem mit gemeinsam genutzten Medien befassen und auch mit der Tatsache, dass zwei in Konflikt stehende Sender für verschiedene Empfänger unterschiedliche Sichtbarkeit haben können. Ein Algorithmus namens CSMA / CA wird verwendet, um dies zu beheben.

Rackandboneman
quelle
1

In einem 10-Mbit / s-Netzwerk dauert die Übertragung eines Pakets in voller Größe etwa 1 ms. Die meisten Spielpakete sind viel kleiner, also nein, Sie bemerken diese Latenz nicht und können ziemlich leicht Hunderte von Updates pro Sekunde erhalten. Die große Verzögerung kommt aus einer Entfernung von mindestens 18 ms pro 1000 Meilen. Dies ist die Lichtquelle und kann nicht vermieden werden. Andere Pakete auf dem Draht können diese Latenz erhöhen - das nennt man Jitter.

Fred Phillips
quelle
1
" Andere Pakete auf dem Draht können zu dieser Latenzzeit beitragen - das nennt man Jitter. " Tatsächlich ist Jitter eine sich ändernde Latenzzeit. Ich denke, Sie meinen Stau, was eine der Ursachen für Jitter ist. Echtzeitprotokolle, z. B. VoIP, können häufig mit einer relativ großen Latenz gut funktionieren, aber eine sich ständig ändernde Latenz (Jitter) führt zu schwerwiegenden Problemen.
Ron Maupin
Gehen Sie niemals davon aus, dass Bandbreite und Latenz miteinander zusammenhängen müssen. Ein LKW voller Festplatten hat eine große Bandbreite, aber auch eine große Latenz. Die Latenz ist ungefähr, wenn das erste Bit ankommt, die Bandbreite ist ungefähr, wie schnell die nächsten Bits nach dem ersten kommen.
Allo
1

In jedem Videospiel gibt es immer eine Verzögerung zwischen der Zeit, zu der ein Spieler Eingaben anbietet (Drücken einer Taste, Bewegen eines Joysticks usw.) und der Reaktion darauf. Es gibt sogar eine spürbare Verzögerung zwischen dem Erkennen einer Steuerungsänderung durch den Computer und dieser Änderung, die im nächsten Bild auf dem Bildschirm * angezeigt wird. Aus diesem Grund reduzieren einige Spieler die Grafikeinstellungen (wodurch das Spiel weniger hübsch wird), um 60 FPS beizubehalten.

Netzwerke werden diese Verzögerung aus verschiedenen Gründen ebenfalls einführen. Einer davon ist, dass Spieler nicht zwei Nachrichten gleichzeitig empfangen können. Wenn zwei andere Computer gleichzeitig versuchen, eine Nachricht zu senden, wird entweder einer zurückgesetzt und der andere zuerst losgelassen (auf einem gemeinsam genutzten Übertragungsmedium wie WiFi), oder ein Switch empfängt beide gleichzeitig, sendet jedoch eine vor dem andere zum Ziel (modernes kabelgebundenes Ethernet).

Die Verzögerungen in einem LAN sind jedoch gering und werden durch die Verzögerung (zehn- oder sogar hundertfach größer), die beim Spielen über das Internet entsteht, in den Schatten gestellt.

Wie kann das funktionieren? In der Regel modellieren Spiele den anderen Spieler und sagen die zukünftige Bewegung basierend auf der aktuellen Bewegung voraus, sodass Sie sehen, dass er sich reibungslos in eine bestimmte Richtung bewegt, auch wenn Ihr Computer nicht immer sofort darüber informiert wird, wo er sich wirklich befindet. (Der Code, der dies tut, wird oft als Netcode bezeichnet .) Aus diesem Grund springen Spieler manchmal plötzlich von einem Ort zum anderen. Die Vorhersage stimmte nicht mit dem überein, was wirklich geschah, häufig aufgrund einer Netzwerkverzögerung.


* Dies wird normalerweise nicht als "Ich habe eine Verzögerung gesehen", sondern als "die Steuerung fühlt sich träge an" oder ähnlich empfunden.

cjs
quelle
1
Ganz zu schweigen von der Verzögerung zwischen "etwas ändert sich auf dem Bildschirm", "Sie bemerken, dass sich etwas auf dem Bildschirm ändert", "Sie planen eine Reaktionsaktion" und "Sie bewegen tatsächlich Ihre Hand / Ihren Finger". Alle großen Tiere benötigen eine ziemlich anständige Verzögerungskompensationsschaltung, um überhaupt die Chance zu haben, irgendetwas in der realen Welt zu tun. Das Verstecken von Latenzen ist bei Tieren genauso wichtig wie im Netcode von Spielen - und Neuronen übertragen viel langsamer als Kupferkabel. Die schnellsten gesunden Neuronen übertragen mit etwa 120 m / s. Selbst bei viel längeren Kabeln ist die Latenz weitaus höher als in einem typischen LAN.
Luaan