Les fonctionnalités fournies par la bibliothèque sont les suivantes :
- une API orientée connexion (comme TCP) ;
- mais reposant sur le concept de message (comme UDP) et non orienté flux ;
- support des messages fiables et non fiables ;
- les messages peuvent être plus grands que la MTU. Le protocole gère la fragmentation, le réassemblage et la retransmission lors de l'utilisation des messages fiables ;
- estimation de la bande passante reposant sur le contrôle du taux d'échange (RFC 5348) ;
- chiffrement. AES par paquet. Ed25519 pour l'échange des clés et des signatures des certificats ;
- outils pour simuler la perte de paquets et obtenir des statistiques.
Par contre, la bibliothèque ne gère pas la compression, la sérialisation haut niveau des entités, l'encodage du delta et ne gère pas le NAT percing.
Valve travaille toujours dessus comme vous pouvez le constater en lisant le README.
Si vous n'avez pas compris certains termes/principes énoncés dans ce billet, je vous invite à lire :
- Fragmentation et réassemblage des paquets (et les autres articles de la série) (une référence sur Internet) ;
- le cours de programmation réseau de Bousk.