热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WebRTC的基本概念

●简介WebRTC是一门实时通讯技术,它允许它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点的连接,实




● 简介
WebRTC是一门实时通讯技术,它允许它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览 器之间点对点的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
● WebRTC用到的协议
ICE:是一个允许你的浏览器和对端浏览器建立连接的协议框架。该技术能过让客户端成功的穿透,远程用户和网络之间存在的各类防火墙(网络协商)
STUN:NAT的UDP简单的网络协议,它允许位于NAT后的客户端找出自己的公网地址,查出自己位于那种类型的NAT之后,以及NAT为某一个本地端口绑定的Internet端端口。这些信息用来在两个同时处于在NAT路由后的主机之间进行通信。
请添加图片描述

获得了公网ip,也不一定能建立连接,因为不同类型的NAT处理传入的udp分组的方式是不同的。STUN穿透:完全圆锥型NAT,受限圆锥型NAT和端口受限圆锥型NAT。但是大型公司中经常采用的对称型NAT是不能使用的,一些路由器严格地限定了部分私网设备的对外连接。这种情况下,即使 STUN 服务器识别了该私网设备的公网 IP 和端口的映射,依然无法和这个私网设备建立连接。这种情况下就需要转向 TURN 协议。

网络协商:
双方需要了解对方的网络情况,这样才会找到一条能够彼此通信的链路。
(1)获取外网的IP地址映射 (2)通过信令服务器进行网络的交换
理想情况下每个电脑的浏览器都有自己私有的公网IP,可以进行点对点的连接

请添加图片描述
实际情况下,电脑和电脑之间或大或小只在某一个局域网中,需要NAT进行地址转换请添加图片描述

局域网ip绑定,
请添加图片描述
请添加图片描述

STUN:告诉我你公网ip地址+端口号是什么。搭建STUN服务器很简单,流媒体传输是按照P2P的方式。

问题:STUN并不是每次都能够成功的为需要的NAT的通话设备分配IP地址的,P2P在传输媒体流时,使用本地带宽,在多人音视频通话的过程中,通话质量好坏往往需要根据使用者本地带宽确定

TURN:TURN是STUN/RFC5389的一个扩展,主要添加了Relay功能。如果终端在NAT之后,那么特定的情况下有可能使得终端无法和对等端进行直接通信,这个时候就需要公网服务器作为一个中继,对来往的数据进行转发。转发的协议被定义为TURN。
请添加图片描述
STUN在分配公网ip失败后,可以通过TURN服务器请求公网的ip地址作为中继地址。这种方式的带宽由服务器承担,在多人视频聊天的时候,本地带宽压力较小。
请添加图片描述

媒体协商:
SDP:会话描述协议是一个描述多媒体连接内容的协议。(媒体协商)
请添加图片描述

A端音视频采用vp8编码发送给B端,B端怎么去解码。
B端采用vp9编码,发送给A端,A端怎么去解码。
比如:A端可以采用vp8和H264编码,B端采用VP9和H264编码,为了确保两端都能正确的解码。最简单的就是采用H264编码。
注:SDP在webrtc中,可以描述上面的信息。在音视频通讯的时候,双方需要交换SDP。

媒体协商+网络协商数据的交换通道
两个客户端交换媒体信息和网络信息,通过信令服务器来实现。

请添加图片描述

信令服务器除了交换网络协商信息和媒体协议信息,比如房间的管理,音视频播放的音乐信息,进度条信息等都需要通过信令服务器实现。

请添加图片描述







推荐阅读
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 动态多点××× 单云双HUB
    动态多点是一个高扩展的IPSEC解决方案传统的ipsecS2S有如下劣势1.中心站点配置量大,无论是采用经典ipsec***还是采用greoveripsec多一个分支 ... [详细]
  • 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和 ... [详细]
author-avatar
向日葵哄子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有