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.
<dependency>
<groupId>com.github.l42111996</groupId>
<artifactId>kcp-base</artifactId>
<version>1.6</version>
</dependency>
- Compatible with c version of kcp
- fec implementation based on https://github.com/Backblaze/JavaReedSolomon
- Perfectly compatible C# version, https://github.com/l42111996/csharp-kcp, quickly build the network library before the game
- Based on event-driven, make full use of multi-core
- Optimize fastack logic and reduce traffic by 10%
- Optimize the check function.
- Optimize collection iterators.
- Include fec to reduce latency
- With crc32 check
- Use the time wheel to optimize the CPU usage of a large number of connections
- Use directbuf and object pool, no gc pressure
- 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
- Changes in export ip such as 4G switching wifi when adding games will not cause disconnection
- Server-side example
- Client Example
- Best Practices
- A lot of information
- Compatible with C #, java server, c #Client
- Encountered problems
- Performance test results
- Compatible with kcp-go, including fec compatible
- Single connection endless loop sending and receiving packet memory detection, performance test Configuration: mbp 2.3 GHz Intel Core i9 16GRam Single connection with fec 5W / s qps Single connection without fec 9W / s qps
- Java server and c # client compatibility test
- 3000 connections remain using single core 30% cpu
- fec combined with directbuffer detection for the best CPU performance plan
- A large number of clients continue to connect, disconnect, send messages, and troubleshoot memory leaks
- RTT stability test under high concurrent carbonization
- https://github.com/skywind3000/kcp The original ccp version of kcp
- https://github.com/xtaci/kcp-go go version kcp, with a lot of optimization
- https://github.com/Backblaze/JavaReedSolomon java version fec
- https://github.com/LMAX-Exchange/disruptor High-performance inter-thread messaging library
- https://github.com/JCTools/JCTools efficient concurrent library
- https://github.com/szhnet/kcp-netty A kcp for java version
- https://github.com/l42111996/csharp-kcp C# version of kcp based on dotNetty, perfectly compatible
QQ: 526167774