从代码看每个ack包都会用来算rtt,是否应该排除2次确认的包,以及无效的确认包?
https://github.com/skywind3000/kcp/blob/28c802e6a627caee3604e64283f695b17e597a19/ikcp.c#L791,L794if (cmd == IKCP_CMD_ACK) { if (_itimediff(kcp->current, ts) >= 0) { ikcp_update_ack(kcp, _itimediff(kcp->current, ts)); } ikcp_parse_ack(kcp, sn); ikcp_shrink_buf(kcp);
1条答案
按热度按时间fae0ux8s1#
今天仔细看了一下,在这之前会先更新una,所以让判断有效的ack变得复杂。。。