Efter fire års udvikling har Valve offentliggjort udgivelsen af GameNetworkingSockets 1.5.0-biblioteket, som implementerer en meddelelsesoverførselsprotokol over UDP, der kan bruges til at organisere højhastigheds- og pålidelig netværksudveksling af data i spil. Koden er skrevet i C++ og leveres under BSD-licensen.
GameNetworkingSockets implementerer en protokol over UDP, der minder om TCP, som muliggør oprettelse af en forbindelse, men er rettet mod overførsel af meddelelser i stedet for strømme. Gennem den etablerede forbindelseskanal kan meddelelser overføres både i en garanteret leverings-tilstand og ved hjælp af en hurtigere usikker overførselsmetode.
Protokollen understøtter funktioner som håndtering af fragmentering, genopbygning af pakker, båndbreddeprognose og -begrænsning, oprettelse af P2P-forbindelseskanaler, omgåelse af adresseoversættere (via WebRTC ICE) og kryptering. Data i pakker krypteres ved hjælp af AES-blokkrypteringsalgoritmen, og digitale signaturer baseret på elliptiske kurver Ed25519 anvendes til nøgleudveksling og verifikation af certifikater. Nøgleleveringsmekanismer og valg af initialiseringsvektor for hver pakke er baseret på metoder anvendt i QUIC-protokollen.
Blandt ændringerne i den nye version:
- API'en ISteamNetworkingSockets::SendMessages er blevet udvidet for at forenkle håndteringen af fejl ved afsending og initiere genforsøg på leveringer.
- Der er tilføjet nye indstillinger for ECN, jitter, bestemmelse af lokal IP (IPLocalHost) og deaktivering af autentifikation (AllowWithoutAuth).
- En variant af API'en ISteamNetworkingMessages til C-sproget er blevet tilføjet.
- Den indledende version af bindingen til Rust-sproget er blevet implementeret.
- Fejl i implementeringen af P2P-tilstand er blevet rettet.
- Automatisk justering af situationer relateret til uorden i ankomsten af pakker og meddelelser er blevet gennemført.
- Integration med værktøjer som CMake og vcpkg er blevet forbedret.
- Kompatibiliteten med nye versioner af protobuf- og abseil-bibliotekerne er blevet etableret.
- Der er tilføjet støtte til diagnostik via ETW (Event Tracing for Windows).
- Sårbarheder er blevet rettet, oplysninger om hvilke ikke detaljeres, men ifølge ændringsloggen handler det om integer overflow i pakkeafsendelsesfunktioner og muligheden for at omgå certifikatverifikationen i funktionen CheckCertPOPID.
Kilde: opennet.ru
