目录

KCP1

1.0 KCP基础理解

KCP 与TCP,UDP的差异,适合的场景

特性 TCP UDP KCP
传输层类型 面向连接,可靠传输 无连接,不可靠传输 基于UDP协议的可靠传输
可靠性 強(丟包重传, 保序) 不可靠传输(不保证到达,不保序) 强(类似于TCP,但是重传更激进)
连接方式 三次握手 无连接 无连接 基于会话ID conv
传输速度 慢(受拥塞控制,延迟ACK限制) 快(无确认,无重传) 快(牺牲带宽换速度,延迟更低)
拥塞控制 严格(AIMD,慢启动) 可选(默认无)
Header大小 大(20-60字节) 小(8字节) 中(24-28字节)
  • KCP 适合对于实时性要求较高的场景,比如实时音频,语音,游戏等。

KCP 与TCP 可靠性区别

  1. KCP
    1. 快速重传。收到重复ACK 3(可配置次数)次,立即重传。
    2. 选择性确认(SACK):仅重传丢失的包,避免冗余传输。
    3. 低延迟。默认interva 10ms (TCP的RTO通常200ms)
  2. TCP
    1. 超时重传(RTO),累计确认(ACK),滑动窗口。

KCP与 TCP 拥塞控制区别

  1. TCP

    1. 遵守AIMD策略(加性增,乘性减)策略,网络拥塞时大幅降低发送频率。
  2. KCP

    1. 默认无拥塞控制。可以用户实现(cwnd和ssthresh参数)
    2. 灵活性:适合需要高吞吐但可容忍一定丢包的场景(如实时游戏)。
  3. TCP 如何实现拥塞控制?(细节)

  • 机制掌握
  1. 手动推导KCP 在特定网络环境下的行为
  2. 解释关键参数对性能的影响
  • 实践
  1. 使用KCP库完成简单的数据传输Demo
  2. 通过Wireshark分析KCP会话,识别数据包、ACK、窗口更新等流程
  3. 根据模拟环境(如TC工具制造延迟/丢包)调优参数,提升传输效率