Releases: xtaci/kcptun
the missing encryption algorithms
- add support for
blowfish, cast5, 3des
encryption algorithms - change yamux keepalive timeout to 10s
MD5 (kcptun-linux-amd64-20160819.tar.gz) = 623d6e4805514a85490533b43006893c
MD5 (kcptun-linux-386-20160819.tar.gz) = 9989faf00b59009e27b26c4059211709
MD5 (kcptun-darwin-amd64-20160819.tar.gz) = 46b3fbfe4c470b27d385169c37deb57f
MD5 (kcptun-darwin-386-20160819.tar.gz) = 56e01abc72997bc9de27bb39c3cb6396
MD5 (kcptun-windows-amd64-20160819.tar.gz) = 54d440a02beede900816a17c48e3abc2
MD5 (kcptun-windows-386-20160819.tar.gz) = c8a05265b854b7f79008008f3f3f546a
MD5 (kcptun-freebsd-amd64-20160819.tar.gz) = ff36cae4b4a10b1bd9b72bd6586bb67d
MD5 (kcptun-freebsd-386-20160819.tar.gz) = e07e9233fb2f79acf9a214b531afe80b
MD5 (kcptun-linux-arm-20160819.tar.gz) = 1d884fc64a6392d53b05fe874b6f9d22
re-compiled with golang 1.7 stable
re-compiled with golang 1.7 stable.
add aes-128, aes-192 encryptions.
golang 1.7 稳定版重制。
增加 aes-128, aes-192加密
(Update 20160818: revert a minor unstable changes, if you feel something strange, please re-download. )
MD5 (kcptun-linux-amd64-20160816.tar.gz) = 52cd6456b54cce01627e629767dc9deb
MD5 (kcptun-linux-386-20160816.tar.gz) = 20573d91391e38f48e97f32f0ffc8a34
MD5 (kcptun-darwin-amd64-20160816.tar.gz) = d0b272376029f9ae518ae05ff0afb727
MD5 (kcptun-darwin-386-20160816.tar.gz) = 9acc1ad52c335fe7f04c967d10104b1c
MD5 (kcptun-windows-amd64-20160816.tar.gz) = a2c5563ab2053976441d5a7bbffa98c2
MD5 (kcptun-windows-386-20160816.tar.gz) = f709eb7c813b586a5fdb24ee07e31df0
MD5 (kcptun-freebsd-amd64-20160816.tar.gz) = 0b3417ffc9c4ff418a14a0f76871338e
MD5 (kcptun-freebsd-386-20160816.tar.gz) = 9e367205d268a51794ce5e3310584c53
MD5 (kcptun-linux-arm-20160816.tar.gz) = 16ffab9f9a0084ae4141a9648e4b2cfc
Smooth dataflow curve & Half CPU usage for client
_(Strongly Recommended for upgrading)_
- Smooth dataflow curve by setting
MaxStreamWindowSize
tosockbuf(hidden)
. - Half CPU usage by using
recv()
syscall instead ofrecvfrom()
syscall. (client only)
_(强烈建议升级)_
- 设置
MaxStreamWindowSize
值为sockbuf(隐)
,以期望平滑数据传输曲线。 - 调整UDP接收的系统调用,
recvfrom()
改为recv()
,降低客户端CPU消耗(一半以上)。
_compiler: go version go1.7rc6 darwin/amd64_
MD5 (kcptun-linux-amd64-20160811.tar.gz) = 976250b8e44c696bd5c0a66a9c274067
MD5 (kcptun-linux-386-20160811.tar.gz) = 623c9d5ed4ace14dba17401e51bd3c79
MD5 (kcptun-darwin-amd64-20160811.tar.gz) = 5f6f642be0c202960faf0b22abe09b64
MD5 (kcptun-darwin-386-20160811.tar.gz) = 0f8f7bf8461f801616d50db685aad496
MD5 (kcptun-windows-amd64-20160811.tar.gz) = eeaea3dece0d0ab515676d959075e100
MD5 (kcptun-windows-386-20160811.tar.gz) = 5708b35642658c818d773c5c3ba8a857
MD5 (kcptun-freebsd-amd64-20160811.tar.gz) = 79b48193147100497944493832be62d6
MD5 (kcptun-freebsd-386-20160811.tar.gz) = 774f9454d44e5141340b5dcdb2cf95c3
MD5 (kcptun-linux-arm-20160811.tar.gz) = c2584fad1e76d3ede74b23cf33bc96d9
mips32 version: https://github.com/bettermanbao/openwrt-kcptun/releases
Cumulative Non-Critical Updates
Updates(20160808):
- Add hidden parameters
sockbuf
: send/recv buffer size of udp sockets, default to 4MB.(macOS limit, pre: 16MB.)keepalive
: NAT keepalive interval(in seconds) to prevent your router from removing port mapping, default to 10s.(pre:5s.)
- Optimized Algorithms:
- If TX queue is not empty, ping packet is unnecessary to fire.
- FEC search range is more precise.
- PAWS detection is not required in
markData()
of FEC. - CLI parameters are parsed only once after startup. (provided by @buaazp)
- _Explicitly dereference data immediately, hopefully this would lower memory usage. (Update: 20160809)_
- _Do not update RTT for recovered packets from FEC. (Update: 20160810)_
- API optimize
- Listener has it's own
SetDSCP()
function.
- Listener has it's own
累计非关键更新(20160808):
- 增加隐藏参数
sockbuf
:用于调整udp socket的收发缓冲区大小, 默认值为4MB。(macOS限制, 前值为16MB。)keepalive
:用于调整NAT keepalive的间隔时间,避免路由器清除端口映射。(默认值10s, 前值5s。)
- 优化的算法:
- 如果传输队列非空,则不需要发送ping包。
- FEC更精确的搜索范围。
- FEC的
markData()
不需要检测PAWS。 - 启动后只解析一次命令行参数。(@buaazp提供)
- _数据队列显式的去引用,希望能降低内存使用。(Update: 20160809)_
- _RTT计算优化,不计入通过FEC纠错而来的RTT。(Update: 20160810)_
- API优化
- Listener实现独立的
SetDSCP()
函数。
- Listener实现独立的
_Compiler: go version go1.7rc6 darwin/amd64_
MD5 (kcptun-linux-amd64-20160808.tar.gz) = 067f9d34af47a46b34bae84aa7e2fc4b
MD5 (kcptun-linux-386-20160808.tar.gz) = 16bd01035c1237c2181042f1b1a3c761
MD5 (kcptun-darwin-amd64-20160808.tar.gz) = 2480f95c7a6c61ab6eb74d8fe0a27014
MD5 (kcptun-darwin-386-20160808.tar.gz) = ffc5c6873aabbc9816b593cb613560f1
MD5 (kcptun-windows-amd64-20160808.tar.gz) = 60dc203168c16818c27a9fd60d27b32a
MD5 (kcptun-windows-386-20160808.tar.gz) = a2378c9c5486ea470f005b51a1e49d99
MD5 (kcptun-freebsd-amd64-20160808.tar.gz) = 9c30d84b15efb82df18f3196aa64bde1
MD5 (kcptun-freebsd-386-20160808.tar.gz) = 6c7e0cdd2c413ac52c605b0f9d284528
MD5 (kcptun-linux-arm-20160808.tar.gz) = da983d001cd5731d3bb484020a24e4ea
improve network latency by introducing stream mode
_Update 20160726: recompiled with go1.7rc3 && optimize ikcp_send for stream mode_
_Update 20160803: recompiled with go1.7rc5_
_Strongly Recommended for Upgrading_
the default packet mode operations of kcp would introduce HOL-blocking for a single message; by eliminating message boundary with _stream mode_, this problem has relived.
kcp默认包模式的传输会引入单包的Head Of Line 阻塞问题,因此通过修改kcp,并在kcp-go中增加了stream模式缓解此问题,以降低网络延迟。(官方已同步)
MD5 (kcptun-linux-amd64-20160725.tar.gz) = 8c41e07356c50f970deb2c4a747f1b77
MD5 (kcptun-linux-386-20160725.tar.gz) = 6e3505cf52f90251ccbb0ce05fcb2bf3
MD5 (kcptun-darwin-amd64-20160725.tar.gz) = aee95702e65cff152951586acaa18f70
MD5 (kcptun-darwin-386-20160725.tar.gz) = 3d5b7781936556f995ed081e28235b7a
MD5 (kcptun-windows-amd64-20160725.tar.gz) = 756662eaf92d911223d856e00c9b8d2b
MD5 (kcptun-windows-386-20160725.tar.gz) = 7f9798166409da32c16af3de4e8618f6
MD5 (kcptun-freebsd-amd64-20160725.tar.gz) = 1c99e7dfc5d8d854e6ddab245d459514
MD5 (kcptun-freebsd-386-20160725.tar.gz) = e1e334f74601925d831693ae05acd15c
MD5 (kcptun-linux-arm-20160725.tar.gz) = 69cb70c1051e8502896b6192b40c2750
fix for macOS Sierra(10.12)
see issue:
golang/go#16272
_(if you are not macOS Sierra(10.12) user, you don't need to upgrade to this one.)_
_(compiler:go version go1.7rc2 darwin/amd64)_
MD5 (kcptun-linux-amd64-20160719.tar.gz) = e662553cc2ebb1d47e90b4fe2154c02b
MD5 (kcptun-linux-386-20160719.tar.gz) = 765de2a1e9f8f301eba6ba00e4aeb29f
MD5 (kcptun-darwin-amd64-20160719.tar.gz) = b7d96aa30d0849652df2ff6036d9bb3e
MD5 (kcptun-darwin-386-20160719.tar.gz) = dc6d0a0cbeb865d491319a1f37ccb68b
MD5 (kcptun-windows-amd64-20160719.tar.gz) = bd77b5a11c29283e162343c35fd34a07
MD5 (kcptun-windows-386-20160719.tar.gz) = eb8e30bbbc506d2a8074e387a6c8ac70
MD5 (kcptun-freebsd-amd64-20160719.tar.gz) = 676f54bdb579d43752b203c034abd7a0
MD5 (kcptun-freebsd-386-20160719.tar.gz) = 08ed17b13b245c9bbcb13014d2ea9e16
MD5 (kcptun-linux-arm-20160719.tar.gz) = 684816b2b43bc05fa0f932862bf2b6f1
Limit max RTO backoff to 8xRTO
Limit max RTO backoff to 8xRTT.
限定RTO退让的最大值为8xRTT,修正假死问题。
_update 20160712: recompiled with go version go1.7rc1 darwin/amd64_
MD5 (kcptun-linux-amd64-20160701.tar.gz) = 3c55407a1c413677454c8620b384e71d
MD5 (kcptun-linux-386-20160701.tar.gz) = 395c33fca9d7d1f9474c7af47567221f
MD5 (kcptun-darwin-amd64-20160701.tar.gz) = d44508e3dc46ce82ab3cdabdf10ba3d8
MD5 (kcptun-darwin-386-20160701.tar.gz) = f21236c12e6d11aa03cc84f62abf5e81
MD5 (kcptun-windows-amd64-20160701.tar.gz) = 425d0b63e82bad5c84683c4fb3a35edf
MD5 (kcptun-windows-386-20160701.tar.gz) = 0972e5e3d637cd9ced8038e77adb9580
MD5 (kcptun-freebsd-amd64-20160701.tar.gz) = 524c0b1f1500e6ac81e38adc6422acb1
MD5 (kcptun-freebsd-386-20160701.tar.gz) = 74110c946da7dcf668720bc1e66e9a3c
MD5 (kcptun-linux-arm-20160701.tar.gz) = 00ce4b3a8dd4ff6c7e93db41172fa236
Compression with Snappy (The first compression enabled release)
_CAUTION: NOT COMPATIBLE WITH PREVIOUS RELEASES WITH DEFAULT SETTINGS._
_MAKE SURE TO VERIFY YOUR MD5 HASH BEFORE DEPLOY._
_STRONGLY RECOMMENDED FOR UPGRADING._
- Add google snappy compression for transport layer to _accelerate_ data transfer(_enabled by default_) , use
-nocomp
on both side to disable. - Compression has no effect on _already encrypted_ data stream.
_注意:默认与以前版本不兼容(两端需同时升级)_
_部署之前请务必确认您的MD5哈希值_
_强烈建议升级_
- 使用google snappy算法对传输层做数据流压缩(_默认开启),_用于加速数据传输。
- 注意: 对于承载的数据**已经加密的**,没有明显效果。
MD5 (kcptun-linux-amd64-20160627.tar.gz) = 798cc5a4914211b69be8cc96abb86fcc
MD5 (kcptun-linux-386-20160627.tar.gz) = 754e7730e093c4fabe1304b9e151d462
MD5 (kcptun-darwin-amd64-20160627.tar.gz) = 8ba19a3e97a4647d52bf3eed95e871f4
MD5 (kcptun-darwin-386-20160627.tar.gz) = ae59addb1396f6c1f9e4a408213dd6ef
MD5 (kcptun-windows-amd64-20160627.tar.gz) = 533515d5f76ae8a3fabe2c04dee2964f
MD5 (kcptun-windows-386-20160627.tar.gz) = dfe6147c6dc54b322783254dc3e7f9c0
MD5 (kcptun-freebsd-amd64-20160627.tar.gz) = 1ae4d95309cbd2130addcf534edf95d6
MD5 (kcptun-freebsd-386-20160627.tar.gz) = 5f0769b7ace930245ef72313110750ea
MD5 (kcptun-linux-arm-20160627.tar.gz) = 7e1feb9282e563ff9f81f0c09bf635e8
SNMP Millstone Version
_compiler: go version go1.7beta1 darwin/amd64_
_MAKE SURE TO VERIFY YOUR MD5 HASH BEFORE DEPLOY_
_EVERYONE IS SUGGESTED TO UPGRADE_
- Reduce memory usage by avoiding
make
on fec group - Release
freebsd
binary version - Expose
SetNoDelay()
function for future manual control - Add
SNMP
to dump information,kill -SIGUSR1 pid
to print - Pipeline
ReadFromUDP()
for faster receiving of UDP Packets - Fix
parse_ack()
for _too many fast resend_ - Adjust yamux max window size for better streaming of UHD video
- _Randomize_ ping packet length and content
- Add hidden parameters for manual control of
SetNoDelay()
, eg:
-mode manual -nodelay 1 -resend 3 -nc 1 -interval 20
MD5 (kcptun-linux-amd64-20160605.tar.gz) = 3c7e47aa8fde34ef7271e260e674c41e
MD5 (kcptun-linux-386-20160605.tar.gz) = 2e5a96591126b3084fe1054c3de292a2
MD5 (kcptun-darwin-amd64-20160605.tar.gz) = c946a76c1fe88dcfa1f6c452ca3a6474
MD5 (kcptun-darwin-386-20160605.tar.gz) = 514635cc598f1fb3b960aa088648f3d9
MD5 (kcptun-windows-amd64-20160605.tar.gz) = d0b3f3795f135525eb98f891f77029f2
MD5 (kcptun-windows-386-20160605.tar.gz) = b57fd1f2c06432bfed48581976604e67
MD5 (kcptun-freebsd-amd64-20160605.tar.gz) = 357368fbd2a569daed17ce525f724442
MD5 (kcptun-freebsd-386-20160605.tar.gz) = 5735fac9d03850a0bca4df761fc2d272
MD5 (kcptun-linux-arm-20160605.tar.gz) = b2c4678cd03e0d138f783e0c03b71733