目录

RTP:Real-time Transport Protocol

RTCP:Real-time Transport Control Protocol

SRTP & SRTCP:Secure Real-time Transport Protocol

RTSP:Real Time Streaming Protocol

RTSP 和RTP的关系

SIP:Session Initiation Protocol,会话初始协议

SDP:Session Description Protocol


RTP:Real-time Transport Protocol


Real-time Transport Protocol是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的。

RTP 本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。 RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性。 RTP 实行有序传送, RTP 中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。

RTP 由两个紧密链接部分组成: RTP ― 传送具有实时属性的数据;RTP 控制协议(RTCP) ― 监控服务质量并传送正在进行的会话参与者的相关信息。

RTCP:Real-time Transport Control Protocol


实时传输控制协议(Real-time Transport Control Protocol或RTP Control Protocol或简写RTCP)是实时传输协议(RTP)的一个姐妹协议。RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本身并不传输数据,但和RTP一起协作将多媒体数据打包和发送。RTCP定期在流多媒体会话参加者之间传输控制数据。RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)提供反馈。

RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息试图提高服务质量,比如限制信息流量或改用压缩比较小的编解码器。RTCP本身不提供数据加密或身份认证。SRTCP可以用于此类用途。

SRTP & SRTCP:Secure Real-time Transport Protocol


安全实时传输协议(Secure Real-time Transport Protocol或SRTP)是在实时传输协议(Real-time Transport Protocol或RTP)基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。它是由David Oran(思科)和Rolf Blom(爱立信)开发的,并最早由IETF于2004年3月作为RFC 3711发布。

由于实时传输协议和可以被用来控制实时传输协议的会话的实时传输控制协议(RTP Control Protocol或RTCP)有着紧密的联系,安全实时传输协议同样也有一个伴生协议,它被称为安全实时传输控制协议(Secure RTCP或SRTCP);安全实时传输控制协议为实时传输控制协议提供类似的与安全有关的特性,就像安全实时传输协议为实时传输协议提供的那些一样。

在使用实时传输协议或实时传输控制协议时,使不使用安全实时传输协议或安全实时传输控制协议是可选的;但即使使用了安全实时传输协议或安全实时传输控制协议,所有它们提供的特性(如加密和认证)也都是可选的,这些特性可以被独立地使用或禁用。唯一的例外是在使用安全实时传输控制协议时,必须要用到其消息认证特性。

RTSP:Real Time Streaming Protocol


RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而前面提到的允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。 因为与HTTP1.1的运作方式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

RTSP 和RTP的关系

SIP:Session Initiation Protocol,会话初始协议


SIP 会话使用多达四个主要组件:

  1. SIP 用户代理、
  2. SIP 注册服务器、
  3. SIP 代理服务器和
  4. SIP 重定向服务器。

这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。下面概括性地介绍各个 SIP 组件及其在此过程中的作用。

  • SIP 用户代理 (UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。
  • SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索参与方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。
  • SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP 注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。
  • SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。

下面是一个典型的SIP会话:

以下几个情景说明 SIP 组件之间如何进行协调以在同一域和不同域中的 UA 之间建立 SIP 会话:

在同一域中建立 SIP 会话

下图说明了在预订同一个 ISP 从而使用同一域的两个用户之间建立 SIP 会话的过程。用户 A 使用 SIP 电话。用户 B 有一台 PC,运行支持语音和视频的软客户程序。加电后,两个用户都在 ISP 网络中的 SIP 代理服务器上注册了他们的空闲情况和 IP 地址。用户 A 发起此呼叫,告诉 SIP 代理服务器要联系用户 B。然后,SIP 代理服务器向 SIP 注册服务器发出请求,要求提供用户 B 的 IP 地址,并收到用户 B 的 IP 地址。SIP 代理服务器转发用户 A 与用户 B 进行通信的邀请信息(使用 SDP),包括用户 A 要使用的媒体。用户 B 通知 SIP 代理服务器可以接受用户 A 的邀请,且已做好接收消息的准备。SIP 代理服务器将此消息传达给用户 A,从而建立 SIP 会话。然后,用户创建一个点到点 RTP 连接,实现用户间的交互通信。

在不同的域中建立 SIP 会话

本情景与第一种情景的不同之处如下。用户 A 邀请正在使用多媒体手持设备的用户 B 进行 SIP 会话时,域 A 中的 SIP 代理服务器辨别出用户 B 不在同一域中。然后,SIP 代理服务器在 SIP 重定向服务器上查询用户 B 的 IP 地址。SIP 重定向服务器既可在域 A 中,也可在域 B 中,也可既在域 A 中又在域 B 中。SIP 重定向服务器将用户 B 的联系信息反馈给 SIP 代理服务器,该服务器再将 SIP 会话邀请信息转发给域 B 中的 SIP 代理服务器。域 B 中的 SIP 代理服务器将用户 A 的邀请信息发送给用户 B。用户 B 再沿邀请信息经由的同一路径转发接受邀请的信息。


SDP:Session Description Protocol


SDP用于出于会话通告,会话邀请和参数协商的目的描述多媒体通信会话。 SDP本身不提供媒体,但用于在媒体类型,格式和所有相关属性的端点之间进行协商。属性和参数的集合通常称为会话配置文件。 SDP被设计为可扩展的,以支持新的媒体类型和格式。

会话描述协议(SDP)是一种用于以ASCII字符串描述流媒体初始化参数的格式。

SDP最初是作为会话公告协议(SAP)的一个组成部分,但后来发现它与实时传输协议(RTP),实时流协议(RTSP),会话发起协议(SIP)结合使用,甚至还可以用作用于描述多播会话的独立格式。

就所谓它们的名字所代表的那样,SIP用于初始化一个会话,并负责传输SDP包;而SDP包中描述了一个会话中包含这些媒体数据,邀请的人等等;当需要被邀请的人都通过各自的终端设备被通知到后,就可以使用RTSP来控制特定媒体的通信,某种RTSP控制信息要求开始视频的播放,然后就开始使用RTP(或者TCP)实时传输数据,在传输过程中,RTCP要负责QoS等。

https://www.cnblogs.com/whyandinside/archive/2009/08/30/1556572.html

RTP/RTCP/RTSP/SIP/SDP简介相关推荐

  1. 智能终端会议系统(20)---网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系

    网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系 RTP/RTCP/RTSP/SIP/SDP 关系 1. RTP Real-time Transport Protocol,是用 ...

  2. RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)

    RTP/RTCP/RTSP/SIP/SDP 关系   RTP(实时传输协议,传输层) Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议 ...

  3. 【Todo】RTP/RTCP/RTSP/SIP/SDP 等多媒体传输和会话协议

    参考 http://m.blog.csdn.net/article/details?id=6211447

  4. 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)

    简结">三句话简结 RTP RTCP RTSP RTMP HLS区别与联系 RTP传输流媒体数据.RTCP对RTP进行控制,同步.RTSP发起/终止流媒体 RTP和RTCP互为姐妹关系 ...

  5. RTP/RTCP/RTSP协议初探

    From:http://apps.hi.baidu.com/share/detail/24794429 一.产生的背景 随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服 ...

  6. RTP/RTCP/RTSP协议

                            描述:协议关系图 图片: 一.产生的背景 随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信 ...

  7. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP     参考文档 RFC3550/RFC3551     Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明 ...

  8. 直播所使用的网络协议(RTP\RTCP\RTSP\RTMP\HLS\SRT)

    目录 直播所用协议的需求 如何选择TCP/UDP? RTP RTP协议是什么? 为什么使用RTP协议? RTCP RTCP协议是什么? 为什么使用RTCP协议? RTSP RTSP协议是什么? 为什么 ...

  9. php视频流传输,视频流传输协议RTP/RTCP/RTSP/HTTP的区别

    用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据.RTCP对RTP进行控制,同步.之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没 ...

最新文章

  1. 面试彩蛋2:分别用循环和递归实现下列函数
  2. LNMP架构之PHP——MemCache对PHP页面的缓存加速优化
  3. springboot~openfeign从JSON文件读取数据
  4. Java 数组转型和范型
  5. Angular里如何测试一个具有外部依赖的Component
  6. 如何在Marketing Cloud Launchpad里打开外部链接
  7. python 复制文件夹内容 并结构一致_Python-移动和覆盖文件和文件夹
  8. PortraitFCN算法详解
  9. linux环境下启动git,linux系统安装git及git常用命令
  10. jQuery幸运大转盘_jQuery+PHP抽奖程序
  11. macOS 爆严重安全漏洞,不用密码就能随意登录(附解决方案)
  12. SSD Single shot detection 单发多框检测 实现 多尺度锚框 动手学深度学习v2
  13. java 空文件夹删除_java创建文件文件夹,删除空文件夹,删除文件夹以及所有文件...
  14. 《JavaSE系列教程》
  15. c51汇编语言位操作,51单片机汇编语言教程之单片机位操作指令的详细资料说明...
  16. 容器技术之Kubernetes
  17. WPS表格常用快捷键大全
  18. Python+Django+MySQL资产管理系统
  19. HTML onfocus (获得焦点)和 onblur (失去焦点)
  20. FFmpeg入门详解之122:Qt5 FFmpeg本地摄像头采集预览实战

热门文章

  1. html2canvas 阿里云图片没显示_对标“百度网盘”?阿里云网盘横空出世
  2. String类型直接赋值与构造赋值
  3. premnmx tramnmx postmnmx 函数用法
  4. 网页html无图片代码显示图片,BASE64编码方式(Date Url)
  5. vs2017调试浏览器闪退
  6. 2018.3.13 浮动 定位
  7. Android继承AppCompatActivity实现全屏设置
  8. wordpress函数技巧
  9. C# 调用c++ 实例
  10. 9-Mybatis 多表查询之一对多