Java-Kcp
README на английском языке
kcp реализован на основе версии netty (включая реализацию функции fec)
KCP — это быстрый и надежный протокол (rudp), основанный на UDP. Он может уменьшить среднюю задержку на 30–40 % и уменьшить максимальную задержку в три раза за счет потери 10–20 % пропускной способности, чем TCP.
адрес мавена:
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
Методы и параметры использования
- Пример на стороне сервера
- Экземпляр клиента
- лучшие практики
- Много информации
- Совместимость с C#, Java-сервером, C#-клиентом.
- Возникшие проблемы
- Результаты теста производительности
- Совместимость с kcp-go, включая совместимость с fec.
совместимость:
- Совместимость с версией c kcp
- fec реализован на основе https://github.com/Backblaze/JavaReedSolomon.
- Идеально совместимая версия C#, https://github.com/l42111996/csharp-kcp, для быстрого создания интерфейсных и серверных сетевых библиотек игры.
стабильность:
Это уже стабильная версия. По статистике, было доступно от 5 до 10 онлайн-проектов, включая продукты Tencent, Kuaishou и других компаний.
оптимизация:
- Управляемый событиями, используя все преимущества многоядерности
- Оптимизируйте логику fastack и сократите трафик на 10 %
- Оптимизируйте функцию проверки.
- Оптимизируйте итераторы коллекций.
- Содержит fec для уменьшения задержки
- Поставляется с проверкой crc32.
- Используйте колесо времени, чтобы оптимизировать загрузку ЦП при большом количестве подключений.
- Используйте Directbuf и пул объектов, без давления gc
- Добавлено использование conv или ip+port для определения уникальности канала. Игра рекомендует использовать конфигурацию conv и TCP.
- При увеличении использования игры переключение 4G на Wi-Fi и другие изменения экспортного IP-адреса не приведут к отключению соединения.
Сопутствующая информация
- https://github.com/skywind3000/kcp Оригинальная версия kcp c.
- https://github.com/xtaci/kcp-go go версия kcp с множеством оптимизаций
- https://github.com/Backblaze/JavaReedSolomon версия Java Fec
- https://github.com/LMAX-Exchange/disruptor Высокопроизводительная библиотека межпоточного обмена сообщениями.
- https://github.com/JCTools/JCTools Высокопроизводительная библиотека параллелизма.
- https://github.com/szhnet/kcp-netty Java-версия kcp
- https://github.com/l42111996/csharp-kcp Версия C# kcp на основе dotNetty, идеально совместима
общаться
Вопрос: 526167774