音视频在网络上进行传输,特别是公网上,往往需要进行NAT穿越,网上讲解NAT穿越的博客有很多,这里就不对NAT的原理及NAT的类型就行介绍了,接下来重点讲解下RTP/RTCP端口复用和端口不复用的区别。
webrtc的NAT穿越是基于ICE策略,ICE需要收集候选人,在收集候选人时:如果RTP和RTCP使用不同的端口,那么两个组件都需要进行连接检查;如果RTP/RTCP使用同一个端口,即进行端口复用,那么只需要进行一次连接检查。RTP/RTCP端口复用,它只需要收集更少的candidate,减小了ICE的开销,而且还能够减少流媒体架构中其他部分的开销,比如TURN服务器使用较少的UDP端口,减少了连接检查时带宽的浪费。