众所周知,本光头刚涉猎音视频不久,所以很多东西都是边学边做的,有说得不对的地方,请各位多包涵。
说穿透之前,我们首先需要明白关于WEBRTC的一些概念,WEBRTC它是一个支持在browser实现实时音视频通信的一组技术框架,它是一组标准协议,它为开发者,用户提供了视频通信的核心技术,包括采集,编解码,网络传输,渲染等功能,并且是跨平台的。
webrtc是基于P2P的,即点对点通信,与传统的方式有什么不同呢?
(1) 传统的方式以服务器为中介
(2) P2P的连接在数据通道形成的时候,中间是不经过服务器端的
采用P2P的优点是可以减轻服务器压力,但是真的不需要服务器端吗?
这其实是一个走偏了的想法,webrtc仅仅是不需要服务器中转数据。但有两件事情则必须要走服务器端的。
(1) 浏览器之间交换信令
(2) NAT穿透和防火墙
关于信令交换,并不在本篇的重点介绍当中,简单说一下就是A和B需要建立P2P连接,这时候则需要中间服务器(信令服务器)作协调,也需要中间服务器告诉另一端P2P连接断开状态。这些用来控制连接的状态的数据一般称之为信令,而这个与服务端连接的通道,就是信令通道。
关于NAT穿透,则是本章的重点内容,也就是像老鼠一样打洞。NAT是一组网络地址转换的协议,NAT的技术特点会引发外网地址的访问,这时修候就得采用NAT穿透了。
NAT技术(Network Address Translation,网络地址转换ÿ