处理丢包的想法(理论)

Idea to handle lost packets (theory)

上下文

问题

我们需要提高质量。如何处理丢包?我们需要使用 UDP 并自己处理这些错误。那怎么办呢?如何保证不会像现在这样丢那么多包(我们不能保证100%,所以只求更好),而不重传?我们可以一切,这是理论。

有不同的逻辑来处理这些 things.It 取决于您使用的应用程序。你在做实时视频流吗?严格要求?

  1. 正如你所说的你有一个缓冲区,你实际上可以为数据包维护一个缓冲区,然后为丢失的数据包发送一个确认(如果你觉得你可以等待)。

  2. 因为这是视频应用,所以只对关键帧发送确认。确保你有一个关键帧或 I 帧,然后在 rx 端进行插值。

  3. 研究称为前向纠错、喷泉码、luby 码的东西。在这里,您将对数据包 1 和 2 进行编码并生成数据包 3。如果 packet1 丢失,请使用 packet3 和 packet2 在 rx 端取回 packet1。基本上你发送冗余数据包。它对网络有点苛刻,但您可以获得大部分数据。