KCP源码解析系列(一)KCP协议介绍

一、什么是KCP

TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而 KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间),以10%-20%带宽浪费的代价换取了比 TCP快30%-40%的传输速度。TCP信道是一条流速很慢,但每秒流量很大的大运河,而KCP是水流湍急的小激流。

1.1 代码仓库

https://github.com/skywind3000/kcp

1.2 KCP在网络协议中的位置

在这里插入图片描述

二、KCP协议特点

kcp 是一个快速可靠ARQ协议,相比于tcp,以 10%-20% 带宽浪费的代价换取了快 30%-40% 的传输速度。kcp 可以看做应用层协议,底层采用 udp 传输。

2.1 RTO不翻倍

RTO(Retransmission TimeOut),重传超时时间。TCP的RTO是指数翻倍的,当网络比较差的时候,指数延长RTO时间。因为TCP是大公无私的,如果发现网络状况持续较差,就会放慢自己的发送速度。而KCP就比较自私,网络比较差了基本还是照常发。

tcp x 2,kcp x 1.5,提高传输速度

2.2 选择重传

TCP丢包时会全部重传从丢失包开始之后的数据,而KCP会选择性的重传,只重传真正丢

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值