一、stun 介绍
STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,用来得到自己的公网IP、PORT信息。
协议文档rfc5389:https://datatracker.ietf.org/doc/rfc5389/?include_text=1
一般流程客户端会发送stun包,即binding request到stun服务器,stun服务器返回 binding response携带该客户端的外网IP信息。
而流媒体服务器是部署在公网环境中,本身就具有外网IP,所以不用再发送stun包来探测自己的外网IP。服务端可以直接在sdp的candidate中写上自己的外网IP信息,然后发给客户端。客户端得到服务器的IP后,发送binding request 进行连通性测试,服务端被动响应该请求。客户端还会通过binding request和流媒体服务器维持心跳。这种实现方式是称为ice-lite(轻量级、精简版ice server)。