[喵咪开源软件推荐(6)]TCP链路加速技术KcpTun


声明:本文转载自https://my.oschina.net/wenzhenxi/blog/1570553,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

[喵咪开源软件推荐(6)]TCP链路加速技术KcpTun

今天有给大家带来新的东西KcpTun,KcpTun是利用Kcp技术对Tcp链路传输进行加速,大家熟知的网络协议一般是UDP和TCP,UDP传输快但是没有状态消息不可靠,TCP虽然稳定也有重试机制但是因为机制复杂三次握手等机制速度会稍微比较慢,大名鼎鼎的谷歌就基于UDP重新开发过QUIC协议,Kcp协议也是基于UDP上进行算法封装的快速可靠协议,我们就一同来看看基于KCP的开源软件KcpTun有什么神奇的吧!

附上:

喵了个咪的博客:w-blog.cn Kcp-Github地址:https://github.com/skywind3000/kcp KcpTun-Github地址:https://github.com/xtaci/kcptun

1.了解Kcp - KcpTun

Kcp是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果,纯算法实现.

基于Kcp之后就有了KcpTun也就是我们今天的主角TCP转发开源程序,有的童鞋会问了 “为什么要转发TCP啊 ??? ” , 当然是为了提高访问速度啊. 比如如下两个场景

  • 自己搭建的Shadowsocks服务器, 希望可以更快的访问,可以通过KcpTun进行加速
  • 服务器在国内,海外用户访问自己的服务比较慢,也可以使用KcpTun进行加速

一句话总结只要是TCP协议的东西都可以通过KcpTun进行加速,我们一起来看下图就能简单了解KcpTun起到了什么作用

正常情况下的访问都只直接通过Tcp进行的, 其中握手,丢包重传等机制都会比较慢

当我们换成了KcpTun正常访问的都是离自己比较近的Kcp-Client端,然后通过Kcp链路中转到Kcp-Server端,在请求到最终的服务器

2.安装使用

这里以liunx为例子,选用系统centos

安装KcpTun :

wget https://github.com/xtaci/kcptun/releases/download/v20170930/kcptun-linux-amd64-20170930.tar.gz tar -zxvf kcptun-linux-amd64-20170930.tar.gz 

在国内服务器开启server端:

./server_linux_amd64 -t "IP:80" -l ":4000" -mode fast3 

在国外服务器开始client端:

./client_linux_amd64  -r "serverIP:4000" -l ":80" -mode fast3 

通过俄罗斯访问国内时间消耗:

curl -s -w ---code:%{http_code}:time:%{time_total}:dns:%{time_namelookup}:connect:%{time_connect}:starttransfer:%{time_starttransfer}"\n"  xxxx.sunmi.com xxxx---code:200:time:0.568:dns:0.004:connect:0.212:starttransfer:0.568 curl -s -w ---code:%{http_code}:time:%{time_total}:dns:%{time_namelookup}:connect:%{time_connect}:starttransfer:%{time_starttransfer}"\n"  localhost:8080 xxxx---code:200:time:0.289:dns:0.004:connect:0.004:starttransfer:0.289 

时间消耗从0.568秒缩短到了0.289秒节约时间0.279秒几乎节约100%的时间

通过新加坡访问国内

curl -s -w ---code:%{http_code}:time:%{time_total}:dns:%{time_namelookup}:connect:%{time_connect}:starttransfer:%{time_starttransfer}"\n"  xxxx.sunmi.com xxxx---code:200:time:0.148:dns:0.001:connect:0.002:starttransfer:0.148 curl -s -w ---code:%{http_code}:time:%{time_total}:dns:%{time_namelookup}:connect:%{time_connect}:starttransfer:%{time_starttransfer}"\n"  localhost xxxx---code:200:time:0.084:dns:0.001:connect:0.001:starttransfer:0.084 

时间从0.148秒缩短到了0.084秒 节约时间0.064秒

kcptun有多种加速模式对应的速度排序如下(default: "fast"):

fast3, fast2, fast, normal, manual  

如果使用默认模式”fast”新加坡响应时间0.110 俄罗斯响应时间0.357 消耗时间会有所增加,一般推荐使用 fast2 可以得到比较好点效果

3 总结

利用KcpTun链路加速技术能够解决在使用中的各种网络,比如海外网络加速, Shadowsocks,OpenVpn加速等,如果大家喜欢可以自己体验一下!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

本文发表于2017年11月10日 10:34
(c)注:本文转载自https://my.oschina.net/wenzhenxi/blog/1570553,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2121 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1