我有两个SIP端点,并希望通过DTLS-SRTP发送媒体。我有点混淆以下几点
DTLS用于建立密钥,然后用于保护RTP流。一旦建立了密钥,它们就被用于加密RTP流以使其成为SRTP(加密没有什么特别之处,standard SRTP rfc3711),然后通过该DTLS信道发送。如果您阅读rfc5764,您可以获得有关DTLS通道的更多细节以及解复用数据包等。
因此,DTLS是SRTP交换的关键管理。请参阅rfc5764 section 4.1以获取一些示例。
总结:如果通过DTLS连接进行SRTP,则意味着一旦交换了密钥并使用这些密钥加密媒体,就没有太大区别。主要区别在于,使用DTLS-SRTP,DTLS协商发生在与媒体本身相同的端口上,因此必须在这些端口上考虑数据包解复用。
上面的答案几乎是正确的。在DTLS-SRTP中,DTLS握手确实用于派生SRTP主密钥。
但是,一旦获得主密钥,DTLS就不用于传输RTP:RTP数据包使用SRTP加密并直接通过底层传输(UDP)发送。