通常来说,RTSP提供UDP方式发送RTP流。当然,发送流媒体时,UDP往往是更好的选择。
下面是使用UDP时的一些问题:
-
UDP协议上的RTSP/RTP需要打开许多UDP端口(每一路流媒体都需要2个UDP端口,一个用于接收数据,一个用于接收控制信息);
-
当因特网上的路由器没有打开这些端口的时候,第一点将会存在问题;
-
中间网络路由器很容易就过滤或者忽略掉UDP数据包;
-
UDP是不可靠传输协议,媒体包在因特网上传输时会面临着丢包。
如果使用TCP传输RTSP/RTP将解决这些问题
-
RTSP/RTP的控制命令和数据都通过一个端口,即RTSP的端口(默认为554),进行交互。
-
TCP协议提供可靠的流传输。
-
TCP包更容易穿透中间网络路由器。
在TCP传输协议上承载RTSP/RTP也不是完美的,存在如下一些问题:
-
由于二元交织,会使得RTP包封包和解包的过程变得更加复杂。
-
TCP是可靠的传输协议,但正是因为如此,会导致在实时流媒体中的延时。
-
使用TCP传输协议承载RTSP/RTP需要花更多的功夫。
</