处理丢失数据包的想法(理论)

时间:2015-02-26 16:30:48

标签: networking video theory

上下文

  • 我们有不稳定的传输通道。有些数据包可能会丢失。
  • 向任意方向(从A到B或从B到A)发送单个网络数据包需要3秒钟。
  • 我们允许5秒的信号延迟,不再有。所以我们有一个5秒的缓冲区。我们可以使用我们想要的5秒钟。
  • 目前我们只使用80%的传输频道,因此我们有更多的空间可供使用。
  • 视频质量不会下降。
  • 我们需要使用UDP。

问题

我们需要提高质量。如何处理丢失的数据包?我们需要使用UDP并自己处理这些错误。怎么办呢?如何确保当前没有那么多数据包丢失(我们不能保证100%,所以我们只想要更好),而不重传它们?我们可以做一切,这就是理论。

1 个答案:

答案 0 :(得分:1)

处理这些事情有不同的逻辑。这取决于你使用的是什么应用程序。你在做实时视频流吗?严格的要求?

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

  2. 由于这是视频应用程序,因此仅向关键帧发送确认。确保你有一个键或I帧,然后在rx侧进行插值。

  3. 查看一些称为前向纠错,喷泉码,润滑码的内容。在这里,您将对数据包1和2进行编码并生成数据包3.如果数据包1丢失,请使用packet3和packet2将数据包1返回到rx端。基本上你发送冗余数据包。它对网络的影响很小,但你获得了大部分数据。