java-Kcp

基于java的netty实现的可靠udp网络库(kcp算法),包含fec实现,可用于游戏,视频,加速等业务

APACHE-2.0 License

Stars
461
Committers
3

java-Kcp

Kcp based on netty version (including implementation of fec function)

KCP is a udp-based fast and reliable protocol (rudp), which can reduce the average delay by 30% -40% at the cost of wasting 10% -20% of bandwidth over TCP, and reduce the maximum delay by three times the transmission effect.

maven repository:

<dependency>
  <groupId>com.github.l42111996</groupId>
  <artifactId>kcp-base</artifactId>
  <version>1.6</version>
</dependency>

Using method and parameters

  1. Server-side example
  2. Client Example
  3. Best Practices
  4. A lot of information
  5. Compatible with C #, java server, c #Client
  6. Encountered problems
  7. Performance test results
  8. Compatible with kcp-go, including fec compatible

compatibility:

  1. Compatible with c version of kcp
  2. fec implementation based on https://github.com/Backblaze/JavaReedSolomon
  3. Perfectly compatible C# version, https://github.com/l42111996/csharp-kcp, quickly build the network library before the game

optimization:

  1. Based on event-driven, make full use of multi-core
  2. Optimize fastack logic and reduce traffic by 10%
  3. Optimize the check function.
  4. Optimize collection iterators.
  5. Include fec to reduce latency
  6. With crc32 check
  7. Use the time wheel to optimize the CPU usage of a large number of connections
  8. Use directbuf and object pool, no gc pressure
  9. Increase the use of conv or ip + port to determine the uniqueness of the channel. The game is recommended to use conv and tcp configuration. Related information
  10. Changes in export ip such as 4G switching wifi when adding games will not cause disconnection

Relevant information

  1. https://github.com/skywind3000/kcp The original ccp version of kcp
  2. https://github.com/xtaci/kcp-go go version kcp, with a lot of optimization
  3. https://github.com/Backblaze/JavaReedSolomon java version fec
  4. https://github.com/LMAX-Exchange/disruptor High-performance inter-thread messaging library
  5. https://github.com/JCTools/JCTools efficient concurrent library
  6. https://github.com/szhnet/kcp-netty A kcp for java version
  7. https://github.com/l42111996/csharp-kcp C# version of kcp based on dotNetty, perfectly compatible

communicate with

QQ: 526167774

Package Rankings
Top 16.14% on Repo1.maven.org
Badges
Extracted from project README
Powered
Related Projects