FULI
FULI
显然不是啊,flush里有很多控制的,比如silly window syndrome的处理,需要定时触发。
@nullchinchilla 你说的minrto的问题,可能是我昨天修正的一个bug, flush中的的if else顺序和interval区间的关系,会导致RTO发过的包也被fastack,这样就产生了不必要重传,我昨天调整了下if else顺序。 https://github.com/xtaci/kcp-go/releases/tag/v5.4.9 你调高了RTO,只是把这个问题掩盖了而已。
如果queue是空的,那遍历snd_buf也不需要消耗时间啊,那又何必修改polling呢,系统每秒的中断多了去了。
在传输量大的时候,改善很多,我实测应该降低了+40%的不必要的fastack,你需要考虑不同丢包率和抖动的环境,并且丢包率还在变动的情况。 @nullchinchilla
https://github.com/xtaci/kcp-go/releases/tag/v5.4.10 你可以试下这个,看在你的环境下有没有改善,修复了一个潜在的bug。 @nullchinchilla
嗯,可以试试
https://pkg.go.dev/github.com/xtaci/kcp-go?tab=doc#KCP.SetMtu max 1500
it's non-trivial, changes should consider corresponding notification scheme ``` if s.kcp.WaitSnd() < waitsnd ```
check these places : https://github.com/xtaci/kcp-go/blob/master/sess.go#L679 https://github.com/xtaci/kcp-go/blob/master/sess.go#L648 https://github.com/xtaci/kcp-go/blob/master/sess.go#L699
新开一条连接后再关闭原有连接