Releases: xtaci/kcptun
累计更新
- 修正客户端Accept超过可打开文件数时crash的问题。
- 增加--snmplog --snmpperiod选项,输出SNMP日志。
- 微调kcp-go中的快速重传部分,减少RepeatSegs。
- 采用go1.8beta2编译。
$ go version
go version go1.8beta2 darwin/amd64MD5 (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
Fix ineffective -autoexpire under heavy loss
修正-autoexpire某些时候无效的情况
Related ISSUE #321
$ go version
go version go1.8beta1 darwin/amd64
xtaci/smux@427dd80
xtaci/kcp-go@1a8d8c1
375640d
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
Support MIPS32 with go1.8beta1
$ go version
go version go1.8beta1 darwin/amd64
xtaci/smux@427dd80
xtaci/kcp-go@1a8d8c1
bfe3524
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
Reduce FEC memory usage
- Reduce FEC memory usage(>30%), limited FEC queue to 3 * (dataShard+parityShard) packets.
$ go version
go version go1.7.3 darwin/amd64
xtaci/smux@b4a6fb8
xtaci/kcp-go@2a9a3f7
229a4a8
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
Reduce sending of unnecessary acks
- Reduce sending of unnecessary acks.
$ go version
go version go1.7.3 darwin/amd64
xtaci/smux@60c611f
xtaci/kcp-go@ffaad6e
229a4a8
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
Brought Back Early Retransmit, with Stricter Criterion
- Brought Back Early Retransmit, with Stricter Criterion
(STRONGLY RECOMMENDED FOR UPGRADING)
$ go version
go version go1.7.3 darwin/amd64
xtaci/smux@ee8b5b5
xtaci/kcp-go@bba2d62
8e74cf4
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
Optimizations on CPU Usage
- improve xor.go performance by re-organizing code layout.
- dramatically reduce zero-ing operations in FEC.
$ go version
go version go1.7.3 darwin/amd64
xtaci/smux@ee8b5b5
xtaci/kcp-go@7112c1c
4ccc922
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
Even more optimizations on memory
- xmitBuf is shared among sess.go/fec.go/kcp.go.
- cacheline optimized fecgroup.
$ go version
go version go1.7.3 darwin/amd64
xtaci/smux@9d1cf79
xtaci/kcp-go@0721a11
c601a18
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
Reduce memory footprint
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
xtaci/smux@9d1cf79
xtaci/kcp-go@2220e8c
bb9574e
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
Reduce memory footprint
- Reduce memory footprint from smux.
- 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
xtaci/smux@6250093
xtaci/kcp-go@015bc07
4001e1b
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