mKCP 是一个基于 UDP 的协议,所有通讯使用 UDP 传输。mKCP 是流式传输协议,由 KCP 协议修改而来,可以按顺序传输任意的数据流。KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。
KCP协议
正如前面所说,mKCP 是由 KCP 协议修改而来,KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如 UDP)的收发,需要使用者自己定义下层数据的发送方式,以 callback 的方式提供给 KCP。连时钟都需要外部传递进来,内部不会有任何一次系统调用。
TCP 是为流量设计的(每秒内可以传输多少 KB 的数据),讲究的是充分利用带宽。而 KCP 是为流速设计的(单个数据从一端发送到一端需要多少时间),以 10%-20%带宽浪费的代价换取了比 TCP 快 30%-40%的传输速度。