java-Kcp
LÉAME en inglés
kcp implementado según la versión netty (incluida la implementación de la función fec)
KCP es un protocolo rápido y confiable (rudp) basado en UDP. Puede reducir el retraso promedio entre un 30% y un 40% y reducir el retraso máximo tres veces a costa de desperdiciar entre un 10% y un 20% de ancho de banda que TCP.
dirección experta:
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
Métodos y parámetros de uso.
- Ejemplo del lado del servidor
- Instancia de cliente
- mejores practicas
- Mucha información
- Compatible con c#, servidor java, cliente c#
- Problemas encontrados
- Resultados de las pruebas de rendimiento
- Compatible con kcp-go, incluida la compatibilidad con fec
compatibilidad:
- Compatible con la versión c kcp
- fec se implementa en base a https://github.com/Backblaze/JavaReedSolomon
- Versión C# perfectamente compatible, https://github.com/l42111996/csharp-kcp, para crear rápidamente bibliotecas de red de front-end y back-end de juegos.
estabilidad:
Ya es una versión estable. Según las estadísticas, se ha accedido a entre 5 y 10 proyectos en línea, incluidos productos de Tencent, Kuaishou y otras empresas.
mejoramiento:
- Impulsado por eventos, aprovechando al máximo el multinúcleo
- Optimice la lógica fastack y reduzca el tráfico en un 10%
- Optimice la función de verificación.
- Optimice los iteradores de colección.
- Contiene fec para reducir la latencia.
- Viene con cheque crc32
- Utilice la rueda del tiempo para optimizar el uso de la CPU de una gran cantidad de conexiones
- Utilice directbuf y grupo de objetos, sin presión de gc
- Se agregó el uso de conv o ip+port para determinar la unicidad del canal. El juego recomienda usar la configuración conv y tcp.
- Al aumentar el uso del juego, el cambio de 4G a wifi y otros cambios de IP de exportación no provocarán que se desconecte la conexión.
Información relacionada
- https://github.com/skywind3000/kcp Versión c original de kcp
- https://github.com/xtaci/kcp-go go versión kcp, con muchas optimizaciones
- https://github.com/Backblaze/JavaReedSolomon versión javafec
- https://github.com/LMAX-Exchange/disruptor Biblioteca de mensajería entre subprocesos de alto rendimiento
- https://github.com/JCTools/JCTools Biblioteca de concurrencia de alto rendimiento
- https://github.com/szhnet/kcp-netty versión java de un kcp
- https://github.com/l42111996/csharp-kcp Versión C# kcp basada en dotNetty, perfectamente compatible
comunicar
QQ:526167774