Skip to content

Releases: xtaci/kcptun

Faster handling of acknowledgements

04 Jan 09:33
f8ca7af
Compare
Choose a tag to compare

Faster handling of ACK segments:

The complexity for handling data segment acknowledge changed from O(n) to O(1), good for routers.

xtaci/kcp-go@4624417
xtaci/smux@6cf098d
baf532e

$ go version
go version go1.11.4 darwin/amd64

SHA1SUM

fcb173d5417a0a57c34b1d9e2d5e83876ee9c834  kcptun-linux-amd64-20190104.tar.gz
751dbfa0e1767c0a09b3029f18b40851f5d6929c  kcptun-linux-386-20190104.tar.gz
fb7abe28469fb28155cba99c5b875697855758c0  kcptun-darwin-amd64-20190104.tar.gz
dfea19daf6a158f14d1e81e466c87fcd64df9879  kcptun-darwin-386-20190104.tar.gz
cfcb6e56976656552a158d15402a66953edb6466  kcptun-windows-amd64-20190104.tar.gz
d78e6f788ffc1f9166ec09f43c53b663806dc7db  kcptun-windows-386-20190104.tar.gz
54b4dc3f72acd6a628633da84344183f983cf3b5  kcptun-freebsd-amd64-20190104.tar.gz
3f22186919255c76063104be7ee30693fc016353  kcptun-freebsd-386-20190104.tar.gz
173a88c5584fecfec9ca47408722b3c1ad5d8189  kcptun-linux-arm-20190104.tar.gz
6881f4befafde7d3d5af17bb12086e048efadc09  kcptun-linux-mipsle-20190104.tar.gz
8b5b1dbd87d7a90706f821e78c6d4dcc2977302d  kcptun-linux-mips-20190104.tar.gz

experimental delayed condense on snd_buf

03 Jan 14:34
f8ca7af
Compare
Choose a tag to compare

EXPERIMENTAL delayed condense on snd_buf.

potentially decreased CPU usage on client side.

major changes:
xtaci/kcp-go@28a058e

compile to v5.0.3

Greatly increased payload ratio!!!

30 Dec 09:33
f8ca7af
Compare
Choose a tag to compare

English:

  1. highly recommended for upgrade(on both sides)
  2. greatly decreased the ratio of RepeatSegs by stricter check of fastack.
  3. potentially increased effective transmission ratio.
  4. you'll be able to increase the -rcvwnd on client side for higher speed and less waste.
    (eg, client: -rcvwnd 2048)

中文:

  1. 建议升级到此版本(服务器+客户端)。
  2. 极大的降低了RepeatSegs的比例,修正了原协议中的一个重传判定BUG。
  3. 提高了有效传输数据比率。
  4. 此版本可以适当增大原有客户端的-rcvwnd参数以提高速度。

xtaci/kcp-go@8b6efeb
xtaci/smux@6cf098d
baf532e

$ go version
go version go1.11.4 darwin/amd64

SHA1SUM

0fb7925be7ce2f2e443ce9d2fd50c3b4afad9ec0  kcptun-linux-amd64-20181230.tar.gz
47014863690319f482a27325500e3dcee7f968c3  kcptun-linux-386-20181230.tar.gz
9fe21a5bb35c569a73ce4afa40f25764c7b745cf  kcptun-darwin-amd64-20181230.tar.gz
47f5bd5b1ed09bb07d70fac85802bb5eb6beaa99  kcptun-darwin-386-20181230.tar.gz
e1650dcac210b6dca5aea2ceba6d8839af14e816  kcptun-windows-amd64-20181230.tar.gz
1ba5f0149a30186cceedc6106458db766efce15b  kcptun-windows-386-20181230.tar.gz
015119287ca4e82c194a4e4fe5653b9dbbb68e25  kcptun-freebsd-amd64-20181230.tar.gz
405cc681c51f9e871aadcba535084b1cc11d1319  kcptun-freebsd-386-20181230.tar.gz
c74acdeafea74c9c7aa02be2e3ae86296fcc7613  kcptun-linux-arm-20181230.tar.gz
3a489f17a30bb95a02f2ae15bfd15927fe26475d  kcptun-linux-mipsle-20181230.tar.gz
a1c0a2dba75e2f9d7a420404486a88fd46af4a32  kcptun-linux-mips-20181230.tar.gz

improved steadiness in packets processing

26 Dec 15:19
baf532e
Compare
Choose a tag to compare
  1. eliminated some halfway buffers, the processing of packets now acts like a stable stream processor, data copying and some context switches introduced jitters can be mitigated, especially for slow processors.

  2. potentially lowered memory consumption.

xtaci/kcp-go@52ed292
xtaci/smux@6cf098d
baf532e

$ go version
go version go1.11.4 darwin/amd64

SHA1SUM

104ab95ab616eb6627afb86bf2a03103d2ef7849  kcptun-linux-amd64-20181226.tar.gz
1c14fd868aedf1dc9a3e0afce86b95725e34ad81  kcptun-linux-386-20181226.tar.gz
52b07cedadcc05a3cd5e06ef4cf18ed05f715749  kcptun-darwin-amd64-20181226.tar.gz
215f8f6fe2c8430046c8707b0a612ec867d149e1  kcptun-darwin-386-20181226.tar.gz
b132fe29b3d51a403fe945cdaab2769c8f555a7c  kcptun-windows-amd64-20181226.tar.gz
c1bf5bb5584b037124b771c0ff4d7a407dbe0127  kcptun-windows-386-20181226.tar.gz
eae9c0c0f7b87fb5e506ab68d0d97d8d6bd5a467  kcptun-freebsd-amd64-20181226.tar.gz
6a031c1cb60dee375a926ccd6919ae9f41cbad1f  kcptun-freebsd-386-20181226.tar.gz
74fd266a8d23cfdcf5ded16938a6c24269fea4a8  kcptun-linux-arm-20181226.tar.gz
a125a5a388adbff1f851690282172118bff31e1f  kcptun-linux-mipsle-20181226.tar.gz
2d10ec9aad746810d7839fe557b945d1442cf8da  kcptun-linux-mips-20181226.tar.gz

xmas edition with minor updates

24 Dec 12:38
baf532e
Compare
Choose a tag to compare
  1. avoid unnecessary data copying in repeated segments
  2. correct counting mistakes in RepeatSegs
  3. pin updater goroutine to thread for better locality

xtaci/kcp-go@cf8866d
xtaci/smux@6cf098d
baf532e

$ go version
go version go1.11.4 darwin/amd64

SHA1SUM

8cd35620dacdee3d2920e80e28619da0f243c18e  kcptun-linux-amd64-20181224.tar.gz
407e85f869cce017e71a4c119278aef25369860c  kcptun-linux-386-20181224.tar.gz
d3f04434017503518c44389780c16422b73fdfa1  kcptun-darwin-amd64-20181224.tar.gz
2bf967b1740c5a89532f4300751f472c3ab1c185  kcptun-darwin-386-20181224.tar.gz
fc801c0c761f4aae02dd2e0ade8ad2a742dc51a9  kcptun-windows-amd64-20181224.tar.gz
4d8167552ef0739270db813225adf0a1e9664f43  kcptun-windows-386-20181224.tar.gz
63fab1b9bd7d16cbce274a13c89ef21b0661dcde  kcptun-freebsd-amd64-20181224.tar.gz
96a01a5f601409a99494a8d0eb2c62ae66f866ad  kcptun-freebsd-386-20181224.tar.gz
a226a85492c6634fdd36082189034de8401491e0  kcptun-linux-arm-20181224.tar.gz
0c8f588f4cbcff5d751aca3c325f3f86b2d492e0  kcptun-linux-mipsle-20181224.tar.gz
dcaddb5fb8464464e344768c723b278d3120f41c  kcptun-linux-mips-20181224.tar.gz

bugfix in kcp-go#106

14 Nov 15:44
baf532e
Compare
Choose a tag to compare

bugfix in issue: xtaci/kcp-go#106

xtaci/kcp-go@02d11d2
xtaci/smux@f19baee
baf532e

$ go version
go version go1.11 darwin/amd64

SHA1SUM

5d0cfb655e3ddd004f00e798d0aa802b22e88702  kcptun-linux-amd64-20181114.tar.gz
e23c1fc48ccea427ebf1a4bf067044f910d40d20  kcptun-linux-386-20181114.tar.gz
e177d7c167e7e87d1e6748e5ab819ddf38dc4e5e  kcptun-darwin-amd64-20181114.tar.gz
0011faf0db1bb410e201898ddd83e885c0c293a2  kcptun-darwin-386-20181114.tar.gz
1c55e926077c367da0f14afce9be1b9ce0222895  kcptun-windows-amd64-20181114.tar.gz
3731389ce20a8329653ca105a27c1665d2ea4e16  kcptun-windows-386-20181114.tar.gz
e9f843cb560e056681b9956fa0015fbcd93cb8e5  kcptun-freebsd-amd64-20181114.tar.gz
4ca036858cfca9280e76ab34c7dfc3e2fb86a5cf  kcptun-freebsd-386-20181114.tar.gz
035ba63263c5c6eb755be75b1fc20b85ede9f237  kcptun-linux-arm-20181114.tar.gz
070ee070b7437af4974af71885144271096bb828  kcptun-linux-mipsle-20181114.tar.gz
78a225ce4a3398cd4e6837db2a6576317bf31e7c  kcptun-linux-mips-20181114.tar.gz

Improved multiplexing efficiency

02 Oct 12:01
f430afc
Compare
Choose a tag to compare
  1. Improved multiplexing efficiency.
  2. Move FEC processing outside of the lock.

xtaci/kcp-go@90edee5
xtaci/smux@545ecee
f430afc

$ go version
go version go1.11 darwin/amd64

SHA1SUM

cc2c4843ef73da7ead09c1d5b77cae41448dd1bd  kcptun-linux-amd64-20181002.tar.gz
0f6b9c0aa35a9fbd09eca0c31e19a5983f53fd7c  kcptun-linux-386-20181002.tar.gz
0ca00beb8e12ecaa8788ce7ba55fac1e4a112169  kcptun-darwin-amd64-20181002.tar.gz
c094bec21f8fa62991d7207872b380330fc66e29  kcptun-darwin-386-20181002.tar.gz
02795f3f49f03cda290c92df58534482a86312d8  kcptun-windows-amd64-20181002.tar.gz
2fad56f47888f43444853dd88d87ddd2c84f8d64  kcptun-windows-386-20181002.tar.gz
7d871e9ef0d981d0bd1b1edc91dabfa1eae7658e  kcptun-freebsd-amd64-20181002.tar.gz
01269c091d7d7ddf21d3bc589fd9e2e5ef627af2  kcptun-freebsd-386-20181002.tar.gz
cbef760fa6ead0651d14f3c21cbad8ddacf79dd3  kcptun-linux-arm-20181002.tar.gz
2f55158e0fcb73edf0dabbab8861837d522efbb8  kcptun-linux-mipsle-20181002.tar.gz
70a776b65d059a94367311c1347a1f45dca0b4f6  kcptun-linux-mips-20181002.tar.gz

More responsive & make timing monotonic

26 Sep 12:19
Compare
Choose a tag to compare
  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.

adae725
xtaci/kcp-go@1df4286
xtaci/smux@e28719e

$ 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

Improved responsiveness

22 Sep 13:22
Compare
Choose a tag to compare
  1. Responsiveness improvement from event loop optimization in kcp-go.
  2. Changed default writing parameter to nodelay(as disabling nagle algorithm).

adae725
xtaci/kcp-go@c0e1e94
xtaci/smux@e28719e

$ 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

Cumulative updates(MIPS softfloat support)

17 Sep 08:32
Compare
Choose a tag to compare
  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.

561ee05
xtaci/kcp-go@9c319c3
xtaci/smux@e28719e

$ 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