我已经使用 GStreamer 创建了用于实时流式传输的客户端和服务器应用程序。我将如何知道它已到达或未能到达目的地的网络数据包状态?
问问题
282 次
2 回答
0
即使在 tcp 反馈的情况下也不是实时的。我的意思是服务器上成功的发送 API 并不意味着数据包在那个时间点已经到达客户端。它可能仍停留在其中一个拥塞窗口中,但最终会到达客户端!
如果您通过不良网络连接连接到 TCP 流上的 RTSP/RTP,则可以非常明显地看到这种效果。
可靠的 UDP 等概念在这里可以提供一些帮助。
于 2012-10-22T12:24:14.267 回答
0
您通常无法知道包裹是否已到达目的地。
例如,当使用 UDP(如udpsrc
& udpsink
)时,设计上无法知道包是否到达目的地。
otoh,当使用 TCP/IP(如tcpclientsink
& tcpserversrc
)时,协议栈将保证每个包的传递,除非连接断开。在这种情况下,您的一方将收到 EOS 通知。
于 2012-10-22T09:09:56.523 回答