1 Star 0 Fork 49

cwfan / java-Kcp

forked from 请叫我淼哥哥 / java-Kcp 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

java-Kcp

Powered

基于netty版本实现的kcp(包含fec功能的实现)

KCP是一个基于udp的快速可靠协议(rudp),能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。

兼容性:

  1. 兼容c版本kcp
  2. fec基于 https://github.com/Backblaze/JavaReedSolomon 实现

优化:

  1. 基于disruptor事件驱动,充分利用多核
  2. 优化fastack逻辑,降低10%流量
  3. 优化check函数。
  4. 优化集合迭代器。
  5. 包含fec,降低延迟
  6. 附带crc32校验
  7. 使用时间轮,优化大量连接cpu占用
  8. 使用directbuf和对象池,无gc压力
  9. 增加使用conv或者ip+port确定channel唯一性,游戏建议使用conv与tcp配置使用,相关资料
  10. 增加同通道不可靠udp发送接收,游戏应用更广泛

使用方法以及参数

  1. server端示例
  2. client端实例
  3. 最佳实践
  4. 大量资料
  5. 兼容C#端,java服务端 , c#客户端
  6. 遇到过的问题
  7. 性能测试结果

已完成测试

  1. 单连接死循环收发包内存检测,性能测试
    配置:mbp 2.3 GHz Intel Core i9 16GRam 单连接 带fec 5W/s qps 单连接 不带fec 9W/s qps
  2. java服务端与c#客户端兼容测试
  3. 3000连接保持使用单核30%cpu
  4. fec结合directbuffer检测对应cpu最佳性能方案

TODO

1,高并发吞吐量下,rtt稳定性测试

相关资料

  1. https://github.com/skywind3000/kcp 原版c版本的kcp
  2. https://github.com/xtaci/kcp-go go版本kcp,有大量优化
  3. https://github.com/Backblaze/JavaReedSolomon java版本fec
  4. https://github.com/LMAX-Exchange/disruptor 高性能的线程间消息传递库
  5. https://github.com/JCTools/JCTools 高性能并发库
  6. https://github.com/szhnet/kcp-netty java版本的一个kcp

#交流

QQ:526167774

空文件

简介

Java implementation of KCP based on Netty(include fec implement) 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/weifengfanyang/java-Kcp.git
git@gitee.com:weifengfanyang/java-Kcp.git
weifengfanyang
java-Kcp
java-Kcp
master

搜索帮助

14c37bed 8189591 565d56ea 8189591