`

RTP/RTCP/RTSP/SIP/SDP

 
阅读更多

RTP
sdfs

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

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

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


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


SIP


SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和 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
SDP is intended for describing multimedia communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties. The set of properties and parameters are often called a session profile. SDP is designed to be extensible to support new media types and formats.
The Session Description Protocol (SDP) is a format for describing streaming media initialization parameters in an ASCII string.
SDP started off as a component of the Session Announcement Protocol (SAP), but found other uses in conjunction with Real-time Transport Protocol (RTP), Real-time Streaming Protocol (RTSP), Session Initiation Protocol (SIP) and even as a standalone format for describing multicast sessions.
Summary
就 如同它们的名字所表示的那样,SIP用于初始化一个Session,并负责传输SDP包;而SDP包中描述了一个Session中包含哪些媒体数据,邀请 的人等等;当需要被邀请的人都通过各自的终端设备被通知到后,就可以使用RTSP来控制特定Media的通信,比如RTSP控制信息要求开始Video的 播放,那么就开始使用RTP(或者TCP)实时传输数据,在传输过程中,RTCP要负责QoS等。

分享到:
评论

相关推荐

    RTSP/RTCP 协议介绍及示例

    SIP则更通用,常用于音频、视频通话,两者都使用SDP描述媒体参数,并通过RTP/RTCP传输媒体流。 RTSP的消息结构包含请求消息和响应消息。请求消息由方法(如OPTIONS、SETUP、PLAY、TEARDOWN)、URI和RTSP版本组成,...

    rtp rtsp sip sdp nat 协议

    RTP(Real-time Transport Protocol)、RTSP(Real-Time Streaming Protocol)、SIP(Session Initiation Protocol)和SDP(Session Description Protocol)以及NAT(Network Address Translation)是五种关键的协议...

    简单的RTSP, RTP, RTCP推送H264码流服务器实现

    RTSP (Real-Time Streaming Protocol)、RTP (Real-time Transport Protocol) 和 RTCP (Real-time Transport Control Protocol) 是网络音视频传输中的三个重要协议,它们共同构成了实时流媒体的基础架构。下面将详细...

    rtsp_server.rar_c RTSP_c rtsp server_rtp协议_rtsp C源码_rtsp rtp

    在本压缩包"rtsp_server.rar"中,包含了一个用C语言编写的RTSP服务器源码,这对于学习和理解RTSP协议以及相关技术,如RTP(Real-time Transport Protocol)和SDP(Session Description Protocol)非常有帮助。...

    rtp_rtcp的传输流媒体

    在实际应用中,RTP和RTCP通常与其它协议结合使用,如Session Description Protocol (SDP)来描述会话的媒体类型、传输地址和端口等信息,以及Session Initiation Protocol (SIP)用于初始化、管理和终止多媒体会话。...

    RTSP协议详细的介绍

    RTSP(Real-Time Streaming Protocol,实时流传输协议)是一种应用层协议,主要用于控制音...在学习RTSP的过程中,结合SDP和RTP/RTCP的理论知识,并通过实际操作来实践,可以更好地理解这些协议的工作原理和相互关系。

    live555_vs2005

    Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H....

    rtsp client with c++.zip_c++使用rtsp协议_rtsp c++ client_rtsp_client

    4. **RTP/RTCP**:RTSP常与RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)一起使用。RTP用于传输媒体数据,RTCP则用于提供传输质量反馈和统计信息。 5. **多线程处理**:为了...

    流媒体协议标准RTSP

    RTSP通常与RTP/RTCP和SDP一起工作,形成IPTV流媒体协议族的核心部分。 RTP(Real-time Transport Protocol)是用来传输媒体数据的协议,它规定了数据包的排序、丢包检测以及媒体重建信息。RTP数据包通常承载在UDP之...

    simplertsp

    7. ** RTP/RTCP**:RTSP通常与RTP(实时传输协议)和RTCP(实时传输控制协议)配合使用,RTP负责传输媒体数据,RTCP提供质量反馈和同步信息。 为了使用和理解simplertsp项目,开发者需要熟悉HTTP和TCP/IP基础知识,...

    rtsp协议源码

    Live555是一个开源的C++库,它实现了RTSP、RTCP(Real-Time Control Protocol)以及RTP(Real-time Transport Protocol)等相关协议,是进行流媒体开发的重要工具。Live555库广泛应用于各种实时流媒体应用程序,包括...

    一个简易的RTSP服务器

    总的来说,这个简易的RTSP服务器项目提供了一个学习和实践RTSP、RTP、RTCP、H264和G711A编码的绝佳机会。深入研究这个服务器的实现细节,不仅能够掌握实时媒体传输的底层机制,还能提高对网络协议和多媒体处理的理解...

    基于RTSP_RTP的嵌入式流媒体服务器设计

    4. **RTP/RTCP传输模块**:根据RTSP协议的要求,使用RTP/RTCP协议传输编码后的媒体数据。 5. **媒体管理模块**:管理媒体资源,包括媒体文件的存储和检索。 这种模块化的架构使得系统更易于维护和扩展。每个模块都...

    rtsp client server

    在多媒体通信领域,RTSP常与RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)配合使用,实现数据传输和质量控制。 HI3518是一款高性能的嵌入式处理器,主要用于智能安防和视频...

    基于自适应网络的流媒体服务器设计.pdf

    Live555是一个极其精简的流媒体服务器框架,提供多种通讯模式(单播和组播等),支持多种常见多媒体编码格式的流化和传输,支持众多协议(如RTP/RTSP/RTCP/SDP等)。本系统需要实现单播模式下的实时流媒体传输,Live...

    rtsp_server C 源码详解与分析

    - 数据传输:通过RTP/RTCP协议传输媒体数据。 - 会话管理:创建、维护和终止客户端的会话。 - 错误处理:处理客户端请求错误和网络异常。 3. RTSP请求处理 - DESCRIBE:客户端请求获取媒体资源的描述,服务器...

    test_upload_rtp_jy20201118_rtsp_

    通过对这个"rtp.c"文件的分析,我们可以了解开发者如何实现RTSP中的RTP部分,包括初始化RTP会话、打包和解包RTP包、同步RTCP信息以及错误处理等。此外,源代码中可能会包含对网络I/O、线程管理、内存管理等底层操作...

    C# RTP 视频传输与解码H263, jpeg MJPEG等源码

    总的来说,这个C#项目的目标是创建一个简洁易用的框架,让开发者能够轻松地处理RTP视频流,包括编码为H263、JPEG和MJPEG格式的视频,以及通过RTSP进行控制和SDP进行描述的媒体会话。这个项目对于那些需要构建实时...

    rtp_over_rtsp精简分析.pdf

    SDP不是独立的协议,而是作为其他协议(如SIP或RTSP)的一部分存在。 - **SDP示例**: - `v=0`:版本号。 - `o=`:源标识符。 - `s=`:会话名称。 - `u=`:URI。 - `e=`:电子邮件地址。 - `c=`:连接信息。 ...

Global site tag (gtag.js) - Google Analytics