kcptun

A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.

MIT License

Downloads
31
Stars
13.7K
Committers
19

Bot releases are hidden (Show)

kcptun - RTT问题优化等

Published by xtaci almost 8 years ago

  1. 客户端默认窗口值(-rcvwnd)降为512。
  2. smux锁优化。
  3. kcp-go锁优化。
  4. 更准确的数据包时间(更准确的RTT估算)。
  5. 缓解Buffered Chan 引起的BufferBloat,降低重传率。
  6. 修正一个kcp-go可能引起死锁的问题。
  7. snappy压缩切换为golang官方版本。
  8. 使用go1.8rc1编译。

(建议所有人更新)

$ go version
go version go1.8rc1 darwin/amd64
https://github.com/xtaci/kcptun/commit/ce4af6237bbaa3997b1e98c1f236ef83d4415da4
https://github.com/xtaci/smux/commit/d1bdf08128ae44344bff5384c02ded77e22fea9e
https://github.com/xtaci/kcp-go/commit/2375cf611f981974b6cb456cd45d97d114c12328

MD5 (kcptun-linux-amd64-20170114.tar.gz) = 2272644e5d63b40c72c9787b523452fd
MD5 (kcptun-linux-386-20170114.tar.gz) = de68149aaf55859efe6f4e53f6ac892a
MD5 (kcptun-darwin-amd64-20170114.tar.gz) = 8cc7425554eff3b71374013ed3387bc3
MD5 (kcptun-darwin-386-20170114.tar.gz) = 696495423d9d431884462a32f0d97f15
MD5 (kcptun-windows-amd64-20170114.tar.gz) = 80f3e2d2716edb19530137455dcc0253
MD5 (kcptun-windows-386-20170114.tar.gz) = 6c88e48ac45821f0ea4c9ba9aa4cbe9f
MD5 (kcptun-freebsd-amd64-20170114.tar.gz) = 1c46e7c47ad70aec0be2e5cb048e4256
MD5 (kcptun-freebsd-386-20170114.tar.gz) = 51c8a990ac2881e89be8fa8d973d86c6
MD5 (kcptun-linux-arm-20170114.tar.gz) = 08556db6d26e67a83c07584dae37be08
MD5 (kcptun-linux-mipsle-20170114.tar.gz) = f3c63e819281a3c2efcc41171360d340
MD5 (kcptun-linux-mips-20170114.tar.gz) = c8ade377bb41fb6911772d981b89d0ac
kcptun - 累计更新

Published by xtaci almost 8 years ago

  1. 客户端默认窗口值(-rcvwnd)降为512。
  2. smux锁优化。
  3. kcp-go锁优化。
  4. snappy压缩切换为golang官方版本。
  5. 使用go1.8rc1编译。

$ go version
go version go1.8rc1 darwin/amd64
https://github.com/xtaci/kcptun/commit/ce4af6237bbaa3997b1e98c1f236ef83d4415da4
https://github.com/xtaci/smux/commit/d1bdf08128ae44344bff5384c02ded77e22fea9e
https://github.com/xtaci/kcp-go/commit/1e82838baba5be74485c42872b2325f7b34423fe

MD5 (kcptun-linux-amd64-20170112.tar.gz) = 876e2c4ebdfe2c9f9f1c08a134f74a89
MD5 (kcptun-linux-386-20170112.tar.gz) = 514ed8fd7809763bb4a34ccc25b33350
MD5 (kcptun-darwin-amd64-20170112.tar.gz) = 71263e6ef7849daaeaca4f36a84f1b16
MD5 (kcptun-darwin-386-20170112.tar.gz) = 48a5784211d397ffae7cf7a1a55edd44
MD5 (kcptun-windows-amd64-20170112.tar.gz) = 71536ebe5d261f58cf288a0226241bf5
MD5 (kcptun-windows-386-20170112.tar.gz) = 0ed5decb7c6f8a3d8ff5b37ec9aa73d3
MD5 (kcptun-freebsd-amd64-20170112.tar.gz) = 56f89166ae3eea48fa984dac750d7df4
MD5 (kcptun-freebsd-386-20170112.tar.gz) = 293346b0d54d541f0e48f20116ba6754
MD5 (kcptun-linux-arm-20170112.tar.gz) = e1a2343e6cf52851a5ae97cfd8c31579
MD5 (kcptun-linux-mipsle-20170112.tar.gz) = a484f227e2efaf3704c035a41d807823
MD5 (kcptun-linux-mips-20170112.tar.gz) = 4d3dec3c2d89247e9dd84432d73cfdae
kcptun - 累计更新

Published by xtaci almost 8 years ago

  1. 修正客户端Accept超过可打开文件数时crash的问题。
  2. 增加--snmplog --snmpperiod选项,输出SNMP日志。
  3. 微调kcp-go中的快速重传部分,减少RepeatSegs。
  4. 采用go1.8beta2编译。

$ go version
go version go1.8beta2 darwin/amd64

MD5 (kcptun-linux-amd64-20161222.tar.gz) = 28689c0bc8ad3ad2f7285dfe0d86471b
MD5 (kcptun-linux-386-20161222.tar.gz) = 3ccc021e426273f5b4f859d736e6cbcf
MD5 (kcptun-darwin-amd64-20161222.tar.gz) = 8d3fa58d28d0d6196660440fdd91b4cb
MD5 (kcptun-darwin-386-20161222.tar.gz) = 377f95cbb4742e1af5f15661763b91e9
MD5 (kcptun-windows-amd64-20161222.tar.gz) = b7ed19a3137b9344f8826ed54cc87184
MD5 (kcptun-windows-386-20161222.tar.gz) = 4cc3e1c61843ddad94fbe2aa44c11557
MD5 (kcptun-freebsd-amd64-20161222.tar.gz) = e77d7bf1f214d39a85411aef5fac23e6
MD5 (kcptun-freebsd-386-20161222.tar.gz) = b3773a608b4991818b5f4a9a7f927964
MD5 (kcptun-linux-arm-20161222.tar.gz) = c99b6db1ecf71a725bbe9813822e4997
MD5 (kcptun-linux-mipsle-20161222.tar.gz) = 651c0d1508cc39d325ede16fef8a74c4
MD5 (kcptun-linux-mips-20161222.tar.gz) = 54082482ad97e7adabc73cd4bac99a24
kcptun - Fix ineffective -autoexpire under heavy loss

Published by xtaci almost 8 years ago

修正-autoexpire某些时候无效的情况
Related ISSUE #321

$ go version
go version go1.8beta1 darwin/amd64
https://github.com/xtaci/smux/commit/427dd804ce9fb0a9e7b27a628f68a124fb0d67a6
https://github.com/xtaci/kcp-go/commit/1a8d8c1d4fb43cee8cfc32fa464d2592a2923f1a
https://github.com/xtaci/kcptun/commit/375640d183bb8badae1e4e3c07fefa077dc5069d

MD5 (kcptun-linux-amd64-20161207.tar.gz) = 014c1af5f8b10c7b6c93e29440814c89
MD5 (kcptun-linux-386-20161207.tar.gz) = e06653673aaed0152a7fc4f30052e4ed
MD5 (kcptun-darwin-amd64-20161207.tar.gz) = 1eb3005f30fad9384a9e9847b50fa79c
MD5 (kcptun-darwin-386-20161207.tar.gz) = 578e844af33a88cf35f66ef713c694c0
MD5 (kcptun-windows-amd64-20161207.tar.gz) = 88a4018ff20c69e259dcb0fa39bed6ec
MD5 (kcptun-windows-386-20161207.tar.gz) = 1a9048d40e8b30a784d9fbe6c4a92bb5
MD5 (kcptun-freebsd-amd64-20161207.tar.gz) = e270ea0e6b69a7d88e4a8db3de1333b1
MD5 (kcptun-freebsd-386-20161207.tar.gz) = 9913681edae0e757cd53c08d6f55e7af
MD5 (kcptun-linux-arm-20161207.tar.gz) = ff8148c726adefc95857f48ce95c7016
MD5 (kcptun-linux-mipsle-20161207.tar.gz) = 387d6dd6d33eeaab661137698621bd1c
MD5 (kcptun-linux-mips-20161207.tar.gz) = e30f2b55e5dc801ddcc3927734be29f1
kcptun - Support MIPS32 with go1.8beta1

Published by xtaci almost 8 years ago

$ go version
go version go1.8beta1 darwin/amd64
https://github.com/xtaci/smux/commit/427dd804ce9fb0a9e7b27a628f68a124fb0d67a6
https://github.com/xtaci/kcp-go/commit/1a8d8c1d4fb43cee8cfc32fa464d2592a2923f1a
https://github.com/xtaci/kcptun/commit/bfe3524d746959d53576860afdd40f1b1125a378

MD5 (kcptun-linux-amd64-20161202.tar.gz) = 5ee78018377203fd4c1dcd3ff7e9aedc
MD5 (kcptun-linux-386-20161202.tar.gz) = 7cd4f2617a8704873e636f775b6e73c5
MD5 (kcptun-darwin-amd64-20161202.tar.gz) = 0fe090f3b134619a5b7e2c81091c9d26
MD5 (kcptun-darwin-386-20161202.tar.gz) = 2cac0d2e0b76614192407184eab48de7
MD5 (kcptun-windows-amd64-20161202.tar.gz) = 45e16f2302bed604c1bbdcb88366f6e5
MD5 (kcptun-windows-386-20161202.tar.gz) = c1acb78ca68af083341990fe35109507
MD5 (kcptun-freebsd-amd64-20161202.tar.gz) = c73d4853598db1bba7a72fe358119cff
MD5 (kcptun-freebsd-386-20161202.tar.gz) = e67e3b3107ffee589df05608987f9813
MD5 (kcptun-linux-arm-20161202.tar.gz) = 63d4b34bbee2ea798284c2bfbcf38e20
MD5 (kcptun-linux-mipsle-20161202.tar.gz) = ba41a21154453492db7ee6584462adc9
MD5 (kcptun-linux-mips-20161202.tar.gz) = d63633149c152abda9306bb52c951a0a
kcptun - Reduce FEC memory usage

Published by xtaci almost 8 years ago

  1. Reduce FEC memory usage(>30%), limited FEC queue to 3 * (dataShard+parityShard) packets.

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/b4a6fb87c6ff61e88833b551ce9247e09c9d71d2
https://github.com/xtaci/kcp-go/commit/2a9a3f742303ffb01acd1704d198a805238135fd
https://github.com/xtaci/kcptun/commit/229a4a8783f63206da00a088000f759367627508

MD5 (kcptun-linux-amd64-20161118.tar.gz) = 8fa9f6d7c31283c0298c83e32f1c27a4
MD5 (kcptun-linux-386-20161118.tar.gz) = 9fe66bc17ac93b847baeb655b6bd9038
MD5 (kcptun-darwin-amd64-20161118.tar.gz) = 7573439760e1ff29ffeba5b9958ab979
MD5 (kcptun-darwin-386-20161118.tar.gz) = ca565c4073e25ac40cece7bc85aa3ac2
MD5 (kcptun-windows-amd64-20161118.tar.gz) = 7e431c2092b6e1995c4aa3429bd75884
MD5 (kcptun-windows-386-20161118.tar.gz) = 44861d51ec2cdaff927826f5a8e578f1
MD5 (kcptun-freebsd-amd64-20161118.tar.gz) = e5b497d72986d73e82e4bdc2b2dc620f
MD5 (kcptun-freebsd-386-20161118.tar.gz) = c354ec64fe040b2bfd1d986d6116b543
MD5 (kcptun-linux-arm-20161118.tar.gz) = d92dc2f835e869bc36dad6158d4eb3a4
kcptun - Reduce sending of unnecessary acks

Published by xtaci almost 8 years ago

  1. Reduce sending of unnecessary acks.

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/60c611f2ff7411e1493071745a7f3f89e25ac624
https://github.com/xtaci/kcp-go/commit/ffaad6ea424cbba05863d255d4a83bc1e82aad1a
https://github.com/xtaci/kcptun/commit/229a4a8783f63206da00a088000f759367627508

MD5 (kcptun-linux-amd64-20161111.tar.gz) = ce253b046f0da77b4967aa3aff1b2964
MD5 (kcptun-linux-386-20161111.tar.gz) = 7de2cafc0241f2e5ef035f7a0ba98997
MD5 (kcptun-darwin-amd64-20161111.tar.gz) = 9d5bc96de9fcb8d482d96bafec9e2cfe
MD5 (kcptun-darwin-386-20161111.tar.gz) = 90226dd048926a5df76f5faa77d0a5eb
MD5 (kcptun-windows-amd64-20161111.tar.gz) = 319528d86bea95406d2a9674f0b709c0
MD5 (kcptun-windows-386-20161111.tar.gz) = 6b78544cd1ef53b2c2ea7a97bb01a596
MD5 (kcptun-freebsd-amd64-20161111.tar.gz) = 124082639403b5b70130033af75a4ffb
MD5 (kcptun-freebsd-386-20161111.tar.gz) = de05580146bce6e84942883e635a505f
MD5 (kcptun-linux-arm-20161111.tar.gz) = a3e8f15715a9add8396b3da2ebd2efae
kcptun - Brought Back Early Retransmit, with Stricter Criterion

Published by xtaci almost 8 years ago

  1. Brought Back Early Retransmit, with Stricter Criterion

(STRONGLY RECOMMENDED FOR UPGRADING)

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/ee8b5b54eb6ae629b30ee558310927d8981bb668
https://github.com/xtaci/kcp-go/commit/bba2d62e4780b2bdd198e7744d30c02e6c189bab
https://github.com/xtaci/kcptun/commit/8e74cf410c0790e7e372f9a2e25295c79e2f92a9

MD5 (kcptun-linux-amd64-20161105.tar.gz) = 0ce07c5dfe2d90bf6ffb65f565e67bf7
MD5 (kcptun-linux-386-20161105.tar.gz) = 334690906e8fcabbcb0d89fa1482581f
MD5 (kcptun-darwin-amd64-20161105.tar.gz) = 1208d6916bb1ad0d8a5e147050ca56e5
MD5 (kcptun-darwin-386-20161105.tar.gz) = f660d9f6c5894cb126d13375419c1601
MD5 (kcptun-windows-amd64-20161105.tar.gz) = d30652739f63e9bc36f24bd637e9406d
MD5 (kcptun-windows-386-20161105.tar.gz) = 66305e49859a20d934ef806fb574e06b
MD5 (kcptun-freebsd-amd64-20161105.tar.gz) = 0df864c42dbe774403e87f9c9fd09dd0
MD5 (kcptun-freebsd-386-20161105.tar.gz) = 84c813aa2abe6da7dab8238ae27b545d
MD5 (kcptun-linux-arm-20161105.tar.gz) = c6751092875790263148582ba61e0125
kcptun - Optimizations on CPU Usage

Published by xtaci almost 8 years ago

  1. improve xor.go performance by re-organizing code layout.
  2. dramatically reduce zero-ing operations in FEC.

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/ee8b5b54eb6ae629b30ee558310927d8981bb668
https://github.com/xtaci/kcp-go/commit/7112c1ca6856027af4d31ab3bb4f6cd09b47147a
https://github.com/xtaci/kcptun/commit/4ccc92205960c9619f8bb0c7363d901fa5a878a8

MD5 (kcptun-linux-amd64-20161102.tar.gz) = 701fcff24a5485384bf38d196b2217b6
MD5 (kcptun-linux-386-20161102.tar.gz) = 56becb5632919082bf8b40b3358dc58c
MD5 (kcptun-darwin-amd64-20161102.tar.gz) = a8d7d7f5e6daa8ef9d4fcc38705e4535
MD5 (kcptun-darwin-386-20161102.tar.gz) = 8aa3f1a6c04f83db8372b0de9272d80f
MD5 (kcptun-windows-amd64-20161102.tar.gz) = b2b3280451c311973b65d037cee7a426
MD5 (kcptun-windows-386-20161102.tar.gz) = dabc8e8cc275c574963131a4143745c4
MD5 (kcptun-freebsd-amd64-20161102.tar.gz) = e23a9d4eea3da8721c22ab37adc50193
MD5 (kcptun-freebsd-386-20161102.tar.gz) = da8633e73e6ec390669c8e5b2d8d6020
MD5 (kcptun-linux-arm-20161102.tar.gz) = 94adbfd1bb2d7dafa1dd4ff8ea51c949
kcptun - Even more optimizations on memory

Published by xtaci almost 8 years ago

  1. xmitBuf is shared among sess.go/fec.go/kcp.go.
  2. cacheline optimized fecgroup.

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/9d1cf796b3fb4b1a19d67b41d6660cd9d2d15c6f
https://github.com/xtaci/kcp-go/commit/0721a11748e39dd517c8f288e0b80f82dc42f242
https://github.com/xtaci/kcptun/commit/c601a18b3c7fbbae50fa3f8555630737f6bdd61a

MD5 (kcptun-linux-amd64-20161031.tar.gz) = 3838ee8ced9281415323f7e84212dd86
MD5 (kcptun-linux-386-20161031.tar.gz) = a0c7b66d0c395fe78aa7d0702fdfbd1d
MD5 (kcptun-darwin-amd64-20161031.tar.gz) = a79b9657d864f024e54cac567f0e73d3
MD5 (kcptun-darwin-386-20161031.tar.gz) = 2f11177301ea4eaed59cfae0baf06472
MD5 (kcptun-windows-amd64-20161031.tar.gz) = 035f813cca823a01419d01c132bb3560
MD5 (kcptun-windows-386-20161031.tar.gz) = be8124204676808305a905037f0fc750
MD5 (kcptun-freebsd-amd64-20161031.tar.gz) = b273e873ddbc93a70abc5d768ceb11c7
MD5 (kcptun-freebsd-386-20161031.tar.gz) = 9f9aa85cd681762ba03e0118fc4500b4
MD5 (kcptun-linux-arm-20161031.tar.gz) = 20eea11bcfefb0fa45beeead19e467f1
kcptun - Reduce memory footprint

Published by xtaci almost 8 years ago

Reduce memory footprint from kcp-go.

(https://github.com/xtaci/kcp-go/blob/master/kcp.go#L204)

(STRONGLY RECOMMENDED FOR UPGRADING)

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/9d1cf796b3fb4b1a19d67b41d6660cd9d2d15c6f
https://github.com/xtaci/kcp-go/commit/2220e8c7f84f347d2000b002fd5bc3b88658f346
https://github.com/xtaci/kcptun/commit/bb9574e7004b78d3f692bce1ef08f0e9741f45e4

MD5 (kcptun-linux-amd64-20161028.tar.gz) = 698cb00a420b98c8c7a7d096db0b2720
MD5 (kcptun-linux-386-20161028.tar.gz) = ab76de6934b816a77ce5119705198924
MD5 (kcptun-darwin-amd64-20161028.tar.gz) = 2ed9c4e6d9da51eee9d55fab962ffd8d
MD5 (kcptun-darwin-386-20161028.tar.gz) = 4ad1dd2aca302f4683356a1c3d0a32bb
MD5 (kcptun-windows-amd64-20161028.tar.gz) = 06ff5cc02e173a4f9b2aa4bfc4c949e7
MD5 (kcptun-windows-386-20161028.tar.gz) = 4aabae9d1831fc4a4a636e4af053a051
MD5 (kcptun-freebsd-amd64-20161028.tar.gz) = a7c6f4946f870e200efa5ebdc24defeb
MD5 (kcptun-freebsd-386-20161028.tar.gz) = 89bde3529be712253d7c352db56eedc1
MD5 (kcptun-linux-arm-20161028.tar.gz) = 05449422a35a0e5845e172b256299af9
kcptun - Reduce memory footprint

Published by xtaci almost 8 years ago

  1. Reduce memory footprint from smux.
  2. Remove Early Retransmit, it's replaceable with FEC , like increasing parityShard/dataShard ratio higher to 5:5.

(STRONGLY RECOMMENDED FOR UPGRADING)

$ go version
go version go1.7.3 darwin/amd64
https://github.com/xtaci/smux/commit/6250093011e71f1c87986c575cad1184c717c0ef
https://github.com/xtaci/kcp-go/commit/015bc070d7f1de4a544548596b56a491438a27aa
https://github.com/xtaci/kcptun/commit/4001e1b23d02cb61d442a47150f2bc188c5f7655

MD5 (kcptun-linux-amd64-20161025.tar.gz) = 47d70fb2b89f2045856e274dc51c3661
MD5 (kcptun-linux-386-20161025.tar.gz) = f83d09fcf7cc0be41bb67d55defcf9b6
MD5 (kcptun-darwin-amd64-20161025.tar.gz) = 3cef86b9f3cc0c9069cc518529bfe622
MD5 (kcptun-darwin-386-20161025.tar.gz) = 9bb0a302bca8547e944e2b4f47ffb0ab
MD5 (kcptun-windows-amd64-20161025.tar.gz) = 4c1bdd00935ba9682724a4c54b772ca9
MD5 (kcptun-windows-386-20161025.tar.gz) = b683f7bc9618b9130551afd8ba7543d0
MD5 (kcptun-freebsd-amd64-20161025.tar.gz) = 614e44ae892394f2b4c54f2db4f63732
MD5 (kcptun-freebsd-386-20161025.tar.gz) = 70ff66e643510a708c6626e700846fce
MD5 (kcptun-linux-arm-20161025.tar.gz) = 47cd7b20fa093f52539ca691fd4cd319
kcptun - lower CPU usage

Published by xtaci about 8 years ago

  • reduce cpu usage by eliminating some unnecessary xorBytes().
    减少不必要的清零操作,降低了CPU的消耗

$ go version
go version go1.7.1 darwin/amd64
https://github.com/xtaci/smux/commit/3f1c00c8d60dfb42089107eeafbb33406bede830
https://github.com/xtaci/kcp-go/commit/e9c2f49ea6a99f8889f5c2ef192c499f8c0aa772
https://github.com/xtaci/kcptun/commit/68b36fbf74685655219d5faaf1dbd41febb4aca7

MD5 (kcptun-linux-amd64-20161009.tar.gz) = c88508fcefb33395a47d0237d06f24df
MD5 (kcptun-linux-386-20161009.tar.gz) = f3ebbc46643add61ce0c9645b303be71
MD5 (kcptun-darwin-amd64-20161009.tar.gz) = 5a60d35fd027e848ba995e0b7906a290
MD5 (kcptun-darwin-386-20161009.tar.gz) = 6ed2de9cde7a1d3f51356185b12605ff
MD5 (kcptun-windows-amd64-20161009.tar.gz) = e95bfb7fbc66ef4e484642d3b8580ac7
MD5 (kcptun-windows-386-20161009.tar.gz) = 0b97f8d9568471d059fb435880178429
MD5 (kcptun-freebsd-amd64-20161009.tar.gz) = 16d1c8b9ae1cd5c0882bf4dbb262131f
MD5 (kcptun-freebsd-386-20161009.tar.gz) = 2f9a64f2f41f65525448d49597b6fc52
MD5 (kcptun-linux-arm-20161009.tar.gz) = 698ce3c05f7c89d93026943714acc2c7
kcptun - add -log option

Published by xtaci about 8 years ago

  • add -log option to redirect logs to files, eg:
-log kcptun.log

see issue: #199

  • fixed a potential race in smux

$ go version
go version go1.7.1 darwin/amd64
https://github.com/xtaci/kcptun/commit/e8e3e5a894814c7712e0a9c5570c13b136ec5449
https://github.com/xtaci/kcp-go/commit/1fb16b3ca3dd1511b3f88c59b0e65ddc0eb11212
https://github.com/xtaci/smux/commit/9f2b528a60917e6446273926f4c676cac759d2b0

MD5 (kcptun-linux-amd64-20160922.tar.gz) = f82d095829c89f088aad5bb6bcaea7fb
MD5 (kcptun-linux-386-20160922.tar.gz) = 3343f7f44abe86206266b53272b0a684
MD5 (kcptun-darwin-amd64-20160922.tar.gz) = 62e3f880d8c7b209fa80b6762a932509
MD5 (kcptun-darwin-386-20160922.tar.gz) = f80b74c9361fbb7dc3c852b3844e76da
MD5 (kcptun-windows-amd64-20160922.tar.gz) = 729ac873a30a23144912a57fc253e40b
MD5 (kcptun-windows-386-20160922.tar.gz) = d76ff17d59397cdf33ffd4fe248ec8c6
MD5 (kcptun-freebsd-amd64-20160922.tar.gz) = 0f267ee40605177e58d8cd13cd6decde
MD5 (kcptun-freebsd-386-20160922.tar.gz) = ec3437df126cba38fc8b7338a30156c7
MD5 (kcptun-linux-arm-20160922.tar.gz) = 8847c88c5e89290cc26aafe041dd2248
kcptun - Fix "connect: network is unreachable"

Published by xtaci about 8 years ago

Fix the problem below:

2016/09/18 20:21:21 dial udp **********:80: connect: network is unreachable
net.DialUDP
github.com/xtaci/kcp-go.DialWithOptions
    /Users/xtaci/.godeps/src/github.com/xtaci/kcp-go/sess.go:832
main.main.func1.1
...

addressed by waiting until a connection is created.

$ go version
go version go1.7.1 darwin/amd64
https://github.com/xtaci/kcptun/commit/09aea3056ac5e830546bee5adef8e72565861e07
https://github.com/xtaci/kcp-go/commit/1fb16b3ca3dd1511b3f88c59b0e65ddc0eb11212
https://github.com/xtaci/smux/commit/bc68dab0d658a14ebba041f2d7b2206255e5409b

MD5 (kcptun-linux-amd64-20160919.tar.gz) = 37323b632184240bd7f0d2c319524686
MD5 (kcptun-linux-386-20160919.tar.gz) = e16da92bd14041609cbf8b2385198ce9
MD5 (kcptun-darwin-amd64-20160919.tar.gz) = c5b65645f7e53e3943fb62e946fe1aea
MD5 (kcptun-darwin-386-20160919.tar.gz) = 3473b32f8ceaaf3923204a439c5a2826
MD5 (kcptun-windows-amd64-20160919.tar.gz) = 16f8201310fa5f09fbe2333f09942146
MD5 (kcptun-windows-386-20160919.tar.gz) = 734d57fc138313118625e70cdd71324f
MD5 (kcptun-freebsd-amd64-20160919.tar.gz) = a27726e60f0dc53393855dedc2c8d4db
MD5 (kcptun-freebsd-386-20160919.tar.gz) = 5ff7d5b57974a752b92e11722cdd6281
MD5 (kcptun-linux-arm-20160919.tar.gz) = b66faa598612df499580cfdfd0a36d3d
kcptun - SMUX optimize-II

Published by xtaci about 8 years ago

  1. faster stream.Write() in smux
  2. api optimize in kcp-go

$ go version
go version go1.7.1 darwin/amd64

kcptun : https://github.com/xtaci/kcptun/commit/3127b2d19fe4ddf2bcd69593fef045587095afe5
kcp-go: https://github.com/xtaci/kcp-go/commit/6610d527ea5c4890cf593796ff8ff1f10486bb68
smux: https://github.com/xtaci/smux/commit/82139aec732304058b23618341a0b61e37e51954

MD5 (kcptun-linux-amd64-20160912.tar.gz) = e460751bd95ade13810a92e59d6bf26d
MD5 (kcptun-linux-386-20160912.tar.gz) = e3d82630fe8c78e36b6b7959f515d819
MD5 (kcptun-darwin-amd64-20160912.tar.gz) = c2f78171e0703228f0a29fac435011bf
MD5 (kcptun-darwin-386-20160912.tar.gz) = 8b0006fd1326f25976f00beaa89ec84d
MD5 (kcptun-windows-amd64-20160912.tar.gz) = 02895382d20638f8ab54cc28daddd614
MD5 (kcptun-windows-386-20160912.tar.gz) = 2dd3fcd02cd85528027df2bd92c3bb81
MD5 (kcptun-freebsd-amd64-20160912.tar.gz) = ccd31d73e39bfcb2ed463c4c68b468a5
MD5 (kcptun-freebsd-386-20160912.tar.gz) = 562e804a67e17c219e771edf94265027
MD5 (kcptun-linux-arm-20160912.tar.gz) = 66559ed463297126408e5cc3490b0c25
kcptun - SMUX optimize!

Published by xtaci about 8 years ago

  1. memory allocation reduce in smux.
  2. fix a possible leak in smux.
  3. a full lint for the source codes.

$ go version
go version go1.7 darwin/amd64

kcptun : https://github.com/xtaci/kcptun/commit/3127b2d19fe4ddf2bcd69593fef045587095afe5
kcp-go: https://github.com/xtaci/kcp-go/commit/fdc17127b09f618e7f567cccb3d21c4c8682e16e
smux: https://github.com/xtaci/smux/commit/f78c3064f7886972949ece767790adc55e6f0448

MD5 (kcptun-linux-amd64-20160906.tar.gz) = 77723cd673e5e03b64d4973a9a54605b
MD5 (kcptun-linux-386-20160906.tar.gz) = 72b572b38fdc625294783a58be978b05
MD5 (kcptun-darwin-amd64-20160906.tar.gz) = 700500b2a802e3fda2285f5cda508f40
MD5 (kcptun-darwin-386-20160906.tar.gz) = b09a9cfd7bfe4231b22f02b45ecd38ec
MD5 (kcptun-windows-amd64-20160906.tar.gz) = 0943014cdb9f4555bad35eb42702b538
MD5 (kcptun-windows-386-20160906.tar.gz) = 2e7ddfcdb606cf5dcda0eba14839303b
MD5 (kcptun-freebsd-amd64-20160906.tar.gz) = 6ecf96c6e8f915db1d9ae3cd9604bffe
MD5 (kcptun-freebsd-386-20160906.tar.gz) = 553cefa3a801d960a4ddf2999af03001
MD5 (kcptun-linux-arm-20160906.tar.gz) = 313f2e27d9195fe2b950cf93e0b83cee
kcptun - SMUX Powered!

Published by xtaci about 8 years ago

Replaced original yamux with smux.

smux provides a _Token bucket_ controlled receiving, which leads to smoother bandwidth graph. (see smux here) and lower memory footprint.

_Warning: SMUX is incompatible with all previous releases, you have to upgrade both client & server_.

Issues about SMUX can be found & discussed here : https://github.com/xtaci/kcptun/issues/168

compiler: go version go1.7 darwin/amd64
kcptun version: https://github.com/xtaci/kcptun/commit/3db63cdff665f4e4efd84ce9408b5459a65fc1f4

smux version: https://github.com/xtaci/smux/commit/f4d95a8da159a47ace009b5eb8ce7b3d572bdf6e

kcp-go version: https://github.com/xtaci/kcp-go/commit/108b5caf9368d93a37c8d4a1196ba9da3b1e1037

MD5 (kcptun-linux-amd64-20160904.tar.gz) = 4c8118d27b5658e9dfa9f1a1ebf89a23
MD5 (kcptun-linux-386-20160904.tar.gz) = 33ad69223a68650986b6e98dbe5599e5
MD5 (kcptun-darwin-amd64-20160904.tar.gz) = 2715ed67a5e1d11e8f3e9b988b44ef27
MD5 (kcptun-darwin-386-20160904.tar.gz) = edab932a2c2d8fc42bb9cf2b20a87bfe
MD5 (kcptun-windows-amd64-20160904.tar.gz) = 26d7f7ff2ed89dac368e296dac656558
MD5 (kcptun-windows-386-20160904.tar.gz) = 7456cd01c09bb0c1369b5af3954287ee
MD5 (kcptun-freebsd-amd64-20160904.tar.gz) = 5bd55bec45e3a1c2ceb2e3becd5d6029
MD5 (kcptun-freebsd-386-20160904.tar.gz) = ca8c99d88eca2afda03c82df626e56d0
MD5 (kcptun-linux-arm-20160904.tar.gz) = 9e47e31b32988aa3b1dc5aca80851bba
kcptun - support -c flag for json config

Published by xtaci about 8 years ago

-c config.json to apply json configuration file.

example client.json:

{
    "localaddr": ":12948",
    "remoteaddr": "vps:29900",
    "key": "ahufr6qedR",
    "crypt": "salsa20",
    "mode": "fast2",
    "conn": 1,
    "autoexpire": 60,
    "mtu": 1350,
    "sndwnd": 128,
    "rcvwnd": 1024,
    "datashard": 70,
    "parityshard": 30,
    "dscp": 46,
    "nocomp": false,
    "acknodelay": false,
    "nodelay": 0,
    "interval": 40,
    "resend": 0,
    "nc": 0,
    "sockbuf": 4194304,
    "keepalive": 10
}

example server.json

{
    "listen": ":29900",
    "target": "127.0.0.1:12948",
    "key": "ahufr6qedR",
    "crypt": "salsa20",
    "mode": "fast2",
    "mtu": 1350,
    "sndwnd": 1024,
    "rcvwnd": 1024,
    "datashard": 70,
    "parityshard": 30,
    "dscp": 46,
    "nocomp": false,
    "acknodelay": false,
    "nodelay": 0,
    "interval": 40,
    "resend": 0,
    "nc": 0,
    "sockbuf": 4194304,
    "keepalive": 10
}
MD5 (kcptun-linux-amd64-20160830.tar.gz) = 1ad86a3d8fd9fe03601f348ee12eb0df
MD5 (kcptun-linux-386-20160830.tar.gz) = eb3d8608ebdcf43daa8f40fdd008608a
MD5 (kcptun-darwin-amd64-20160830.tar.gz) = c72dd92ff4c5a0b947d89e207ae3cb59
MD5 (kcptun-darwin-386-20160830.tar.gz) = 2212f818e9a5b984db46b3926affc747
MD5 (kcptun-windows-amd64-20160830.tar.gz) = 6cc050aa9b11cd84c58f618350c479c8
MD5 (kcptun-windows-386-20160830.tar.gz) = 3403e25d2d3ae3e2be2eeb6b926ebf00
MD5 (kcptun-freebsd-amd64-20160830.tar.gz) = f455d148bacf861ee0c3efaa403cc813
MD5 (kcptun-freebsd-386-20160830.tar.gz) = 3f656c7f27afed0e6202124351925117
MD5 (kcptun-linux-arm-20160830.tar.gz) = 5573a5053986878696ad35509fc4bf03
kcptun - autoexpire

Published by xtaci about 8 years ago

autoexpire

  1. control yamux recvBuf size & window update.
  2. add option -autoexpire to client, to establish auto-reconnecting after expired(already opened streams are keeped)

eg: client_darwin_amd64 -r ..... -autoexpire 60 will establish a re-connection after 1 minutes.

MD5 (kcptun-linux-amd64-20160826.tar.gz) = 873f5b483a826145614cc5bdfb2b0e00
MD5 (kcptun-linux-386-20160826.tar.gz) = bf93afd694ddddde526aebac6ef0441a
MD5 (kcptun-darwin-amd64-20160826.tar.gz) = f82a9fe4652a5eba4de688d04d2d589d
MD5 (kcptun-darwin-386-20160826.tar.gz) = cc129e96d464cd7b34a8b40f6c49bb4a
MD5 (kcptun-windows-amd64-20160826.tar.gz) = 08f65d88436fff7ba454cddd046f7bab
MD5 (kcptun-windows-386-20160826.tar.gz) = 0bbcb3e8a7897b0c2d3f8797ec9febca
MD5 (kcptun-freebsd-amd64-20160826.tar.gz) = 101b5fd287218cbf2baaf6de019d3983
MD5 (kcptun-freebsd-386-20160826.tar.gz) = a80309360ca5acca40523bead62be8d3
MD5 (kcptun-linux-arm-20160826.tar.gz) = 31c61f1286a46f84ebc985e7073bb614