WebRTC 中使用的协议

你有没有想过,两台电脑如何仅通过浏览器(Chrome、Firefox、Safari、Brave)就能形成点对点连接?

我们今天使用的许多应用程序都使用 WebRTC 提供服务。直播平台、VoIP 功能应用程序(Discord、WhatsApp)和视频会议应用程序(Google Meet、Zoom、MS Teams)都使用 WebRTC 为用户提供最佳服务。

WebRTC 之所以在这些应用中受到青睐,是因为这种技术在数据传输过程中延迟很低。由于中间不涉及服务器,因此数据传输既无缝又快速。

让我们来了解一下如何在两台电脑之间建立 WebRTC 连接。

假设您想将自己的电脑连接到相邻宿舍楼的朋友的电脑上。两台电脑都需要对方的公共 IP 地址才能连接。(公网 IP 地址不是输入 ipcongif 命令后在 cmd 中显示的 IP 地址,例如:192.168.0.0。192.168.0.2,而是该电脑的私有 IP 地址)。

WebRTC 中使用的协议

现在,您已经简要了解了 webRTC 是什么,让我们研究一下使 webRTC 成为如此酷的技术的更有趣和更复杂的东西。

NAT(网络地址转换)

简而言之,NAT 是一种用于映射网络中所有终端设备的公共和私有 IP 地址的协议。没有 NAT,主机就无法与本地子网外的其他主机通信。NAT 映射由一个 IP 地址和一个与该 IP 地址相关联的端口号组成(NAT 表有临时映射,而不是永久映射)。

内部 IP内部端口外部 IP外部端口192.168.0.12323249.134.56.785542

有 4 种不同类型的 NAT 转换方法

  • 一对一NAT
  • 地址受限 NAT
  • 端口受限
  • 对称NAT

信令

你的电脑不知道你朋友电脑的位置。要成功建立连接,必须以某种方式将你电脑的公共 IP 地址发送给你朋友的电脑。这个过程被称为 “信令”。

从概念上讲,WebRTC 连接在主机之间不需要服务器,但最初连接时需要服务器。主机连接后,就不再需要之前使用的服务器了。

WebRTC 中使用的协议

(只需将信令服务器替换为STUN/TURN即可获取公网IP地址)

ICE(交互式连接建立)

每个网络都有自己的配置(防火墙、NAT、IP 地址),这些配置有时不利于对等网络的连接。为了克服这些障碍,ICE 协议被用来寻找一种系统化的方法,以找到可能的通信选项来连接对等网络。ICE 找到的各种选项被称为 ICE 候选方案。

ICE 是一种用于生成可用于 WebRTC 应用程序的候选媒体穿越协议,它可以通过使用 STUN 和 TURN 的网络地址转换 (NAT) 成功发送和接收。

STUN 和 TURN

STUN:用于 NAT 的会话遍历实用程序

TURN:使用 NAT 附近的中继进行遍历

根据网络的 NAT 类型,可以使用这两个服务器中的任何一个来获取有关计算机公共 IP 地址的信息。TURN 服务器用于对称 NAT 网络,STUN 用于其他三种类型的 NAT。

SDP(会话描述协议)

SDP 包含主机可通过其连接的所有可能的 ICE 候选信息。在建立连接时,两台主机都会生成一个 SDP。

主机 A 生成的 SDP 被称为要约,并将其设置为本地描述。然后,它将通过信令向主机 B 发送该 SDP。主机 B 收到主机 A 发送的要约并将其设置为远程描述。主机-B 将生成一个 SDP(应答),并将其设置为本地描述,然后发送给主机-A。主机-A 收到应答并将其设置为远程描述。

SDP 如下所示:

WebRTC 中使用的协议

结论

WebRTC 是一项高度复杂但非常有用的技术。WebRTC 需要许多不同的协议才能形成成功的连接,必须深入讨论这些协议才能清楚地了解该技术的功能。

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/31361.html

(0)

相关推荐

发表回复

登录后才能评论