From 1a652933d9c0038bfc57f4478fbf3b48e01ec1d3 Mon Sep 17 00:00:00 2001 From: Page Fault Date: Tue, 8 Sep 2020 07:01:16 +0000 Subject: [PATCH] fix mkcp sending window --- transport/internet/kcp/sending.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/transport/internet/kcp/sending.go b/transport/internet/kcp/sending.go index c8852ef7e..4d9931733 100644 --- a/transport/internet/kcp/sending.go +++ b/transport/internet/kcp/sending.go @@ -315,14 +315,16 @@ func (w *SendingWorker) Flush(current uint32) { return } - cwnd := w.firstUnacknowledged + w.conn.Config.GetSendingInFlightSize() - if cwnd > w.remoteNextNumber { - cwnd = w.remoteNextNumber + cwnd := w.conn.Config.GetSendingInFlightSize() + if cwnd > w.remoteNextNumber-w.firstUnacknowledged { + cwnd = w.remoteNextNumber - w.firstUnacknowledged } - if w.conn.Config.Congestion && cwnd > w.firstUnacknowledged+w.controlWindow { - cwnd = w.firstUnacknowledged + w.controlWindow + if w.conn.Config.Congestion && cwnd > w.controlWindow { + cwnd = w.controlWindow } + cwnd *= 20 // magic + if !w.window.IsEmpty() { w.window.Flush(current, w.conn.roundTrip.Timeout(), cwnd) w.firstUnacknowledgedUpdated = false