WebRTC 的网络基础知识:传输和地址

WebRTC 的一个关键部分是在两个或多个节点之间交换媒体流(和任意数据)。我们如何传输这些数据?这就是网络变得至关重要的地方。虽然这篇文章并不假装是关于网络的广泛课程,但我们将了解一些基本知识,以了解 WebRTC 项目上的通信流。

你的网购刚刚到货,交付 “网络 “的介绍

WebRTC 的网络基础知识:传输和地址

电子商务和交付平台是当今生活方式的常态。只需点击几下(和一张信用卡),您几乎可以在前门买到任何您能想到的东西。这要归功于一个复杂的交付系统,该系统在幕后负责规划、路由和最终交付您的包裹。 

网络的核心特征之一是它提供向网络中的其他节点传送数据的能力。将上面提到的交付系统想象成一个大网络。我们的房子、快递公司和商店都是属于它的节点。道路是连接一切的电线。

WebRTC 应用程序的主要目标是实时传送媒体内容(以及任意数据)。让我们通过这个类比来更好地理解所有相关组件之间的数据流。

你能用自行车送沙发吗?满足协议和端口

WebRTC 的网络基础知识:传输和地址

根据包裹的特性,如何运送物品的内部细节会有所不同。虽然这对我们作为消费者来说基本上是透明的,但在了解交付在网络方面的运作方式时,这一点很重要。

根据包裹的性质,它可能由我们的朋友琼斯先生骑着自行车送货,也可能由卡车司机拉里送货。快递公司有一套关于何时、如何以及在哪里运送包裹的规则和指南。例如,让拉里 (Larry) 处理一封信就有点矫枉过正了。而且你绝对不能骑自行车送沙发。

同样,琼斯先生在高速公路上骑自行车可能不是一个好主意。他可能更喜欢通过不同的渠道旅行。他在城市的自行车道上会更安全。 

在网络中,我们有协议端口。简单来说,协议定义了在网络中传送数据包的规则和指南。您可以将端口视为传输数据包的虚拟通道。端口和协议通常是关联的。

互联网可能是网络最受欢迎的结果。查看您的网络浏览器的地址栏。单击它几次以显示整个字符串,您会注意到在实际地址之前有一个https前缀。

这样的前缀是用于将您当前正在查看的网站传送到您的网络浏览器的协议。HTTPS 是超文本传输​​协议 (HTTP) 的安全版本,它是用于网页的协议,就像自行车用于送信和卡车用于沙发一样。 

如果网页是一封信,那么 HTTP 协议就是一组或规则,规定了它应该如何通过网络传递(在我们的类比中,友善的琼斯先生骑着自行车)以及网络浏览器如何使用它(在邮箱中。 ) 

HTTPS 协议与端口 443(是的,端口以数值表示。)相关联。这是用于传递 Web 相关数据包的通道。端口在服务器级别公开。

全球交付:进入 LAN、WAN 和 NAT

回到我们的递送类比,让我们谈谈在当地社区递送包裹与在遥远的地方递送包裹的含义。

在家附近购物时,您可以使用适合您所在社区的本地地址。您或许可以要求当地商店将您的包裹送到“草原上的小房子”。由于您和商店在同一区域,因此送货员可以轻松找到它并为您送货。

但是,当你和店铺在不同的城市甚至不同的国家时,本地地址就没有意义了。相反,您需要一个公共地址,以帮助商店确定包裹需要投递到哪里。

后一种情况不一定需要包裹直接从商店运送到您家。商店可以将包裹发送到您附近的当地快递公司,然后他们可以运送包裹。因为这个本地实体会更好地了解该地区,所以他们可以将提供给商店的公共地址翻译成类似于第一种情况的本地地址。

应该考虑的一件事是这个本地实体可以对其接收的包执行一些安全控制。有时,如果他们认为包裹对社区有危险,他们甚至可以拒绝包裹。

在网络中,局域网 (LAN) 是指在同一物理位置相互连接的一组节点。类似于在同一个城市投递包裹,它们可以使用本地地址相互连接。这称为 IP 地址。它是分配给每个节点的网络接口的一组数字。

广域网 (WAN) 是相互连接的 LAN 的集合。由于本地 IP 地址仅在同一网络内有意义,因此对于两个不同 LAN 中的两个节点通过 WAN 相互连接,需要一个公共地址。

公共 IP 地址使数据包能够从一个 LAN 传输到另一个 LAN。为了确切知道它需要去哪里,它使用了与上面提到的使用本地送货公司的方法类似的方法。在这种情况下,它是执行网络地址转换 (NAT) 的设备。 

简单地说,NAT 就是将公共地址翻译成本地地址。这通常由防火墙执行。在我们的交付类比中,防火墙是本地交付公司。与我们在那里讨论的类似,防火墙可以执行安全控制,如果数据包被认为是有害的,则允许或拒绝该数据包。

这种拒绝/允许行为是通过通常基于端口和协议的防火墙策略定义的。防火墙管理员定义在哪些端口和哪些协议上允许哪种类型的流量。拒绝此定义之外的任何流量。

一个老式的爱情故事:通过 TCP 与 UDP 发送数据包

WebRTC 的网络基础知识:传输和地址

在这篇文章的最后一部分,我们将看看几个现代的罗密欧与朱丽叶,尽管有所有可用的技术,但他们更喜欢使用信件保持联系。由于他们家族之间的仇恨,他们希望确保每封信都真正送达。为了使对话有意义,每个人都需要按顺序进行。

为此,他们与邮局达成协议,邮局会对他们投递的每封信进行额外检查。如果一封信被家人没收了,邮递员需要回去让寄件人寄回去。这使得这个过程有点慢,但保证了两个恋人能够沟通。

或者,他们可以要求邮局在没有签名或任何其他额外支票的情况下递送信件。这将加快流程,但不能保证投递,也不能保证信件投递的顺序。在信件的上下文中,如果它们是无序的,对话就没有意义。

他们可以简单地互相送礼物,然后把谈话留给他们偶尔的秘密相遇。在这种情况下,交货顺序无关紧要。如果至少有一些数据包到达,就足以让爱之火继续燃烧。

在网络中,数据包的传输也会发生类似的情况。传递数据包的两种主要方式是使用传输控制协议 (TCP) 和用户数据报协议 (UDP)。

两者之间的区别在于 TCP 侧重于交付而 UDP 侧重于速度。TCP 将执行额外的检查以确保数据包按照正确的顺序正确传输。这使得 TCP 可靠,但有点慢。UDP 不执行任何检查。数据包交付速度更快,但存在丢失某些数据包或延迟交付的风险。

与上述类比一样,在某些用例中,一个比另一个更有意义。在实时通信的背景下,速度比可靠性更重要。WebRTC 支持这两种传输协议,但由于上述原因,UDP 应该是您的首选。

总之

在我们网络系列的第一篇文章中,我们快速概述了一些您在从事 WebRTC 项目时需要了解的最重要的网络概念。您了解到数据在网络中传输时遵循一组特定的规则(协议),这些规则(协议)取决于数据包的类型。数据包还通过与协议关联的不同“端口”传输。

您还了解到存在本地网络 (LAN),其中每个节点都有一个本地地址。它们可以使用公共地址连接到不同 LAN 上的节点——形成一个大的广域网 (WAN)。但是为了互相联系,我们必须使用转换过程将公共地址转换为本地地址 (NAT)。

在下一篇文章中,我们将开始研究 WebRTC 应用程序中涉及的不同协议。

编译自webrtc.ventures,作者:Hector Zelaya

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

(1)

相关推荐

发表回复

登录后才能评论