重新认识KCP】的更多相关文章

本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而且现在 Finalspeed 停止维护,就需要寻找一个能替代 Finalspeed 的工具. 今天我就给大家介绍这么一个能替代 Finalspeed 的项目 — Kcptun. Kcptun介绍 Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 K…
1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某些开源库是c/cpp编写,没有对应c#版本 c)或者有c#版本实现,但是效率或者gc达不到期望效果,特别是GC,一般的开源库c#版本的作者,对gc优化得大多不好 d)追求效率,比如A*寻路等开销比较大的算法,想做下优化 e)某些模块,如网络模块,需要Unity客户端和后端跑一份相同的逻辑代码,而不想…
作者:韦易笑链接:https://www.zhihu.com/question/36258781/answer/98944369来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. KCP 传输协议:GitHub - skywind3000/kcp: KCP libenet的协议设计是非常落后的,基本上就是90年代教科书上那种标准ARQ协议实现,很难在复杂的网络条件下提供可靠的低延迟传输效果.而KCP具备更多现代传输协议的特点,诸如:流量换延迟,快速重传,流控优化,un…
KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP.连时钟都需要外部传递进来,内部不会有任何一次系统调用. 整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中.也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协议实现,…
kcp协议是传输层的一个具有可靠性的传输层ARQ协议.它的设计是为了解决在网络拥堵情况下tcp协议的网络速度慢的问题.kcp力求在保证可靠性的情况下提高传输速度.kcp协议的关注点主要在控制数据的可靠性和提高传输速度上面,因此kcp没有规定下层传输协议,一般用udp作为下层传输协议,kcp层协议的数据包在udp数据报文的基础上增加控制头.当用户数据很大,大于一个udp包能承担的范围时(大于mss),kcp会将用户数据分片存储在多个kcp包中.因此每个kcp包称为一个分片. 为了提供可靠性,kcp…
名字kmesh 技术:proxy,kcp,consul proxy proxy分为前端和后端 前端代理服务层,包括外部的service 后端实现负债均衡 kcp kcp 基于udp,能够实现快速的传输 consul 实现了服务注册,服务的健康检查,多中心 外部服务的注册 外部服务要注册到前端代理中,前端代理抛给其他服务调用 外部服务可以通过配置文件,通过consul,通过本地的接口进行注册 本地服务注册 本地服务可以直接通过local的接口进行交互 想要使用什么样服务,也可以通过接口进行交互 前…
kcp的流模式,和消息模式 流模式: 更高的网络利用率 更大的传输速度 解析数据相对更复杂 消息模式: 更小的网络利用率 更小的传输速度 解析数据相对更简单 消息模式的示意图 http://www.processon.com/view/link/59357025e4b015d6aa7c429f 流模式示意图 http://www.processon.com/view/link/591d6be6e4b0ec8d9d801096…
kcp协议与tcp协议类似,是一种ARQ协议.他的优点在于比tcp的延迟更小30%-40%,但相应的会牺牲一部分的带宽,大该比tcp多浪费10%~20%.tcp的设计目标是增大网络利用率,而kcp的设计目标是增大网络传输速率.因此kcp与tcp对比,kcp有如下机制可以提高传输速度: 1.kcp的RTO每次是增加为1.5倍,相比tcp的2倍,具有更短的超时重传时间2.无延迟ACK,通过配置让ack立即发送,而tcp为了增加网络利用率会尽量让ack与用户数据一起发送3.快速重传门限可控制,可以适当…
什么是KCP KCP是一种网络传输协议(ARQ,自动重传请求),可以视它为TCP的代替品,但是它运行于用户空间,它不管底层的发送与接收,只是个纯算法实现可靠传输,它的特点是牺牲带宽来降低延迟.因为TCP协议的大公无私,经常牺牲自己速度来减少网络拥塞,它是从大局上考虑的.而KCP是自私的,它只顾自己的传输效率,从不管整个网络的拥塞情况.举个例子,TCP检测到丢包的时候,首先想到的是网络拥塞了,要放慢自己的速度别让网络更糟,而KCP想到的赶紧重传别耽误事. TCP的特点是可靠传输(累积确认.超时重传…
WeTest 导读 云真机已经支持手机端的画面投影.云真机实时操作,对延迟的要求比远程视频对话的要求更高(100ms以内).在无线网络下,如何更实时.更可靠的传输视频流就成了一个挑战.通过websocket.RTMP.UDP的比较,最后选择了可靠的UDP协议KCP来进行实时音视频的传输. 1 简介 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定…