网络:发送视频(理论上)

Network: sending a video (in theory)

上下文

问题

我们需要提高质量。如何处理丢包?

解题

某件事-在这种情况下我们不能使用TCP,因为当TCP检测到一些问题时,它会请求重新传输丢失的数据。这意味着数据包将在 9 秒后到达,这超过了限制。

因此我们需要使用 UDP 并自行处理这些错误。那怎么办呢?如何确保在不重传的情况下不会像目前那样丢失那么多数据包?

这是一个复杂的解决方案,但目前为止最好的选择是添加前向纠错 (FEC)。这就是图像从 space 探测器传输的方式,其中延迟以分钟或小时为单位。它也被手机使用,延迟数据包不利于双向通信。

一个不太好但更容易实现的选项是使用 UDT。这是一个带有类似 tcp 的 UDP 重传库,但允许您对协议进行更多控制。