RTP地址
在VoIP通话中,语音或视频媒体数据通常使用RTP(Real-time Transport Protocol)协议进行传输,而RTP的通信地址则通过VoIP呼叫信令中承载的SDP(Session Description Protocol)协议来通知给对方。
上图中,在呼叫建立阶段,终端A使用SDP协议通知用于RTP通信的IP地址是192.168.1.2,端口20002,终端B使用SDP协议通知用于RTP通信的IP地址是192.168.1.3,端口20003。然后两个终端就可以向对端的地址发送媒体数据,从而建立媒体通信,也就是双方可以通话了。
NAT问题
在局域网或部分私有互联网环境中,IP地址和端口没有进行地址转换,上图所示的终端之间可以正常进行媒体通信。但是在大多数互联网环境中,IP地址和端口会经过层层转换,最终到达对端的源地址和源端口都已改变,这就是网络地址转换技术,即NAT。
在上图中,终端A发送的媒体数据包经过NAT到达终端B,终端B看到的媒体包的源地址和源端口不再是终端A本来的地址192.168.1.2:20002,而是经过NAT转换以后的地址1.1.1.2:20012。
在这种情况下,如果终端B往终端A的SDP中通知的地