WebRTC搭建与应用(一)
近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC、ICE信令协议等有了初步了解,在此记录一下,以防遗忘。
第一章 ICE服务搭建
文章目录
前言
之前工作主要集中于桌面端和前端的轻量化图形渲染与数据组织,服务端相关技术主要是接口调用,没有什么技术积累,本次搭建工作属于摸着石头过河。
最开始在本地测试WebRTC点对点传输没有任何问题,但是跨电脑测试时会提示ICE失败,所以还是得研究一下什么是ICE。
一、ICE是什么?
ICE即交互式连通建立方式(Interactive Connectivity Establishment),ICE并非一种新的协议,而是通过综合运用某几种协议(STUN、TURN等),使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。
基于IP的语音、数据、视频等业务在网络中所面临的一个实际困难就是如何有效地穿透各种NAT(Network Address Translator:网络地址转换)以及FW(Fire Wall:防火墙)的问题。对此,SIP(会话初始化协议)以往的解决方法由ALGs(Application Layer Gateway Service:应用层网关)、STUN、TURN等方式。
二、什么是STUN、TURN
STUN(Session Traversal Utilities for NAT)即网络地址转换会话穿越应用程序。STUN提供了一种方式使一个端点能够确定NAT分配的和本地私有IP地址和端口相对应的公网IP地址和端口以及NAT的类型信息。它也为端点提供了一种方式保持一个NAT绑定不过期。NAT绑定过期则表示为相同的内网地址重新分配外网地址也就是端口号。
TURN(Traversal Using Relay NAT)即网络地址转换中继穿越协议。
TURN与STUN的共同点都是通