了解GB28181相关协议
来源:未知 发布时间:2021-11-07 14:39:47
GB28181全称是《安全防范视频监控联网系统 信息传输、交换、控制技术要求》
主要的协议:
1、SIP 协议,即 会话初始协议(Session Initiation Protocol),是一个应用层的 点对点协议,用于初始、管理和终止网络中的语音和视频会话,是 GB28181 的核心之一。
SIP是一个基于文本的应用层控制协议,独立于底层传输协议 TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话。SIP协议借鉴了HTTP、SMTP等协议,支持代理、重定向及登记定位用户等功能,支持用户移动。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP支持语音、视频、数据、E-mail、状态、IM、聊天、游戏等。SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。
2、SIP结构
一个合法的SIP请求必须至少包含如下头域:TO,FROM,Cseq,Call-ID,Max-Forwards, Via;这些字段在所有SIP请求中必须包含。这6个字段是SIP消息的基本组成部分,他们提供了用于路由用的核心信息,包含了消息的地址,响应的路由,消息传递次数,详细的顺序,事务的唯一标志。
这些头域字段是必须包含在请求行之后的,请求行包含了请求的方法,Request-URI,SIP的版本号码。请求行例子:REGISTER sip:192.168.10.177:5060 SIP/2.0。
SIP的优点:
1.扩展性:
SIP可以由特定的应用程序扩展,并具有内置的机制来创建其他应用程序。此外,SIP消息可以承载各种消息体(如纯文本、媒体会话描述、XML文本等)的有效负载,因此应用程序开发人员可以将SIP用作任何类型应用程序数据的通用传输机制。
2.冗余设计:
SIP并不在传输层实现冗余。它有一个内置的命令重传机制(即,如果目标接收者不确认该命令)。这使得通信系统更加可靠,因为任何丢失的命令,例如媒体服务器组的一个成员的故障,都会被该组的另一个成员重新传输和确认。
3.传输独立:
SIP不绑定到特定的传输协议,但它可以在任何传输数据包的协议(如IPv4、ATM、IPv6等)上运行。这意味着UCS可以在更广泛的网络中配置,不仅适用于基于IP的网络,还适用于其他传输协议。
4.轻量级特性:
SIP是一个绝对的轻量级协议,每条消息的开销在几百字节以内,而且一条消息的格式很容易解析。这意味着解析或组成命令消息只占用很少的CPU资源,而且这些消息只带来很少的网络开销。另外,SIP可以操作在无连接的传输协议(如UDP)之上,这就消除了连接时间(即建立一个连接的时间)的开销,而在面向套接字或连接的协议(如TCP)中,这个开销是很典型的。
5.支持加密:
SIP含有的另一功能是在通信双方之间指定加密计划。这允许媒体服务器为了传送安全的服务而与其他可靠的网络单元交换加密命令和媒体流
SipObjectTcpDecoder 对外的核心编解码类,实现了 TCP SIP 消息的编解码.
SipObjectUdpDecoder 对外的核心编解码类,实现了 UDP SIP 消息的编解码.
SipObjectAggregator 对外的核心编解码类,实现了 SIP 消息的封装, 组装成 FullSipMessage
RTP/RTCP
(1)、简介
RTP(Real-time Transport Protocol):实时传输协议;
RTCP(Real-time Transport Control Protocol):实时传输控制协议;
他们是IP协议族中用于实时语音,视频数据传输的标准协议。
RTP标准定义了两个子协议,RTP和RTCP
数据传输协议RTP,用于实时 传输数据。该协议提供的信息包括:时间戳(用于同步),序列号(用于丢包和重排序检测),以及负载格式(用于说明数据的编码格式)。
控制协议RTCP,用于QoS 反馈和同步媒体流。相对于RTP来说,RTCP所占的宽带非常小,通常只有5%。
(2)、为什么要使用RTP?
一提到流媒体传输,一谈到什么视频监控,视频会议,语音电话(VOIP),都离不开RTP协议的应用。那为何我们使用RTP而不是TCP,UDP或者其他的网络协议不能达到我们的要求呢?
像TCP这样的可靠传输协议,通过超时和重传机制来保证传输数据流中的每一个bit的正确性,但这样会使得无论从协议的实现还是传输的过程都变得非常的复杂。而且,当传输过程中有数据丢失的时候,由于对数据丢失的检测(超时检测)和重传,会使数据流的传输被迫暂停和延时。或许你会说,我们可以利用客户端构造一个足够大的缓冲区来保证显示的正常,这种方法对于从网络播放音视频来说是可以接受的,但是对于一些需要实时交互的场合(如视频聊天,视频会议等),如果这种缓冲超过了200ms,将会产生难以接受的实时性体验。
那为什么RTP可以解决上述问题呢?RTP协议是一种基于UDP的传输协议,RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。这样,对于那些丢失的数据包,不存在由于超时检测而带来的延时,同时,对于那些丢弃的包,也可以由上层根据其重要性选择性的重传。
(3)、RTP的工作机制
当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。目的传输地址由一个网络地址和一对相邻的端口组成,有两个端口:一个给RTP包(偶数的UDP端口),一个给RTCP包(偶数的UDP端口+1),使得RTP/RTCP数据能够正确发送。 RTP的发送过程如下,接收过程则相反。
RTP协议从上层接收流媒体信息码流(如H.263),封装成RTP数据包;RTCP从上层接收控制信息,封装成RTCP数据包。
RTP为具体的应用提供了非常大的灵活性,它将传输协议与具体的应用环境、具体的控制策略分开,传输协议本身只提供完成实时传输的机制,开发者可以根据不同的应用环境,自主选择合适的配置环境、以及合适的控制策略。
控制策略指的是你可以根据自己特定的应用需求,来实现特定的一些RTP控制算法,比如前面提到的丢包的检测算法,丢包的重传策略,一些视频会议应用等;
合适的配置环境 主要指RTP的相关配置和负载格式的定义。RTP协议为了广泛地支持各种多媒体格式(如 H.264, MPEG-4, MJPEG, MPEG),没有在协议中体现出具体的应用配置,而是通过profile配置文件以及负载类型格式说明文件的形式来提供。
RTP/RTCP的不足之处
RTP和RTCP相结合虽然保证了实时数据的传输,但也有自己的缺点。最显著的是当有许多用户一起加入会话进程的时候,由于每个参与者都周期发送RTCP信息包,导致RTCP包泛滥(flooding)
补充知识: H.263是由ITU-T(国际电信联盟)制定的视频会议用的低码率视频编码标准,属于视频编解码器。 目前H.263可用于H.323(基于RTP/IP网络的视频会议系统–电路交换),H.320(基于综合业务数字网的视频会议系统),RTSP(流式媒体传输系统)和SIP(基于因特网的视频会议)
H.323是国际电信联盟(ITU)用于音频,视频和在数据包(IP)网络上共享数据的总括标准。这个标准已经广泛应用并且拥有了巨大的市场份额。
SIP(会话起始协议)是IETF(互联网工程任务组)制定的多媒体信号协议。由于这个协议具有简单和模块化特点,这个协议正在受到关注,但是,目前为止的商业性应用还很少。
企业一般都把SIP解决方案与H.323(或者TMD协议)协议一起部署,以便保护投资,保证更有效地向新技术转变,向能够从中受益的用户提供SIP应用。
两个协议的相同之处:
H.323和SIP协议原来都是用于在IP网络上提供多媒体服务的。这两个协议都在IP网络上运行,使用TCP和UDP会话发出信号并且使用RTP(实时协议)传输语音/视频流。这两种协议都不产生新的编码/解码方式,而是利用现有的其它协议(如G.711和G.729)。
SIP同HTTP和SMTP一样,是一种基于文本的协议。许多程序员都非常了解这个协议。他们发现SIP协议非常简单并且很容易排除故障。H.323协议是用二进制代码编写的,没有丰富经验和开发工具的程序员都不熟悉这个协议。
这两个协议之间的主要区别是,SIP协议用来建立和断开媒体会话,而H.323协议用来具体指定用哪一个协议提供媒体服务。使用H.323协议,媒体本身是不依赖于信号传输协议的。
————————————————
版权声明:本文为CSDN博主「cs诗cs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37204875/article/details/113260181