1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/344453111-java-Kcp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:39 cf43010

KCP на основе Netty с реализацией FEC

KCP — это основанный на UDP быстрый и надёжный протокол (rudp), который позволяет достичь снижения средней задержки на 30–40% при затратах пропускной способности на 10–20% больше, чем TCP, а также снизить максимальную задержку в три раза.

Maven адрес:

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

Использование:

  1. Пример сервера.
  2. Пример клиента.
  3. Лучшие практики.
  4. Большое количество материалов.
  5. Совместимость с C# — серверная часть Java (пример), клиентская часть C# (пример).
  6. Проблемы, с которыми сталкивались.
  7. Результаты тестирования производительности.
  8. Совместимость с KCP-Go, включая FEC.

Совместимость:

  1. Совместимость с версией C KCP.
  2. Реализация FEC на основе https://github.com/Backblaze/JavaReedSolomon.
  3. Идеальная совместимость с версией C#, https://github.com/l42111996/csharp-kcp, для быстрой разработки сетевых библиотек для игр.

Стабильность: Это стабильная версия, по статистике есть 5–10 проектов, которые используют её, включая продукты таких компаний, как Tencent и Kuai Shou.

Оптимизация:

  1. На основе событийного управления, эффективно использует многоядерность.
  2. Оптимизирована логика fastack, снижен поток на 10%.
  3. Оптимизированна функция check.
  4. Оптимизированы итераторы коллекций.
  5. Включает FEC, что снижает задержку.
  6. Добавлена проверка CRC32.
  7. Используется колесо времени, оптимизирующее использование большого количества соединений CPU.
  8. Используются directbuf и пул объектов, без давления GC.
  9. Увеличена эффективность использования conv или ip+port для определения уникальности канала, рекомендуется использовать conv с конфигурацией tcp для игр, дополнительные материалы.
  10. Увеличено использование в играх, 4G переключение на Wi-Fi и другие выходы не приводят к разрыву соединения.

Дополнительные материалы:

  1. https://github.com/skywind3000/kcp — оригинальная версия KCP на C.
  2. https://github.com/xtaci/kcp-go — версия KCP на Go, имеет множество оптимизаций.
  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, основанная на Netty.
  7. https://github.com/l42111996/csharp-kcp — C# версия KCP, основанная на dotNetty, идеально совместима.

Контакты: QQ:526167774

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/344453111-java-Kcp.git
git@api.gitlife.ru:oschina-mirror/344453111-java-Kcp.git
oschina-mirror
344453111-java-Kcp
344453111-java-Kcp
master