1

我已经使用 GStreamer 创建了用于实时流式传输的客户端和服务器应用程序。我将如何知道它已到达或未能到达目的地的网络数据包状态?

4

2 回答 2

0

即使在 tcp 反馈的情况下也不是实时的。我的意思是服务器上成功的发送 API 并不意味着数据包在那个时间点已经到达客户端。它可能仍停留在其中一个拥塞窗口中,但最终会到达客户端!

如果您通过不良网络连接连接到 TCP 流上的 RTSP/RTP,则可以非常明显地看到这种效果。

可靠的 UDP 等概念在这里可以提供一些帮助。

当您需要可靠的 UDP 时,您使用什么?

于 2012-10-22T12:24:14.267 回答
0

您通常无法知道包裹是否已到达目的地。

例如,当使用 UDP(如udpsrc& udpsink)时,设计上无法知道包是否到达目的地。

otoh,当使用 TCP/IP(如tcpclientsink& tcpserversrc)时,协议栈将保证每个包的传递,除非连接断开。在这种情况下,您的一方将收到 EOS 通知。

于 2012-10-22T09:09:56.523 回答