我对webrtc的STUN服务器的理解是,当客户端在NAT后面时(在大多数情况下,如果不是全部),STUN服务器将帮助webrtc客户端识别他们的地址和端口.我还读到一些文章说webrtc客户端需要一个信令服务器.信令服务器可以是web服务器,socket.io,甚至是通过电子邮件发送网址.我的第一个问题是:STUN服务器是信令服务器吗?
实际上现在我构建了一个非常简单的基于socket.io的服务,它将客户端的会话描述广播给所有其他客户端.所以我相信基于socket.io的服务器应该对客户端的地址和端口信息有足够的了解.如果是这种情况,为什么我们还要打扰另一台STUN服务器呢?
Ben*_*ent 30
STUN服务器不是信令服务器.
信令服务器的目的是在会话启动时在对等体之间传递信息(如何在不知道发送给谁的情况下发送报价?).此信息包括在要约和答案上创建的SDP以及由任何一方创建的任何冰候选者.
拥有STUN服务器的原因是两个对等体可以相互发送媒体.媒体流不会打你的信令服务器,而是将直接进入对方(一个对等网络连接的定义),唯一的例外是当使用TURN服务器的情况.
媒体无法神奇地通过NAT或防火墙,因为双方无法直接相互访问(就像他们在同一个局域网上一样).
简而言之,当双方不在同一网络上时,大多数时候需要STUN服务器(以获得对等媒体流的有效连接候选者),并且始终需要信令服务器(无论它们是否在不同的位置)网络与否)以便建立协商和连接.连接和流媒体流程的良好解释
STUN用于实现ICE协议,该协议试图在两个客户端之间找到有效的网络路径.对于两个客户端(由于NAT /防火墙限制)无法建立直接对等连接的情况,ICE还将使用TURN中继服务器(如果在RTCPeerConnection中配置).
STUN服务器用于识别Internet上计算机使用的外部地址(NAT外部地址),并尝试设置对等端可用的端口映射(如果NAT不是"对称") - - 联系STUN服务器将告诉您尝试在ICE中使用的外部IP和端口.这些是SDP或涓流ICE消息中包含的ICE候选者.
对于几乎保证连接,服务器应该具有TURN服务器(最好支持UDP和TCP TURN,尽管UDP是首选).请注意,与STUN不同,TURN可以使用可观的带宽,因此可以花费很多钱来托管.幸运的是,大多数连接成功而无需使用TURN服务器(即它们运行点对点)
| 归档时间: |
|
| 查看次数: |
13763 次 |
| 最近记录: |