KumoKyaku / kcp

KCP C#版。线程安全,运行时无alloc,对gc无压力。
MIT License
832 stars 136 forks source link

快速重传计数不正确修正 #14

Closed oldjon closed 3 years ago

oldjon commented 3 years ago

快速重传计数不正确修正,跳过次数会被少计

KumoKyaku commented 3 years ago

首先,按照KCP文档设计,这里确实应该按照pr修改。 但是:这里有个文档没有写的情况。当kcp两个包同时在一个数据包中到达,那么在这个时间段中,应该认为是一个。这里算是一个单位时间去重的功能,防止faskack快速增长。比如编号1没收到,2-999在一个数据报到达,那么会认为编号1在这一瞬间被跳过998次,实际上在这一个数据报的传输时间应该是跳过一次。 这样理解确实有些偏颇。

决定性原因: 本库是按照C版本1:1翻译的,虽然经过了重构。但是初衷核心逻辑函数还是希望和C版本保持一致,所以不能合并这个pr。