wangyu- / UDPspeeder

A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)
MIT License
4.75k stars 832 forks source link

kcptun和UDPspeeder的fec差别 #286

Open airx opened 2 years ago

airx commented 2 years ago

撇开kcptun只能代理tcp这个差别。 kcptun我理解qos核心靠arq+fec功能,UDPspeeder就没有arq吧,只有个fec,请教两个问题: 1、UDPspeeder和kcptun的fec功能差别在哪呢?UDPspeeder的fec功能会更好吗? 2、当UDPspeeder的fec冗余都恢复不了包时,怎么办,就确实丢了吧,还是会有nack或者arq来确保重传得到包呢?

wangyu- commented 5 months ago

当UDPspeeder的fec冗余都恢复不了包时,怎么办,就确实丢了吧,还是会有nack或者arq来确保重传得到包呢?

没有nack/arq,只有fec。

如果需要nack/arq ,在上层做。udpspeeder设计上不负责做这个。

wangyu- commented 5 months ago

撇开kcptun只能代理tcp这个差别。 UDPspeeder和kcptun的fec功能差别在哪呢?

没法强行撇开

kcptun只能转发tcp

UDPspeeder是转发udp的

应用场景就不同

UDPspeeder的fec功能会更好吗?

如果一定要这么问:

  1. udpspeeder可以上下行fec参数不一样
  2. 可以不重启的情况下改变fec参数
  3. 有mode 1 mode2, timeout, fine-grained fec参数。 可调参数多得多
  4. 用户态udp分片
  5. 对抗突发丢包的机制
  6. 用kcptun你的拥塞控制被绑定在了kcp,没有换的可能;用udpspeeder可以自由选择上层的拥塞控制。配合vpn,你可以用cubic,bbr; 配合hysteria可以用quic