mediasoup 源码分析(十六)为何不需要单独部署stun server

一、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)

srs 和mediasoup 本身都实现了ice-lite,所以不用再单独部署stun 服务器进行外网探测。而 licode和janus本身支持full ice,所以可以单独部署一套stun server来进行探测。

猜你喜欢

转载自blog.csdn.net/lcalqf/article/details/108632464