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 - More responsive & make timing monotonic

Published by xtaci about 6 years ago

  1. Responsiveness improvement from scheduler optimization in kcp-go.
  2. Faster encryption & decryption for all crypto algorithms.
  3. Monotonic time measurement for all RTT related calculation.

https://github.com/xtaci/kcptun/commit/adae7259959d31af5be5b806aa11606698b5d705
https://github.com/xtaci/kcp-go/commit/1df42866e68ea3548c62efafc0dd9f5680a98715
https://github.com/xtaci/smux/commit/e28719eede1ac5714cf0b06ba2f403125864ebe0

$ go version
go version go1.11 darwin/amd64

SHA1SUM

bf1538af73fc6941ad86ae2898082f70ae719a6a  kcptun-linux-amd64-20180926.tar.gz
e9a14d09640794ca9a49d0c6228289cc2fb08150  kcptun-linux-386-20180926.tar.gz
45d2946dd0ed24f0b2859ddc897f65b32b6b3455  kcptun-darwin-amd64-20180926.tar.gz
e5b188559e593b2ef7cc031e8a9de17e0d8b482e  kcptun-darwin-386-20180926.tar.gz
bf9baefccb252cac9aeb3b33973fe25396a6fce2  kcptun-windows-amd64-20180926.tar.gz
57e6bca3201e3acb1395e95e5221a59d420f6ca3  kcptun-windows-386-20180926.tar.gz
2cd3e7368673a1ce090090fcf0157350d1a4b993  kcptun-freebsd-amd64-20180926.tar.gz
776d1df194e01d8a8bc61a47e6403b904c2ae6db  kcptun-freebsd-386-20180926.tar.gz
ba4eef262b0a72a403ea1296e937fb59476ce856  kcptun-linux-arm-20180926.tar.gz
01ed74b939064a281e06b60e45b5d2e810d79241  kcptun-linux-mipsle-20180926.tar.gz
b2900372b012a048a062d5862c1354d7c06d2f0e  kcptun-linux-mips-20180926.tar.gz
kcptun - Improved responsiveness

Published by xtaci about 6 years ago

  1. Responsiveness improvement from event loop optimization in kcp-go.
  2. Changed default writing parameter to nodelay(as disabling nagle algorithm).

https://github.com/xtaci/kcptun/commit/adae7259959d31af5be5b806aa11606698b5d705
https://github.com/xtaci/kcp-go/commit/c0e1e94894fe9d7fd02359208604220c19b28637
https://github.com/xtaci/smux/commit/e28719eede1ac5714cf0b06ba2f403125864ebe0

$ go version
go version go1.11 darwin/amd64

SHA1SUM

840169c259575dabb05f9d0ab302ae30d06ac51d  kcptun-linux-amd64-20180922.tar.gz
74b7c540851bb4de557b56c71968d5c9a0c03a38  kcptun-linux-386-20180922.tar.gz
9f8b6039274c7bb3fd73412356c6d397dddfb2d8  kcptun-darwin-amd64-20180922.tar.gz
e8c44588672dc88e602b8978d867e30b26def0ef  kcptun-darwin-386-20180922.tar.gz
33b154f604cee1b2fd07b39ef191f112b19f6986  kcptun-windows-amd64-20180922.tar.gz
fe28ecfe4e0688abf06a07982d8f9fd5335ca965  kcptun-windows-386-20180922.tar.gz
e36c620ed5a3bb8fe824d9e7817171efe40b45b2  kcptun-freebsd-amd64-20180922.tar.gz
44bcf0652159aaa29c186b9000acc562687d18f6  kcptun-freebsd-386-20180922.tar.gz
9331ea395ed2d9fcd749018df56b6ff0fa47c4bd  kcptun-linux-arm-20180922.tar.gz
a5ef51d2fa2b2a18a6ee9260bc5b6a3d3be64f4a  kcptun-linux-mipsle-20180922.tar.gz
430657653547219dcec392bf8a631065b981150d  kcptun-linux-mips-20180922.tar.gz
kcptun - Cumulative updates(MIPS softfloat support)

Published by xtaci about 6 years ago

  1. added AES based nonce generator, faster than MD5 in all scenarios.
  2. set 'GOMIPS=softfloat' as the default option in compiling for MIPS platform.
  3. add a hint for key derivation for slow CPUs.
  4. compiler updated to go1.11.

https://github.com/xtaci/kcptun/commit/561ee05818dacb311e025af8685d0a06a6807423
https://github.com/xtaci/kcp-go/commit/9c319c3ee81618967751ce222d0c199372873867
https://github.com/xtaci/smux/commit/e28719eede1ac5714cf0b06ba2f403125864ebe0

$ go version
go version go1.11 darwin/amd64

SHA1SUM

99daaac9007087f893f3492990312a14b6313c01  kcptun-linux-amd64-20180917.tar.gz
74d7dbea6850ebc034d9c2579ed382e381092ac4  kcptun-linux-386-20180917.tar.gz
5ecdd654cb64bfc9bd0ebcaaf4222b61b9a9431f  kcptun-darwin-amd64-20180917.tar.gz
3b075c7a78e0e2e3127831ac2be8fac7bb72ed77  kcptun-darwin-386-20180917.tar.gz
715c14b5792d83f709659cd2db3a96658720c199  kcptun-windows-amd64-20180917.tar.gz
5323bba51e5bef8d097b7d0bf17f08b94986c70f  kcptun-windows-386-20180917.tar.gz
e2457f69d9929ab3f76e4c226e628b35183db574  kcptun-freebsd-amd64-20180917.tar.gz
e210b7acefe4e998df9de574d4fad8e53b1f914a  kcptun-freebsd-386-20180917.tar.gz
7d0ec5503d3541470088aac235f46dad34dd7d00  kcptun-linux-arm-20180917.tar.gz
af093caefb9b567aa4f5decdf40db17fa2c01116  kcptun-linux-mipsle-20180917.tar.gz
815551259590c7b46d5f8539deee76d0982bb0bf  kcptun-linux-mips-20180917.tar.gz
kcptun - Improvements on connection speed

Published by xtaci about 6 years ago

A severe bug introduced by https://github.com/xtaci/kcp-go/pull/65 prevents the server-side of kcptun from processing the incoming FEC packet now discovered(which leads to unnecessary retransmissions). This release has fixed that bug(by disposing the that feature), and the benchmark showed MUCH FASTER than previous versions.

EVERYONE is suggested to upgrade to this version, meanwhile, all functional PR will be rejected releated to kcp-go to prevent such mistakes.

$ go version
go version go1.10.3 darwin/amd64

$ ~/go/src/github.com/xtaci/kcptun/build-release.sh
e0e031dfb4025e6d50734bb9587e19e1b75fe81f  kcptun-linux-amd64-20180810.tar.gz
34f1f3f28efc3a9d87951e26e1988156dcaf3041  kcptun-linux-386-20180810.tar.gz
4ee1c7e7ad18a03b77aba02f706828880db04ced  kcptun-darwin-amd64-20180810.tar.gz
ac7920e89312f1c06043957b94d1712e7130237f  kcptun-darwin-386-20180810.tar.gz
e6c42dfac0678f2eaa4164a66700bcd870b1fe2b  kcptun-windows-amd64-20180810.tar.gz
ec6a010b9787e3cbe99a2fa58f73359f52101e6f  kcptun-windows-386-20180810.tar.gz
7edfe81f75e5fc8392ee61a81c5a93b65ff722d0  kcptun-freebsd-amd64-20180810.tar.gz
fda34f1191b06e12dfe4efca8cdf13575d70351e  kcptun-freebsd-386-20180810.tar.gz
030a8d74c1fe8e6d273d057630f6aed01dac5144  kcptun-linux-arm-20180810.tar.gz
20e2f49b1ea8d37f0141e712eb5cd00992dcd88e  kcptun-linux-mipsle-20180810.tar.gz
b937e1b117883153e57026bc38bd98f9ad1c3f4e  kcptun-linux-mips-20180810.tar.gz
kcptun - fix 'too man open files'

Published by xtaci over 6 years ago

fix 'too man open files'

$ go version
go version go1.10 darwin/amd64
https://github.com/xtaci/kcptun/commit/03f27ec53da7240b701d9d75114da713cc32eeec
https://github.com/xtaci/kcp-go/commit/42bc1dfefff592fdb3affa793980c4f6ab4213e5
https://github.com/xtaci/smux/commit/e28719eede1ac5714cf0b06ba2f403125864ebe0

bd6fa3a725d62a5ad78f948fd40ab43f9876f908  kcptun-linux-amd64-20180316.tar.gz
caa80772285f68bd8653a8d2ce7c651b753d75b5  kcptun-linux-386-20180316.tar.gz
da968460fda2117d7148093f9e6f763beadc7185  kcptun-darwin-amd64-20180316.tar.gz
6107a98b318bf4bf476175101cd009bf530614f8  kcptun-darwin-386-20180316.tar.gz
81b0ce6ad3fb955264a0a7a74268b0686b69475e  kcptun-windows-amd64-20180316.tar.gz
d5f60ca1d866439938fa3ea4002e2099cc8a43d2  kcptun-windows-386-20180316.tar.gz
0c809f57586bb954b1426de6896ef3741b3aa481  kcptun-freebsd-amd64-20180316.tar.gz
fb5217c37d3029ae003dca876b92d6bfd82ad34f  kcptun-freebsd-386-20180316.tar.gz
ca28edd9f7a8a09bff564a8782b7115f0d6e02ff  kcptun-linux-arm-20180316.tar.gz
a1a47da98ff2744a418b2c68646601ed37d47b6d  kcptun-linux-mipsle-20180316.tar.gz
99ef72cbcd03222d3bd3344e72188edbe1fc4a64  kcptun-linux-mips-20180316.tar.gz
kcptun - Repack executable for last version

Published by xtaci almost 7 years ago

1.Repack version v20171129, due to the profiling option in testing(port 6060), the binary size of client side(ONLY) is larger than the previous versions, this repacking fixed this issue, with no functional changes.

$ go version
go version go1.9.2 darwin/amd64
https://github.com/xtaci/kcptun/commit/825ccca6ac202b108b5a61cd9aeb34ffd0c293a7
https://github.com/xtaci/kcp-go/commit/0dc7be275bda3ba07791a211981b80f2af5d9361
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458

661bfd51556f61442f8c33c7eaa15bf9db5b8f08  kcptun-linux-amd64-20171201.tar.gz
4d8067934c017897f8354de8f958fd49a96b782d  kcptun-linux-386-20171201.tar.gz
ceb445bca9f4bddc0f6cd0feae57f0097ef11172  kcptun-darwin-amd64-20171201.tar.gz
c1201bc374f9811bd67d95e770f387a4507fdf48  kcptun-darwin-386-20171201.tar.gz
7a24fb46cbe754cd575c9f56c3a7de2c7411476a  kcptun-windows-amd64-20171201.tar.gz
3e2327d60c491aca634cfbfccb8b63133d460ccd  kcptun-windows-386-20171201.tar.gz
e540efb14ef9450a75b06adef9698d58ae3e34a6  kcptun-freebsd-amd64-20171201.tar.gz
0dd4918daa334a8ef1e0b55a7b97b6265372ecd0  kcptun-freebsd-386-20171201.tar.gz
feea02fe4d3bb4b5c66ba758fa0060b2082232ce  kcptun-linux-arm-20171201.tar.gz
25d7f72b9f42b4c616cafe5439d84424b32c2f45  kcptun-linux-mipsle-20171201.tar.gz
d8bc027fad1006eac3255b8e30e35341d66f6873  kcptun-linux-mips-20171201.tar.gz
kcptun - a faster nonce generator

Published by xtaci almost 7 years ago

  1. a new faster nonce generating algorithm by mixing with hashing and randoms from system.
    (you can try $ go test -v -run=^$ -bench Csprng from kcp-go)

$ go version
go version go1.9.2 darwin/amd64
https://github.com/xtaci/kcptun/commit/825ccca6ac202b108b5a61cd9aeb34ffd0c293a7
https://github.com/xtaci/kcp-go/commit/0dc7be275bda3ba07791a211981b80f2af5d9361
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458

1eb93b27e686d9af302eedbdde5d4762302315e9  kcptun-linux-amd64-20171129.tar.gz
3f3ff92259ab561a6d88632398f7e6971b235f3d  kcptun-linux-386-20171129.tar.gz
faae49a9ddbb8c2e33bfaab8f466fbbdd6b5211f  kcptun-darwin-amd64-20171129.tar.gz
d85e992fe83b4c750412e8b32adc93b3fb340ba4  kcptun-darwin-386-20171129.tar.gz
c8f9b5d37f3e879c68c77d7c47c0ce0dbc0a5650  kcptun-windows-amd64-20171129.tar.gz
2a8b0a0c3651c5d17aa3c9520ebec205518d44c9  kcptun-windows-386-20171129.tar.gz
3bd50304b835afc8a2e1c76e6f031571861d4505  kcptun-freebsd-amd64-20171129.tar.gz
fee4d96579079cf035120718995ca6c1e8977ecd  kcptun-freebsd-386-20171129.tar.gz
06e9dad82325ecf14edd731a0310874fc02750a8  kcptun-linux-arm-20171129.tar.gz
69072f8ea6401302a43fbad127b1c45ef002f78f  kcptun-linux-mipsle-20171129.tar.gz
c29cc42a04c3ee9478f5ad0776225912d5dfcc5c  kcptun-linux-mips-20171129.tar.gz
kcptun - improvements in rtt & fec

Published by xtaci almost 7 years ago

  1. an adjustment in samples of RTT, always pick the segment with largest sn in one packet.
  2. use copy instead of xor for efficient zeroing of slice.

$ go version
go version go1.9.2 darwin/amd64
https://github.com/xtaci/kcptun/commit/825ccca6ac202b108b5a61cd9aeb34ffd0c293a7
https://github.com/xtaci/kcp-go/commit/69dab7fa0029c4ee5917b03a6a259762533379d8
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458
https://github.com/templexxx/reedsolomon/tree/0.1.1

70fd0e8a5bf9c97e2c5e0262c5d4effda9cead52  kcptun-linux-amd64-20171113.tar.gz
b6dfc944eeba195dd9635d7fbde269863232bc1b  kcptun-linux-386-20171113.tar.gz
38f4ee4d55045fe26eff1f1cab6cb67b0cd238f6  kcptun-darwin-amd64-20171113.tar.gz
68aba13e92ebf34fe92c91d88cd569fce66fb2ad  kcptun-darwin-386-20171113.tar.gz
f496a3e5d04719155103c08288b1e8be0b083cfa  kcptun-windows-amd64-20171113.tar.gz
b85e534befc6ee6b7f5082b47d84cc30132ce0de  kcptun-windows-386-20171113.tar.gz
08ea6c5c0f8cff565a04b2cd18c5c02c68700f9a  kcptun-freebsd-amd64-20171113.tar.gz
71b9fb9a73a3c4ede0425d1b8506ea9633c70351  kcptun-freebsd-386-20171113.tar.gz
3495eed3b1a3a948ea4c7bcf4e1e91861962f9e6  kcptun-linux-arm-20171113.tar.gz
044d5f2c425e9c3a1f1f970892c7725474e11b8b  kcptun-linux-mipsle-20171113.tar.gz
56b857df793863ba6415e3832c82a4d842cbb67b  kcptun-linux-mips-20171113.tar.gz
kcptun - support for '-quiet' option

Published by xtaci almost 7 years ago

  1. support for '-quiet' option to suppress boring 'stream open/close' messages.

$ go version
go version go1.9.1 darwin/amd64
https://github.com/xtaci/kcptun/commit/2845af3911b4052b16fa291fb5f1de79817a2ecd
https://github.com/xtaci/kcp-go/commit/21da33a6696d67c1bffb3c954366499d613097a6
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458
https://github.com/templexxx/reedsolomon/tree/0.1.1

dc98db3f64b297a75e1c1a12143d1ccf54d963f4  kcptun-linux-amd64-20171021.tar.gz
d1f123234fa9c56e9fa7a1442349253f6b4f1ff0  kcptun-linux-386-20171021.tar.gz
2ef347526888ead02c8bbac41c1d6e3d2077f7c9  kcptun-darwin-amd64-20171021.tar.gz
77cdc20684a1050d816e97768c76d556d1ad8843  kcptun-darwin-386-20171021.tar.gz
e9c11aa4112124aba01c1d67a8d690511f194f9d  kcptun-windows-amd64-20171021.tar.gz
2d8ee4646f1f08a23f245e5124ccbc2e75c0c3f7  kcptun-windows-386-20171021.tar.gz
7ec959e6339d40ba91e4c9c0dc16febcd961f886  kcptun-freebsd-amd64-20171021.tar.gz
34d0c87015c242110af3bcdfaaa9a0a2e0961e09  kcptun-freebsd-386-20171021.tar.gz
a223fc82b376d3991a9953a8098bbccb938c4adf  kcptun-linux-arm-20171021.tar.gz
eda5483cc2fd335b13ba1b7c91a2d09ac16beb4f  kcptun-linux-mipsle-20171021.tar.gz
c4d42c1a214b75a5c3129dff2188ab5c26d73ecf  kcptun-linux-mips-20171021.tar.gz
kcptun - Fix 'Illegal Instructions" crash on some platform

Published by xtaci about 7 years ago

  1. fix 'Illegal Instructions" crash on some platform

$ go version
go version go1.9 darwin/amd64
https://github.com/xtaci/kcptun/commit/4aaf974a0b4f49b68c5010611137eaf67b422e9c
https://github.com/xtaci/kcp-go/commit/44c3d76a6b5cc9e3687f829078a52f372928e776
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458
https://github.com/templexxx/reedsolomon/tree/0.1.1

74204755d1fcded11cbccba23f5693299af75373  kcptun-linux-amd64-20170930.tar.gz
4c5feeba8693644a6962fe7955d0ac8da925c3be  kcptun-linux-386-20170930.tar.gz
fa1a3daf57a41d15678a989cc3fde999975b1ecf  kcptun-darwin-amd64-20170930.tar.gz
d2c6cad44cf930548ecc7fc2b833cb7a5e6e101d  kcptun-darwin-386-20170930.tar.gz
4022da27c2206ef369ce5f19dc1c6a33851c4f17  kcptun-windows-amd64-20170930.tar.gz
e409779c136eef3e52b3c65c01348a8368b1845e  kcptun-windows-386-20170930.tar.gz
c8bdd0787beca5ab44075dee58a4f114b65f4cca  kcptun-freebsd-amd64-20170930.tar.gz
5d5e570315a977649cc89830de521a44688ad1c5  kcptun-freebsd-386-20170930.tar.gz
b40de337d590882cdf0218037662da00caf090e2  kcptun-linux-arm-20170930.tar.gz
bee1a9de3a3b288b21586695e2678598ccc21880  kcptun-linux-mipsle-20170930.tar.gz
2f65ee825a079337214db3e0c7e1086169ffe22e  kcptun-linux-mips-20170930.tar.gz
kcptun - SSE & AVX optimization in ReedSolomon Code

Published by xtaci about 7 years ago

  1. Using SSE & AVX optimized ReedSolomon , thanks to templexxx.
  2. Go1.9 is required.

(UPDATE: If this program crashed with 'Illegal Instruction', you can switch back to the previous release, we are working in it.)

$ go version
go version go1.9 darwin/amd64
https://github.com/xtaci/kcptun/commit/4aaf974a0b4f49b68c5010611137eaf67b422e9c
https://github.com/xtaci/kcp-go/commit/44c3d76a6b5cc9e3687f829078a52f372928e776
https://github.com/xtaci/smux/commit/ebec7ef2574b42a7088cd7751176483e0a27d458
https://github.com/templexxx/reedsolomon/commit/f9cea058bb09e6902c4299f39e48d915cdf46937

c0bc7645fc87fcf0824bc1e536cb7924bb61ff84  kcptun-linux-amd64-20170904.tar.gz
30b7a640dd4852fa513c7cf313ccacfa02bdc953  kcptun-linux-386-20170904.tar.gz
38fb8050425e0031c56344e47b43cf0815f76331  kcptun-darwin-amd64-20170904.tar.gz
eddd40d411a8b317f60aae4206eddec1ac77d1a6  kcptun-darwin-386-20170904.tar.gz
049582b9c14bd6d99affd9e4e116fedd46b2a954  kcptun-windows-amd64-20170904.tar.gz
6d89891491b49998565f4983024d5068cc4d460c  kcptun-windows-386-20170904.tar.gz
a10348a5029b46a57582c021db38e62c573785f7  kcptun-freebsd-amd64-20170904.tar.gz
2f0428fef1d3d8c19faac954792de75082375fc4  kcptun-freebsd-386-20170904.tar.gz
2c65e6a3e5402758b1af92afa81a1fae10712932  kcptun-linux-arm-20170904.tar.gz
d2efacb67a3bccdbb61ed3f1fa940f9959514887  kcptun-linux-mipsle-20170904.tar.gz
cd05c07699d4534462fd5aee581b76f2b4a53c4f  kcptun-linux-mips-20170904.tar.gz
kcptun - CPU optimizations

Published by xtaci over 7 years ago

  1. CPU optimization on updater(eliminate map).
  2. Add a log on reconnecting.

$ go version
go version go1.8.3 darwin/amd64
https://github.com/xtaci/kcptun/commit/ded53a922975e3ca99af255410157ec1e38623f9
https://github.com/xtaci/kcp-go/commit/7f81f739c31db4d428e928a834ea05605d2793c1
https://github.com/xtaci/smux/commit/2de5471dfcbc029f5fe1392b83fe784127c4943e

b964ff8a06c921a6110c297f1f2bb711d652edfb  kcptun-linux-amd64-20170525.tar.gz
9087ec531c06efea086d722ee360f5412e143083  kcptun-linux-386-20170525.tar.gz
dd4f94745875412f403032229312b63dcd1b938b  kcptun-darwin-amd64-20170525.tar.gz
ca36f828c914fe0d542273e9bd206eb764405a48  kcptun-darwin-386-20170525.tar.gz
00b4a1e9da5cce1dbba9191a65049cb2be319619  kcptun-windows-amd64-20170525.tar.gz
edad09dc3a52552e6f91a377edb118b19836ec5a  kcptun-windows-386-20170525.tar.gz
77acfcbe55d4efa5d48e691872bf56853cc2c0d2  kcptun-freebsd-amd64-20170525.tar.gz
7cd1d68b773e5d89d3a9da8137f36798cd6e49ac  kcptun-freebsd-386-20170525.tar.gz
efa273e2438065a319e50c44e7cd68a0e65c05d5  kcptun-linux-arm-20170525.tar.gz
18b9460d62218d1899fe5dead8550304371b541a  kcptun-linux-mipsle-20170525.tar.gz
7ef64becf7bfccb5465484c649b46f100d41e511  kcptun-linux-mips-20170525.tar.gz
kcptun - CPU optimizations

Published by xtaci over 7 years ago

  1. CPU optimizations(reducing several memcpy).
  2. Idle server won't cost CPU anymore.

$ go version
go version go1.8 darwin/amd64
https://github.com/xtaci/kcptun/commit/6496672b61e02e052fb9a88ac0794ca8aa7801fa
https://github.com/xtaci/kcp-go/commit/de1d7d14c446e243436d6914c59655c87dc71fb7
https://github.com/xtaci/smux/commit/a74b5eac0f6a3e0205cef23d669a8274096ce8d5

8d899488fcf014c96baf17b57772014cb1691f99  kcptun-linux-amd64-20170329.tar.gz
836d8e83f3d9b4819d62d924cc7ead0f2d91eeaa  kcptun-linux-386-20170329.tar.gz
bedb95a636f7ee72a73bf05a17aee60192a5b613  kcptun-darwin-amd64-20170329.tar.gz
ff9740578b2c762b4ad04524503001d4305fa301  kcptun-darwin-386-20170329.tar.gz
aea93227a299250b5725b22ef9a308dfade59f1b  kcptun-windows-amd64-20170329.tar.gz
203102cb5bbcece775dfa33c69aeca5917460d80  kcptun-windows-386-20170329.tar.gz
3ab4374145b2cc967e0ec6041ec00cf5e2f8edb1  kcptun-freebsd-amd64-20170329.tar.gz
0afc1ba3eec1d28bb86c06cd600feeee94a0a325  kcptun-freebsd-386-20170329.tar.gz
82f2e50394e7120324ff5d6876684624b6145d65  kcptun-linux-arm-20170329.tar.gz
ef4df14b91de68147a09eb3ffe6ab71e5f727762  kcptun-linux-mipsle-20170329.tar.gz
72ebba87d17ee3fca0b76b468dc48f0160f11b18  kcptun-linux-mips-20170329.tar.gz
kcptun - CPU optimizations

Published by xtaci over 7 years ago

  1. CPU optimizations(including syscall, segment merging, frame allocation).
  2. Wait maximum -interval for packet merging before sending.
  3. Fix a possible CONNECTION STALL in smux.
  4. Reduce default parameter -interval due to the improvements of code execution.

(Uploaded at March 22, 20:20, Everyone is suggested to upgrade to this version.)

$ go version
go version go1.8 darwin/amd64
https://github.com/xtaci/kcptun/commit/acf7a0192294c965c171cc129f0529869e2591de
https://github.com/xtaci/kcp-go/commit/993d72d8769076873b90f5d04f78d0cd9fed2a85
https://github.com/xtaci/smux/commit/a1a5df8f92af764f378f07d6a3dd8eb3f7aa190a

63a7a4bd5cb4075ee584225c2cff82eae1ae3e7d  kcptun-linux-amd64-20170322.tar.gz
130cb7229871ff06fb0ffda2051bf41bac5e72cc  kcptun-linux-386-20170322.tar.gz
25bd350a3fc6bd5dce566a220ab76da1d6f61ac6  kcptun-darwin-amd64-20170322.tar.gz
4933cd73416fb013e7f69806931f927ce00fb00e  kcptun-darwin-386-20170322.tar.gz
82095425eab1531cf6952390b5a0faa40ad6c40a  kcptun-windows-amd64-20170322.tar.gz
9d7e18ea690454f063db12d83837d533d3ef4f7c  kcptun-windows-386-20170322.tar.gz
c8c2b680b9c405559e47b7acb917ae0ece09e179  kcptun-freebsd-amd64-20170322.tar.gz
3cb3fb14601e57d2508f6d685dd1c879df2662f0  kcptun-freebsd-386-20170322.tar.gz
bde3196ed45764d85cddf685bb45f9e3b56536d7  kcptun-linux-arm-20170322.tar.gz
f90d15322ad12c043b790d3afd15745a335a2dc0  kcptun-linux-mipsle-20170322.tar.gz
560e75b983e05a3386f1be5b5036011dda582d3a  kcptun-linux-mips-20170322.tar.gz
kcptun - executable binary size shrinking on client side

Published by xtaci over 7 years ago

executable binary size shrinking on client side, by removing -pprof option on client.

https://github.com/xtaci/kcptun/issues/417

$ go version
go version go1.8 darwin/amd64
https://github.com/xtaci/kcptun/commit/e667b74b35235d7ede5d998654ba26c68e2572c9
https://github.com/xtaci/kcp-go/commit/b07f72b9f05c8f8e20f0bae3f0e64cf039f97f44
https://github.com/xtaci/smux/commit/949ec4dc3ffd128f06fba1e9584734dbbbc3b4e7

MAKE SURE TO CHECK SHA1 CHECKSUM IF IN DOUBT.

SHA1 CHECKSUM
a854c07089f39e86d44e77064eb061a7e6f3857e  kcptun-linux-amd64-20170315.tar.gz
ad44e174de86eb2b32d8b28769f938f9064f16f9  kcptun-linux-386-20170315.tar.gz
3310c6cc8eeb22b4ac32aeaf3652694909950561  kcptun-darwin-amd64-20170315.tar.gz
2900f227cffe583576aefceb1cac538971457a12  kcptun-darwin-386-20170315.tar.gz
d4670dbd77b13c37a08630beac83de4122d198fe  kcptun-windows-amd64-20170315.tar.gz
147eb28787f0233eb06d5bbfaa1ec12b85ac6566  kcptun-windows-386-20170315.tar.gz
bd696a01115e6e608a85ba2ca25cd92e1ce15a51  kcptun-freebsd-amd64-20170315.tar.gz
33a187daca9307a62651b07f737a8f7e2e6087d7  kcptun-freebsd-386-20170315.tar.gz
7575a2b7fb0c50f998d823887bb4bb1035bed705  kcptun-linux-arm-20170315.tar.gz
de0d692e07f3971fc1bcc9aa7578ac592257d8f0  kcptun-linux-mipsle-20170315.tar.gz
14a450276c13fc1a1b4263a99494bb238ff8b473  kcptun-linux-mips-20170315.tar.gz
kcptun - Plenty of Optimizations on Memory Usage

Published by xtaci over 7 years ago

  1. Plenty of optimizations on memory usage, Including:
    a. kcp.acklist shrink strategy
    b. kcp.queue shrink strategy
    c. fec.rx shrink strategy
    d. sess.output temp buffer zero allocation
    e. UDPSession.receiver Listener.monitor receiving buffer.

  2. New option -pprof which listens on http://IP:6060/debug/pprof/ for debugging purpose.

  3. FIX THE MEMORY LEAK IN ALL PREVIOUS RELEASES IN MARCH.(UPDATE: Mon Mar 13 12:54:50 UTC 2017). (修正三月早期版本存在的服务器端内存泄漏问题。13日晚9点重新上传。)https://github.com/xtaci/kcptun/issues/415 https://github.com/xtaci/kcptun/issues/417

  4. FIX too many CLOSE_WAIT in client side. https://github.com/xtaci/kcptun/issues/416

$ go version
go version go1.8 darwin/amd64
https://github.com/xtaci/kcptun/commit/b3c4ec948386dd7719901558076cc40bd41bc56c
https://github.com/xtaci/kcp-go/commit/1de928589147b57262447cb2cabce2028db9ae7d
https://github.com/xtaci/smux/commit/949ec4dc3ffd128f06fba1e9584734dbbbc3b4e7

MAKE SURE TO CHECK SHA1 CHECKSUM IF IN DOUBT.

SHA1 CHECKSUM
82a9c30cc704eb0c2b29165c91172d014a9cce75  kcptun-linux-amd64-20170313.tar.gz
e7e9791086c88fd926c9f1860646cb58604557cc  kcptun-linux-386-20170313.tar.gz
c9e13f93b324f8f117fa39eb248ff17d8e72e6d6  kcptun-darwin-amd64-20170313.tar.gz
e6662069ff7e75c67f240fe7e451b141ccd8eeca  kcptun-darwin-386-20170313.tar.gz
a4450a2cf49c7d1013cc6be20e3680064c89ac76  kcptun-windows-amd64-20170313.tar.gz
497ea2aab1a2a3ada953b347990514fb291bf5f9  kcptun-windows-386-20170313.tar.gz
3827a36b111c9bdeeca93ce66fd726649b2859bd  kcptun-freebsd-amd64-20170313.tar.gz
166f3ebf5ea7d15c19086f2ea5c6821579c29b90  kcptun-freebsd-386-20170313.tar.gz
b58604532047c3f83549be5f4a0d609b6992b77a  kcptun-linux-arm-20170313.tar.gz
10817796ee5c78c5ceafca0d36717327df902e31  kcptun-linux-mipsle-20170313.tar.gz
b5a117baa22d7f3410d3d45624bf4f4e8c57741c  kcptun-linux-mips-20170313.tar.gz
kcptun - 累计优化

Published by xtaci over 7 years ago

  1. eliminate spurious wake up of writeable events.
  2. eliminate atomic stalls when no snmp info needs update for each interval.
  3. only trust window update from regular packets, not FEC packets.

https://github.com/xtaci/kcptun/commit/2f0783f81dce6b36a821755087321181640c49da
https://github.com/xtaci/kcp-go/commit/39bec2a73d46f2e0e104f94d7411e2cc63b1e6d3
https://github.com/xtaci/smux/commit/949ec4dc3ffd128f06fba1e9584734dbbbc3b4e7

SHA1 Checksums:
b5654a3c9a1dfeacf136ea408a5f2a7607efbefe  kcptun-linux-amd64-20170221.tar.gz
3086afd59b423bccc1d5f68bf82a11757c72793d  kcptun-linux-386-20170221.tar.gz
18e7fda6b0d8c374049226adac0df339c3208096  kcptun-darwin-amd64-20170221.tar.gz
70611af1975e39c03c1351c10c560d4e420634a2  kcptun-darwin-386-20170221.tar.gz
c922a26f2fbd9f89a152f244817d20a9e5957597  kcptun-windows-amd64-20170221.tar.gz
455e10fc01976b972f25d31e4cc7d3b1a570678d  kcptun-windows-386-20170221.tar.gz
7c88b68b2d77974973e124447ec456c285c88ba3  kcptun-freebsd-amd64-20170221.tar.gz
f52780201f925b047b4877e7fcc6d893046bca80  kcptun-freebsd-386-20170221.tar.gz
22e37d839374558d4fcf7b0934237576eece0cdf  kcptun-linux-arm-20170221.tar.gz
d996cdf7ccff450bfe444ab70a5657f974d43a48  kcptun-linux-mipsle-20170221.tar.gz
471065274c32ab1087638075918899cb4ead14ec  kcptun-linux-mips-20170221.tar.gz
kcptun - golang 1.8 stable recompile

Published by xtaci over 7 years ago

  1. golang 1.8 stable recompile
  2. add -scavengettl to client to force teardown expired connections.
  3. optimize TTL estimator.

https://github.com/xtaci/kcptun/commit/2f0783f81dce6b36a821755087321181640c49da
https://github.com/xtaci/kcp-go/commit/19d53b22d361e5277c64e9e1db4e77707a0b124e
https://github.com/xtaci/smux/commit/949ec4dc3ffd128f06fba1e9584734dbbbc3b4e7

ee51fcd9228e9010048d6631b684cdcd2516dad2  kcptun-linux-amd64-20170218.tar.gz
d74b9a99dc865e225e6f8f5cc58412a162ec129f  kcptun-linux-386-20170218.tar.gz
a1b3a6d5874384dd5567642419dadb9e6e4f5211  kcptun-darwin-amd64-20170218.tar.gz
3d17587055d809d2dc0313a3d736b5f46e65acac  kcptun-darwin-386-20170218.tar.gz
226d3cebbda71fea709e283511ffda9aadf0c0d3  kcptun-windows-amd64-20170218.tar.gz
3501dc4c31248da20ff75b4739e5b5bd18a9f6e3  kcptun-windows-386-20170218.tar.gz
66146615bc05db5ec179bc38516b88ececee86e4  kcptun-freebsd-amd64-20170218.tar.gz
21717f7e330acbcdb19a588cd77e32180fd4c462  kcptun-freebsd-386-20170218.tar.gz
066dd25b2679556a6b80e4fa5758ebb827166c5d  kcptun-linux-arm-20170218.tar.gz
dd0f397b9650f3692e0677ec777303fc43d67f8b  kcptun-linux-mipsle-20170218.tar.gz
24cdfadbdd65720b38dc16e11abc5aa189c129d9  kcptun-linux-mips-20170218.tar.gz
kcptun - RTT算法优化-Round-3

Published by xtaci over 7 years ago

  1. 只使用session定时器,避免kcp_update的thresh抖动。
  2. rto计算中的clock granularity设置为 interval值。
  3. 去掉rtomin的硬性限制。
  4. 对于单个数据包中的所有ack,只使用最后一个ack计算rto。
  5. -datashard/-parityshard 增加 -ds -ps 简写

$ go version
go version go1.8rc2 darwin/amd64
https://github.com/xtaci/kcptun/commit/46831490b29e8ef95162bf05ff7cd4b6d09adff7
https://github.com/xtaci/smux/commit/d1bdf08128ae44344bff5384c02ded77e22fea9e
https://github.com/xtaci/kcp-go/commit/6da5044c742f24f05b00db9214b57b2ac943c9ab

MD5 (kcptun-linux-amd64-20170120.tar.gz) = f4914ad45cd848f50cd8cba1bbcc8c0a
MD5 (kcptun-linux-386-20170120.tar.gz) = 52089566730d20365f8f15d968441483
MD5 (kcptun-darwin-amd64-20170120.tar.gz) = 4a466bddbc7faa3b43576aaa76a44628
MD5 (kcptun-darwin-386-20170120.tar.gz) = cdaeccc034eb40449e950158d4ed7493
MD5 (kcptun-windows-amd64-20170120.tar.gz) = 50b80be45d3155f053d38441e32aec9b
MD5 (kcptun-windows-386-20170120.tar.gz) = 142fbab7d84241b9ee2524df064b9fe6
MD5 (kcptun-freebsd-amd64-20170120.tar.gz) = 5c1d0d45c151f25b8f679b4cf198d39f
MD5 (kcptun-freebsd-386-20170120.tar.gz) = 8cd76138db134318288fdaf17fed5650
MD5 (kcptun-linux-arm-20170120.tar.gz) = f03b8e20a6ec264aef8ce6a7c3daed2e
MD5 (kcptun-linux-mipsle-20170120.tar.gz) = d9c0ac67229fe3cc2a15871d39aae989
MD5 (kcptun-linux-mips-20170120.tar.gz) = 31f13ce741af3ea0c05b0a12aca6e0c9
kcptun - RTT算法优化-Round-2

Published by xtaci almost 8 years ago

  1. ack结构中更准确的RTT估算。
  2. 锁优化,更平滑的rtt计算jitter。

https://github.com/xtaci/kcptun/commit/2f11f135a806272aaefc2663bfd79403ee920cec
https://github.com/xtaci/smux/commit/d1bdf08128ae44344bff5384c02ded77e22fea9e
https://github.com/xtaci/kcp-go/commit/86aa2c98d150a7cd252ea3f50b3f96cfe8a8c98b

MD5 (kcptun-linux-amd64-20170117.tar.gz) = 7024a741c79a1d679ba11f3af6f5bc0a
MD5 (kcptun-linux-386-20170117.tar.gz) = 6fd7f35573ecb7d3ccf82069f6960d6d
MD5 (kcptun-darwin-amd64-20170117.tar.gz) = ce9bdc02317d0d9eb8fffec4c88a39e3
MD5 (kcptun-darwin-386-20170117.tar.gz) = f0cc700165a4bff4eb6727634abc34b2
MD5 (kcptun-windows-amd64-20170117.tar.gz) = 7fac79d0f3689ff435660614e2bcfe26
MD5 (kcptun-windows-386-20170117.tar.gz) = 4769ff2ee5cb64932f0949ee25492bdc
MD5 (kcptun-freebsd-amd64-20170117.tar.gz) = 942a7d7e65f8cdbdf598fca70fb49926
MD5 (kcptun-freebsd-386-20170117.tar.gz) = 496fb3d450261fea5dbe94c94b52ea15
MD5 (kcptun-linux-arm-20170117.tar.gz) = baaec00f7dfeab9d31f329881b84077d
MD5 (kcptun-linux-mipsle-20170117.tar.gz) = c34e7fc3a13716f2fcf35c78da0a76cc
MD5 (kcptun-linux-mips-20170117.tar.gz) = 429bd614bae5a8d1d826c95e7c21594b