webrtc服务器有哪些(webrtc 服务器)

WebRTC简介(一)

WebRTC(Web Real-Time Communication)也被称为网络实时通信,是由 Google、Mozilla 和其他公司推动的一个开源项目,它通过 Javascript API 实现无插件的实时通信,以及在不需要中介的情况下在浏览器之间交换任意数据。

WebRTC的优点:

WebRTC技术的诞生,有一个很重要的原因在于,在浏览器实现实时音视频通话,需要依赖相关插件或程序,而插件安全漏洞问题则更为关键。浏览器开发人员无法控制这些插件以及更新,因此插件带来的安全风险也相对较大。

在WebRTC诞生之前,开发实时音视频应用的成本是非常高,需要考虑的技术问题很多,如音视频的编解码,数据传输延时、丢包、网络抖动、回音处理和消除等,如果要兼容浏览器端的实时音视频通信,还需要额外安装插件。当然,可以考虑使用第三方成熟技术,比如当时世界顶级的互联网音视频方案GIPS(Global IP Solutions),支付相应的费用就行。很多知名的应用或者软件服务商也都在用GIPS,如Yahoo,AOL,IBM,SKYPE,QQ等。

WebRTC项目的愿景:实时通信web化,让WebRTC成为互联网音视频实时通信的规范,让开发者基于此规范快速开发出安全、可靠的应用。未来的音视频实时通信,必定是现代化生产活动中极其重要的板块。以下是WebRTC的部分应用场景:

两个不同网络环境的(具备摄像头/麦克风多媒体设备的)客户端(浏览器或APP),要实现点对点的实时音视频对话,难点在哪里?

要实现P2P通信,首先需要了解彼此是否都支持相同的媒体能力,WebRTC默认使用V8编解码器,如果要连接的对方不支持V8解码,如果没有媒体协商过程。那么即使连接成功,把视频数据发给对方,对方也无法播放

比如:Peer-A端可支持VP8、H264多种编码格式,而Peer-B端支持VP9、H264,要保证二端都正确的编解码,最简单的办法就是取它们的交集H264

有一个专门的协议 ,称为Session Description Protocol (SDP),可用于描述上述这类信息,在WebRTC中,参与视频通讯的双方必须先交换SDP信息,这样双方才能知根知底,而交换SDP的过程,也称为\"媒体协商\"。

交换数据会通过一个中间服务来完成,在这里,我们称之为信令服务器

在建立P2P连接时,需要交换的信息有:

最理想的场景

然而,在大多数情况下,两个对等端都是各自处于某个局域网之中,相互之间隔着NAT与防火墙

NAT(Network Address Translation)即为网路地址转换协议

局域网--公网

公网--局域网

可以借助STUN服务器.,穿越NAT

在NAT四种主要类型中有三种是可以使用STUN穿透:完全圆锥型NAT、受限圆锥型NAT和端口受限圆锥型NAT。但大型公司网络中经常采用的对称型 NAT(又称为双向NAT)则不能使用STUN穿透,这类路由器会透过 NAT 布署所谓的「Symmetric NAT」限制。也就是说,路由器只会接受之前连线过的节点所建立的连线。

可以点对点连接的情况与需要中转的情况(数据来源于Google)

不过在国内大部分局域网无法穿越。

WebRTC介绍

1、 WebRTC是什么?

2、 WebRTC能做什么?

3、 常用API

4、 基本原理

WebRTC全称是Web Real-Time communication,是一种实时音视频通讯技术,通过WebRTC可以使浏览器之间建立点对点的连接,并实时传输数据。

通过上述图片可以看到【浏览器M】和【浏览器L】可以在不依赖于Web服务器的情况下点对点实时传输数据。上图中的Web服务器不是用于数据传输,而是用于协助【浏览器M】和【浏览器L】进行连接,进行协助连接的服务器也叫【信令服务器】。

WebRTC主要分为四部分,分别是信令、建立连接、安全加密、数据传输,下面分别介绍四个步骤。

信令是指通信两端基于交换的数据进行协商。通俗的解释就是在互联网中两个浏览器之间如果要进行点对点的数据传输,连接双方需要交换对方的一些基本信息,基本信息包括对方的地址,带宽,数据的编解码格式,是否支持音视频等等信息。

通信双方的基本信息完成交换后,浏览器双方开始建立连接。在网络中,浏览器双方可能在同一个内网,可能不在同一个内网,中间可能还隔着交换机、路由器,还会存在防火墙。在网络的环境复杂的情况下,通信的双方需要找到一条最佳路径传输数据建立连接。建立连接主要使用的协议就是ICE协议。【ICE协议】又需要依赖【STUN协议】和【TURN协议】。

在WebRTC中,为了保证媒体传输的安全性,引入了【DTLS】作为传输加密协议,DTLS原理和作用类似于SSL/TLS,【DTLS】主要适用于UDP通信过程的加密,SSL/TLS主要适用于TCP通信过程的加密。

在WebRTC中,音视频数据传输是使用RTP协议,然后通过 DTLS 协商出加密密钥之后,RTP 也需要升级为 SRTP,通过密钥加密后进行通信。协议栈如下图所示:

上面说了对数据加密是使用DTLS,传输数据则分为两种情况,一种是传输音视频数据,另一种是传输自定义应用数据。

1、音视频数据传输,主要使用RTP/SRTP、RTCP/SRTCP协议

前面主要对WebRTC做了一个简单介绍,跳过了很多细节,有些地方可能不够严谨,如果有兴趣的读者,可以对技术做进一步研究,比如:

1、信令如何进行协商?

2、传输层用了UDP,UDP本身是不可靠的,那么,音视频数据、自定义用户数据的时序、质量是如何保证的?

3、RTP用来传递音视频数据,为什么还需要有RTCP?

4、SCTP如何从协议层面兼顾传输的效率和质量?如何实现自定义数据的高效传递?

5、ICE协议的完整流程。

6、其他。

iOS开发之WebRTC和SIP(转载)

1.SIP概念理解

2.【协议学习】SIP基本场景分析

3.企业开源SIP项目

4.SIP常见问题及处理

5.SIP基础入门

6.我的IOS端SIP电话开发历程

7.我的SIP开发之路

8.SIP协议开源SIP服务器搭建和客户端安装

1.WebRTC官网

2.大佬的笔记

3.WebRTC中文网

4.RTC.Blacker -Android IOS WebRTC

5.iOS下音视频通信-基于WebRTC

6.第六章 Webrtc服务器搭建

7.webrtc学习: 部署stun和turn服务器

8.webrtc编译全过程

9.iOS下WebRTC音视频通话(一)

10.iOS下WebRTC音视频通话(二)-局域网内音视频通话

11.WebRTC样本

12.iOS下音视频通信的实现-基于WebRTC

1. WebRTC简介及其与SIP互通

2.SIP和WebRTC有什么不同?

未经允许不得转载:便宜VPS网 » webrtc服务器有哪些(webrtc 服务器)