Seit dem letzten gemeinsamen Flug mit den 1st Glory Wings und den damaligen Netzwerkproblemen habe ich mich intensiv mit dem Thema BMS-Netzwerk beschäftigt. Im Zuge dieser Recherchen konnte ich viel Wissen aufbauen und ich möchte Euch nun ein paar grundlegende Erkenntnisse weitergeben.
Ich bin kein Netzwerk- oder IT-Spezialist und meine hier wiedergegebenen Erkenntnisse basieren auf anderen Falcon-Foren, Mails von anderen Server-Administratoren, Auswertungen der Server-Logs oder einfach Annahmen meinerseits. Wenn also jemand noch mehr weiss oder was entdeckt, das bei mir falsch drin steht, bin ich offen um noch mehr zum Thema dazu zu lernen.
Als erstes möchte ich kurz erklären, wie die Verbindungen bei BMS bei einem Multiplayer-Game zustande kommen.
Zuerst startet natürlich der BMS-Server und wartet auf die Verbindungen von den Klienten. Dabei hört er auf die Ports 2934 - 2937.
Die Klienten verbinden sich dann über einen dieser Ports zum Server. Sobald sich ein Klient beim Server anmeldet, überprüft der Server, welche anderen Klienten bereits angemeldet sind und schickt die Informationen dieser Klienten (IP-Adresse und Ports) an den neuen Klienten, damit dieser zu jedem dieser bereits angemeldeten Klienten eine Peer-to-Peer-Verbindung erstellen kann.
Wenn am Ende alle Player erfolgreich verbunden sind, sich also in der Lobby bzw. im CHAT-Fenster befinden, dann besteht von jedem Klienten eine Netzwerkverbindung zum Host (Stern-Architektur) und zusätzlich von jedem Klienten zu den anderen Klienten eine Verbindung (Mesh-Architektur).
Über die Verbindung Klient-Host werden alle Objekt-Daten, die der Host rechnet, ausgetauscht, also zum Beispiel KI-Flugzeuge, Bodenobjekte, Truppen, Wetterdaten etc.. Über die Mesh-Verbindungen werden nur die "eigenen" Flugzeugdaten (evtl. auch abgefeuerte Waffen usw.) übermittelt.
Es ist also nicht erstaunlich, dass wenn bei einem Klienten während des Spiels plötzlich die Verbindung abbricht, dies dann direkte Auswirkungen für die anderen Klienten hat.
Im Zuge der "Ermittlungen" bin ich öfters auf den Begriff dubious connection gestossen und ich möchte das auch kurz erklären.
Bei einer Verbindungsanfrage eines Klienten zum Server wird immer die IP-Adresse des Klienten, der Zielport des Servers und der Absenderport des Klienten übermittelt. Normalerweise liegen Zielport und Absenderport immer im Bereich von 2934 - 2937.
Es kann aber vorkommen, dass ein Klient beim Server auf dem Zielport 2934 eine Anfrage macht, der Absenderport des Klienten ist aber nicht im Bereich von 2934 - 2937. BMS lässt solche Verbindungen normalerweise zu und bezeichnet diese Verbindungen als "dubious connection", weil sie eben nicht auf den Standard-Ports stattfinden.
Es gibt drei Gründe, warum ein Klient nicht über die offiziellen Ports verbindet:
- Die Ports sind im Router nicht richtig eingestellt (falsches Mapping).
- Es gibt Router, die machen von sich aus ein falsches Mapping und leiten den ausgehenden, korrekt eingestellten BMS-Port auf einen anderen um.
- IPv6-Usern wird häufig (nicht immer) beim Übergang zu IPv4 (geschieht meist beim Internetanbieter) ein neuer Port zugeteilt.
Dubious connections sind aus Sicht Stabilität genau so gut, wie die normalen Verbindungen. BMS scheint diese Verbindungen allerdings kritisch zu beobachten und die Erfahrungen aus anderen Foren zeigen, dass zu viele dubious connections negative Auswirkungen auf das Multiplayer-Spiel haben können. Aus diesem Grunde lassen die meisten 24h-Server (Server, die rund um die Uhr Campaigns anbieten, z.B. Falcon-Online) keine dubious connections zu, weil man einfach kein Risiko eingehen möchte.
Ein weiteres Problem, welchem ich auf der Spur bin, sind Paketverluste. Das sind quasi Datenpakete, die bei der Kommunikation zwischen Klient und Server verloren gehen. Rampages Verbindungsabbrüche haben vermutlich ihren Ursprung in diesen Paketverlusten. BMS kann mit Paketverlusten bis zu einem gewissen Grad umgehen und die Logs der letzten Missionen zeigen, dass die meisten von uns während einer Mission sporadisch Paketverluste haben. Wenn aber zum Beispiel über 40 Pakete innerhalb von 5 Sekunden verloren gehen, dann steigt BMS meist aus und man endet häufig in einem CTD oder einem abrupten Verbindungsabbruch. Warum solche Paketverluste auftreten, weiss ich nicht.
Ihr seht, es gibt noch sehr viel zu entdecken bei BMS und soviel ich gehört habe, wird mit BMS 4.33 einiges im Bereich Multiplayer angepasst.
Gruss
Pitbull