java-Kcp
英語の README
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 プレッシャーなし
- チャネルの一意性を決定するために 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 versionfec
- 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