Pas disa vjet zhvillimi, kompania Valve publikoi versionin e bibliotekës GameNetworkingSockets 1.5.0 me implementimin e sistemit të transmetimit të mesazheve mbi UDP, i cili mund të përdoret për të mundësuar shkëmbim të shpejtë dhe të besueshëm të të dhënave në lojra. Kodi është shkruar në gjuhën C++ dhe ofrohet nën licencën BSD.
GameNetworkingSockets implementon një protokoll të ngjashëm me TCP mbi UDP, që siguron lidhjen, por i orientuar drejt transmetimit të mesazheve në vend të flukseve. Përmes kanalit të vendosur, mesazhet mund të transmetohen si në modin e dorëzimit të garantuar, ashtu edhe duke përdorur një mod më të shpejtë të transmetimit të pasigurt.
Protokolli mbështet funksionalitete si procesimin e fragmenteve, rimekatarjen e pakove, parashikimin dhe kufizimin e kapacitetit, krijimin e kanaleve P2P të lidhjes, anashkalimin e përkthyesve të adresave (përmes WebRTC ICE) dhe enkriptimin. Të dhënat në paketa enkriptohen duke përdorur algoritmin e enkriptimit me bllok AES, ndërsa për shkëmbimin e çelësave dhe verifikimin e certifikatave përdoren nënshkrime dixhitale të bazuara në kurbat eliptike Ed25519. Mekanizmat e dorëzimit të çelësave dhe zgjedhjes së vektorit të inicializimit për çdo paketë bazohen në metoda të përdorura në protokollin QUIC.
Ndër ndryshimet në versionin e ri:
- API ISteamNetworkingSockets::SendMessages është zgjeruar për të thjeshtuar trajtimin e dështimeve gjatë dërgimit dhe fillimin e përpjekjeve të përsëritura të dorëzimit.
- Shtohen cilësime të reja për ECN, jitter, përcaktimin e IP lokale (IPLocalHost) dhe çaktivizimin e autentifikimit (AllowWithoutAuth).
- Shtohet një variant API ISteamNetworkingMessages për gjuhën C.
- Implementohet një version fillestar i mbështetjes për gjuhën Rust.
- Korrigjohen gabimet në implementimin e modit P2P.
- Implementohet rregullimi automatik i situatave që lidhen me shkeljen e rendit të ardhjes së pakove dhe mesazheve.
- Përmirësohet integrimi me mjetet CMake dhe vcpkg.
- Rregullohet përputhshmëria me versionet e reja të bibliotekave protobuf dhe abseil.
- Shtohet mbështetje për diagnostikimin përmes ETW (Event Tracing for Windows).
- Eliminohen vulnerabilitetet, informacioni për të cilat nuk jepet në detaje, por sipas logëve të ndryshimeve, bëhet fjalë për mbushje të numrave në funksionet e dërgimit të pakove dhe mundësinë e anashkalimit të verifikimit të certifikatave në funksionin CheckCertPOPID.
Burimi: opennet.ru
