SIP over TCP与SIP over UDP [SIP:会话启动协议]

时间:2013-05-14 11:22:36

标签: tcp network-programming udp sip sip-server

SIP over UDP和SIP over TCP有什么区别?

“SIP over TCP”究竟意味着什么? 这是不是意味着:

  

SIP和RTP都使用TCP

  

SIP使用TCP和RTP使用UDP

1 个答案:

答案 0 :(得分:1)

“SIP over TCP”仅表示“通过TCP流发送SIP消息”。 SIP主要与传输协议无关,因此相同的协议可以在SCTP,DTLS等上运行。

从用户的角度来看,没有区别。

从使用SIP堆栈/编写SIP应用程序的人的角度来看,几乎没有什么区别:SIP over UDP实现了各种可靠性机制(重启+启动器的退避)。

会话描述可以使用RTP进行媒体流,但SDP与使用RTP无关。如果您愿意,您可以使用普通的TCP流,或者任何其他协议(前提是有一种方法可以在SDP中描述协议,当然只对了解传输协议的客户端有用)。

RTP本身是通常在UDP上运行的传输协议(因为在实时传输协议中,时效性比可靠性更重要),但可以在TCP上运行(如果媒体是框架的 - 例如,RFC 4103数据不是。)

所以通常人们将通过TCP运行SIP和通过UDP运行RTP,但这两种协议都不限于此特定设置。