IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 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。

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

请添加图片描述

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

请添加图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:53:47  更:2022-10-22 21:55:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:05:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码