KCP kcptun】的更多相关文章

简介 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP. 连时钟都需要外部传递进来,内部不会有任何一次系统调用. 整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中.也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协…
本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而且现在 Finalspeed 停止维护,就需要寻找一个能替代 Finalspeed 的工具. 今天我就给大家介绍这么一个能替代 Finalspeed 的项目 — Kcptun. Kcptun介绍 Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 K…
在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者G口到国内下载速度都不是很让人满意,大部分人购买国外服务器是用作存储下载或者扶墙,速度慢的所以话影响我们的使用体验.所以就搞出了很多加速的方法,本文以Linux为例,总结一下现有的加速方法,同时提供一个新事物–BBR加速器. 一.Kvm/Xen/Vmware/独立服务器的加速 1.锐速 ServerSpeeder KVM这些加速比较容易,他们可以使用锐速来优化网络.锐速是一种单边加速器,加速TCP来实现速度的提升,他和后文提到的…
KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果. KCP:https://github.com/skywind3000/kcp 目前已经有非常多的网络服务采用KCP,著名的有kcptun,dog-tunnel,Lantern,rpcx等,同时KCP已经有众多语言的开源实现,如c.golang.java等,可以使用KCP协议做自己的网络相关服务. kcptun是kcp协议的一个简单应用,可以用于任意tcp网络…
作者:韦易笑链接:https://www.zhihu.com/question/36258781/answer/98944369来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. KCP 传输协议:GitHub - skywind3000/kcp: KCP libenet的协议设计是非常落后的,基本上就是90年代教科书上那种标准ARQ协议实现,很难在复杂的网络条件下提供可靠的低延迟传输效果.而KCP具备更多现代传输协议的特点,诸如:流量换延迟,快速重传,流控优化,un…
KCP - A Fast and Reliable ARQ Protocol README in English 简介 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP. 连时钟都需要外部传递进来,内部不会有任何一次系统调用. 整个协议只有 ikcp.h, ikcp.c两个源文件,可…
1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某些开源库是c/cpp编写,没有对应c#版本 c)或者有c#版本实现,但是效率或者gc达不到期望效果,特别是GC,一般的开源库c#版本的作者,对gc优化得大多不好 d)追求效率,比如A*寻路等开销比较大的算法,想做下优化 e)某些模块,如网络模块,需要Unity客户端和后端跑一份相同的逻辑代码,而不想…
1 依赖和环境配置 1.1 升级 yum $ yum update 1.2 安装 screen $ yum install screen 关于 screen 的详情:http://www.vpser.net/manage/screen.html 1.3 安装 wget wget 是一个 Linux 下一个下载文件的工具,在这里我们用来下载稍后的 lnmp 一键安装包.安装 wget 的方法是: $ yum -y install wget 1.4 安装 Python.Python-setuptoo…
install ss apt search shadowsocks shadowsocks/kali-rolling,kali-rolling,now 2.9.0-2 all [installed] Fast tunnel proxy that helps you bypass firewalls shadowsocks-libev/kali-rolling,now 2.6.3+ds-3 amd64 [installed] lightweight and secure socks5 proxy…
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)的收发,需要使用者自己定…
一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某些开源库是c/cpp编写,没有对应c#版本 3)或者有c#版本实现,但是效率或者gc达不到期望效果,特别是GC,一般的开源库c#版本的作者,对gc优化得大多不好 4)追求效率,比如A*寻路等开销比较大的算法,想做下优化 5)某些模块,如网络模块,需要Unity客户端和后端跑一份相同的逻辑代码,而不想…
原理: 执行一行脚本 输入服务器地址,端口,密码等做了图形化编辑 可以控制Kcptun是否正在运行 App已上传github https://github.com/nicky2k8/KcptunClientControllerForMac.git…
asio kcp代码走读 (1)kcp_client_wrap类 a 提供方法接口如下: send_msg kcp_client_.send_msg(msg); stop //等待工作线程退出 set_event_callback connect //main函数中调用connect进行kcp client的初始化 kcp_client_.connect_async do_asio_kcp_connect_loop connect_async connect_result b 包含的私有方法:…
http://www.skywind.me/blog/archives/1048 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,并以 callback的方式提供给 KCP.连时钟都需要外部传递进来,内部不会有任何一次系统调用. 整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中.也许…
简介kcp的具体概念与定义自行百度,特性可以浓缩为一句话,和tcp一样可靠,速度比tcp快,是一个用带宽换速度的新型协议.网上的示例代码很少,特此写一篇golang下的kcp实例. PS本文仅对ksp在golang下的基本使用进行示例,具体调优参数需要使用者去官网寻找适配.官方的示例代码太长太花了,特意简约地贴出最简单的写法仓库主仓库: https://github.com/xtaci/kcp-go示例代码: https://github.com/fwhezfwhez/TestX/tree/ma…
前段时间写了一个局域网音视频通话的程序,使用开源 KCP 来实现可靠UDP传输. 通过研究发现KCP在发包时,会在数据包前面加上它自己的头.如果数据包较小,KCP可能会把多个数据包合成一个包发送,提高效率. 如下图所示. kcp udp 包结构 28 bytes 4 bytes 4 bytes len1 28 bytes 4 bytes 4 bytes len2├────────────┼────────┬────────┼────────┼────────────┼────────┬─────…
目的:shadowsocks+kcptun 实现vpn加速(shadowsocks,kcptun在同一台VPS上) 一.shadowsocks安装(参考  https://www.cnblogs.com/cj8988/p/11207853.html): 二.配置 kcptun 加速服务      1.下载 :github 下载地址是:https://github.com/xtaci/kcptun/releases  # 跳转到家目录 cd ~ # 创建下载目录(如果有,则跳过) mkdir Do…
wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh shadowsock服务器IP填写:127.0.0.1 端口填写ss端口.…
行文前先安利下<再深谈TCP/IP三步握手&四步挥手原理及衍生问题-长文解剖IP >.<再谈UDP协议-浅入理解深度记忆> KCP协议科普 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果. 纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP. 连时钟都需要外部传递进来,内部不会有任何一次系统调用.本文传输协议之…
conv 会话IDmtu 最大传输单元mss 最大分片大小state 连接状态(0xFFFFFFFF表示断开连接)snd_una 第一个未确认的包snd_nxt 下一个待分配的包的序号rcv_nxt 待接收消息序号ssthresh 拥塞窗口阈值 rx_rttvar ack接收rtt浮动值rx_srtt ack接收rtt静态值rx_rto 由ack接收延迟计算出来的重传超时时间rx_minrto 最小重传超时时间snd_wnd 发送窗口大小rcv_wnd 接收窗口大小rmt_wnd, 远端接收窗口…
conv conv为一个表示会话编号的整数,和tcp的 conv一样,通信双// 方需保证 conv相同,相互的数据包才能够被认可 cmd             cmd用来区分分片的作用.IKCP_CMD_PUSH:数据分片 IKCP_CMD_ACK:ack分片 IKCP_CMD_WASK请求告知窗口大小 IKCP_CMD_WINS:告知窗口大小frg               message中的segment分片ID(在message中的索引,由大到小,0表示最后一个分片)wnd    …
 …
前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 on UP Board 初识免流 所谓免流,就是免除手机访问网络产生的流量费用.其原理在乌云网上有过报道,大致就是手机在访问运营商的服务时(比如手机营业厅)是不产生流量费用的,然后可以利用技术手段让手机访问其他网站产生的流量伪装成运营商服务. 最早接触是在贴吧看到fmns什么的,自古贴吧出大神,后来听说妖火网,还向小邓要了个账号去一窥究竟.再后来听说了云免流,甚是高端. 免流相关网站 4g5g 恩山无…
A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock! If you see a package or project here that…