什么是WebRTC以及它如何工作
WebRTC代表网络实时通信。它是一种非常令人兴奋,强大且具有高度破坏性的尖端技术和标准。WebRTC利用一组可在桌面和移动浏览器中使用的无插件API,并逐渐得到所有主要现代浏览器供应商的支持。以前,需要外部插件才能实现WebRTC提供的类似功能。WebRTC利用多种标准和协议,其中大部分将在本文中讨论。这些包括数据流,STUN / TURN服务器,信令,JSEP,ICE,SIP,SDP,NAT,UDP / TCP,网络套接字等。本文旨在成为WebRTC的高级概述,并涵盖任何相关的术语和概念,以便读者对所涉及的技术,协议和过程有基本但扎实的理解。有关其他信息和技术细节,请参阅以下参考资料。
点对点通信
WebRTC可用于多个任务,但实时的对等音频和视频(即多媒体)通信是主要的好处。为了通过网络浏览器与另一个人(即同伴)进行通信,每个人的网络浏览器必须同意开始通信,知道如何相互定位,绕过安全和防火墙保护,并实时传输所有多媒体通信。与基于浏览器的对等通信相关的最大挑战之一是知道如何与另一台计算机的Web浏览器定位和建立网络套接字连接,以便双向传输多媒体数据。与此相关的困难一开始可能并不明显,但让我进一步解释。当您访问网站时,通常会输入网址或单击链接以查看该网页。向服务器发出请求,该服务器通过提供网页(HTML,CSS和JavaScript)进行响应。这里的关键是您向已知且易于定位(通过DNS)的服务器发出HTTP请求并返回响应(即网页)。
防火墙和NAT遍历
我们大多数人从工作或家庭网络访问互联网。我们的计算机通常位于防火墙和网络访问转换设备(NAT)后面,因此未分配静态公共IP地址。从非常高的层面来说,NAT设备将私有IP地址从防火墙内部转换为面向公众的IP地址。对于可用的公共IP地址的安全性和IPv4限制,需要NAT设备。以下是工作中NAT的示例:假设您在咖啡店加入WiFi,您的计算机将被分配一个仅存在于NAT后面的IP地址,例如172.0.23.4。但是,对于外部世界,您的IP地址实际上可能是164.53.27.98。因此,外部世界将看到您的请求来自164.53.27.98,但NAT设备将确保通过使用映射表将对您的请求的响应发送到172.0.23.4。请注意,除了IP地址之外,网络通信还需要一个端口,因此本文中隐含了所附端口所需的知识,鉴于NAT设备的参与,我如何知道我母亲的IP地址以发送音频和视频数据,同样,她如何知道将音频和视频发送回哪个IP地址,这是STUN(NAT的会话遍历实用程序)和TURN(使用NAT周围的继电器)服务器发挥作用的地方。为了使WebRTC技术正常工作,首先向STUN服务器发出面向公众的IP地址的请求。把它想象成你的计算机问远程服务器。然后服务器响应类似“肯定的事情,我看到它的方式,你的IP地址是198.54.5.67”。假设此过程有效并且您收到面向公众的IP地址和端口,那么您可以告诉其他同行如何直接与您联系。这些对等体也能够使用STUN或TURN服务器执行相同的操作,并且可以告诉您在哪个地址与他们联系。
信令,会话和协议
上述网络信息发现过程是较大的信令主题的一部分,其基于WebRTC情况下的JavaScript会话建立协议(JSEP)标准。信令涉及网络发现和NAT遍历,会话创建和管理,通信安全性,媒体能力元数据和协调以及错误处理。WebRTC标准未指定信令,也未通过其API实现信令,以便灵活使用所使用的技术和协议。信令和处理它的服务器留给WebRTC应用程序创建者进行整理。假设您的WebRTC基于浏览器的应用程序能够使用STUN确定其面向公众的IP地址,则下一步是与您的对等方实际协商并建立网络会话连接。此过程类似于拨打电话。初始会话协商和建立使用专用于多媒体通信的信令/通信协议进行。该协议还负责管理管理和终止会话的规则。一种这样的协议是会话发起协议(又称SIP)。请注意,由于WebRTC信令的灵活性,SIP不是唯一可以使用的信令协议。所选择的信令协议还必须与称为会话描述协议(SDP)的应用层协议一起使用,该协议用于WebRTC。使用SDP协议传递所有特定于多媒体的元数据。尝试与另一个对等体通信的任何对等体(即,WebRTC利用应用程序)生成一组ICE候选者,其中ICE代表交互式连接建立协议。候选者代表要使用的IP地址,端口和传输协议的给定组合。请注意,单台计算机可能具有多个网络接口(无线,有线等),因此可以为每个接口分配多个IP地址。
如上所述,每个对等体首先建立它面向公众的IP地址。然后动态地创建信令数据“信道”以检测对等体并支持对等协商和会话建立。以上就简单介绍到这里,有什么不太了解的欢迎前来与小编交流探讨。