SIP协议是一个基于互联网的应用层协议,支持的网络传输方式有三种: UDP、TCP、TLS。
一、UDP
UDP是在SIP协议中比较常用的传输方式。UDP是不可靠的,可能会出现丢包,因此,SIP协议在应用层设计了消息重传机制,来保证传输的可靠性。
关键说明:
- SIP服务器一般使用5060作为UDP监听端口
- UDP存在NAT保活问题,因此会采用较小的注册超时时间或者定时发送网络空包(\r\n等)来保证链路的连通性
- 出现丢包、对端响应慢或无响应时,会出现SIP报文重传(rfc3261规定,按一定时间间隔重传)
二、TCP
TCP作为可靠传输协议,在实际环境中经常用到。
关键说明:
- SIP服务器一般使用5060作为TCP监听端口
- TCP本身有丢包重传的可靠传输机制,因此SIP协议的重传机制在TCP时不会启用
三、TLS(Transport Layer Security,传输层安全)
TLS是基于TCP的加密协议。对SIP报文进行加密传输,保证了SIP信令的传输安全。在实际部署中,与SRTP协议一起,实现了VOIP应用场景中信令和媒体的安全传输。
关键说明:
- SIP服务器一般使用5061作为TLS监听端口
- TLS有TLSv1 , TLSv1.1,TLSv1.2 ,TLSv1.3等多种版本的加密方法。在选择使用TLS的时候,要注意客户端与服务器的支持版本,如果不支持,会出现协商失败的情况
- 使用TLS的缺点就是通过wireshark不能看到明文,影响业务调试,通常在调试阶段使用非加密的UDP或TCP方式