Valve a publicat biblioteca de rețea GameNetworkingSockets 1.5.0

După patru ani de dezvoltare, compania Valve a lansat versiunea 1.5.0 a bibliotecii GameNetworkingSockets, care include o implementare a sistemului de transmitere a mesajelor peste UDP, ce poate fi utilizat pentru a organiza un schimb de date rapid și fiabil în jocuri. Codul este scris în limba C++ și este furnizat sub licența BSD.

GameNetworkingSockets implementează un protocol similar cu TCP peste UDP, care oferă stabilirea unei conexiuni, dar este orientat pe transmiterea mesajelor în loc de fluxuri. Prin canalul de comunicare stabilit, mesajele pot fi transmise atât în modul de livrare garantată, cât și utilizând un mod mai rapid de livrare nesigură.

Protocolul suportă funcționalități precum gestionarea fragmentării, reasamblarea pachetelor, prognoza și limitarea lățimii de bandă, crearea de canale de comunicare P2P, ocolirea traductoarelor de adrese (prin WebRTC ICE) și criptarea. Datele din pachete sunt criptate folosind algoritmul de criptare simetrică AES, iar pentru schimbul de chei și validarea certificatelor sunt utilizate semnături digitale bazate pe curbe eliptice Ed25519. Mecanismele de livrare a cheilor și alegerea vectorului de inițializare pentru fiecare pachet se bazează pe metodele utilizate în protocolul QUIC.

Printre modificările din noua versiune:

  • API-ul ISteamNetworkingSockets::SendMessages a fost extins pentru a simplifica gestionarea erorilor în timpul trimiterii și inițierea tentativelor de retransmisie.
  • Au fost adăugate noi setări pentru ECN, jitter, determinarea IP-ului local (IPLocalHost) și dezactivarea autentificării (AllowWithoutAuth).
  • A fost adăugat un variant API ISteamNetworkingMessages pentru limbajul C.
  • A fost implementată o versiune inițială a legăturii pentru limbajul Rust.
  • Au fost corectate erorile în implementarea modului P2P.
  • A fost implementată ajustarea automată a situațiilor legate de ordinea de sosire a pachetelor și mesajelor.
  • A fost îmbunătățită integrarea cu instrumentele CMake și vcpkg.
  • A fost asigurată compatibilitatea cu noile versiuni ale bibliotecilor protobuf și abseil.
  • A fost adăugat suport pentru diagnosticare prin ETW (Event Tracing for Windows).
  • Au fost eliminate vulnerabilitățile, informațiile despre acestea nu sunt detaliate, dar din jurnalul de modificări se referă la o depășire a întregului în funcțiile de trimitere a pachetelor și posibilitatea de a ocoli verificarea certificatului în funcția CheckCertPOPID.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster