上下文
问题
我们需要提高质量。如何处理丢失的数据包?我们需要使用UDP并自己处理这些错误。怎么办呢?如何确保当前没有那么多数据包丢失(我们不能保证100%,所以我们只想要更好),而不重传它们?我们可以做一切,这就是理论。
答案 0 :(得分:1)
处理这些事情有不同的逻辑。这取决于你使用的是什么应用程序。你在做实时视频流吗?严格的要求?
正如你所说你有一个缓冲区,你实际上可以为数据包维护一个缓冲区,然后发送丢失数据包的确认(如果你觉得可以等待)。
由于这是视频应用程序,因此仅向关键帧发送确认。确保你有一个键或I帧,然后在rx侧进行插值。
查看一些称为前向纠错,喷泉码,润滑码的内容。在这里,您将对数据包1和2进行编码并生成数据包3.如果数据包1丢失,请使用packet3和packet2将数据包1返回到rx端。基本上你发送冗余数据包。它对网络的影响很小,但你获得了大部分数据。