Releases: bettermanbao/openwrt-kcptun
累计优化
- eliminate spurious wake up of writeable events.
- eliminate atomic stalls when no snmp info needs update for each interval.
- only trust window update from regular packets, not FEC packets.
$ go version
go version go1.4.2 linux/amd64
xtaci/kcptun@2f0783f
xtaci/kcp-go@39bec2a
xtaci/smux@949ec4d
RTT算法优化-Round-3
- 只使用session定时器,避免kcp_update的thresh抖动。
- rto计算中的clock granularity设置为 interval值。
- 去掉rtomin的硬性限制。
- 对于单个数据包中的所有ack,只使用最后一个ack计算rto。
- -datashard/-parityshard 增加 -ds -ps 简写
$ go version
go version go1.4.2 linux/amd64
xtaci/kcptun@4683149
xtaci/smux@d1bdf08
xtaci/kcp-go@6da5044
RTT算法优化-Round-2
ack结构中更准确的RTT估算。
锁优化,更平滑的rtt计算jitter。
$ go version
go version go1.4.2 linux/amd64
xtaci/kcptun@2f11f13
xtaci/smux@d1bdf08
xtaci/kcp-go@86aa2c9
Reduce FEC memory usage
- Reduce FEC memory usage(>30%), limited FEC queue to 3 * (dataShard+parityShard) packets.
$ go version
go version go1.4.2 linux/amd64
xtaci/smux@b4a6fb8
xtaci/kcp-go@2a9a3f7
xtaci/kcptun@229a4a8
Reduce sending of unnecessary acks
- Reduce sending of unnecessary acks. (#267)
$ go version
go version go1.4.2 linux/amd64
xtaci/smux@60c611f
xtaci/kcp-go@ffaad6e
xtaci/kcptun@229a4a8
Bring Back Early Retransmit, with Stricter Criterion
- Bring Back Early Retransmit, with Stricter Criterion
(STRONGLY RECOMMENDED FOR UPGRADING)
$ go version
go version go1.4.2 linux/amd64
xtaci/smux@ee8b5b5
xtaci/kcp-go@bba2d62
xtaci/kcptun@8e74cf4
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.4.2 linux/amd64
xtaci/smux@ee8b5b5
xtaci/kcp-go@7112c1c
xtaci/kcptun@4ccc922
Even more optimizations on memory
Reduce memory footprint from kcp-go.
(https://github.com/xtaci/kcp-go/blob/master/kcp.go#L204)
xmitBuf is shared among sess.go/fec.go/kcp.go.
cacheline optimized fecgroup.
(STRONGLY RECOMMENDED FOR UPGRADING)
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.
SMUX optimize-II
- faster stream.Write() in smux
- api optimize in kcp-go