KCP是一个快速可靠协议,能以比TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果。libkcp在KCP的基础之上加入了FEC。
https://github.com/skywind3000/kcp https://github.com/xtaci/libkcp
和我们的课题类似,KCP也旨在降低时延,为此我阅读并注释了代码以帮助理解。
所不同的点是,我们的方案并不基于超时重传,因此实际上我所能借鉴到的主要是软件工程方面的东西。
这主要包括
- 软件的整体架构: 单线程 + 非阻塞
- 协议分层的设计思想,特别是FEC layer