1、简介
根据《GB/T 28181 —2016》4.3.1、5.2的要求,SIP和流媒体都应该支持TCP和UDP两种方式。如下图所示: 在附录F(SDP 定义)中介绍了TCP支持主动模式和被动模式,UDP没有做规定。下面将介绍这三种模式的差异。
2、TCP ACTIVE、TCP PASSIVE、UDP之间差异
-
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主动模式
|