java-Kcp
README en anglais
kcp implémenté sur la base de la version netty (y compris l'implémentation de la fonction fec)
KCP est un protocole rapide et fiable (rudp) basé sur UDP. Il peut réduire le délai moyen de 30 à 40 % et réduire le délai maximum de trois fois au prix d'un gaspillage de 10 à 20 % de bande passante par rapport à TCP.
adresse maven :
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
Méthodes et paramètres d'utilisation
- Exemple côté serveur
- Instance client
- meilleures pratiques
- Beaucoup d'informations
- Compatible avec c#, serveur java, client c#
- Problèmes rencontrés
- Résultats des tests de performances
- Compatible avec kcp-go, y compris la compatibilité fec
compatibilité:
- Compatible avec la version C KCP
- fec est implémenté sur la base de https://github.com/Backblaze/JavaReedSolomon
- Version C# parfaitement compatible, https://github.com/l42111996/csharp-kcp, pour créer rapidement des bibliothèques réseau front-end et back-end de jeux
stabilité:
Il s'agit déjà d'une version stable. Selon les statistiques, 5 à 10 projets en ligne ont été consultés, dont des produits de Tencent, Kuaishou et d'autres sociétés.
optimisation:
- Piloté par les événements, tirant pleinement parti du multicœur
- Optimisez la logique fastack et réduisez le trafic de 10 %
- Optimisez la fonction de contrôle.
- Optimisez les itérateurs de collection.
- Contient des fec pour réduire la latence
- Livré avec le chèque crc32
- Utilisez la roue du temps pour optimiser l'utilisation du processeur d'un grand nombre de connexions
- Utilisez Directbuf et le pool d'objets, pas de pression GC
- Ajout de l'utilisation de conv ou ip+port pour déterminer l'unicité du canal. Le jeu recommande d'utiliser la configuration conv et tcp.
- Lors de l'augmentation de l'utilisation du jeu, le passage de la 4G au wifi et d'autres modifications IP d'exportation n'entraîneront pas la déconnexion de la connexion.
Informations associées
- https://github.com/skywind3000/kcp Version c originale de kcp
- https://github.com/xtaci/kcp-go go version kcp, avec beaucoup d'optimisations
- https://github.com/Backblaze/JavaReedSolomon version javafec
- https://github.com/LMAX-Exchange/disruptor Bibliothèque de messagerie inter-thread hautes performances
- https://github.com/JCTools/JCTools Bibliothèque de concurrence hautes performances
- https://github.com/szhnet/kcp-netty version java d'un kcp
- https://github.com/l42111996/csharp-kcp Version C# kcp basée sur dotNetty, parfaitement compatible
communiquer
QQ:526167774