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
协议,媒体本身是不依赖于信号传输协议的。