java-Kcp
LEIA-ME em inglês
kcp implementado com base na versão netty (incluindo implementação da função fec)
KCP é um protocolo rápido e confiável (rudp) baseado em UDP. Ele pode reduzir o atraso médio em 30% -40% e reduzir o atraso máximo em três vezes ao custo de desperdiçar 10% -20% da largura de banda do que o TCP.
endereço do especialista:
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
Métodos e parâmetros de uso
- Exemplo do lado do servidor
- Instância do cliente
- melhores práticas
- Muita informação
- Compatível com c#, servidor java, cliente c#
- Problemas encontrados
- Resultados do teste de desempenho
- Compatível com kcp-go, incluindo compatibilidade com fec
compatibilidade:
- Compatível com versão c kcp
- fec é implementado com base em https://github.com/Backblaze/JavaReedSolomon
- Versão C# perfeitamente compatível, https://github.com/l42111996/csharp-kcp, para construir rapidamente bibliotecas de rede front-end e back-end de jogos
estabilidade:
Já é uma versão estável. Segundo as estatísticas, foram acessados de 5 a 10 projetos online, incluindo produtos da Tencent, Kuaishou e outras empresas.
otimização:
- Orientado a eventos, aproveitando ao máximo o multi-core
- Otimize a lógica fastack e reduza o tráfego em 10%
- Otimize a função de verificação.
- Otimize iteradores de coleção.
- Contém fec para reduzir a latência
- Vem com verificação crc32
- Use a roda do tempo para otimizar o uso da CPU de um grande número de conexões
- Use directbuf e pool de objetos, sem pressão GC
- Adicionado uso de conv ou ip+port para determinar a exclusividade do canal. O jogo recomenda o uso de configuração conv e tcp.
- Ao aumentar o uso do jogo, a mudança de 4G para Wi-Fi e outras alterações de IP de exportação não farão com que a conexão seja desconectada.
Informações relacionadas
- https://github.com/skywind3000/kcp Versão c original do kcp
- https://github.com/xtaci/kcp-go go versão kcp, com muitas otimizações
- https://github.com/Backblaze/JavaReedSolomon java versionfec
- https://github.com/LMAX-Exchange/disruptor Biblioteca de mensagens inter-thread de alto desempenho
- https://github.com/JCTools/JCTools Biblioteca de simultaneidade de alto desempenho
- https://github.com/szhnet/kcp-netty versão java de um kcp
- https://github.com/l42111996/csharp-kcp Versão C# kcp baseada em dotNetty, perfeitamente compatível
comunicar
PQ:526167774