GB28181协议--流媒体的几种传输方式(UDP、TCP被动、TCP主动模式)

1、简介

根据《GB/T 28181 —2016》4.3.1、5.2的要求,SIP和流媒体都应该支持TCP和UDP两种方式。如下图所示:
GB28181协议--流媒体的几种传输方式(UDP、TCP被动、TCP主动模式)_第1张图片
在附录F(SDP 定义)中介绍了TCP支持主动模式和被动模式,UDP没有做规定。下面将介绍这三种模式的差异。

2、TCP ACTIVE、TCP PASSIVE、UDP之间差异

设备端:指的是GB28181运行客户端程序的设备,比如IPC;
平台端:指的的GB28181运行服务端程序的设备或者服务器,比如NVR。

  • UDP
    平台端监听UDP端口,通过INVITE信令告知设备端UDP端口号,设备端通过告知的端口创建UDP SOCKET,设备端通过这个SOCKET主动向平台端传输码流。

  • TCP 被动
    平台端监听TCP端口,通过INVITE信令告知设备端TCP端口号,设备端通过告知的端口创建TCP连接,设备端通过这个连接主动向平台端传输码流。

  • TCP 主动
    在UDP模式和TCP被动模式中,平台端运行server,设备端是client,但是在TCP主动模式中,设备端起server,平台端是client。设备端告知服务端监听的TCP端口情况(通过SDP协议),当设备端监听到平台端的连接时,将主动向这个连接发送码流。

  • TCP和UDP的差异
    TCP模式中,由于TCP是流协议,因此需要在RTP加上一个四字节的头部,这四个字节依次包括标识符‘*’, 交叉通道, 两字节长度信息。

关于UDP和TCP的socket创建的问题,可以参考往期文章。网络基础–创建UDP和TCP客户端,创建TCP服务端程序

关于SDP的内容,请参考《GB/T 28181 —2016》附 录 F/SDP 定义
参考往期文章:网络流媒体–SDP会话描述协议(RFC-4566)

3、测试环境

可以使用LIVEGBS这个工具进行测试,具体可参考GB28181流媒体数据几种流传输模式- UDP、TCP被动、TCP主动模式

你可能感兴趣的:(音视频基础,udp,tcp/ip,网络协议)