java-Kcp
영어로 읽어보세요
netty 버전을 기반으로 구현된 kcp(fec 함수 구현 포함)
KCP는 UDP 기반의 빠르고 안정적인 프로토콜(rudp)로 TCP보다 10~20%의 대역폭을 낭비하는 대신 평균 지연을 30~40%, 최대 지연을 3배 줄일 수 있습니다.
메이븐 주소:
< dependency >
< groupId >com.github.l42111996</ groupId >
< artifactId >kcp-base</ artifactId >
< version >1.6</ version >
</ dependency >
사용 방법 및 매개변수
- 서버 측 예
- 클라이언트 인스턴스
- 모범 사례
- 많은 정보
- C#, Java 서버, C# 클라이언트와 호환 가능
- 발생한 문제
- 성능 테스트 결과
- fec 호환성을 포함하여 kcp-go와 호환 가능
호환성:
- C 버전 kcp와 호환 가능
- fec는 https://github.com/Backblaze/JavaReedSolomon을 기반으로 구현됩니다.
- 게임 프런트엔드 및 백엔드 네트워크 라이브러리를 빠르게 구축하기 위한 완벽하게 호환되는 C# 버전(https://github.com/l42111996/csharp-kcp)
안정:
통계에 따르면 이미 안정적인 버전이며 Tencent, Kuaishou 및 기타 회사의 제품을 포함하여 5~10개의 온라인 프로젝트에 액세스했습니다.
최적화:
- 멀티코어를 최대한 활용하는 이벤트 기반
- fastack 로직 최적화 및 트래픽 10% 감소
- 점검 기능을 최적화하십시오.
- 컬렉션 반복자를 최적화합니다.
- 대기 시간을 줄이기 위해 fec가 포함되어 있습니다.
- crc32 검사와 함께 제공
- 시간 휠을 사용하여 다수의 연결에 대한 CPU 사용량을 최적화하세요.
- directbuf 및 개체 풀 사용, gc 압력 없음
- 채널 고유성을 결정하기 위해 전환 또는 IP+포트 사용이 추가되었습니다. 게임에서는 전환 및 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 자바 버전fec
- https://github.com/LMAX-Exchange/disruptor 고성능 스레드 간 메시징 라이브러리
- https://github.com/JCTools/JCTools 고성능 동시성 라이브러리
- https://github.com/szhnet/kcp-netty kcp의 Java 버전
- https://github.com/l42111996/csharp-kcp dotNetty 기반 C# 버전 kcp, 완벽하게 호환됨
말하다
QQ:526167774