Entwickler können jetzt die Netzwerk-API von Valve für ihre Steam-Spiele verwenden

In den letzten Jahren hat Valve daran gearbeitet, die Qualität des Multiplayers in Dota 2 und CS: GO zu verbessern, indem Datenverkehr weitergeleitet und an das Netzwerk-Backbone übertragen wurde. Auf diese Weise können Sie Spiele vor DoS-Angriffen schützen, Ping reduzieren und die Qualität der Verbindung verbessern. In der Steamworks SDK-Version 1.44 hat Valve eine neue API eingeführt , die allen Steam-Partnern Zugriff auf diesen Service bietet.



Valve hat einen speziellen Beitrag veröffentlicht . Die API enthält:

  • Der Zugriff auf das Valve-Netzwerk, mit dem Spieler vor Angriffen geschützt werden können, bietet eine zuverlässige 100% ige NAT-Passage und eine verbesserte Verbindung.
  • Tools zum sofortigen Auswerten des Pings zwischen zwei beliebigen Knoten, ohne Pakete zu senden.
  • Hochwertige Verbindung über zuverlässiges UDP-Protokoll mit End-to-End-Verschlüsselung.

Ventil-Netzwerkzugriff


Valve verfügt über Relay-Knoten, die an 30 Netzwerkverbindungspunkten auf der ganzen Welt mit einer Bandbreite von mehreren Terabit bereitgestellt werden. Das Netzwerk bietet zumindest einige Vorteile.

Erstens ist die Weiterleitung von Datenverkehr anonym und schützt Spieleserver und Benutzer vor DoS-Angriffen. Da Routing-Entscheidungen vom Client dynamisch getroffen werden, kann der Client innerhalb weniger Sekunden zu einem anderen Knoten oder, falls erforderlich, zu einem anderen Verbindungspunkt wechseln, wenn der Relay-Knoten nicht mehr verfügbar ist. Ein Angreifer kann den Spielprozess nur stören, wenn sein Angriff mehrere Rechenzentren gleichzeitig überlasten kann.

Zweitens können Kunden eine Route auswählen, die sie so schnell wie möglich von einer öffentlichen Internetverbindung zu dedizierten Routen überträgt. Valve garantiert ein optimales Routing auf seinem Netzwerk-Backbone, da es mit mehr als 2.500 Internetprovidern zusammenarbeitet. Darüber hinaus hat der verzögerungsempfindliche Spielverkehr Vorrang vor dem Herunterladen von Inhalten über HTTP. Dies ist möglich, weil der Anteil des Spielverkehrs an der verwendeten Bandbreite relativ gering ist. In einem Netzwerk-Backbone wirkt sich ein plötzlicher Anstieg des Nicht-Spielverkehrs nicht auf die Spielqualität aus.

Die Kirsche auf dem Kuchen soll Ping reduzieren! Das Ventilprotokoll gibt dem Client die Möglichkeit, die Route auszuwählen, auf der die Anforderungen als Root ausgeführt werden. Der Client berücksichtigt jeden Relaisverbindungspunkt, bestimmt die Ende-zu-Ende-Verzögerung auf der Route und wählt dann die Route mit der geringsten Verzögerung aus.

Wenn Sie Kunden erlauben, eine Route zu wählen, ist ihre Verbindung überraschend oft besser als die Standardverbindung. Nach der Analyse von 16 Millionen Verbindungen eindeutiger Client-IP-Adressen zu dedizierten Servern in Valve-Rechenzentren wurden die folgenden Ergebnisse erzielt:

  • Die Ping-Zeit hat sich bei 43% der Spieler verringert.
  • Bei 25% der Spieler verringerte sich die Ping-Zeit um 10 oder mehr ms.
  • Bei 10% der Spieler verringerte sich die Ping-Zeit um 40 oder mehr ms.

Der Umfang der Verbesserungen variiert je nach Region.



Ping-Evaluierungswerkzeuge


Zu ISteamNetworkingUtils Schnittstellenfunktionen von ISteamNetworkingUtils gehören netzwerkbasierte Relay-Ping-Bewertungstools. Durch Messen der Ping-Zeit zu verschiedenen Relay-Knoten generieren wir Koordinaten, die den Standort des Hosts im Internet beschreiben. Mit diesen beiden Koordinatensätzen kann Valve die Ping-Zeit zwischen zwei beliebigen Knoten sehr genau schätzen, ohne Pakete zu senden. Diese Funktion ist äußerst nützlich, wenn Sie Spiele auswählen und einen Peer-to-Peer-Netzwerkknoten auswählen.

Open Source End-to-End-Protokoll


SteamNetworkingSockets bietet Steam-Partnern nicht nur Zugriff auf Funktionen, die auf dem Valve-Relay-Netzwerk und dem Netzwerk-Backbone basieren, sondern ist auch eine universelle Transportbibliothek für Spiele mit folgenden Funktionen:

  • Fragmentierung, Montage und Weitergabe. In Ihrem Code senden und empfangen Sie Nachrichten, die weniger oder mehr als Netzwerkpakete sein können. Um die Effizienz zu erhöhen, kombiniert das Protokoll mehrere kleine Nachrichten zu einem Paket, teilt große Nachrichten in mehrere Pakete auf, sammelt sie auf der Empfangsseite und überträgt Segmente zuverlässiger Nachrichten, die aufgrund von Paketverlust verloren gegangen sind, erneut.
  • Verschlüsselung und Authentifizierung. Sicherheit ist für ein modernes Online-Spiel kein zweitrangiges Anliegen: Sicherheitslücken können den Eindruck des Spiels zerstören. Die richtige Verschlüsselung ist eine echte Herausforderung. Valve orientierte sich an modernen Standards für zuverlässige Sendungen und wandte diese auf nicht vertrauenswürdige Nachrichten an, die von Spielen verwendet wurden. Die integrierte Verschlüsselung schützt Daten standardmäßig vor dem Abfangen. Der Schutz vor entführten Angriffen erfordert, dass ein vertrauenswürdiger Dritter Zugriff auf das Zertifikat oder das gemeinsame Geheimnis gewährt. Steam ist für seine Spiele geeignet: Damit ein Angreifer Pakete abfangen oder ändern kann, muss er sich im Spielprozess befinden, in dem das VAC-System dies erkennt.
  • Die Kernfunktionen dieser API sind auch in der Open Source-Version verfügbar. Valve möchte, dass Entwickler die API voll ausnutzen. Dies wäre ohne die Gewissheit, dass der Zugriff auf den Quellcode kostenlos ist, nicht möglich.

Das ist noch nicht alles


Dies ist das erste einer Reihe von Updates, die darauf abzielen, die Leistung von Spielen im Netzwerk für Steam-Partner zu verbessern. Bisher hat Valve nur die Arbeit von Peer-to-Peer-Netzwerken verbessert. Darüber hinaus planen sie, den Partnern Zugriff auf die Entwicklungen zu gewähren, die für ihre dedizierten Server verwendet werden.

Source: https://habr.com/ru/post/de443782/


All Articles