logo
NetworkKCP

KCP协议

KCP是一个快速可靠协议,其核心特点为

  1. 低延迟设计

    1. KCP比TCP快30%到40%

    2. 专门为降低延迟而设计,牺牲部分带宽来换取更低的延迟

  2. ARQ机制

    1. 选择性重传而非全部重传

    2. 快速重传机制

    3. 超时重传时间动态调整

其主要优化策略

  1. RTP不翻倍

    1. TCP在丢包时RTO会翻倍增长

    2. KCP的RTO不会翻倍,能更快检测到丢包

  2. 选择性重传

    1. TCP丢包时可能重传所有的后续包

    2. KCP只重传真正丢失的数据包

  3. 快速重传

    1. 跳过等待超时,通过ACK机制快速判断丢包

    2. 可配置触发快速重传的重复ACK次数

  4. 延迟ACK可选

    1. TCP为了减少ACK数量会延迟发送

    2. KCP可配置为立即发送ACK,减少延迟

  5. UNA更新更频繁

    1. 更积极地通知对方哪些包收到

    2. 减少不必要的重传

工作模式

KCP提供不同的工作模式配置:

  • 普通模式:默认配置

  • 快速模式:最小化延迟

  • 流模式:类似TCP的流式传输

底层传输

KCP本身不负责底层数据传输,需要配合:

  • UDP协议

  • 其他不可靠传输层