WebRTC 通信原理

作者&投稿:并骆 (若有异议请与网页底部的电邮联系)
~ 在不同的网络环境(带有摄像头/麦克风多媒体设备)中,为两个浏览器实现点对点实时视频/语音通信有什么困难?

1、了解对方的媒体格式、支持的最大分辨率和其他媒体信息?

2、要了解彼此的网络,就有可能找到一条通信链路?

3、两个终端还没有建立连接时,如何交换“媒体信息”和“网络信息”呢?

为了保证两端都有正确的编码和解码,最简单的方法就是取它们的交集H264

注:有一种特殊的协议叫做Session Description protocol (SDP),可以用来描述上述信息 。

在webrtc中,参与视频通信的双方必须首先交换SDP信息,这样双方才能了解基本的SDP交换过程。

同样,在复杂的网络环境中,要在两端之间建立连接,必须有一个双方都可以访问的链路。

从图中可以看出,他们可以使用公用网段192沟通。

在web brtc通信过程中,这些与网络相关的信息也必须进行交换,以找到共同的交集。这个过程也被称为“网络协商”。

两个终端还没有建立连接时,如何交换“媒体信息”和“网络信息”呢?

此时,所谓信号服务器信号服务器应该出现:

如上图所示,两个浏览器可以抽象的上层一层信令服务器(可以是一个或多个,根据实际的应用程序中,如果两个浏览器可以访问公共网络环境,如公共如果没有公共网络环境中,您可以设置一组服务器两端,即信号服务器A和信号服务器B,但这两套信令服务器必须能够相互通信),在信令服务器的帮助下,可以实现上述SDP信息和网络信息的交换。

交换SDP的过程大致如图所示:

1. Amy(假设一个人的名字)通过setLocalDescription方法保存自己的SDP信息,然后通过offer方法发送给信令服务器。

2. 信息服务器将Amy的SDP转发给另一端的Bob(另一个虚构的名字),Bob将首先调用setremotedescription来保存Amy的SDP。

3.然后Bob调用setLocalDescription方法来保存他的SDP,然后使用answer方法通过信令服务器将他的SDP发送给Amy

4. Amy收到Bob的SDP后,调用setRemoteDescription进行保存,双方完成SDP交换,找到交集。如果他们能达成协议,他们就可以建立一个p2p连接并开始通信。

但现实往往是残酷的。在中国的网络环境下,据统计,至少有一半的网络不能直接连接。我个人认为根本原因是:在互联网发展的早期,绝大多数IP4地址资源都被国外所占据。当轮到中国等发展中国家使用IP地址时,大多数计算机没有公网IP地址,只能通过路由器和交换机进行NAT转换,相当一部分NAT是对称的。基本上,没有办法播放它。在这种情况下,您只能使用前一节提到的转向服务器进行转移。此外,在视频对话框中,通常会有房间(或组)的概念,用来隔离一些服务。这部分逻辑也在信号服务器中实现。对端、信令服务器、stun/转接服务器后,整个1对1实时视频通信顺序图如下:

主要流程如下:

1. 双方首先调用getUserMedia打开本地摄像头

2. 向信令服务器发送apply_join请求以加入房间

3.信令服务器通知我成功加入(joined),同时向其他人广播加入消息(other_joined)

4. 第二个端开始创建peerConnection连接

5. PeerB创建报价,同时将SDP保存到本地机器(setLocalDescription),并通过信令服务器将SDP传递给peerA

6. 在setLocalDescription之后,PeerB将异步触发“候选网络链接”的集合,这大致决定了它自己所有的NAT映射通过Stun退出。如果Stun返回的NAT是“对称的”,它将基本上无法穿透。再次通过Turn得到中继应答地址,并通过信令服务器将网络候选链接信息发送给peerA(即:启动网络协商)

7. peerA收到peerB的SDP后,开始响应(createAnswer),仍然通过信令服务器将SDP发送给peerB

8. 同时,peerA也会开始收集网络候选链路,并通过信令服务器(即网络协商)将自己的网络信息发送给peerB。

通过这种方式,peerA和peerB相互交换了媒体信息和网络信息。如果他们能达成一致(即找到交叉点),他们就能开始沟通。


蕲春县19815236797: web通信的基本原理 -
月达金馨: B/S架构下的通信,是利用相关协议,由浏览器向服务器发出通信请求,服务器接受并且处理这个请求,然后向所请求的浏览器web页面传递信息的这样一个原理.

蕲春县19815236797: webrtc和websocket的区别 -
月达金馨: 按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP是应用层的协议.在这三者之间,SPDY和WebSocket都是与HTTP相关的协议,而TCP是HTTP底层的协议.WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括...

蕲春县19815236797: ios 基于WebRTC的音视频通信哪家好? -
月达金馨: 说实话我觉得即构科技的比较好,支持ios 基于WebRTC进行音视频通信,团队成员也很厉害,技术支持挺到位的,小白也没有关系,接入很简单

蕲春县19815236797: 计算机通信的主要原理是什么? -
月达金馨: 计算机网络通信的工作原理1)TCP/IP协议的数据传输过程: TCP/IP协议所采用的通信方式是分组交换方式.所谓分组交换,简单说就是数据在传输时分成若干段,每个数据段称为一个数据包,TCP/IP协议的基本传输单位是数据包,TCP/IP协议...

蕲春县19815236797: plc通讯方式的原理 -
月达金馨: 1.自由口通讯一般是指RS232的串行通讯方式,其通讯距离较短,速率较慢,一般在现场的某些仪表会采用这种方式,比较典型的是西门子的PC-PPI通讯;2.总线一般指RS485的串行通讯方式,其通讯距离和速率要远高于RS232通讯方式,一般现场的PLC或变频器等设备用此协议较多,比较典型的是西门子的Profibus-DP,Modicon的Modbus等;3.以太网采用的是国际通用的以太网通讯协议,具备相当高的速率,但其问题是设备成本较前两种方法要高很多,因此没有总线方式普及.

蕲春县19815236797: 单片机串口通信原理 -
月达金馨: 1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式).异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式. 2、基本原理是两组移位寄存器.将并行通信转换成串行通信模式(发送部分),或反之(接收部分).可全双工运行. 3、速度通过移位脉冲决定.具体一般通过定时器1的自动装载模式产生的溢出脉冲给出. 4、电平上采用的是CMOS逻辑. 5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握.另外,电平需要根据实际通信环境做变换,如232、485或红外等.

蕲春县19815236797: 交换机通讯原理 -
月达金馨: 交换机的通讯原理 : 1.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中. 2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发. 3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发.这一过程称为泛洪(flood). 4.广播帧和组播帧向所有的端口转发.交换机---交换(switching)是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术统称.广义的交换机(switch)就是一种在通信系统中完成信息交换功能的设备.

蕲春县19815236797: 基于chrome的webrtc在web端能不能实现分辨率动态调整,回音消除等等 -
月达金馨: 以下我只讨论使用webrtc进行P2P的实时音视频处理 1,还是必须要经过中转服务器对媒体流进行处理,能不能在web段进行处理呢? 分辨率的动态调整在webrtc中(包括chrome中)是在网络出现抖动,经过预测,判断出网络状态不好而进行的...

蕲春县19815236797: 简述局域网通信与工作原理 -
月达金馨: VLAN(Virtual Local Area Network)又称虚拟局域网,是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络.一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处...

蕲春县19815236797: 互联网的通信原理是什么 -
月达金馨: 相当复杂的理论,简单说就是通过协议,在发信侧打包,在收信侧解码,现在通用的是TCP/IP协议. 如果你真的对这方面有兴趣,可以查阅相关书籍,基本所有关于互联网的书里都在第一章介绍了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网