From 9be9a335bb2d31b4eafa9efa56e5c214e1670985 Mon Sep 17 00:00:00 2001 From: xtaci Date: Tue, 8 Jan 2019 22:14:11 +0800 Subject: [PATCH] use latest ack as rtt compute and simpify logic --- kcp.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/kcp.go b/kcp.go index a4b7532..812a4b3 100644 --- a/kcp.go +++ b/kcp.go @@ -497,7 +497,7 @@ func (kcp *KCP) Input(data []byte, regular, ackNoDelay bool) int { return -1 } - var latest uint32 // latest packet + var latest uint32 // the latest ack packet var flag int var inSegs uint64 @@ -540,14 +540,9 @@ func (kcp *KCP) Input(data []byte, regular, ackNoDelay bool) int { if cmd == IKCP_CMD_ACK { kcp.parse_ack(sn) - // stricter check of fastack kcp.parse_fastack(sn, ts) - if flag == 0 { - flag = 1 - latest = ts - } else if _itimediff(ts, latest) > 0 { - latest = ts - } + flag |= 1 + latest = ts } else if cmd == IKCP_CMD_PUSH { repeat := true if _itimediff(sn, kcp.rcv_nxt+kcp.rcv_wnd) < 0 {