Pas pas katër vjet zhvillimi, kompania Valve publikoi versionin 1.5.0 të bibliotekës GameNetworkingSockets me një implementim të sistemit të transmetimit të mesazheve mbi UDP, i cili mund të përdoret për të organizuar shkëmbimin e dhënash me shpejtësi të lartë dhe të besueshëm në lojëra. Kodi është shkruar në gjuhën C++ dhe shpërndahet nën licencën BSD.
GameNetworkingSockets implementon mbi UDP një protokoll të ngjashëm me TCP, që siguron krijimin e lidhjeve, por i orientuar drejt transmetimit të mesazheve në vend të rrjedhave. Nëpërmjet kanalit të lidhur, mesazhet mund të transmetohen si në mënyrë të garantuar, ashtu edhe duke përdorur një mod të shpejtë të transmetimit të pasigurt.
Protokolli mbështet funksione të tilla si përpunimi i fragmenteve, ripaketimi i paketave, parashikimi dhe kufizimi i bandwidhtit, krijimi i kanaleve të komunikimit P2P, kalimi i translators adresash (nëpërmjet WebRTC ICE) dhe enkriptimi. Të dhënat në paketat shifrohen duke përdorur algoritmin e enkriptimit me bllok, AES, dhe për shkëmbimin e çelëseve dhe verifikimin e certifikatave aplikohet nënshkrimi digjital mbi bazën e kurbave eliptike Ed25519. Mekanizmat për shpërndarjen e çelëseve dhe zgjedhjen e vektorit të inicializimit për secilën paketë janë të bazuara në metodat e aplikuara në protokollin QUIC.
Ndër ndryshimet në versionin e ri:
- API ISteamNetworkingSockets::SendMessages është zgjeruar për të lehtësuar trajtimin e dështimeve gjatë dërgimit dhe iniciimin e përsëritjes së dërgimit.
- Janë shtuar cilësime të reja për ECN, jitter, përcaktimin e IP-së lokale (IPLocalHost) dhe çaktivizimin e autentifikimit (AllowWithoutAuth).
- Janë shtuar një variant API ISteamNetworkingMessages për gjuhën C.
- ĂshtĂ« zbatuar njĂ« version fillestar i lidhjes pĂ«r gjuhĂ«n Rust.
- Janë rregulluar gabimet në implementimin e modit P2P.
- ĂshtĂ« zbatuar korrigjimi automatik i situatave tĂ« lidhura me shkeljen e rendit tĂ« ardhjes sĂ« paketave dhe mesazheve.
- ĂshtĂ« pĂ«rmirĂ«suar integrimi me mjete si CMake dhe vcpkg.
- Eshte arritur përputhshmëria me versionet e reja të bibliotekave protobuf dhe abseil.
- Shtuar mbështetje për diagnostikimin përmes ETW (Event Tracing for Windows).
- Rregulluar dobësitë, informacioni për të cilat nuk saktësohet, por sipas logut të ndryshimeve, flitet për mbushje të plotë të numrave në funksionet e dërgimit të paketeve dhe mundësinë e kalimit të verifikimit të certifikatës në funksionin CheckCertPOPID.
Burimi: opennet.ru
