Added
Link Here
|
1 |
GameNetworkingSockets is a basic transport layer for games. The features are: |
2 |
|
3 |
- Connection-oriented API (like TCP) |
4 |
|
5 |
- ... but message-oriented (like UDP), not stream-oriented. |
6 |
|
7 |
- Supports both reliable and unreliable message types |
8 |
|
9 |
- Messages can be larger than underlying MTU. The protocol performs |
10 |
fragmentation, reassembly, and retransmission for reliable messages. |
11 |
|
12 |
- A reliability layer significantly more sophisticated than a basic |
13 |
TCP-style sliding window. It is based on the "ack vector" model |
14 |
from DCCP (RFC 4340, section 11.4) and Google QUIC and discussed |
15 |
in the context of games by Glenn Fiedler. The basic idea is for the |
16 |
receiver to efficiently communicate to the sender the status of |
17 |
every packet number (whether or not a packet was received with that |
18 |
number). By remembering which segments were sent in each packet, |
19 |
the sender can deduce which segments need to be retransmitted. |
20 |
|
21 |
- Encryption. AES-GCM-256 per packet, Curve25519 for key exchange |
22 |
and cert signatures. The details for shared key derivation and |
23 |
per-packet IV are based on the design used by Google's QUIC |
24 |
protocol. Tools for simulating packet latency/loss, and detailed |
25 |
stats measurement IPv6 support Peer-to-peer networking: |
26 |
|
27 |
WWW: https://github.com/ValveSoftware/GameNetworkingSockets |