✦ 功能
SRT编码器两台设置Rendezvous模式的设备会共同协商,通过相同的UDP端口号建立一个SRT会话。
✦ 使用场景
两台设备所在的网络都有防火墙(或者路由器,功能等同),防火墙Outside接口是公网IP地址,但是没有防火墙的操作权限(即无法配置端口映射),如果防火墙设置了适当的工作模式,可通过Rendezvous模式建立SRT会话。
一旦完成SRT连接的建立,SRT源设备和SRT目标设备便开始交换控制信息,然后直接利用建立起来的SRT通道去传输数据。
✦ 示例
Rendezvous模式可以在两端防火墙都没有做端口转发规则时建立SRT连接,从而实现两点之间的视频传输。这时,需要在两端分别设置对方的出口公网IP以及相同的端口号,这样,两台设备将同时向对方的出口公网IP发送控制信息数据包,用来建立SRT连接。
某公司临时决定从长沙办事处将视频信号实时传输到深圳总部,来不及申请在防火墙中做端口转发规则,所以两端的设备都没办法通过对方公网IP的某个特定端口来直接找到对方。这时,就可以使用Rendezvous模式来建立SRT连接,我们需要将长沙的SRT设备(编码器)设置为Rendezvous模式,并写入深圳SRT设备的出口公网IP地址和一个没有被使用的UDP端口号,同时,再将深圳的SRT 设备(解码器)也设置为Rendezvous模式,并写入长沙SRT设备的出口公网IP地址和相同的UDP端口号,这样就可以建立起SRT连接了。
图:SRT源设备(编码器)和SRT目标设备(解码器)的网络关系
✦ 原理
在前面的示例场景中很轻松就完成了Rendezvous模式下的SRT连接,看似水到渠成,然而实际情况并不是这么简单,在这背后还隐藏着一些网络的相关知识,下面我们就来简单讨论一下SRT是如何使用Rendezvous模式穿过防火墙建立连接的。
当然,网络安全与防火墙是一门很深奥的专业网络知识,这里就不跟大家讨论深层次的内容了,只针对和SRT相关的知识做简单的分享。
首先,我们需要知道,在使用Rendezvous模式时,设备发出的控制信息数据包的源端口与目的端口都是一样的。在之前的例子中,编码器发出的控制信息数据包的源端口为12345,目标端口也是12345,同样的,解码器发出的控制信息数据包的源端口和目标端口也都是12345。换句话说,这“四个”端口号相同是Rendezvous模式穿越防火墙建立SRT连接的必要条件。
因此,在编解码器之间的防火墙就必须确保不转换数据包包头中的端口号。
图:Rendezvous模式下两端使用相同的端口号穿过防火墙建立SRT连接