rtsp、rtp tcp和udp链接方式区别
来源:互联网 发布:京东众包软件打不开 编辑:程序博客网 时间:2024/06/05 11:21
1、工作方式的差异
通常来说,RTSP提供UDP方式发送RTP流。当然,发送流媒体时,UDP往往是更好的选择。但是,在互联网上使用UDP方式发送流是不可能的。
下面是使用UDP时的一些问题:
1. UDP协议上的RTSP/RTP需要打开许多UDP端口(每一路流媒体都需要2个UDP端口,一个用于接收数据,一个用于接收控制信息);
2.当因特网上的路由器没有打开这些端口的时候,上述第一点将会存在问题;
3. 中间网络路由器很容易就过滤或者忽略掉UDP数据包;
4. UDP是不可靠传输协议,媒体包在因特网上传输时会面临着丢包。
但是我们如果在TCP传输协议上承载RTSP/RTP将解决这些问题。
1. RTSP/RTP的控制命令和数据都通过一个端口,即RTSP的端口(默认为554),进行交互。
2. TCP协议提供可靠的流传输。
3. TCP包更容易穿透中间网络路由器。
但是,使用TCP传输协议承载RTSP/RTP需要花更多的功夫。
1. 由于二元交织,会使得RTP包封包和解包的过程变得更加复杂。
2. TCP是可靠的传输协议,但正是因为如此,会导致在实时流媒体中的延时。
2、rtsp指令交互差异
与UDP rtsp指令集相比,TCP指令集在setup指令上存在差异:
SETUP rtsp://192.168.100.123:554/mpeg4cif/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
#ps:指定是有tcp模式,使用偶数信道作为数据传输(rtp)信道,使用奇数信通道(rtcp)作为控制信道(数据信道 + 1)。所以,如果你设定数据信道为 0 ,那控制信道应该是 0 + 1 = 1。
RTSP/1.0 200 OK
CSeq: 4
Date: Mon, Mar 06 2017 02:56:22 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.100.145;source=192.168.100.123;interleaved=0-1
Session: 425EC42F
3、rtp数据接收差异
使用udp 接收数据时不需要对数据做rtp包解包处理,使用tcp接收数据时,由于rtp,rtcp,rtsp都在同一端口上,用户需要做tcp解包处理。
RTP数据将通过用来发送RTSP命令的TCP Socket进行发送。RTP数据将以如下格式进行封装:
| 标识符 | 信道 |数据长度 | 数据 |
RTP数据标识符,"$" (0x24)
信道数字 - 1个字节,用来指示信道(0x00 一般代表rtp数据, 0x01 一般代表rtsp数据)
数据长度 - 2个字节,用来指示插入数据长度
数据 - 数据包,比如说RTP包,总长度与上面的数据长度相同
2 0
- rtsp、rtp tcp和udp链接方式区别
- rtsp transport rtp/avp(/udp)和rtp/avp/tcp区别
- rtsp transport rtp/avp(/udp)和rtp/avp/tcp区别
- RTP、RTCP、RTSP、iSCSI//TCP UDP
- RTP 和 RTSP的区别
- RTP 和 RTSP的区别
- RTP 和 RTSP的区别
- RTP 和 RTSP的区别
- RTP 和 RTSP的区别
- RTP 和 RTSP的区别
- RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
- RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
- symbian live5555 & rtsp & rtp & tcp & sdp & udp汇总
- TCP、UDP、RTP(RTCP)异同与区别
- TCP、UDP、RTP(RTCP)异同与区别
- rtp over rtsp (TCP)
- rtp over rtsp (TCP)
- RTSP - RTP over TCP
- Ubuntu 16.04 LTS 安装Theano配置GPU
- C++ vector动态数组常用函数
- 一些我面试过程中遇到j2ee知识点的整理,答案来源于网络
- 389. Find the Difference
- java字符串基本操作
- rtsp、rtp tcp和udp链接方式区别
- 迷茫的原因
- 常用Sql(一点都不常用)
- Visual Studio使用Web Deploy远程发布网站及其配置
- 【C语言 数据结构】三元组的实现 最终作业版
- css
- 泛型[3]泛型嵌套
- tomcat另建工作区(workspace)
- ROSArduinoBridge中PID 在 ros端 与arduino端的工作机制