WebRTC向客户端JS应用程序提供SDP Offer以发送(但JS应用程序需要)到另一个设备,该设备使用它来生成SDP应答。
诀窍是SDP包括ICE候选者(有效地“试图在这个IP地址和这个端口与我交谈”)。 ICE致力于打开防火墙中的开放端口;虽然如果双方都是对称NAT,一般情况下是不可能的,并且可以使用替代候选者(在TURN服务器上)。
一旦他们直接谈话(或通过TURN,实际上是一个数据包镜像),他们就可以打开DTLS连接并使用它来锁定SRTP-DTLS媒体流,并通过DTLS发送DataChannel。
编辑:
缩略语:
http://blog.1click.io/10-jargons-abbreviations-for-webrtc-fans/
其余的还有谷歌。其中大部分是由IETF定义的(
http://ietf.org/
)
编辑2:
Firefox和Chrome(以及规范)已经转向使用ICE候选者的“涓涓细流”,因此ICE候选人通常被添加到PeerConnection并独立于初始SDP进行交换(尽管您可以等到最初的候选人)在发送报价之前准备就绪,并将它们捆绑在一起)。
看到
https://webrtcglossary.com/trickle-ice/
和
https://datatracker.ietf.org/doc/draft-ietf-ice-trickle/