TCP reno 一样有 慢启动、拥塞控制、快重传、快恢复的设计。是不是有重复造轮子的嫌疑。
sbdsn5lh1#
tcp准确说只有个una做确认,kcp是una加ack,同时tcp是延迟发送ack和kcp是非延迟ack,还有选择性重传和全部重传,rto增长规则等区别,比tcp快这件事情是有无数测试支持的,否则本项目也不会有那么多衍生项目。
再kcp可以相对自由的整合到各种udp为基础的协议栈中,tcp不行。kcp前面还可以对接fec模块,tcp你想加都加不了。
kcwpcxri2#
kcp协议收到数据会把ack添加到acklist里边,等到下个internal才驱动ikcp_flush发送ack,这样kcp不也是延迟ack了吗?
2条答案
按热度按时间sbdsn5lh1#
tcp准确说只有个una做确认,kcp是una加ack,同时tcp是延迟发送ack和kcp是非延迟ack,还有选择性重传和全部重传,rto增长规则等区别,比tcp快这件事情是有无数测试支持的,否则本项目也不会有那么多衍生项目。
再kcp可以相对自由的整合到各种udp为基础的协议栈中,tcp不行。kcp前面还可以对接fec模块,tcp你想加都加不了。
kcwpcxri2#
tcp准确说只有个una做确认,kcp是una加ack,同时tcp是延迟发送ack和kcp是非延迟ack,还有选择性重传和全部重传,rto增长规则等区别,比tcp快这件事情是有无数测试支持的,否则本项目也不会有那么多衍生项目。
再kcp可以相对自由的整合到各种udp为基础的协议栈中,tcp不行。kcp前面还可以对接fec模块,tcp你想加都加不了。
kcp协议收到数据会把ack添加到acklist里边,等到下个internal才驱动ikcp_flush发送ack,这样kcp不也是延迟ack了吗?