SRT有三种模式,它们是Caller,Listener和rendezvous模式。下面我来讲讲我对这三个模式的理解。
caller-listener模式类似于TCP的C/S模式,caller模式方为客户端主动发起连接,listener模式方为服务端,等待caller模式方发起服务请求后提供相应的服务请求。
SRT由于加入了"streamid"套接字选项,使得SRT的listener模式也能提供类似HTTP/RTSP/RTMP等C/S分发服务。caller模式方在"streamid"中标明请求的意图和服务后,listener模式方根据意图提供相应的服务。
SRT的rendezvous模式是一种类似P2P的连接,由双发共同协商建立连接。
SRT的rendezvous模式握手过程支持出站连接,也就是只需要直到双方的公网IP地址,无需在防火墙中打开端口映射。rendezvous模式要求双方发送源和目的端口完全一致,达到欺骗防火墙通过的目的,从而建立连接。如果在网络传输过程中端口被转换,将无法成功建立连接。
SRT的rendezvous模式直接从源到目的连接,因而以减少延迟,消除中心瓶颈,并降低网络成本。