协议/技术 | 层级 | 基础协议 | 主要用途 |
---|---|---|---|
TCP | 传输层 | 无 | 可靠传输 |
KCP | 传输层 | 基于UDP封装 | 低延迟可靠传输 |
WS | 应用层 | HTTP Upgrade | 双向实时通信 |
HTTPUpgrade | 应用层 | HTTP | 协议升级(如升级到WS) |
H2 (HTTP/2) | 应用层 | TCP | 高效HTTP协议 |
QUIC | 传输层/应用层 | UDP | 下一代低延迟可靠传输 |
gRPC | 应用层 | HTTP/2 或 HTTP/3 | 高性能RPC框架 |
协议 | 可靠性 | 延迟优化 | 拥塞控制 | 适用场景示例 |
---|---|---|---|---|
TCP | 高 | 一般 | 标准算法 | 文件传输、Web请求 |
KCP | 高 | 优秀 | 激进优化 | 实时游戏、直播推流 |
WS | 依赖TCP | 一般 | 依赖TCP | 实时聊天、在线协作 |
H2 | 高 | 较好 | 依赖TCP | API请求、静态资源加载 |
QUIC | 高 | 优秀 | 内置优化 | 移动网络、弱网环境 |
gRPC | 高 | 较好 | 依赖底层协议 | 微服务通信、跨语言RPC |
• KCP:通过快速重传和选择性确认(ARQ)降低延迟,牺牲部分带宽效率换取速度。 • QUIC:基于UDP,解决TCP队头阻塞问题,支持0-RTT连接,适合高抖动网络。 • H2:多路复用、头部压缩提升效率,但依赖TCP的可靠性。 • gRPC:基于HTTP/2的多路复用和流式通信,支持双向流(如gRPC-Web)。
• WS 和 HTTPUpgrade:
• WS通过HTTP Upgrade机制建立长连接,实现全双工通信(如 HTTP/1.1 → WS
)。
• HTTPUpgrade也可用于其他协议升级(如H2C或自定义协议)。
• H2:默认基于TCP,无显式升级步骤;HTTP/3则基于QUIC。
• QUIC:无需显式握手,减少连接建立时间(0-RTT或1-RTT)。
协议 | 浏览器支持 | 网络穿透难度 | 部署复杂度 |
---|---|---|---|
TCP | 全支持 | 中等 | 简单 |
KCP | 需自定义客户端 | 困难(NAT) | 需自定义实现 |
WS | 全支持 | 容易 | 简单 |
H2 | 全支持 | 容易 | 中等(需TLS) |
QUIC | 部分支持(HTTP/3) | 容易 | 较高(需新协议) |
gRPC | 有限(需gRPC-Web) | 容易 | 中等 |
• KCP:实时游戏、直播推流(低延迟优先)。
• QUIC:视频会议、移动端应用(弱网优化)。
• WS:在线聊天、实时数据监控(兼容浏览器)。
• gRPC:微服务间通信(Protobuf编码 + HTTP/2多路复用)。
• H2:API网关、静态资源传输(头部压缩 + 流优先级)。
• QUIC:高丢包率网络(如移动4G/5G)。
• KCP:需自定义实现的低延迟场景。
• WS 和 H2:优先选择,支持广泛。
• gRPC-Web:通过代理实现浏览器兼容。
协议/技术 | 优点 | 缺点 |
---|---|---|
TCP | 可靠、通用、兼容性强 | 延迟高、队头阻塞 |
KCP | 超低延迟、抗丢包 | 带宽占用高、需自定义实现 |
WS | 全双工、浏览器兼容 | 基于TCP的延迟问题 |
H2 | 多路复用、头部压缩 | 依赖TCP、队头阻塞未完全解决 |
QUIC | 0-RTT、抗队头阻塞、弱网优化 | 部署复杂、部分网络限制UDP |
gRPC | 高效序列化、跨语言、流式通信 | 浏览器支持有限、调试工具较少 |
• HTTP/3 是 QUIC 的标准化版本,未来可能逐步替代TCP+H2组合。
• gRPC 支持多种底层协议(如HTTP/2、HTTP/3),未来会与QUIC深度集成。
• KCP 更适合私有协议优化,需权衡带宽成本。
根据具体场景的网络条件、延迟容忍度、开发成本综合选择协议组合。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!